C++, Arduino
このページは筆者が作成したC++のライブラリが公開されます.
SketchWriterとは、optiboot―これが書き込まれているArduinoはArduinoUnoです―と通信することができるものです。このSketchWriterはoptibootに対してメモリのセット、データの送信、アプリの実行、を命令することができます。それらの命令を使ってパソコンを用いずにArduinoにスケッチ―Arduinoではプログラムのことをスケッチと呼んでいます―を書き込むことができます。SketchWriterができることは以下のことです。
- optibootに対しての基本命令の送信
- スケッチが書かれたHexFile(Hexファイル)の読み込み
- Arduinoにスケッチを送信
- 今後応用可能な関数セット
optibootに対しての基本命令とはメモリのセット、 データの送信、 アプリの実行、 optibootと同期などをさします。このヘッダを用いるとArduinoからArduinoへスケッチ―プログラム―を書き込むことができます。
ただし、以下の環境が必要です。
スケッチを書き込まれるArduinoにはブートローダー"optiboot"がかきこまれていること
optibootがかきこまれているArduinoは"Arduino UNO"です。このサイトでもこれを使用しています。
スケッチを書き込むArduinoは16MHzで動作していること
optibootとの通信には115200bpsのシリアル通信が用いられています。8MHzなどの低周波数で動作するArduinoではこの通信がうまくいきません。
SketchWriterを改良、強化、何でもしてください(;´∀`)
Arduinoでグラフィック液晶やドットマトリックスを操作することは定番です. またそれらを操作するライブラリも豊富です. ただ, それらに共通してある2Dに何かを描画するという機能は多くの場合独立していません. この機能を独立させることで, いかなる表示機においても2Dに対する描画法を統一できます. 例えば, ドットマトリックスで描画していたものをグラフィック液晶に簡単に移植できます. メンテナンスもしやすくなるでしょう. 描画の機能のパフォーマンスが向上すれば, その恩恵はその機能を使っているすべての表示機にも与えられます.
キャンバスとは, Arduinoで2Dグラフィックを扱う時に便利なライブラリです. キャンバスはメモリ上にある描画空間に対して処理を行います―例えば, 点を打つ, 線を引くなど―.
キャンバス単体で用いることはほとんどありません. キャンバスと実際に目に見えるものに描画するものとを組み合わせて使用します.
このキャンバスの特徴は以下の通りです.
- 応用しやすい関数セット
- 白紙のキャンバスに文字、画像、直線などを描くような操作
- 高い移植性
- 高い描画効率
キャンバスを強化, 改良, 何でもしてください(’ω’)ノ
Controllerとは、このページで紹介したコントローラーを制御するものです。このヘッダファイルにある関数でコントローラーからのスイッチ情報を読み取りどのボタンが押されているかを判断します。Controllerができることは次の通りです。
- ボタンが押されている間もそのボタン入力を検出すること(トリガー形式)ができます
- ボタンが一回押されてそのあとも押されているときはそのボタン入力を検出しないこと(非トリガー形式)ができます
- インスタンス生成でコントローラーを簡単に追加できます
- ボタンの同時入力に対応しています
Controllerを改良、強化、何でもしてください(;´∀`)
Controllerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- インクルード
- コントローラの使用開始
ここでは, Controllerの基本的な説明を行います. 説明項目は以下のとおりです.
- ボタン数,ピン設定
- ボタン番号設定
- スイッチ情報の読み込み