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

ぼくの歴代はんだごて

家にあったはんだごて HAKKO DASH N453 (20W) HAKKO PRESTO 984 (20W / 130W) HAKKO FX-888D HAKKO FX-600 家にあったはんだごて 1996年ごろまで使用。 家にあったメーカー不明の、ニクロムヒーター式のはんだごて。中学生から高校生のころに使ってたが、ま…

WebアプリをPWA化してオフライン対応

やりたいこと AndroidのChromeでWebアプリをオフラインでも動作させたい。 (WindowsのChromeと違ってストレージにファイルを保存して開くだけでは動かない。) 方針 WebアプリをPWA化してネイティブアプリのようにホーム画面へインストールする。 Webアプリの…

メモ:usbipd-win (WSL2でUSBデバイスを使う)

まずWSLのバージョンを確認 usbipd-win をインストール WSLにデバイスをアタッチ (1) Windows側のUSBデバイスリストを表示 (2) デバイスの共有化とアタッチ (3) WSL側で確認 仮想COMデバイスの出力をWSL側で表示 (1) COMデバイスを確認 (2) ターミナルを開く…

ぼくの愛用したスマホ&タブレットたち

今まで愛用してきた歴代スマートフォン、タブレットの供養のために記す。 初代メイン機:シャープ LYNX SH-10B 開発機たち (2010年~2012年) サムスン GALAXY580 iPod touch 第4世代 8GBモデル LG L-04C Xperia Pro 2代目メイン機: サムスン Galaxy Nexus …

メモ:InkscapeでPDFを編集

問題 InkscapeでPDFを開こうとすると「応答なし」になってフリーズする。 解決 オンラインツールでまずPDFをSVGに変換する。 SVGをInkscapeで開いて編集する。そしてPDFで保存する。

メモ:Chromeのショートカットのオプション

--start-fullscreen 全画面表示 --app=URL アドレスバー等なし --app=URL --start-fullscreen アドレスバー等なし 全画面表示 --profile-directory=Default 特定のユーザープロファイルを使用 例えば、ショートカットを新規作成して、下記のように設定する。…

Azure Speechを使ってPythonでTTS

前提 Azureのアカウントとサブスクリプションは作成済みであること。 Azureに馴染みが無いので分かりにくいが、アカウント > サブスクリプション > リソースグループ > リソース という階層構造になっているっぽい。サブスクリプションは課金の単位。個人な…

メモ:VSCodeの設定いろいろ

カラーテーマ 2026年春ごろのアップデートで、VSCodeのデフォルトのシンタックスハイライトの色がどぎつい色に変わってしまった。元に戻すにはメニューから [File] → [Preferences ] → [Themes] → [Color Theme] を選択し、[Dark 2026] から [Dark Modern] …

BNO055 9軸センサモジュール

Bosch(ボッシュ)の9軸センサ BNO055 を使ってみます。今回は昔購入して積んでいたAdafruitのモジュール基板を使用しましたが、今はすごく値上がりしています。秋月のモジュール基板のほうが安くてコンパクトです。また、マイコンは Spresense を使用しました…

Spresense用BLEアドオンボードの改造

Spresenseには UART が2系統しかありません。USBシリアルポートに接続されているSerialと、メインボードおよび拡張ボードのピンソケットに出ているSerial2です。 そのため、例えばSerial2をシリアルサーボの制御に使う場合、BLEアドオンボード (BLE1507) は…

Spresenseのコア間メモリ共有について

SpresenseのArduino環境では、コア間でメモリを共有するときに MP.AllocSharedMemory()で共有メモリを確保できます。しかしこれを用いず、一方のコアのメモリに他方のコアからアクセスすることも可能です。ではMP.AllocSharedMemory()を使う意味は何でしょう…

Spresenseのpthreadについて

Spresense Arduinoでは、内部でRTOSのNuttXが動いています。NuttXはPOSIX準拠のOSなので、pthreadを利用できます。また、Spresense Arduinoではコアごとに別々にNuttXが動いています。つまり、マルチコアによる並列処理とは別に、コアごとにpthreadによる並…

PlatformIOのSpresense Flash書き込みスクリプトの修正

PlatformIO の Spresense のFlash書き込みでエラーが出ることとその回避方法は以前の記事にまとめました。原因はPythonのバージョン問題で、このときはPythonスクリプトではなくOSごとに用意されているバイナリを利用する方法を示しました。別解として、Pyth…

ジェネリック・ガンガル的なやつ

アトムチャン とガンプラの相性が良いことはよく知られている(?)けども、版権のさしさわりのないジェネリック・ガンガル的なものをデザインできたらなと思う。(まだ妄想段階) 何がガンダムか? 何がガンダムで、何を外せばガンダムでなくなるかについては、つい最…

メモ:超軽量マイクロリニアサーボ GS-1502

型番 : GS-1502 ブランド : 不詳 (Goteck, 9imod) 種別 : マイクロリニアサーボ 用途 : RC航空機用 電圧 : 3.3V~6.0V (3.7V~5.0V ?) 重量 : 1.5g 寸法 : 21.4x15.2x6mm (本体) / 21.4x15.2x12mm (ホーン含む) ストローク : 7mm 信号 : PWM (1520usec, 1500…

M5Stackのモジュール基板設計のためのメモ

基板寸法 基板外形の外枠は 50mm×50mm の正方形 正方形の頂点から (3mm, 3mm) 内側にΦ3.1mm の穴 正方形の頂点から (7mm, 3mm) 内側にΦ2mm の穴 正方形の頂点から (2mm, 2mm) で面取り MBUSコネクタのピンは、正方形の頂点から (4.68mm, 7.27mm) の点を基準…

リュックサックを新調

リュックサックのファスナーが壊れたので、新調した。前のやつより収納性はやや劣るけど、540gとかなり軽い。サンワサプライのカジュアルPCバックパック。たぶん中華OEMだろうけど。サイドのポケットが小さく、ペットボトルが入らないのはちょい残念ではある…

フィラメントの保管に乾物ストッカー6.0

フィラメントの保管用に良いと噂の、イノマタ化学の乾物ストッカー6.0を購入。底に乾燥剤が入ってますが、追加の乾燥剤(ダイソーの繰り返し使えるやつ)と湿度計を投入。 中身が分かるように、フィラメントの製品名のシールを紙箱から剥がしてフタに貼って…

メモ:L型金具・ネジ取付ブロック

デジットにて タカチ CK-100 タカチ UCK-P13 (?) マックエイト ネジ取付ブロック BB-001 (10mm), BB-002 (8mm), BB-003 (6mm) ノーブランド サイコロスペーサー M3-10-10SAI 千石電商 (大阪日本橋店) にて 廣杉計器 VAD-308 廣杉計器 VDB-308E 廣杉計器 VCP…

Zoomでの画面共有でスライドショーと第2カメラの切り替え

やりたいこと Zoomでのプレゼンでの画面共有で、パワポのスライドショーとデモ用の第2カメラ(手元カメラ)の切り替えをなるべく簡単な操作でできるようにしたい。OBSの仮想カメラ機能を使う方法もあるけど、操作が少しややこしくなるのと、本番のトラブルを避…

KiCadのシンボルライブラリを生成するPythonスクリプト

仕様 CSVファイルを読み込み、KiCadのシンボルライブラリを生成する 生成するのは長方形のボディの左右にピンが並ぶDIPのようなシンボル 部品のプリフィックスは「U」固定とする。 信号の属性は「双方向」固定とする。 CSVファイルの1行目には、ライブラリフ…

メモ:Claudeサブスクリプションの解約

一月ほど使ってみたけど、自分には過ぎたるものと思ったので解約。

edge-ttsを使ってPythonでTTS

edge-tts とは? edge-ttsは、Pythonコード内から、またはedge-ttsコマンドやedge-playbackコマンドを使用して、Microsoft EdgeのオンラインTTS (テキスト読み上げ) を利用できるようにするPythonモジュールです。 https://pypi.org/project/edge-tts/ イン…

フォルマント合成関連のブックマーク

KlattSynthesizer Dennis H. Klatt が1980年に開発したフォルマント音声合成器 KlattSynthesizer - Miyazawa’s Pukiwiki : Klatt Synthesizer について (とくにPython版について) PyKlatt : Python版 (音価パラメータは ipa.py ) KlattSyn : TypeScript版 (…

日本語の音素と音価

音素と音価 ある言語において人間が音をどのように認識するかと、それが物理的にどのような音であるかは別問題です。前者の抽象的な音の単位を音素(Phoneme)とよび、後者の物理的な音の値を音価(Phone)とよびます。音素は /n/ のように / / で囲んで表記し、…

Arduino系マイコンでのI2S出力

最近のマイコンはI2Sのペリフェラルを搭載しているものも多いですが、いっぽうでArduinoではI2Sの標準的なライブラリは存在せず、対応状況はマイコン種別ごとにまちまちです。この記事では、XIAO RP2040、XIAO ESP32C3、XIAO nRF52840 の3品種について、I2S…

手ハンダ可能な部品で作る5V昇圧基板

要件 マイコンの電源用に乾電池2本から5Vに昇圧する回路。 出力電流は300mAくらいは欲しい。500mAあれば十分。 手ハンダ可能な部品を使用すること。(リフローが必須な部品は避ける) まずはモジュール基板を作成。使えそうなら今後のカスタム基板設計に展開。…

メモ:Windowsでアイコンの表示が即座に反映されないとき

%LOCALAPPDATA% をエクスプローラで開く IconCache.db (隠しファイル注意) を削除 Windowsを再起動

メモ:VisualStudioでC/C++のプロジェクトの設定

fopen系の関数を使うと警告が出る プロジェクトのプロパティ→「C/C++」→「プリプロセッサ」で、 「プリプロセッサの定義」に ;_CRT_SECURE_NO_WARNINGS を追加 ソースファイルが UTF-8 だと挙動不審 プロジェクトのプロパティ→「C/C++」→「コマンドライン」…

Spresense ArduinoでAudioClassを使わずにマイクとスピーカ

Spresense ArduinoのAudioClassは便利で高機能ですが、多大なメモリを消費します。詳しくはこちらの記事↓ そこで、AudioClass を使わず、デバイスファイルをioctlで直接叩く方法を試しました。SDKのサンプルコードのdirect_audio_throughが使えそうだったの…