目次
SketchWriter | ArduinoでArduinoにスケッチ書き込み

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グラフィックを扱う | Arduino

Arduinoでグラフィック液晶やドットマトリックスを操作することは定番です. またそれらを操作するライブラリも豊富です. ただ, それらに共通してある2Dに何かを描画するという機能は多くの場合独立していません. この機能を独立させることで, いかなる表示機においても2Dに対する描画法を統一できます. 例えば, ドットマトリックスで描画していたものをグラフィック液晶に簡単に移植できます. メンテナンスもしやすくなるでしょう. 描画の機能のパフォーマンスが向上すれば, その恩恵はその機能を使っているすべての表示機にも与えられます.

キャンバスとは, Arduinoで2Dグラフィックを扱う時に便利なライブラリです. キャンバスはメモリ上にある描画空間に対して処理を行います―例えば, 点を打つ, 線を引くなど―.

キャンバス単体で用いることはほとんどありません. キャンバスと実際に目に見えるものに描画するものとを組み合わせて使用します.

このキャンバスの特徴は以下の通りです.

  • 応用しやすい関数セット
  • 白紙のキャンバスに文字、画像、直線などを描くような操作
  • 高い移植性
  • 高い描画効率

キャンバスを強化, 改良, 何でもしてください(’ω’)ノ

Controllerの導入方法 | コントローラ読み取りライブラリ

Controllerの導入方法を説明します. 説明項目は以下のとおりです.

  • ダウンロード
  • ファイルの説明
  • インクルード
  • コントローラの使用開始
Controllerの関数一覧 | コントローラ読み取りライブラリ
Begin Controllerの開始
Stick スイッチ情報取得
Read スイッチ情報取得
Controllerの使い方 | コントローラ読み取りライブラリ

ここでは, Controllerの基本的な説明を行います. 説明項目は以下のとおりです.

  • ボタン数,ピン設定
  • ボタン番号設定
  • スイッチ情報の読み込み
コントローラ読み取りライブラリ | コントローラー

Controllerとは、このページで紹介したコントローラーを制御するものです。このヘッダファイルにある関数でコントローラーからのスイッチ情報を読み取りどのボタンが押されているかを判断します。Controllerができることは次の通りです。

  • ボタンが押されている間もそのボタン入力を検出すること(トリガー形式)ができます
  • ボタンが一回押されてそのあとも押されているときはそのボタン入力を検出しないこと(非トリガー形式)ができます
  • インスタンス生成でコントローラーを簡単に追加できます
  • ボタンの同時入力に対応しています

Controllerを改良、強化、何でもしてください(;´∀`)

Cpp
C++でC#のようなListを使いたい | C++ライブラリ

C#からC++に入った人もいるでしょう. その時C#で大変よく使っていたListが恋しい場合があります. C++を書きつつC#を感じたい時があります.

上の問題を解決する方法でここで紹介するListがあります. このListで用意されている関数名はほぼC#と一致します. C#でのListは要素数が容量を上回ったとき自動でメモリが再確保されますが, ここで紹介するListもそのように動作します. アルゴリズムも同じです(はずです).

C#で非常に便利だったSort関数も用意されています. もちろんですが, 処理が一番早いとされているクイックソートアルゴリズム(O(n*log(n)))を使用しています.

Listを強化, 改良何でもしてください. ( `ー´)ノ

CAUTION

C#のListを使ったことがない方は, これをお勧めすることはできません. これと同様かそれ以上の機能を持つC++のvectorをお使いください. C++ですでに用意されています.

C#
C++でC#のようなListを使いたい | C++ライブラリ

C#からC++に入った人もいるでしょう. その時C#で大変よく使っていたListが恋しい場合があります. C++を書きつつC#を感じたい時があります.

上の問題を解決する方法でここで紹介するListがあります. このListで用意されている関数名はほぼC#と一致します. C#でのListは要素数が容量を上回ったとき自動でメモリが再確保されますが, ここで紹介するListもそのように動作します. アルゴリズムも同じです(はずです).

C#で非常に便利だったSort関数も用意されています. もちろんですが, 処理が一番早いとされているクイックソートアルゴリズム(O(n*log(n)))を使用しています.

Listを強化, 改良何でもしてください. ( `ー´)ノ

CAUTION

C#のListを使ったことがない方は, これをお勧めすることはできません. これと同様かそれ以上の機能を持つC++のvectorをお使いください. C++ですでに用意されています.

Listの導入方法 | C++でC#のようなListを使いたい

ここでは, Listの導入方法を説明します. 説明項目は以下のとおりです.

  • ダウンロード
  • インクルード
Listの使い方 | C++でC#のようなListを使いたい

ここでは, Listの基本的な使い方を説明します. 各説明項目は以下のとおりです.

  • 使用例
  • C#との相違点
  • Sortについて
Listの関数一覧 | C++でC#のようなListを使いたい

Listが持つ関数は以下のとおりです.

List コンストラクタ
Count 要素数を取得
Capacity 容量を取得
SetCapacity 容量を設定
Array 内部配列先頭アドレス取得
Add List末尾に要素追加
Insert 指定した位置に要素挿入
IndexOf 指定されたオブジェクトの位置
LastIndexOf 最後から検索して最初に見つかったオブジェクトの位置
CopyTo 配列にコピー
RemoveAt 指定した位置を削除
Clear 要素をゼロ
Sort 並び替え
Trim 容量を要素数に設定
CopyFrom 指定されたListからコピー
MoveFrom 指定された配列そのものをListに差し替え

筆者がこのListを作る際, C#のListリファレンス(accessed: 2.1.2017) を参考にしました. 関数名はほとんど同じにしています.

ダウンロード
Listの導入方法 | C++でC#のようなListを使いたい

ここでは, Listの導入方法を説明します. 説明項目は以下のとおりです.

  • ダウンロード
  • インクルード
音楽再生
Arduinoで音楽を鳴らす | Arduino

Arduinoで電子工作をしていると音を鳴らしたくなります. その鳴る音は電子音のようなピーピー音ではなく, ゲーム機でなっているような音―むしろ音楽といった方がいいでしょう―にしたいです.

このページではArduinoを用いて音楽を鳴らすことができる’MediaPalyer’を紹介します. 外部シールドを使わないで音楽を鳴らすことができます.

ただし以下の環境が必要です.

対応環境

メインのArduino

下の音楽再生用のArduinoをコントロールするためのものです.

音楽を再生するためのArduino

MediaPlayerは音楽を再生するためのArduinoを必要とします. これはつまり音楽を再生する処理とそのほかのメイン処理を分けるということになります. こうすることで, Arduinoは音楽を再生するための処理に集中することができます.

対応しているArduinoについて

  • 動作周波数: 8MHz, 16MHz

microSD

音楽ファイルを保存するために必要です

音楽ファイル

  • 対応ファイル形式: Wave
  • サンプリング周波数: 32KHz, 16KHz, 8KHz
  • 量子化精度: 8bit
Arduinoでメロディーを鳴らす | Arduino

Arduinoで何か作品を作っているとき, その作品に音を鳴らせたい時があります. 本格的に音楽を鳴らすのではなく, 効果音としてちょこっと入れたいという意味です. 例えば, 簡単な早押しゲームを作るとして, ボタンを押したときの効果音を入れたいという時です. ですが, この効果音を入れたいために別のArduinoを用意するのはコストの点で好ましくありません. -オーディオプレイヤーのように音楽を鳴らしたい時は[Arduino/Arduinoで音楽を鳴らす]を参照してください.-

ここで, このMelodyPlayerがあります. このMelodyPlayerは新たにArduinoを用意する必要はありません. また, 音楽再生処理はバックグラウンドで行っているためメインプログラムに何も影響を与えません. メロディーを流しながら何か他の処理―LED点灯, ボタン入力など―をすることができます. あなたがすでに書いたスケッチのコードに一行"Play(’Melody名’)"と入れるだけでメロディーが再生されます.

MelodyPlayerができるのは以下の通りです.

  • インクルードするだけで簡単にメロディー再生
  • 簡単にメロディーを追加

ただしMelodyPlayerはピン3,9,10,11のPWM出力を妨げます.

音楽
Arduinoで音楽を鳴らす | Arduino

Arduinoで電子工作をしていると音を鳴らしたくなります. その鳴る音は電子音のようなピーピー音ではなく, ゲーム機でなっているような音―むしろ音楽といった方がいいでしょう―にしたいです.

このページではArduinoを用いて音楽を鳴らすことができる’MediaPalyer’を紹介します. 外部シールドを使わないで音楽を鳴らすことができます.

ただし以下の環境が必要です.

対応環境

メインのArduino

下の音楽再生用のArduinoをコントロールするためのものです.

音楽を再生するためのArduino

MediaPlayerは音楽を再生するためのArduinoを必要とします. これはつまり音楽を再生する処理とそのほかのメイン処理を分けるということになります. こうすることで, Arduinoは音楽を再生するための処理に集中することができます.

対応しているArduinoについて

  • 動作周波数: 8MHz, 16MHz

microSD

音楽ファイルを保存するために必要です

音楽ファイル

  • 対応ファイル形式: Wave
  • サンプリング周波数: 32KHz, 16KHz, 8KHz
  • 量子化精度: 8bit
液晶
GLCDControllerの紹介 | グラフィック液晶
フレームレート測定画面
フレームレート測定画面

GLCDControllerとは、グラフィック液晶SG12864ASLB-GBを操作するものです. GLCDControllerの特徴は以下の通りです.

  • 2Dグラフィック操作ライブラリCanvasの利点を受け継ぎ
  • 高いフレームレート

このGLCDControllerのメンバ変数としてCanvasがあるのですが, このCanvasが2Dグラフィック操作を簡単にします. Canvasについての特徴はCanvasの特徴を参照してください.

画面の更新速度ですが,最高60fps以上(最高fps85fps, 平均60fps, 全画面更新15fps)まで出せます(ArduinoUno 16Mhzで検証).

GLCDControllerを改良、強化、何でもしてください(;´∀`)

「https://contentsviewer.work/Master/:tagmap/オセロ,C++,ライブラリ/List,Arduino?layer=ja」から取得