クリスマス・イヴなのでArduinoでイルミネーションを作る
2017/01/31
サンタさんからArduino unoを頂いてしまったので、クリスマスも近いことだしそれっぽいイルミネーションでも試してみようかと思います。
Arduinoとは
いわゆるマイコンボードの一種です。Raspberry Piはコンピュータを小型化したイメージですが、Arduinoはそれとは別で信号の制御に使用するボードという説明でだいたい合ってると思います。
ダウンロードとインストール
Arduinoのサイトからツールをダウンロードすることができます。
https://www.arduino.cc/en/Main/Software
ダウンロードできたらArduinoをUSBで接続してから起動してみましょう。
その後「ツール」の「シリアルポート」を選択します。「/dev/cu.usbmodem*」という選択肢があると思うのでそれを選択します。これが先程接続したArduinoのことです。
次に「ツール」の「ボード」を選択して「Arduino uno」を選びます。これで準備は整いました。ハードウェア系は準備が大変なイメージですが、これは簡単ですね。
Lチカ
Lチカとは、「LEDをチカチカ点滅させる」という初歩的な動作のことを言います。プログラミング界隈で言う「Hello World」レベルのものですね。
実はすでに実装されて動作しているようです。Arduinoを見てみると1箇所LEDが点滅していると思います。
ちなみに、自分でLEDを用意してチカチカさせることもできます。
DIGITALの入力を受け付けるPINの13番とGNDにLEDを差し込むとピカピカ光ってくれます。(長時間は抵抗がないとLEDが燃えるので、あくまで一時的な確認に使ってください。)LEDには向きがあるので差し込みを間違えないようにしましょう。
実装
次にLチカのプログラム(Arduinoではスケッチと呼ぶようです)を実際に書いてみましょう。以下を記述しました。
チェックマークのボタンでコードが間違ってないかの検証作業を行い、右矢印ボタンで書いたコードをArduinoに転送するようです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
const int LED = 13; void setup() { // put your setup code here, to run once: pinMode(LED, OUTPUT); } void loop() { // put your main code here, to run repeatedly: digitalWrite(LED, HIGH); delay(3000); digitalWrite(LED, LOW); delay(3000); } |
このコードをArduinoに送ると、LEDの点滅が3秒おきにチカチカするように変わりました。これでハローワールド(もといLチカ)はできましたね。
PMW対応のピンに接続してforループで段階的に出力を変更することでゆっくりと点滅させることができるようです。管制塔や夜の高層ビルみたいでかっこいいですね。
ピカピカー pic.twitter.com/PTo82375OB
— Daijiro (@dorako321) 2016年12月23日
以下はコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
const int LED = 9; int i = 0; void setup() { // put your setup code here, to run once: pinMode(LED, OUTPUT); } void loop() { // put your main code here, to run repeatedly: for(i = 0; i < 255; i++){ analogWrite(LED, i); delay(2); } for(i = 255; i > 0; i--){ analogWrite(LED, i); delay(2); } } |
なんかこれだけでもクリスマス感がでてきましたね!(そうでもない?)
もうちょっとそれっぽくしてみます
クリスマスイヴ! pic.twitter.com/RfRpGAxT54
— Daijiro (@dorako321) 2016年12月23日
配線もクリスマスカラーにしてみました。
ハード系は興味がありつつも、結構勉強しないといけないことが多くて避けていたのですが、Arduinoは本なども充実しているので手軽に試すことができます。作りたいものがあるのでまた別途記事を書きます。
それではメリークリスマス。