Making your own custom circuit using the Bread Board
レッスン20"ブレッドボードを使用して独自のカスタム回路を作成する"をやっていく。
残り2レッスン、いよいよブレッドボードを使って回路を作成していくことになるのか。
とりあえず概要を引用
ブレッドボードは、CrowPiの一部として非常に便利です。これにより、独自のカスタム回路や機能を作成できます。
これらすべてのセンサーの使用方法を学んだ後、自分でセンサーを作成する方法を学ぶ時が来ました。
このレッスンでは、LEDの点滅の例を使用して、最初のカスタム回路を作成します。
LEDの点滅(通称、Lチカ)って結構この手のキットだと、最初にあったりするのだが、満を持してここで登場!
CrowPiだと回路を自分で設定しなくても色々なセンサーが試せたから、それってやっぱり改めてすごく便利なのだなって思う。😌
自分は特にソフト屋だから、こういったハード系ってちょっと敷居高いんだよね。
だから、最初からセンサーが取り付けられた状態でプログラムが動くのって"できてる"って感覚が直ぐに体験できるのって大事。
色々CrowPiのこと褒めたけど、実はこのレッスンの説明は間違いだらけでかなりひどいものであった。
できる限り自分なりに修正したが、これを参考にする人も自己責任でやってほしい。
何を学習するか
このレッスンを終了すると、次のことができるようになります。
- ブレッドボードの上にカスタム回路を作成し、LEDを点滅させます。
何が必要か
- 初期設定後のCrowPiボード
- ジャンパー
- 3mm / 5mm LED
- 抵抗器
※ ってかジャンパーコードって付属していないぞっ!?仕方ないまた別のキットから拝借してくるか。😵
Requires switching modules using the switch
- はい、サーボピンを使用してカスタム回路を作成します。ピン番号7、9(※9ではなく、8。ただし、8はオンにする必要はない)は、スイッチを上にしてオンにします(センサーの切り替え方法を忘れた場合は、ページ番号5を参照してください)。
CrowPiのブレッドボードの場所
多分、2段落目が重要そうだから、とりあえず引用
ブレッドボードはCrowPiの真ん中にあり、カスタム回路を作成するために使用される多くの穴が内部にある小さなホワイトボードのように見えます。一方、カスタム回路を作成するために、チュートリアルで前に示したサーボのインターフェイス、特にサーボ1インターフェイスも使用します。
↑右下のSERVO1も使う
「LEDの点滅」回路
回路の説明も重要だから、以下引用
文字通りLEDを点滅させるカスタム回路を作成します。
始める前に、正しいスイッチを正しく切り替えるようにしてください!
そのためには、前のレッスンで使用したように、出力としてGPIOを使用し、GNDを使用する必要があります。 GPIO 37ではサーボインターフェース(具体的にはSERVO1インターフェース)を使用します。
最初にカスタム回路を作成します。次の図を見てください。この写真を参照して、ブレッドボード上に回路を作成できます。
PinNo37はSERVO1インターフェイスのGPIOポートにあることを忘れないでください。
GNDも同様にSERVO1インターフェイスのGNDポートにあります。CrowPiパッケージに付属の抵抗を1つ取り、それをLEDのマイナス側プラス側に配線する必要があります(LEDのマイナス側は、2つのLEDレッグの間の短い方のレッグです)。
抵抗器の反対側から、ジャンパーを使用してSERVO1インターフェイスのGNDピンに直接配線します。(訳注:ここの説明が正しく図が間違い)
もう1つのLEDレッグはプラスのピンで、SERVO1のGPIO37ピンに直接配線して、制御して点滅させることができます。(訳注:ここも説明が正しく図が間違い)
最終結果は次のようになります。
↑多分、この最終結果の写真は正しく配線できていると推測されるが、いかんせん詳細が分からない。
そして、そもそもCrowPiに取り付けられているブレッドボード内の回路の仕組みについて何も説明がない。
おそらく、横方向にだけ回路がつながっているのだろう。
端っこの方は縦方向に回路がつながっているブレッドボードもあるが、これはそういうタイプではないと思われる。
ちなみに、抵抗器には極性がないらしいので、向きは気にしなくてよい。
電気が流れる回路なので極力間違いがないようにしてもらいたいが、上記のように惨憺たる内容なので、他のサイトも参考にして確認を取りつつ、なんとか、回路を作成した。
その結果、上記の最終結果の写真のように、回路を作り終えた途端にLEDが点灯したので、間違いではないらしい。
ほんとに回路ってちょっと間違っただけで簡単に部品が死ぬので、こういった間違いはあってはならないと思うのだが。😡
点滅しているLEDの操作
解説も引用
点滅するLED回路を正常に作成したら、それを制御するコードを作成します。
このコードでは、LEDが接続されているサーボGPIO PINにGPIO.HIGHを送信し、0.2秒待ってから、GPIO.LOWでオフにします。
その無限の回数を繰り返して、LEDのオンとオフを切り替え、基本的に点滅させます。
このレッスンで使用するPythonスクリプトは以下の通り。
Examples/blinking_led.py
#!/usr/bin/python # -*- coding: utf-8 -*- # http://elecrow.com/ import time import RPi.GPIO as GPIO # define LED pin led_pin = 26 # set GPIO mode to GPIO.BOARD GPIO.setmode(GPIO.BCM) # set puin as input GPIO.setup(led_pin, GPIO.OUT) try: while True: # turn on LED GPIO.output(led_pin, GPIO.HIGH) # Wait half a second time.sleep(0.2) # turn off LED GPIO.output(led_pin, GPIO.LOW) # Wait half a second time.sleep(0.2) except KeyboardInterrupt: # CTRL+C detected, cleaning and quitting the script GPIO.cleanup() |
例のごとく、GPIO.setmodeとpin番号を修正。
修正後
# define LED pin led_pin = 37 # set GPIO mode to GPIO.BOARD GPIO.setmode(GPIO.BOARD) |
このスクリプトを実行すると、点灯していたLEDが点滅をし始める。
↑消えて
↑点くの繰り返し
このスクリプトは無限ループとなるので、CTRL+Cで終了する。
また、レッスン動画の兄ちゃんの服が変わっとる😏
なんだ?HILFIGERって?
そんなことはどうでもいいのだが、ちなみに、レッスン動画の解説部分でGPIOのピン番号を16としているが、37の間違い。
いや奥の方に抵抗器が付いているようだ。
ただ、解説でトランジスタと呼んでいるように聞こえるが、抵抗だからレジスタじゃないのか?
回路の作成に関しては、楽しみにしていただけに、レッスンPDFの内容は実に残念なものであった。