今日の東京は、雷が煩い位鳴っていました。
こういう日はお家で遊ぶに限ります(・ω・)/
という訳で、気づいたら家に有った大人の化学で遊んでみました
- 大人の科学マガジン Vol.27(8ビットマイコン) (Gakken Mook)/大人の科学マガジン編集部
- ¥3,360
- Amazon.co.jp
付録の中身はこんな感じです。
赤い基盤がマイコンボード
本誌では「ジャパニーノ」と名前を付けていますが、
「Arduino」と呼ばれるマイコンボードがベースになってるとか
そういえばこんな本を書店で見かけた覚えがあります。
- Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ/小林 茂
- ¥3,990
- Amazon.co.jp
付録の基盤に乗っているマイコンはATmega168V
ようするにAtmelのAVRマイコンです
AVRは興味がありながら手を付けていなかったので、
ちょうどよい機会かもしれません
一応、「LEDのマウントされたバーを左右に動かして、
LEDの光る順番を制御することで、
空中に文字を書くキット」が付属されているので、
先に組み立ててしまいます。
説明にしたがって、組立前の動作確認
LEDを光らせてスピーカーを鳴らすプログラムが最初から入っているので、
所定のピンに接続して電源を入れると動きます。
これで動かなかったらどうするんでしょう(;^_^A
交換とか面倒くさいですね・・・
取り敢えずせっせとビスで部品を固定します。
回転機構の部分も中心をビスで固定するだけ・・・
ちゃんと動くか若干不安です
途中、使うビスを間違えて貫通してしまいました・・・
一通り組立完了!
左の写真にあるノブを回すと上に突き出たバーが左右に振れます。
ギアを2つ組み合わせているのですが、
固定がビス止めなもので、
ビスが緩いとギアが傾いてうまく回らず
ビスがきついと摩擦でうまく回らず
になります
ちなみに回す時の音は結構うるさいです(・_・;)
メカの部分は一通り組んだので、
マイコンの開発環境をPCにインストールします(・ω・)/
大人の科学のHPにリンクが貼ってあるので、
クリックしてIDEとドライバーをインストールします
IDE Arduino 0018の起動画面
シンプルな見た目の割に重いです
特に「ツール」メニュー
Arduinoではプログラムの事を「スケッチ」と呼ぶらしいです
デフォルトで幾つかのスケッチ例が入っています
下が文字を表示させるプログラム例です
大人の科学のHPからダウンロードできます
// Japanino POV by Musashinodenpa
#define LEDPIN 7 // どのピンからLEDをつなぐか
#define SWPIN 6 // スイッチをつなぐピン
// ビットマップ(画像)を定義
byte bitmap[] = {
0b00000000,
0b01000001,
0b01111111,
0b01000001,
0b00000000,
0b00000000,
0b00001110,
0b00011111,
0b00111111,
0b01111110,
0b00111111,
0b00011111,
0b00001110,
0b00000000,
0b00000000,
0b00111111,
0b01000000,
0b01000000,
0b00111111,
0b10000000 // 最後の行は0b10000000(つまり目印)
};
unsigned char pos = 0; // 現在のビットマップ中の位置
unsigned char i = 0;
void setup() {
// LEDが接続されたピンを出力に設定します
for(char pin = LEDPIN; pin < LEDPIN + 7; pin++) {
pinMode(pin, OUTPUT);
}
pinMode(SWPIN, INPUT); // スイッチのピンを入力に
digitalWrite(SWPIN, HIGH); // 内蔵プルアップ有効
}
void loop() {
if(digitalRead(SWPIN) == LOW) { // スイッチがオンならば1回描画
delay(6); // すぐ始めると詰まって見えるのでちょっと待つ
pos = 0;
while(bitmap[++pos] != 0b10000000) { // ビットマップの端まで繰り返し
for(i = 0; i < 7; i++) { // ビットマップの高さの分だけ繰り返し
// ビットマップデータから1ビットを取り出してピンの状態に反映
digitalWrite(LEDPIN + 6 - i, (bitmap[pos] >> i) & 0b00000001);
}
delay(1); // LEDが光っている時間
}
for(i = LEDPIN; i < LEDPIN + 7; i++) { // 全ドット、消灯
digitalWrite(i, LOW);
}
}
}
見てみると、コードはC言語ですが、どこにもmain関数がいません
ヘッダの読み込みも書かなくてOK見たいです
コンパイルしたときにIDEがヘッダとmain関数を補完してるんでしょうか・・・?
後は基板についているUSB端子をPCに接続して、
書き込みボタンを押せば終了です!
基板内にライター部分の回路も実装して、
プログラムも動作部分だけ記述すれば良いようにして、
少しでも楽にマイコンをいじれるようにした環境を
「Arduino」と名付けているんでしょうね
AVRは弄った事がありませんが、
きっと自分で部品を買ってきて1からやろうとすると、
もっと面倒なはずです・・・
秋月のHPを見ると、ライターだけで4,000円しますので、
初期投資も必要ですね
基板に実装するにしても、持ってなかったら半田コテと工具を買って来て、
ユニバーサル基板に一生懸命組むと時間もかかります。
確かに手っ取り早くマイコンを弄るにはもってこいのキットかもしれません
ちなみに上のコードを焼いて動かしてみたところ、
一応文字が出てきました
動かすのに両手が必要なので、
写真は撮ってません(;^_^A
10bitのAD入力が8port有って、
GPIOが14port(そのうち6portはPWM出力可)、
Tx/RxのUART通信が出来るので、
このボードだけでも結構遊べそうです。
もっとも何をつないで遊ぶか・・・
が今は全く思いつきませんZzz…(*´?`*)。o○
ゆっくり考えようと思います