ラズPicoでカラーLEDを点灯させよう〜その1〜 WS2812Bを動かす基礎的なコードの入力
2023年12月15日(金)は、7割ほどの出席率でした。キーパッドの制作をいったん終わって、カラーLEDを光らせるプログラムへの挑戦をはじめます。
- 18時00分~18時30分 タイピング練習
- 18時30分~18時45分 コピーと貼り付けの方法。マウスとキーボード
- 18時45分~19時50分 カラーLEDのプログラミング
- 19時50分~20時00分 あとかたづけ
Contents
タイピング練習
今回のタイピングの練習も、日本語入力にしました。使う教材は、下のサイトのWebアプリです。
https://manabi.benesse.ne.jp/gakushu/typing/
手の上に手ぬぐいを乗せて練習するやり方を、全員が一度は体験したら、英語と日本語の交互に戻します。しばらくは、この調子で続けます。
手元を隠すとタイピングがうまくできないメンバーが結構います。今までは一人ひとりを見て回る余裕がなかったのですが、今の状況なら一人ひとり個別に修正点を示してあげられます。わたしの指導を受けて、タッチタイピングを習得できなかった人はいません。軒並み100字/分を超えています。子供のうちから正しく取り組んでいれば、200字/分も余裕です。
コピーと貼り付けの方法
いわゆる「コピペ」のやり方をメンバー全員に示しました。コードを全部手打ちしなくても、コピペで済むところもあります。タイピングが遅いうちは、大事なところだけに集中して取り組んでほしいので、コピペを解禁しました。
さて、コピペの方法は、マウスで右クリックから行う方法と、キーボードのショートカットを使う方法があります。キーボードショートカット(ctrl + c、ctrl + v)は大人でも知らない人がいます。コンピューターを扱うスピード感がまったく違ってくるので、ぜひ覚えてください。
両方覚えなくちゃいけないのか、と疑問もあります。両方とも知っていれば、場合によって使い分けができます。小技ながら、両方覚えておいて損はありません。
カラーLED(WS2812B)を動かす
ではいよいよカラーLED(WS2812B)を動かすコードを書いていきます。コードの基本は、下の記事に書いてあるコードを写します。
念のため、このコードをコピペしたところで、WS2812Bは光りません。自分のカラーLEDの設定の部分と、どう光らせるのかという部分は自分で書く必要があります。なお、コピペ用のコードは、公式のサンプルコードです。
写経用の完成プログラムは、当日資料として紙で配ったとおりです。これはそのうち「らずぴこことはじめ」に掲載します。
20行くらいを間違えずに打ち込めば、下の動画のようにカラーLEDが光るはず。厳密には、まったくおなじではありません。それは自分で作ってのお楽しみ。
問題勃発、なぜ光らない?
ここで問題勃発です。カラーLEDが光りません。
事前にユニットを作ってきたので、プログラムを書いたら、配線もわずかで、すぐに光るはずでした。プロトタイプで作ったわたしのLEDはきちんと光ったのですが、メンバー用にあらためてつくったLEDが光りません。
原因は、わたしのはんだ付けの位置が間違っていたためです。Dinにはんだ付けすべきところを、Doにはんだ付けしていました。せっかく熱収縮チューブでキレイにしていたのに、やり直しです。現場ですぐにやり直しました。
12個作って、軒並み全部間違えるとは、なかなかできない芸当です。特に確認しながらはんだづけしたわけではないので、1/2を12回連続で間違うという、確率でいうと1/4096で起こる間違いでした。残念。
そのほかLEDが光らない理由は大体決まっている
はんだ付けをやり直すと、早いメンバーはすぐにLEDを光らせることができました。なかなか光らせることができないメンバーのエラーは、大体決まっています。いくつか紹介します。
・変数の入力ミス
Pythonは大文字と小文字を明確に区別します。Name_Errorがでたら、変数の入力ミスです。
・:(コロン)がない
関数(def文)やfor文の1行目最後は必ず「:(コロン)」が必要です。Syntax_Errorがでたら、大体これです。注意すべきは、Syntax_Errorで指摘される行の1行上の行のコロンなしを指摘してくることです。エラーメッセージの行だけを見ていても、エラーを解決することはできません。
・配線ミス
WS2812Bは5Vで光ります。ラズPicoの40ピン(5V出力)に接続してください。3Vにつなぐと光りません。
また、パソコンによっては、WS2812BのVinとGNDを逆に接続すると、USBエラーが出ます。
よくある光らない原因はこれくらいです。一つ一つ解決していきましょう。