ライブラリ
Controllerとは、このページで紹介したコントローラーを制御するものです。このヘッダファイルにある関数でコントローラーからのスイッチ情報を読み取りどのボタンが押されているかを判断します。Controllerができることは次の通りです。
- ボタンが押されている間もそのボタン入力を検出すること(トリガー形式)ができます
- ボタンが一回押されてそのあとも押されているときはそのボタン入力を検出しないこと(非トリガー形式)ができます
- インスタンス生成でコントローラーを簡単に追加できます
- ボタンの同時入力に対応しています
Controllerを改良、強化、何でもしてください(;´∀`)
ここでは, Controllerの基本的な説明を行います. 説明項目は以下のとおりです.
- ボタン数,ピン設定
- ボタン番号設定
- スイッチ情報の読み込み
Controllerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- インクルード
- コントローラの使用開始
Arduinoでグラフィック液晶やドットマトリックスを操作することは定番です. またそれらを操作するライブラリも豊富です. ただ, それらに共通してある2Dに何かを描画するという機能は多くの場合独立していません. この機能を独立させることで, いかなる表示機においても2Dに対する描画法を統一できます. 例えば, ドットマトリックスで描画していたものをグラフィック液晶に簡単に移植できます. メンテナンスもしやすくなるでしょう. 描画の機能のパフォーマンスが向上すれば, その恩恵はその機能を使っているすべての表示機にも与えられます.
キャンバスとは, Arduinoで2Dグラフィックを扱う時に便利なライブラリです. キャンバスはメモリ上にある描画空間に対して処理を行います―例えば, 点を打つ, 線を引くなど―.
キャンバス単体で用いることはほとんどありません. キャンバスと実際に目に見えるものに描画するものとを組み合わせて使用します.
このキャンバスの特徴は以下の通りです.
- 応用しやすい関数セット
- 白紙のキャンバスに文字、画像、直線などを描くような操作
- 高い移植性
- 高い描画効率
キャンバスを強化, 改良, 何でもしてください(’ω’)ノ
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を改良、強化、何でもしてください(;´∀`)
PHPで, キャッシュを管理するライブラリ
PHPでWebアプリケーションを作るとき, 必ずデバックを行う必要があります. Debugの方法として, "echo"関数などを使用したプログラムの状態を画面に出力するなどがありますが, ファイルとしてそのようなデバック情報が保存されないのが難点です.
このDebugツールは以下の目的で作られました.
- 簡単にDebugできるように
- 外部ファイルとしてデバック情報を保存
PHPでWebアプリケーションを作るとき, 必ずデバックを行う必要があります. Debugの方法として, "echo"関数などを使用したプログラムの状態を画面に出力するなどがありますが, ファイルとしてそのようなデバック情報が保存されないのが難点です.
このDebugツールは以下の目的で作られました.
- 簡単にDebugできるように
- 外部ファイルとしてデバック情報を保存
![フレームレート測定画面](/Master/Arduino/Images/GLCDController/GLCDTest.jpg)
GLCDControllerとは、グラフィック液晶SG12864ASLB-GBを操作するものです. GLCDControllerの特徴は以下の通りです.
- 2Dグラフィック操作ライブラリCanvasの利点を受け継ぎ
- 高いフレームレート
このGLCDControllerのメンバ変数としてCanvasがあるのですが, このCanvasが2Dグラフィック操作を簡単にします. Canvasについての特徴はCanvasの特徴を参照してください.
画面の更新速度ですが,最高60fps以上(最高fps85fps, 平均60fps, 全画面更新15fps)まで出せます(ArduinoUno 16Mhzで検証).
GLCDControllerを改良、強化、何でもしてください(;´∀`)
Arduinoで何か作品を作っているとき, その作品に音を鳴らせたい時があります. 本格的に音楽を鳴らすのではなく, 効果音としてちょこっと入れたいという意味です. 例えば, 簡単な早押しゲームを作るとして, ボタンを押したときの効果音を入れたいという時です. ですが, この効果音を入れたいために別のArduinoを用意するのはコストの点で好ましくありません. -オーディオプレイヤーのように音楽を鳴らしたい時は[Arduino/Arduinoで音楽を鳴らす]を参照してください.-
ここで, このMelodyPlayerがあります. このMelodyPlayerは新たにArduinoを用意する必要はありません. また, 音楽再生処理はバックグラウンドで行っているためメインプログラムに何も影響を与えません. メロディーを流しながら何か他の処理―LED点灯, ボタン入力など―をすることができます. あなたがすでに書いたスケッチのコードに一行"Play(’Melody名’)"と入れるだけでメロディーが再生されます.
MelodyPlayerができるのは以下の通りです.
- インクルードするだけで簡単にメロディー再生
- 簡単にメロディーを追加
ただしMelodyPlayerはピン3,9,10,11のPWM出力を妨げます.
Arduinoで電子工作をしていると音を鳴らしたくなります. その鳴る音は電子音のようなピーピー音ではなく, ゲーム機でなっているような音―むしろ音楽といった方がいいでしょう―にしたいです.
このページではArduinoを用いて音楽を鳴らすことができる’MediaPalyer’を紹介します. 外部シールドを使わないで音楽を鳴らすことができます.
ただし以下の環境が必要です.
メインのArduino
下の音楽再生用のArduinoをコントロールするためのものです.
音楽を再生するためのArduino
MediaPlayerは音楽を再生するためのArduinoを必要とします. これはつまり音楽を再生する処理とそのほかのメイン処理を分けるということになります. こうすることで, Arduinoは音楽を再生するための処理に集中することができます.
対応しているArduinoについて
- 動作周波数: 8MHz, 16MHz
microSD
音楽ファイルを保存するために必要です
音楽ファイル
- 対応ファイル形式: Wave
- サンプリング周波数: 32KHz, 16KHz, 8KHz
- 量子化精度: 8bit
Arduinoで電子工作をしていると音を鳴らしたくなります. その鳴る音は電子音のようなピーピー音ではなく, ゲーム機でなっているような音―むしろ音楽といった方がいいでしょう―にしたいです.
このページではArduinoを用いて音楽を鳴らすことができる’MediaPalyer’を紹介します. 外部シールドを使わないで音楽を鳴らすことができます.
ただし以下の環境が必要です.
メインのArduino
下の音楽再生用のArduinoをコントロールするためのものです.
音楽を再生するためのArduino
MediaPlayerは音楽を再生するためのArduinoを必要とします. これはつまり音楽を再生する処理とそのほかのメイン処理を分けるということになります. こうすることで, Arduinoは音楽を再生するための処理に集中することができます.
対応しているArduinoについて
- 動作周波数: 8MHz, 16MHz
microSD
音楽ファイルを保存するために必要です
音楽ファイル
- 対応ファイル形式: Wave
- サンプリング周波数: 32KHz, 16KHz, 8KHz
- 量子化精度: 8bit