スポンサーリンク
Programming

Arduinoサーボのハンチングを完全解決!writeMicroseconds活用ガイド

要約まとめ サーボが〈プルプル〉震えるハンチングはPIDゲイン過多と急加速/急減速が主因。 Servo.write()だけだとコントローラが粗く、ハンチングが顕在化しやすい。 ソフト加速(softMove)でステップを細かく切ると大幅に低減。 writeMicroseconds()でパルス幅を直接制御すれば解像度が5〜10倍に向上。 さらに独自関数new_writeMicroseconds()で“なめらか全域制御”が可能。 ハンチングの正体と根本原因 結論から言うと、ハンチングは「PIDコントローラのD(微分)成分が効きすぎ+速度ステップが粗すぎ」で起こる軽い振動現象。...
Programming

Arduino UNOをインラインアセンブラで爆速Lチカ!標準関数との実行速度・バイナリサイズ徹底比較

要約まとめ Arduino UNO でインラインアセンブラを使うと、LED 点滅 1 万回が4 msで完了。標準関数では67 ms ― およそ 1/16 の高速化 コンパイルサイズも640 B → 924 Bと 284 B 削減。メモリ節約は地味に効く asm volatile() ひとつでレジスタ直叩き。レジスタ名・ビット位置は ATmega328P のデータシートで必ず確認 ハードウェア制御・厳密タイミングが必要な場面では「C+インライン ASM」が最後の切り札 ただし可搬性ゼロ。ボードが違えばレジスタも違う ― “高速化の前に保守性” のジレンマも要チェック ア...
Programming

Arduino UnoのdigitalWrite/pinModeをレジスタ直叩きで50倍高速化する方法【実測比較&サンプル付き】

要約まとめ digitalWrite() / pinMode() は便利だが激遅 ― 毎呼び出しで数µsをロス。大型プロジェクトでは致命的。 レジスタ直叩きで約30〜50倍高速化。フラッシュサイズも縮小し、処理落ちリスクを一掃。 avr_pinMode / avr_digitalWrite をドロップインで置換できるサンプルコードを公開。 比較表と FAQ で疑問を一掃。安全に導入するための落とし穴と対策も網羅。 ATmega328P 以外の AVR でも応用可。ポートの対応表を用意すれば OK。 なぜ digitalWrite() は遅いのか? Arduino 標準関...
Programming

Arduinoユーザー必見!ESP32の特徴と活用法を徹底解説【2025年版】

ESP32とは何か?その起源や特徴、種類の違い、Arduinoとの互換性まで詳しく解説します。ESP32を使ったIoTプロジェクトの可能性を広げるための完全ガイド。初心者からプロまで必見!
スポンサーリンク