ラズ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分 あとかたづけ

タイピング練習

今回のタイピングの練習も、日本語入力にしました。使う教材は、下のサイトのWebアプリです。

https://manabi.benesse.ne.jp/gakushu/typing/

手の上に手ぬぐいを乗せて練習するやり方を、全員が一度は体験したら、英語と日本語の交互に戻します。しばらくは、この調子で続けます。

手元を隠すとタイピングがうまくできないメンバーが結構います。今までは一人ひとりを見て回る余裕がなかったのですが、今の状況なら一人ひとり個別に修正点を示してあげられます。わたしの指導を受けて、タッチタイピングを習得できなかった人はいません。軒並み100字/分を超えています。子供のうちから正しく取り組んでいれば、200字/分も余裕です。

コピーと貼り付けの方法

いわゆる「コピペ」のやり方をメンバー全員に示しました。コードを全部手打ちしなくても、コピペで済むところもあります。タイピングが遅いうちは、大事なところだけに集中して取り組んでほしいので、コピペを解禁しました。

さて、コピペの方法は、マウスで右クリックから行う方法と、キーボードのショートカットを使う方法があります。キーボードショートカット(ctrl + c、ctrl + v)は大人でも知らない人がいます。コンピューターを扱うスピード感がまったく違ってくるので、ぜひ覚えてください。

両方覚えなくちゃいけないのか、と疑問もあります。両方とも知っていれば、場合によって使い分けができます。小技ながら、両方覚えておいて損はありません。

カラーLED(WS2812B)を動かす

ではいよいよカラーLED(WS2812B)を動かすコードを書いていきます。コードの基本は、下の記事に書いてあるコードを写します。

WS2812B(カラーLED)教材~その1~

Contents1 基礎的な部分のコード2 LEDを光らせるコード例2.1 一色で全LEDを光らせる(0.2秒で色変更)2.2 追いかけるように順に点灯して消灯する(3回繰り返し)2.3 すべ…

念のため、このコードをコピペしたところで、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エラーが出ます。

よくある光らない原因はこれくらいです。一つ一つ解決していきましょう