どこでもでむ − ライブラリについて
中の人CHOです。
今回はライブラリの説明をしたいと思います。
まず最初に
このライブラリはMITライセンスです。つまり無保証、無サポートとなっております。それをご理解の上、ご自由にお使いください。
概要
どこでもでむ、どこでもでむMini向けに作っていますが、ハード構成やCPUと対応するフレームワークの違いにより若干異なるところがあります。ArduinoIDEでも使えますが、正直不便なのでPlatformIOを使うことを前提に話を進めていきます。
どこでもでむのフレームワークframework-arduinoespressif32ではArduinoぽく使うこともできますが、実態はFreeRTOSのタスクとして動いています。
組み込みでOSつかうの?と思った時もあるのですが、今どきはメモリもFlashも大きいし、使ってみると結構便利だったのであまり気にせず使うことにしました。特にESP32はコアが2つあるのでタスク化したほうがわかりやすいのでしょう。
別途説明する無線通信系のライブラリもFreeRTOSがあることを前提として作られています。タスク?OS?と思うとArduinoと比べて若干難しくなりますが、タスクが1つならArduinoぽく使えると思います。
どこでもでむMiniのフレームワークframework-arduino-samdにはFreeRTOSはついていませんが、どこでもでむと共通化するのとFreeRTOSが楽だったため、別途ライブラリとして読み込むようにしました。platformio.iniで設定してください。どこでもでむMiniのFreeRTOSは下記を使わせてもらっています。
https://github.com/BriscoeTech/Arduino-FreeRTOS-SAMD21
commonは、どこでもでむ、どこでもでむMini共通して使えるライブラリになっています。
細かい使い方はこちらをご参照ください。
サンプルプログラム
ライブラリをつかった様々なプログラムがあります。ご参考になれば幸いです。