新しいおもちゃを手に入れました
どうも、じぇいかわさきです。
気温は上昇してきたとは言え、外は風が強くてまだまだ家の中で何か作業するのが楽しいですね。
そんな中、巷で流行っている物をついに手に入れました。
じゃ〜ん、それはこれです。
そうです、Raspberry Pi Picoです。結構流行っているようで、今月前半の頃は品切れ状態が続いていたようですね。
Arduinoを今まで少しやっていましたが、こちらのほうが強力だということでついつい買ってしないました。本体自体は税込み550円と格安ですからね。
事前準備をする
購入しただけではピンヘッダーも付いていないので、まずはピンヘッダー付けから始まります。
こんな感じで、ブレッドボードを使ってハンダ付けすれば、位置も固定できて一石二鳥です。
ここまでできたら、ネットで調べながら使えるように設定をしていきます。
まず、本体上にある白いプッシュスイッチを押しながらUSBケーブルを接続します。これにより、Raspberry Pi Picoがストレージと認識されて、ディスクトップにこんなアイコンが出ます。
このアイコンをダブルクリックして開き、中に有るindex.htmをクリックしてブラウザを立ち上げ、立ち上がったページより開発環境のMicroPythonを選択します。
Raspberry Pi Picoの開発環境はC/C++とMicroPythonの2つがありますが、最近勉強を始めているPython系のMicroPythonを迷わず選びます。
この、緑のボタンをクリックすることで、MicroPythonのUF2というファイルをダウンロードします。
ダウンロードしたファイルをコピーすると、自動でストレージは切り離されます。これで使用可能な状態になりました。
実際にプログラムを書いて行くには、自分の場合ですと母艦のMacからThonnyというIDEを使用してMacとRaspberry Pi PicoをUSB接続して実行します。
これはArduinoと同じ様は方式ですね。
まずはおなじみのLチカ
Raspberry Pi PicoにはLEDが1つ載っていますので、ご多忙にもれずプログラミングの初歩として、このLEDを点灯させてみます。
Thonnyを立ち上げたら、まずは右下にあるバージョンの部分をクリックするとターゲットを選択できますので、そこでRaspberry Pi Picoを選択します。
これで、ThonnyとRaspberry Pi Picoが接続されたことになります。
たった3行の至ってシンプルなコードになります。実行を押すと、Raspberry Pi PicoのLEDが緑に点灯しました。
当たり前ですけどね。このままでは、LEDは点灯したままになりますので、次に、1秒間隔でLEDを点滅させるようにします。
whileを使って点滅となるようにループを繰り返します。見事に点灯するようになりました。
動画があるんですが、noteにはMOVファイルを貼り付けることができないのですね。いろいろ調べたら、GIFならOKみたいなので、MOV→GIF変換を行いました。
こんな感じで簡単にできました。
ThonnyでなくいつものVCを使いたい
現在、Pythonの勉強環境はMSのVCを使用している。非常に使いやすいのでお気に入りなんですが、このVCでRaspberry Pi Picoを使うことができるらしいのだ。
VCでRaspberry Pi Picoを使うにはPico-Goというモジュールをインストールするらしいです。
しかし、このPico-GoをインストールしただけではエラーがでてVCとRaspberry Pi Picoが接続できないんですよね。
エラーコードをチェックしていくと、NodeJSがPico-Goには必要らしいのですが、自分の環境にはインストールされていないということらしい。
さっそくNodeJSをインストールすることにした。
NodeJSのページからLTS版をダウンロードして、自分のMacにインストールを行いました。
その結果、Raspberry Pi Picoと接続ができたのか、VCのターミナル部分の表示が変わりました。また、ちゃんとPico consoleという表示にもなりました。
これで、VCからRaspberry Pi Picoが使えるはず・・・でしたが。。。
モジュールが無いと起こられ動かない
さて、VCからRaspberry Pi Picoが使えるようになったということで、さっそく先のLチカをもう一度やってみようと思いました。
Thonnyで問題なく動くコードをVCで動かすとエラーになるんです。
このエラーのように、モジュールが無いって怒られてエラーで動かないんですよね。
しかし、同じコードをThonnyで動かすと何もなかったかのように、普通にエラーなく動くんです。
この違いは何なのでしょうか?
ちなみに、ターミナルで本当にインストールされていないか確認するために、再度インストールを試みました。
******@NERV ~ % sudo pip3 install machine
Password:
WARNING: The directory '/Users/******/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already satisfied: machine in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (0.0.1)
Requirement already satisfied: pycrypto in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from machine) (2.6.1)
******@NERV ~ %
何だか問題ないように見えるのですが、Thonnyで良くてVCでダメってどういうことですかね。
いろいろとネットで調べたりしていますが、未だ解決策が見つからずです。
No module named 'machine' なので、machineをインストールすれば解決すると思っていたんですが違うんですかね。
VCでPico-Goを動作させている人、不具合などの情報をいただけると嬉しいですね。
なにか始めると、すぐにつまずくのは最近のパターンのような気がします。
でも、また一つおもちゃが増えたんで、またまた時間が無くなりそうですね。