自由研究を楽しもう!!
昨日こんな募集しといてなんだけど・・・
自分でいい案が思いついたので、早速動き出そうと思います(^^)/
[今回の計画]
そのために、以下のように準備します。
まず、Japaninoとはどんなものか?
こんなもんです( ^^)ノシ
Japaninoを大人の科学の付録として手に入れているなら、大丈夫だよね?ということで、パソコンで環境整える過程は割愛させて頂きます。
では、動かしてみましょう。
IDEを開き、パソコンにJapaninoを接続したら次のようなコードを書いてください。
これをマイコンボードに書き込むと、JapaninoのLという字が書いてあるLEDと、P.O.Vの1のLEDが点滅するはずです。
そうすれば成功です。次のステップに進みましょう。
上手く動かすとこうなっちゃいます。(さいごの何秒か余計でしたねwww)
自分でいい案が思いついたので、早速動き出そうと思います(^^)/
[今回の計画]
そのために、以下のように準備します。
- まず、何を実験するか決める(笑)
- そのあと、それに見合ったオリジナル測定器をつくるwww
まぁ、今回はこうしとくよ。
つーことで今回は、Japaninoに慣れていこうと思います。
Japaninoに慣れよう!!
Ⅰ・Japaninoを動かしてみる
今回は、この本を参考にしました。勿論、Japaninoが付録になっている大人の科学vol.27だけでも十分楽しめます。まず、Japaninoとはどんなものか?
こんなもんです( ^^)ノシ
左がJapanino、右が付属のP.O.V(組み立て後)です。
Japaninoを大人の科学の付録として手に入れているなら、大丈夫だよね?ということで、パソコンで環境整える過程は割愛させて頂きます。
では、動かしてみましょう。
IDEを開き、パソコンにJapaninoを接続したら次のようなコードを書いてください。
// Example 01 : Blinking LED
#define LED 13 // LEDはデジタルピン13に接続
void setup()
{
pinMode(LED, OUTPUT); // デジタルピンを出力に設定
}
void loop()
{
digitalWrite(LED, HIGH); // LEDを点ける
delay(1000); // 1秒待つ
digitalWrite(LED, LOW); // LEDを消す
delay(1000); // 1秒待つ
}
これをマイコンボードに書き込むと、JapaninoのLという字が書いてあるLEDと、P.O.Vの1のLEDが点滅するはずです。
そうすれば成功です。次のステップに進みましょう。
Ⅱ・P.O.Vを使いこなせ!!
僕の実験では全く関係がありませんが、P.O.Vも使いこなしてみましょう。
郷に入れば郷にならえ、大人の科学のサンプルスケッチを動かして見ましょう。
もはやコピペです(^へ^;)// 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);
}
}
}
上手く動かすとこうなっちゃいます。(さいごの何秒か余計でしたねwww)