はじめに
いつもお世話になっている三峰スズさんのRISC-V MCUボードの第二弾、Suzuno32RVを技術書典で購入しました。それから色々忙しくて積んでしまっていたのですが、時間を確保できたので先ずはLチカをばと BOOTHでは販売なさっていない模様。会場での頒布のみだったのかな。
ちなみに三峰スズさんのSuzuduino UNO V1bはコチラで買えますよ! これも以前購入して楽しく遊びました! suzu3tsu.booth.pm
あとYouTubeも宣伝しておくぞ!みんな登録といいねするんだぞ!
使い方忘れた
完全にWCH系のマイコンの使い方を忘れてしまいました。ツイッターでそのことを呟いたところ、三峰スズさんが教えてくれました。
WCHISPStudio(公式)かwchisp(Rust製のツール)で、hexやbinをUSB経由で書き込めますー。
— 三峰スズ🔔🛠️VTuber Tech&DIY (@verylowfreq) August 11, 2024
Arduino IDEではarduino_core_ch32をインストールです
てっきりWCH-LinkEという書き込み装置がないと、書き込みできないと思っていたのですが、WCHISPStudio(公式)かwchisp(Rust製のツール)でいけるとのことです。WCHISPStudioはWindowsのみっぽいので、wchispを使ってみることにしました。 akizukidenshi.com
いつもはLinux mintなんですけど、今実家に帰ってきてMacBook Airしか使えないので、macで環境を整えていきます。MacBook Air (13-inch, 2017)なので、もう7年前のやつです...そろそろ新しいのが欲しいところですね。電池の減りが速すぎるぜ
アップデート中🙃 pic.twitter.com/KRxMVfOusx
— Xian DIY (@sabasabasabaniu) August 11, 2024
Arduino IDEにボードを追加する
普段からArduino IDEを使っているのでまあArduino IDEでやっちゃいます。ボードを追加して使えるようにしていきます。 github.com
下記のURLをコピーして追加します。
https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json
そしてボードマネージャーを開いてWCHと検索してインストール! これで準備完了です。
あと、書き込み自体はwchispを使って行います。Arduino IDEではコンパイルしてhexファイルを生成するのに使うといった感じです。 コンパイルしたファイルはどこかに保存されるのですが、デフォルトの設定だと何処にあるのか分からないので、コンパイル時に保存先を表示するように設定を変更します。設定が画面からcompileとuploadにチェックしておきます。 今回はコンパイルする時だけ使うので、compileだけにチェックすれば良いっちゃいいです。
wchispをインストールして環境を整える
wchispをインストールしようとしたんですが、これが上手くいかなくて... rustの環境が入って居なかったので、先ずはbrewを使おうとしたらbrewもおかしくなっていて、色々修正してやっとこさcargo installをしたのですが、下記のエラーに。もう途方に暮れちゃいました。
$cargo install wchisp --git https://github.com/ch32-rs/wchisp Updating git repository `https://github.com/ch32-rs/wchisp` Installing wchisp v0.2.3 (https://github.com/ch32-rs/wchisp#2efb224c) Updating crates.io index error: failed to compile `wchisp v0.2.3 (https://github.com/ch32-rs/wchisp#2efb224c)`, intermediate artifacts can be found at `/var/folders/0j/m1ndp8j92_d45trvr973q_r80000gn/T/cargo-installUIw04V`
またツイッターに途方にくれましたとツイートしたら救いの神が
releaseにバイナリもあります!https://t.co/IIKkJnPqef
— 74th (@74th) August 11, 2024
ということで、バイナリの方をダウンロード。
ダウンロードしたら解凍して、そのファイルの階層に移動しまして、以下のコマンド実行してみます。おそらくセキュリティで引っかかると思うので、セキュリティーとプライバシーから解除してみて下さい。
$./wchisp
Suzuno32RV認識するかな
環境は整ったので、ボードがちゃんと認識できるかテスト。Suzuno32RVのbootボタンを押しながらUSB接続して
下記コマンドを実行!
$./wchisp info
しっかり認識されました!!
コンパイルしてアップロードするぞい
それではLEDをLチカしますぞ。Suzuno32RVのビルドインLEDはPA5に接続されているので、コードは以下のようにしました。
void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(PA5, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(PA5, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(PA5, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
それではコンパイルをばと、コンパイルするとコンソール画面にhexファイルの保存場所が表示されます。これをコピーしておきます。
あとは書き込むだけ!下記のコマンドを実行すれば上手くいくはず!
$ ./wchisp flash /private/var/folders/0j/m1ndp8j92_d45trvr973q_r80000gn/T/arduino/sketches/475926BC78F0107004911A7DC7BD13EF/Blink.ino.hex
Lチカ、めでたいー!!😸
— 三峰スズ🔔🛠️VTuber Tech&DIY (@verylowfreq) August 11, 2024