なろうバーチャル
はい、どーも。肉体を捨てあらゆる世界でバーチャル的存在となりつつある僕です(?)。今日も今日とて電子の砂漠で死体を見て、呟くんすわ it'a true wolrd.狂ってる?それ、誉め言葉ね。
僕は何を書いているんですかね……。どうでもいい話だけど、上の初カキコどもコピペの「it'a true wolrd」って誤字ってたんですね。今まで全然気づかなかった。そういえば、カキコも完全に死語やなあ。何の話をしているんだ僕は……。
さて、そうしたわけで今日はバーチャル電子工作やっていきます。なぜそんなことをやるのかと言えば、この世の全てはバーチャルだからさ……。
バーチャル Arduino
というわけでして、僕がやりたい本題です。ドットインストールというサイトにArduino入門レッスンがあるのをみなさんご存知でしょうか?ハードウェアがないとやる機会なんてないもんだと思っていたんですけど、こちらのTinkercadを利用することでこの講座、いや……Arduinoでできること大体できるようになっていたので今回試してみたいと思います。
ちなみに件のArduinoは以下のようなやつです。
Arduino(アルデュイー、AVRマイコン、入出力ポートを備えた基板、C++風のArduino言語とそれの統合開発環境から構成されるシステム。Arduino LLC および Arduin SRL が設計・製造を行い、登録商標を持っている。
簡単に言うとマイコンです。入出力とかの操作とかそういったのがざっくりできる制御機器といった感じです。
ドットインストール
Arduino入門
Tinkercad
Tinkercad | Create 3D digital designs with online CAD
やってみよう
Tinkercadさん、一見するとただの3Dデザインツールなんですけど、Arduinoもできるようですよ。
ということで、使える機材とかを確認していきます。まずは Arduino UNO R3 が……ある。
そして……、使えそうな部品も……ある。
てなわけで、さっそくヴァーチャル電子工作をやっていきましょう。まずはコードを書いた制御とかなしにLEDチカチカさせましょう。
たのしい……。
ちなみに現実に同じく抵抗がちゃんとなってないとLEDが壊れます。
ということで、今度はコードを書いて制御していきます。
若干見づらいけども基盤のL文字の個所が光っていることが確認できました。たのしい……。
Lチカソースコード
#define PIN 13 void setup(){ pinMode(PIN, OUTPUT); } void loop(){ digitalWrite(PIN, HIGH); delay(500); digitalWrite(PIN, LOW); delay(500); }
次は部品使ってLED光らせてみます。
光り方が地味すぎる……。でも光っているのがわかると、たのしい…。
9番ピンを段階的に光らせてみるソースコード
#define PIN 9 void setup() { pinMode(PIN, OUTPUT); } void loop() { int i; for( i=0; i<256; i++){ analogWrite(PIN, i); delay(10); } }
次は圧電スピーカーで音をならしてみます。このツール、圧電スピーカーって名前で並んでないからよくわかってないけど、多分ピエゾってやつだと思ってる。
動きがなくてあれですけど、マジで音が出るので楽しいです(伝わらない)……。
音を鳴らしてみるソースコード
#define PIN 9 void setup() { pinMode(PIN, OUTPUT); } void loop() { int i; for(i=0; i<256; i++){ tone(PIN, i*10, 20); delay(10); } }
スイッチでの制御とかもみてみます。
また見づらいけどもLの文字部分がチカチカなるのが確認できます。たのしい……。
スイッチでチカチカする制御ソースコード
#define LED 13 #define BUTTON 2 void setup(){ pinMode(LED, OUTPUT); pinMode(BUTTON, INPUT); } void loop(){ if(digitalRead(BUTTON) == HIGH){ digitalWrite(LED, HIGH); }else{ digitalWrite(LED, LOW); } }
CdSセルをつかってみるよ。
CdSセルって何かって言いますと光センサなんですよね……。このバーチャル空間でどうやって測定するんだと思ったらこのように、上の図のように手動で環境を変更することでセンシングできるようです。センシングとは……。あ、電源が入ってないときは操作できないっぽいです。
モニタ出力結果
3 3 3 237 533 321 263 408 174 174 174 174
明るくしていくと数字があがっていくことが確認できました。たのしい…。
#define SEN 0 void setup(){ pinMode(SEN, INPUT); Serial.begin(9600); } void loop(){ int i; i = analogRead(SEN); Serial.print(i, DEC); Serial.print("\n"); delay(1000); }
とまあそんな感じに Arduino の操作がバーチャルで動かせるんですよ。いい時代になったものだ。まんまの写経記事は面白くないから普段やらなけど(といいつつ割と書いているような気もする……)普通にドットインストールの内容そのまま書いてしまった。だけどまあ、あの環境でできてしまったからしょうがない。それにリファレンス見る限りそこまで命令が多いわけでもないし簡単なやつだとこんな感じにまとまりそう……。そしてLEDチカチカで満足しておけばよかったのに、センシングまで手を出してしまうと実機がほしいところだよね。ほしいよね(チラチラ……
参考: Arduino リファレンス
Arduino Reference