アメグラ2号のブログ

1980年代後半の古き良きビデオゲームのほか、オッサンの個人的備忘録

ラズパイゼロでLチカ

ようやくLチカ(LEDチカチカ)ができた。 

f:id:game-allergy:20210312170216j:image

 

◆GPIOやりたかったんすよ

以前にC言語で機器LED点灯、モーター制御をやったんだけど、中身をじっくり覚えることができなかった。。。プログラムで機械制御をするのはやっぱり男のロマン・・・そりゃ探査機衛星はやぶさだって気になるもんさ。

で、とりあえずはどのように制御をしているか基本を知りたくって。

ラズパイを買ったのは実はこれが理由で、サーバーやNASは目的ではなかった。というか、サーバーやNAS構築はお手軽だよね、パソコン上だけで完結するし。

モノがどのように動いているか、実際に電気流して動かしみて…時には火が吹いたりとか、そういうのがやってみたかったんだよね。

 

 

 ◆必要部品の準備オーライ

f:id:game-allergy:20210312170227j:image

書籍のほか、LEDや抵抗などの電子部品、半田ごてなど材料がようやく揃った。

ということで、まずはラズパイGPIOのヘッダーピン取り付けだ。

f:id:game-allergy:20210313162850j:image

購入したのはラズパイ4、ラズパイゼロだけど、ラズパイ4は監視カメラのテストを行っているので、GPIOの実験はラズパイゼロでやることにした。

で、ヘッダーピンがついていないので部品を取り寄せて自作してみることに。

はんだ付け?昔やったことあるし、なんとかなるんじゃん?

と軽い気持ちでやってみたが・・・・。

 

 ◆ヘッダーピンはんだ付け…

f:id:game-allergy:20210312170237j:image

↑すげー大変だった。

やるんじゃなかった…。

 

20ピン×2の40か所をはんだ付けしたんだが・・・・これがまたひどい結果に。。。

 

f:id:game-allergy:20210312170247j:image

↑カメラ寄って寄って~、ほらほら~。

 

f:id:game-allergy:20210312170256j:image

↑ 見て見て~、このひどいありさま。

 

1時間くらいかかったかな、これ。やってるうちに、もう壊れてしまったかもね…と半ばあきらめ気味になったし。

初心者が、しかも慣れないことをやるとこういうことになる…ということだね。。。

 

はんだ付けの出来栄えは…

はんだの流し込み具合がなかなか分からず、山盛りうんちみたいだったり、とんがりコーンみたいな頭になったり…なかにはキスチョコみたなのも…もうダメね。

きれいな富士山のように…なんてなかなかできんのよ。加えて老眼でよく見えないし…そーいえば会社の作業場は虫眼鏡あったな~、なるほど納得だよ。

 

で、やっているうちにコツを掴んできたものの、なんかね、はんだゴテを長く接触しすぎて、ピンが下方向へズレていった。よく見たらピンの基礎であるプラスチックが溶けて下方向へズレていってしまったようで…。もうグダグダ。

次回ははんだ付けしないピンのタイプにしよう。半田付けを極めたくてこれを買った訳ではないので。。。

 

◆とりあえず電源オーン!

f:id:game-allergy:20210312170307j:image

↑ 40か所すべてをチェックして、隣と干渉していたり、ハンダ割れしている様子がなかったので、とりあえず電源入れてみっか~、で、動いた。

いや~よかったよかった。

 

 

◆L チカ

f:id:game-allergy:20210312170318j:image

↑ 3.3vでLED点灯を確認。

直結で動いたということで、半田付けはとりあえず大丈夫そう。ってか、ほかのピンを入出力してみないとまだ分からないんだけどね…。

 

◆今度はPythonで制御

Pythonで電源出力を制御するんだけど、そーいえばPythonはどこに書くかな。

ノートパソコンからラズパイへssh接続しているので、よくあるようなラズパイのデスクトップからメモ帳とかで書いて…とかできない。

というか、ラズパイOSがliteなので、そもそもラズパイでデスクトップ環境が無いし。

 

ということで、nanoで作成することに。

まぁそうなるよね。

 

sudo nano led_on.py とかテキトーな名前作って、プログラムを編集。

その後、python3 led_on.py でプログラム実行。うーん、実に簡単だ。

 

pythonで点滅をやろうとしたら

f:id:game-allergy:20210312173410j:plain

↑ GPIOにピン直結でのLED点灯はできたので、次はいよいよプログラムで点滅だ。

pythonでプラグラムを書いていざ動かそうとしたら上のようなエラーが。

 

あれえ?

 

updateもupgradeもできてるし。

調べてもちょーっと的はずれなものばっかり出てくるし。。。

 

お前はいったい、な・ん・な・ん・だ~~~~~。

 

と、調べていたら以下の記事が出てきた。

Raspbian buster lite does not have RPi.GPIO installed for python 3, nor did stretch.

 

まじっすか、liteには入ってないんすか、そうすか!

そうだ、このラズパイゼロには軽量OSのliteを入れていたんだった。

そうですか、そうですか・・・はいー。

 

 

ということで下記を入力しupdateとインストールしたら動いた。

sudo apt-get update && sudo apt-get install python-rpi.gpio python3-rpi.gpio

 

◆無事にLED点滅しました。

f:id:game-allergy:20210313124756j:image

↑ 4番ピンを電源出力にして、Pythonで制御。

High,lowを繰り返せば点滅の出来上がり〜。

 

 

Pythonも使い方分かってきたんで、次はデューティを仕込んでみようかな。