2023-01-01から1年間の記事一覧

VSCodeで組込み系のソースを編集

やりたいこと VSCodeで組込み系マイコンのCソースを編集したい。 ビルドやデバッグは別のIDEでやるのでできなくていい。 前提 VSCodeに拡張機能 C/C++ がインストールされていること。 とりあえずこれだけで、構文ハイライトやナビゲーション、インテリセン…

メモ:VSCodeの文字化け

やんごとなき理由でShift-JISで書かれたファイルをVSCodeで編集しようとすると、文字化けが起こる。VSCodeのデフォルトの文字コードはUTF-8なので当然である。設定で、Files:Auto Guess Encoding にチェックを入れるといちおう文字コードを自動判別するよう…

メモ:PowerShell の文字化け問題

PowerShellとは? Windows独自の 珍妙な 強力なシェル たしかにDOS窓と比べてはるかに強力だがよく分からない。 シェルスクリプトの拡張子は .ps1 (でもメモ帳に関連付けられる…) そしてやたら文字化けする。 シェルスクリプトの実行権限 下記コマンドで確認…

WinMergeで差分のみの表示になってしまった!

WinMergeを使っていて、Ctrl+S で保存するときに指がすべって Ctrl+D を押してしまうと、差分のみの表示に切り替わってしまう。もう一度 Ctrl+D を押すと全行表示に戻る。メニューの「表示」→「Diffコンテキスト」からも設定できる。また、差分の前後1行を含…

ラジコン楽器の図解 (内部の結線)

むかし作ったラジコン楽器の内部の図解。 (というか自分が忘れたので調査した。) 本体内部 フロントパネルの裏面 イヤホンジャック LED ラジコン受信機 FM音源ボードの改造 3.3V電源で動作するようにS1をショートし、R0をはずす。 ユニバーサル基板の配線

arctanの近似計算

arctan関数の近似計算として、3次のガウス求積法による近似式は、角度をラジアンから度数法に換算すると C言語のコード この近似計算をおこなうC言語のコードを以下に示す。 なお、浮動小数点実数にはdouble型ではなくfloat型を用いている。計算の精度からし…

メモ:GitHubのREADME.mdにYouTubeの動画を貼る

一般に、下記の要領で動画を貼ることができる。 [![代替テキスト](サムネイル画像のURL)](動画のURL)YouTubeの場合、サムネイル画像は下記のようなURLで得られる。 ただし、動画IDを XXXXXXXXXXX とする。 https://img.youtube.com/vi/XXXXXXXXXXX/0.jpgよっ…

Arduino IDEからPlatformIOへ移行

Arduino IDEの問題点 PlatformIOとは? PlatformIOの導入 プロジェクトの作成から書き込みまで プロジェクトの作成 ビルドと書き込み ポート指定 シリアルモニター ライブラリの導入 サンプルコード 既存のプロジェクトを開く 既存のArduinoスケッチのインポ…

メモ:BME280

BME280のI/Fについてメモ。BOSCHのセンサICはだいたい似たような仕様になっている。 I2C接続の場合 ピン名 機能 SCK SCL (シリアルクロック) SDI SDA (シリアルデータ) SDO スレーブアドレス設定 (0x76@Low / 0x77@High) CSB I2C選択 (High固定にする) SPI接…

gitでdiffの文字コードのみShift JISに設定する

課題 Source Treeでgitを使用 歴史的経緯でShift JISのファイルがある diffが文字化けする [ツール]→[オプション]から「デフォルトの文字コード」を「shift_jis」にしてしまうとコミットログなどもShift JISになってしまう。(過去にutf-8で書かれたログが文…

3.3V, 5Vの電源IC/モジュール/その他

個人的によく使う (よく使った) ものを中心にメモ。 降圧 (リニア) 7805 : 名にし負ういにしえの三端子レギュレータ。TO-220パッケージ。5V1A出力。かつては定番中の定番でセカンドソースも多数ある。78L05はTO-92で100mA。ドロップアウトが大きい(2V)。 も…

サンハヤトのユニバーサル基板

いわゆるC基板 (47mm×72mm) ICB-288G : ガラスコンポジット片面 1.2t ←好み ICB-288 : 紙フェノール片面 1.6t ICB-88G : ICB-288G に比べ、周縁部に余白がある ICB-88 : ICB-288 に比べ、周縁部に余白がある ICB-88GH : ガラスコンポジット両面(スルーホール…

秋月メモ

ユニバーサル基板 スルーホールでない両面ランドの基板で、ガラスコンポジット材(CEM3)で薄手のものが好み。両面ランドだと両面にハンダ付けできる。スルーホールのものは裏表で配線を交差できないし重い。またCEM3で薄めのものがPカッターでカットしやすい…

C言語:可変長引数のマクロと関数、およびデバッグ用printf

デバッグ用printfでよく使うテクニックだが忘れがちなこと。 可変長引数のマクロ 引数の可変長部分を ... で表記する。 特別な識別子 __VA_ARGS__ が可変長引数に置換される。 #define DEBUG_PRINT(fmt, ...) printf(fmt, __VA_ARGS__) 可変長引数の関数 std…

Javascriptでバイナリの構造体を扱う

ArrayBufferとDataViewとUint8Arrayでごにょごにょすればいいらしい。 function setData() { const longitude = 139.6917; const year = 2023; const month = 5; const day = 28; const hour = 12; const min = 30; const aBuffer = new ArrayBuffer(10); co…

メモ:Azure Static Web Apps

やりたいこと Azure で静的なWebサイトをホストする。 (たんに HTML と JavaScript のファイルを置くだけ) 方法 静的Webアプリ (Azure Static Web Apps) を使う。 手順 Azure のポータルを開く。 「静的Webアプリ」を選択 「作成」を選択 「サブスクリプショ…

定数マクロの退避と復帰

定数マクロの弊害として、スコープに関係なく置換されるため、意図しない所でエラーになることがあります。 #include<stdio.h> #define HOGE 666 int main() { printf("HOGE = %d\n", HOGE); int HOGE = 314; // ← HOGEが666に置換され、エラー printf("HOGE = %d\n",</stdio.h>…

メモ:Bootstrap5

bootstrap.min.css グリッド コンテナの幅指定 列幅の指定 行内の列を中央に寄せる (列幅が合計12未満のとき) マージンの設定 テキストの中央寄せ ボタン ボタンの種類とデフォルトの色 ボタンの見た目 幅いっぱいのボタン フォーム テキストボックス スライ…

メモ:Windows10でギリシャ語入力

現代ギリシャ語の Monotoinc (鋭アクセントのみ使用) 表記ではなく、古典ギリシャ語の Polytonic 表記をWindowsで入力する方法。 ギリシャ語キーボードのインストール [設定] → [時刻と言語] → [言語] でギリシャ語を追加 ギリシャ語のオプションで「ギリシ…

メモ:自作キーボードのキースイッチとキーキャップ

基礎知識のメモ。 キースイッチ Cherry MXスイッチ : いちばん有名なやつ。互換品が多い。 Kailh BOXスイッチ : Cherry MX互換でたぶんいちばん有名なやつ。 軸種 赤軸 : リニア (クリック感のない静かなやつ) 茶軸 : タクタイル (少しクリック感のあるやつ…

Eagleの基板図面からアクリル板のレーザー加工用データを作る

(2023/02/04 改訂) やりたいこと Eagleの基板図面(brdファイル)から、アクリル板のレーザー加工用のデータを作る。 ただしここでは、レーザー加工用のデータは工房Emerge+さん指定の下記のような形式のファイルとする。 SVG形式 外側カットラインは ”outer” …

中華基板屋メモ

FusionPCB 日本語対応のWebサイト 筆者は利用実績あり (2014~2016年ごろなのであまり参考にならず?) Eagle用のCAMファイルはEagleに付属している。(こちらの記事を参照) Elecrow 筆者は利用実績あり (2016~2017年ごろなのであまり参考にならず?) 異種面…

フリーのガーバービューアについてメモ

Gerbv Eagle7以降で吐いたガーバーをGerbvで見たらTXTだけスケールが狂ってやたらデカく表示される。ただしドリル径は変わらず。Eagle6.5のころはそんなことはなかった。↑Eagle7.1以前と7.2以降の仕様の違いのようで、最新のEagleに付属しているFusionPCB向…

「コウ」と読む漢字

以前に書いたネタ↓についての詳しく調査し直しました。 「コウ」と読む漢字が多い理由 - 滴了庵日録 古代中国語では全て異なる発音だった46個の漢字が現代日本語では同じ発音になっている例です。 (極端な例で恣意的なチョイスではありますが。) (PDF版はこ…

今さらEagleメモ

常にベクターフォントを使う Options > User Interface > Always vector font をチェック 部品のシンボルで型番をVALUEに表示 部品のライブラリでValueのラジオボタンをOffにする。 (Onだとデフォルトで空欄となる。意味不明だがそういう仕様。) 部品のシン…

EagleでDocumentsフォルダが参照されない怪現象

CADソフトのEagleでは、通常は $HOME フォルダとはユーザーのDocumentsフォルダのことです。 ところがDocumentsフォルダが参照されず、なぜかEagleのインストールフォルダが参照される怪現象が発生。 調べてみると、下記のレジストリがなぜか空欄になってま…

XIAO nRF52840 のソフトウェアリセットとスリープ

リセット NVIC_SystemReset(); スリープ ウェイクアップ信号でリセットがかかることに注意。 (復帰ではない) バッテリー駆動でスリープ時にUSB接続してもリセットがかかる。 #define PIN_WAKEUP 7 // ウェイクアップピン pinMode(PIN_WAKEUP, INPUT_PULLUP_S…

XIAO nRF52840でUARTのTXのみ使用

Seeed Studio XIAO nRF52840で、USBデバイスを作る場合、デバッグ用UARTとして Serial1 (TX=D6, RX=D7) を使用したいが、ピン数の少ないボードなのでTX(D6)のみを使用してD7は別の用途に使いたい。 方法 レジスタを叩いてRXのピンアサインを解除する。 // De…

XIAO nRF52840 のバッテリー電圧計測

Seeed Studio XIAO nRF52840で、裏面のBATパッドに接続したLiPoバッテリーの電圧を計測する方法を調査した。 方法 バッテリー電圧(VBAT)は nRF52840 の P0.31(AIN7)に接続されている。ただし、下図のように1MΩと510kΩで分圧されており、P0.14 をLOWにしたと…

XIAO nRF52840 のVBUS判定

Seeed Studio XIAO nRF52840 (以下、XIAO nRF) で、USBが接続されているか (VBUSが給電されているか) を判定する方法を調査した。 何がしたいか? XIAO nRFにはLiPoバッテリーを接続して給電/充電するパッドがある。USB接続されているときはマイコンにはUSB…