Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

Section 1 Arduinoを買ったはいいものの、Lチカだけで終わっていませんかっ!?

tekimen edited this page Jun 12, 2016 · 7 revisions

Arduinoを買ったWebエンジニアのみなさまようこそ

このリポジトリは、Lチカを工夫してもっとArduinoを楽しんでもらうことを目的に作りました。

Pythonは持ってますよね!?

Webエンジニアの皆様であれば、おそらくPythonは持ってると思います。MacやLinuxではあるし…あ、Windowsでしたら、インストールしてくださいっ!インストール方法はググれっ!

https://www.python.org/

pipあります?

なかったら、以下のコマンドを試してください!管理者権限が必要かもしれませんので、そのばあいはsudoでじっこうしてみてくださいっ!

$ easy_install pip
$ sudo easy_install pip # たぶんこっちのほうがいいかな

よし、Arduinoだ!!

Arduinoを買いました?そしたらArduino IDEをインストールして下さい!インストール方法はググれっ!

http://arduino.cc/

よし、スイッチ作るぞ

そしたら以下の画像のように配線してみてください!

  • タクトスイッチはブレッドボードの真ん中にある凹みをまたぐように差し込みます。
  • LEDは長い方と9番ピンとつなぎます。

配線図

なんでタクトスイッチに抵抗を入れているのですか?必要ないと思うのですが?

おお、あなたは賢い人ですね。これは「プルアップ抵抗」と呼び、スイッチを押していない時には「HIGH」になります。その「HIGH」が「HIGH」であることをマイコンに正確に教えるために必要なのです。ボタンを押すと、5VからGNDへ送られます。マイコンには何らかの抵抗がありますから、GNDへ通りすぎてしまうので「LOW」となります。

プルアップ抵抗がないならば、「スイッチを押している」ときは「未定義」となってしまいます。そこへ何らかの電気ノイズが走ってしまうと、マイコンは「入力があった」と勘違いしてしまうことになるため、誤動作に繋がるというわけです。

Arduino IDE

ArduinoをUSBにつなげて、Arduino IDEを起動しておいてください。そのときに「ツール」「ポート」からArduinoへのポートを選択してください。(えっ、Arduinoへのポートってなんですかっていうと…その時教えますね)

プログラムはbutton_read.inoを開きます。

よし、実行してみるぞ

最初にPythonをいじりますね。Pythonにはお好きなエディタを、ArduinoではArduino IDEをつかいます。

ArduinoとPCとをつなぐ

ぼくのリポジトリをcloneして、reporter.pyの以下の部分を変更して下さい!ここでは、シリアル通信でArduinoとPCとを接続しています。

# Arduinoとシリアル通信でつなぐ。第一引数の部分はArduino IDEの右下を参照。
# WindowsならCOMなんとかMac/Linuxなら/dev/で始まる。
ser = serial.Serial('/dev/cu.usbmodem1421', 9600);

点灯・消灯を繰り返す普通の動作に切り替える

reporter.pyの以下の部分のコードにある、random_write.RandomWrite()の行をコメントアウトして、on_Off.OnOff()のコメントをとっちゃいましょう!

#p = on_off.OnOff()
p = random_write.RandomWrite()
#p = hundred_push.HundredPush()

そうすると、以下のようになるはずです!

p = on_off.OnOff()
#p = random_write.RandomWrite()
#p = hundred_push.HundredPush()

これで実行してみてください。

$ python reporter.py

つくったボタンを押したら点灯・消灯を繰り返すはずです!そうしたら成功です!おめでとうございます!

いろいろいじってみよう

この4つのモジュールは、それぞれボタンを押すと違う動作をします。Pythonのプログラムを変えるだけで、こんなにも色々な動作ができるんです。すごいでしょ?

p = on_off.OnOff()
#p = random_write.RandomWrite()
#p = hundred_push.HundredPush()

これを更にネットに繋いでAPI叩いたり、ツイートしてみたりするといいかもですね!