Arduinoでrosserialのsubscriberをクラスの変数として扱う方法

2020年10月31日土曜日
背景 以前 ラムダを利用してrosserial-arduinoのsubscriberをそれらしくクラスの変数として扱う方法 を紹介しました。 その記事に対して、もっと良い書き方があると コメントで教えていただき 、試してみると素晴らしく綺麗に書けました。 備忘録を兼ねて書き方を共...

Raspberry Piの信号線を横に配置したブレッドボードの左右に引き出す基板を作ってみた

2020年10月25日日曜日
背景 Raspberry Piにヒートシンクを付けつつも近くにブレッドボードを配置して信号線を扱いたかったので、信号線を引き出す基板を作ってみました。 引き出すついでに既存のHATが使えるようにRaspberry Piから反転させながら信号線を引き出し、HATを横に積めるようにも...

ArduinoでI2Cのペリフェラル(スレーブ)を作る時に便利なクラスを作ってみた

2020年10月18日日曜日
背景 ArduinoでI2Cのペリフェラル(スレーブ)を作る際、 毎回同じような関数 をコピーしていたので、PeripheralHandlerというクラスにまとめて再利用できるようにしてみました。 同じ様にペリフェラルを作る人の役に立ったら良いと思うので、使い方を共有します。 使...

AVRマイコンのArduinoでウォッチドッグタイマーを使う

2020年10月10日土曜日
背景 ウォッチドッグタイマー とは、計算機が可動し続けていることを確認するためのタイマーです。 具体的には定められた時間応答が無ければ計算機をリセットする機能です。 Arduinoでウォッチドッグタイマーを使う方法が気になっていましたが、難しそうだと想像して着手していませんでした...

Arduinoのライブラリで廃止予定警告を出す

2020年10月4日日曜日
背景 Arduino向けのライブラリで関数を廃止したくなったり別の関数の利用を推奨したい場合、何らかの形で利用者にお知らせしたくなります。 cppにdepricated機能 があるので、Arduinoのライブラリで使ってみました。 備忘録を兼ねて書き方と挙動を共有します。 使った...

Arduinoのライブラリのsrcにあるcppファイルは、対応するヘッダファイルが参照されてなくても全てビルドされている

2020年9月27日日曜日
背景 Arduino向けの便利関数をutils_asukiaaaというライブラリにまとめていたところ、stringに関する機能だけを使いたかったのに、ヘッダファイルを参照していないwireに関するエラーが表示されました。 対応を探るため、どういうことか調べてみました。 使ったもの...

Ubuntuの起動後に実行されるプログラムの設定画面はアプリ検索画面で「自動」と入力すると出てくる

2020年9月20日日曜日
背景 Ubuntu startup applicationとかで検索すると「Startup Application Preference」画面で設定できるという情報が見つかります。 Complete Guide for Managing Startup Applications ...

Arduinoのライブラリでヘッダ(.h)ファイルに実装を書くと、エラーになることがある

2020年9月13日日曜日
背景 自分が作ったArduino向けのライブラリの中で、少ない記述だったのでヘッダファイルに関数の実装を書いていた部分がありました。 そのライブラリを1回しか呼び出さない場合は良かったのですが、Arduinoのライブラリの依存関係機能を利用して他のライブラリでも利用したところ、定...

cppでrosserial-arduinoのsubscriberをクラスのインスタンスとして扱いたい場合は、ラムダ式を利用するとそれらしく書ける

2020年9月6日日曜日
背景 cppでコールバックを渡して初期化するインタンスをクラスの変数として保持しようとしたところ、コンストラクタの内部だけではクラスに依存する値となってしまい思うように初期化出来ませんでした。 試行錯誤したところ、まとめ上げるクラスのコンストラクタにラムダ式を渡せばそれらしく初期...

ATmega328PBを外付けの発振子(16MHz MEMS)で動かしてみた

2020年8月30日日曜日
背景 以前ATmega328PBを水晶振動子で動かそうとしましたが、ATmega328Pと違いフルスイングの振動子駆動回路を内蔵していないためか、ATmega328Pを動かしていた水晶振動子では動かせませんでした。 外付けの発振子で動くことを確認したかったので、秋月電子で売られ...

Arduino向けのボタン管理クラスを作ってみた

2020年8月22日土曜日
背景 ArduinoのGPIOを利用してボタンを実装する際に、ボタンが押された時だけ検知したい場合、過去の状態や状態の変化時間を保持したりする必要があり結構手間です。 プロジェクトごとに必要な機能を実装することで対応してきましたが、面倒になってきたので ライブラリ としてまとめて...

avrdudeでleonardo(ATmega32U4)にUSBシリアル経由でelfファイルを書き込むには、ブートローダーを書き込みモードにしておく必要がある

2020年8月16日日曜日
背景 avrdudeでleonardoにelfファイルを書き込もうとしたところ、ATmega328Pと同じ方法では書き込めませんでした。 調べた所、leonardoに書き込まれたブートローダーを書き込みモードにしないとavrdudeでの書き込みを受け付けないことが分かりました。 ...

Zotrax M200Plusのファームウェアを最新にするには、1系の最新を入れた後、2系の初版をいれる必要があった話

2020年8月9日日曜日
背景 M200Plus とはZotrax社が販売している3Dプリンタです。 コワーキングスペースHaLake に備品として置いているため、自分が3Dモデルを出力するときの試作や少量生産に利用しています。(100個を越える生産は elecrowに発注 してます。) M200Plus...