メモリ管理, Arduino, ベクトル, OpenVPN
その他
Arduinoを用いた電子工作でよく使うものの一つにスイッチがあります. 一つか二つのスイッチを使うのなら問題はないのですが、大量のスイッチを用いた電子工作となるとスイッチ一つに一つのピンを消費するわけにはいかなくなります.
例えば、ちょっとしたゲーム機を作るとしましょう. 十字キー、ABボタンなどで少なくとも6つぐらいのスイッチが必要となります. またグラフィック液晶との接続に13ピンほど使います.ピンが足りません.一つのピンで複数のスイッチ入力を読み取る必要があります.
また別の問題として仮に上の問題を解決―例えば抵抗による分圧方法によって解決―したとしても同時入力ができない問題があります. ゲーム機を作るとしてボタンの同時入力ができないのはかなり大きな問題でしょう.
このページではこれらの問題を解決する一つの方法を説明します。
このページで紹介する方法で以下のことができます。
- 一ピンあたりボタン六個の入力が可能
- 同時入力も可能
このキャンバスの特徴は大きく分けて4つあります.
- 応用しやすい関数セット
- 白紙のキャンバスに文字、画像、直線などを描くような操作
- 高い移植性
- 高い描画効率
ここでは, OSの機能とArduino標準機能と融合していきます. 融合するものとしては, Arduino言語―setup(), loop()―, Arduino標準関数に影響するタイマー割り込み部分です.
ここでは, Canvasの基本的な使い方を説明します. 説明内容は以下のとおりです.
- ファイルの配置
- キャンバスの開始
- 点を打つ
- 文字を書く
- 画像を描く
- 最後に
ここでは, MelodyPlayerの基本的な使い方を説明します. 説明項目は以下のとおりです.
- 再生
- メロディーの追加方法
このページではArduinoをもちいた電子回路,プログラムなどに関する情報を扱います.
Arduinoにプログラムを書き込むにはパソコンが必要です. パソコンでプログラムを書きArduinoをパソコンに接続し、スケッチをマイコンボードに書き込みます. 別のプログラムを実行したいとき、またパソコンに接続してスケッチを書き込みます。これは大変労力かかると同時にパソコンなしではプログラムの変更は不可能です.
このページでは、それを解決する一つの方法を提案します。それは, Arduinoが別のArduinoへスケッチを書き込むということです. 詳しく言うと, スケッチをコンパイルした後に作成されるHexFileをSDカードに保存し, そのHexFileをある一つのArduinoが読み込み別のArduinoへスケッチを書き込むということです.
このページで紹介する方法で以下のことができます。
- ArduinoでArduinoにスケッチ書き込み
- 他機能の組み合わせで応用可能
"他機能の組み合わせで応用可能"の例ですが, ある端末を作ったとします。その端末にはグラフィック液晶ディスプレイ、コントローラーが付いています。使用者にグラフィック液晶でスケッチの選択をさせることで、一つの端末で複数のプログラムを実行することができます; パソコンでいちいちスケッチを書き込む必要はありません。
ただし、以下の環境が必要です。
スケッチを書き込まれるArduinoにはブートローダー"optiboot"がかきこまれていること
optibootがかきこまれているArduinoは"Arduino UNO"です。このサイトでもこれを使用しています。
スケッチを書き込むArduinoは16MHzで動作していること
optibootとの通信には115200bpsのシリアル通信が用いられています。8MHzなどの低周波数で動作するArduinoではこの通信がうまくいきません。
MelodyPlayerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- インクルード
- ピン接続
ここでは, OSには必ずなくてはいけない機能の一つであるタスク管理について説明します.
タスク管理には非常に多くのことが関わっているため以下のように分けていきます.
- タスクコントロールブロック(TCB)
- メモリの構造
- 状態リスト
- コンテクスト
- システム割り込み
ここでは, SketchWriterの基本的な使い方を説明します. 説明項目は以下のとおりです.
- SketchWriterのしくみ
- HexFileの入手
- スケッチの送信
Begin | SketchWriterの開始 |
---|---|
End | SketchWriterの終了 |
SetReaetPin | リセット信号を出すピンの設定 |
ResetArduino | Arduinoにリセットをかける |
GetCh | optibootからシリアルデータを受け取る |
Wait | optibootからの処理完了信号-STK_OK-待機 |
GetInSync | optibootからのSTK_INSYNK信号待機 |
VerifySpace | コマンド有効化 |
AppStart | プログラムの開始 |
GetSync | optibootと同期をとる |
GetParameter | optibootからOPTIBOOT_MAJVERまたはOPTIBOOT_MINVERを取得 |
SetAddress | メモリのオフセット値を送信 |
SendData | データの送信 |
SketchWrite | スケッチの書き込み |
SerialClear | シリアルデータ削除 |
SetFileName | 文字列’sketchName’にファイル名を代入 |
SketchLoad | スケッチ-HexFile-の読み込み |
SketchReload | スケッチ-HexFile-の再読み込み |
SketchClose | スケッチ-HexFile-を閉じる |
ReadHexVal | HexFileから1Byteの数値を読み込む |
ReadHexData | HexData読み込み, 配列’hexData’に格納 |
hexData[hexDataBufSize] | 読み込んだHexData |
---|---|
fileEnded | HexFile読み取り位置状態 |
sketchName | ロードしたHexFile名 |
sendDataSize | 一回でoptibootに送るデータサイズ |
hexDataBufSize | 配列’hexData’のサイズ |
GLCDControllerの基本的な使い方を説明します. 説明項目は以下のとおりです.
- GLCDControllerのしくみ
- ピン設定とGLCDControllerの開始
- 文字の表示
- 画像の表示
TerminalPro4の特徴としては以下があげられます.
- ゲーム機として成り立つ必要最低限の機能
- 迅速なアプリケーション切り替え
- 簡単なソフトウェア開発
SketchWriterの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- SDカード、操作したいArduinoと接続
- インクルード, SketchWriterを開始
ここでは, GLCDControllerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- インクルード