お知らせ
2023.12.5(Tue)
目次
どうもこんにちは。三宮です。
皆さんは、「12月といえば?」と聞かれて、何を想像しますか?
・・・そうです。「プレゼントを見て喜ぶ子供たちの笑顔」ですよね。
私もITで子供たちを笑顔にしたいなぁ・・・と”いつも”思いながら仕事をしています。
どうしたら子供たちは笑顔になるのか。
なんてことを考えながら町を歩いていると、クリスマスツリーのイルミネーションを見て無邪気に喜ぶ子供たちがちらほらと。
これだ!
ということで、今回はITっぽくクリスマスツリーを作ってみようと思います。
早速ですが、今回使用する道具は下記になります。
クリスマスツリーに欠かせないイルミネーションを再現します。
そこでLEDの点滅を制御するため、Wiring Piを使用します。
インストールは以下の手順です。
// インストールする場所は任意 git clone git://git.drogon.net/wiringPi cd wiringPi ./build
今回は、スタートボタンとストップボタンを設置し、1秒間隔でLEDを点滅させるプログラムを作成しました。
ファイル名は「christmasTree.c」とします。
#include <wiringPi.h>
#include <stdio.h>
// スタートボタンでLEDを点滅させる。
// ストップボタンでLEDの点滅を止める。
int main(void)
{
int startFlg;
int endFlg;
if(wiringPiSetup() == -1){
printf("error wiringPi setup\n");
return 1;
}
// GPIOの7番を出力ポートにする。
pinMode(7, OUTPUT);
// GPIOの6番を入力ポートにする。(今回はスタートボタンで使用)
pinMode(6, INPUT);
pullUpDnControl(6, PUD_DOWN);
// GPIOの25番を入力ポートにする。(今回はストップボタンで使用)
pinMode(25, INPUT);
pullUpDnControl(25, PUD_DOWN);
// 起動後処理
while(1){
// スタートボタンを監視
startFlg = digitalRead(6);
if(startFlg == 1){
while(1){
// LED off
digitalWrite(7, 0);
delay(1000); //wait 1000ms
//LED on
digitalWrite(7, 1);
delay(1000); //wait 1000ms
// ストップボタンを監視
endFlg=digitalRead(25);
if(endFlg==1) break;
}
}
// 入力なしの場合はoff
if(startFlg == 0){
digitalWrite(7, 0);
}
}
return 0;
}
配線は下記のように作りました。お恥ずかしながら電子回路を初めて触ったデビュー作ですので温かい目で見てやって下さい。

ではこのプログラムと回路で動作確認を行ってみます。
下記をコマンドで実行します。
sudo gcc cristmasTree.c -o cristmasTree -lwiringPi sudo ./cristmasTree

無事にLEDがつきました。
ここまでで下準備が出来ました。
この後はLEDを点灯させた場所に、イルミネーション用のLED達を接続していきます。
次回は配線のはんだ付け~クリスマスツリーの完成までをやっていきます。
お楽しみに!