Wio Terminal(その2)

Wio Terminalを使うのにかなり先走りすぎたので、落ち着いてまずはちゃんと動作するかどうか確認してみたメモ。

いきなりマイコンボードのモニタとして使うのは敷居が高かったので、とりあえず普通に画像を表示させる。

 

調べていたら画像を表示させるならLovyanGFXというライブラリを使った方法が良さそうだったので、下記を参照にさせていただいて、普通にWio Terminalでサンプルスケッチを起動させた。

書き込みはArduino IDEを使用。

 https://qiita.com/karaage0703/items/5c1a1d87ff7452ba3d9a

ライブラリでLovyanGFXを検索してインストールし、Arduino IDEでサンプルスケッチを開いて書き込み。

今はサンプルスケッチにゲームもある。

 

今回書き込んでみたのは、ボタンで画面を回転させて、ボールを転がして迷路を脱出するゲーム。

(サンプルスケッチのGame→BallMaze)

画面表示がとてもスムーズ。これは良い。

 

自分の環境ではMacBookでUSBハブを経由してWio Terminalと接続しているが、書き込みが一発でできたことがない。

スケッチ自体にエラーはないが、最初の一回は途中でポートが切断されて書き込みできなくなってしまう。

エラーは以下のような感じ。数字は変わる。

 

 [===========                   ] 37% (56/149 pages)
 write(addr=0x20004034,size=0x1000)
 SAM-BA operation failed

 

途中で接続が切れてるだけなのか、何かバグがあるのかわからない。

 

でも電源二度スライドのリセットで書き込み可能に戻る。

それと書き込み後にいつも「ディスクの不正な取り出し」の表示が出てくるんだけど、これは正常なんだろうか。

書き込んだスケッチは一応、ちゃんと動いてるみたいだからいいけど。

あと画像表示させるだけのスケッチがなぜか書き込み出来なくて困ってる。まだ調査中。

 

とにかく動くことは確認できたので、上記のリンクにあったM5StickVと接続するのはいずれやってみたい。

 https://homemadegarbage.com/wioterminal05

結局、何かのボードと繋げて使うのが一番楽しそうだ。

Sponsered Link

Wio Terminal(その1)

かなり出遅れたけど、Wio Terminalを購入したのでいじった記録。

結局やりたいことはまだできてなくて、考え中。やったところまでメモ。

 

やってみたかったのはこれ。

 https://wiki.seeedstudio.com/Wio-Terminal-HMI/

PocketBeagleでやってみたかったんだが、それ以前の問題がいろいろ起きたため、しかたないので一番無難そうなRaspberry piでやってみることにした。

 

Wio Terminal側はArduino IDEで専用のスケッチをインストールしておく。

 https://github.com/Seeed-Studio/Seeed_Arduino_USBDISP

が、書き込み中にエラーになって、その後Macで認識してくれなくなってかなり焦った。

スイッチを二回動かしてリセットして、青いLEDが点滅してなんとか認識して書き込めるようになった。

詳しいことは以下のブログを参照させてもらいました。

 https://karaage.hatenadiary.jp/entry/2020/05/18/073000

Wio Terminalが認識されなくて、シリアルポートが出てこないのはよくあることなのかも。

一度リセットしてもダメだったりするので、根気よく試すしかない。

 

RaspberryPi側の設定は、今回は以下のサイトを参照させていただきました。

 https://dev.classmethod.jp/articles/raspberry-pi-4-develop-with-mac-using-usb-c-cable/

久しぶりなんで、すっかりやり方忘れてた。

「SSHログイン」までできるようになっていればOK。

念のため、

 $ sudo apt update

 $ sudo apt upgrade

はやっておく。

 

あとは最初のwiki.seeedstudio.comのRaspberry Piのところに書いてある通り、コマンドを入れて実行していくだけ。

しかし

 $ make & sudo make install

を実行したところ、

 make[1]: *** /lib/modules/4.19.118+/build: No such file or directory.

と出てきて、失敗してしまった。

 

このエラーメッセージは見たことあるので、これを検索してみたところ、

 $ sudo apt-get install raspberrypi-kernel-headers

で、直ることがあるらしい。

試しに自分の環境ではやってみても最新のものになっていたため、意味がなかった。

なのでいったん

 $ sudo reboot

でリブートしてから、再度実行したところ、ビルドとインストールは実行できた。なんか途中でワーニングが多かったけど。

 

一応は成功したように見えるんだが、その後Raspberry Piと接続しても画面が出てこなかった。

というわけで、調査中。

もう一度最初からやり直した方が早いかも。

Sponsered Link

Sipeed Longan Nano(その4)

Longan NanoのLCD4に表示する動画(昨日ツイートしたやつ)を作成したので、やったことメモ。
実際には動画というサイズじゃないけど、手順は同じなので。

 

中国語のドキュメントに、サンプルのBadAppleの動画の作り方が書いてあった。
 http://longan.sipeed.com/zh/examples/badapple.html
サンプルの動画はわざわざキャプチャしてBMP画像に変換したのかな。

動画というほどでなくても、ちょっとした画像を表示するぐらいならできそうだったので、やってみることにした。

 

でも自分がやったのは、画像を作っておいて最終的にbmp.binを作るところだけ。とっても簡単。
bmp2hex(https://github.com/robertgallup/bmp2hex)というツールを改造したものを使用。
 http://dl.sipeed.com/LONGAN/Nano/Firmware/badapple_demo_tools/tools_bmp2hex.zip
しかし以前BMPを変換できなくて苦労したけど、こんないいツールがあったの知らなかった。
今度別件でも使用してみたい。

で、元となるBMPファイルは画面サイズと同じ160x80、それと24ビットにして、ファイル名は順番に1.bmp、2.bmp…という感じで数字にする。
(rename.pyがあるので実際にはリネームもやってくれるらしいけど、使わなかった)

1.bmpからで、0.bmpは作らない。ここ引っかかった。

 

次にgenhex.pyの

 while num <= *:

の*のところを、画像の総数に変更。(画像の枚数をそのまま記載)

自分が作業したのはMacのターミナルなので、次の行を

    os.system("python bmp2hex.py -kbin {0}.bmp".format(num))

に書き換えた。Windowsだったら.exeのままでいいのかな?

 

準備ができたらターミナル上でツールと画像の両方を入れたフォルダに移動し、
 $ python genhex.py
を実行。
枚数が多いと実行に時間がかかるらしいけど、自分が作った動画は5秒ほどで画像は80枚。すぐに終わった。

すると同じフォルダにbmp.binファイル作成されているはず。

 

あとはbmp.binをSDカードに入れて挿せば動画が再生するはず。

ファームウェアとロゴ画像はそのままなので、起動時にSipeedのロゴは出てきます。

作成は簡単だったんだけど、実は最後の画像が半分になって表示される変なバグ(?)があった。

しかたないので最後は画面一色にしちゃったけど、これも何とかしたい。

Sponsered Link

Sipeed Longan Nano(その3)

サンプルのプログラムの修正続き。

と、思ったけど、やったことは前のと全然変わらなかったんで書くことあんまりなかった。

参考にしたURLの情報もあるのでメモっとく。

 

Longan NanoでBadAppleを表示させる方法は、公式だと中国語版のドキュメントしかない。

 https://longan.sipeed.com/zh/examples/badapple.html

でもこれでも結構わかると思う。感覚で。

 

Longan NanoのLite版で表示させるにはソースから書き換える必要があると書いてあったので、ダウンロードしてくる。

上記のドキュメントの最後にリンクがある。

 https://github.com/sipeed/Longan_GD32VF_examples

もしかして、あんまりおおっぴらにBadAppleの動画とは言えなかったんだろうか。

 

ダウンロードしたgd32v_lcdフォルダをPlatformIOで開いて、platformio.iniをLite版用に修正。

参考にさせていただいた、前のと全く一緒。一応書いておく。

 [env:sipeed-longan-nano]
 platform = https://github.com/sipeed/platform-gd32v.git
 framework = gd32vf103-sdk
 board = sipeed-longan-nano-lite
 upload_protocol = dfu
 debug_tool = sipeed-rv-debugger

ビルドするとちょっとエラーが出るけど、自分のPlatformIOフォルダのプロジェクトの中にちゃんとfirmware.binができてると思う。

 

書き込みはVSCodeから直接はなぜか自分の環境では無理だったので、GD32 MCU Dfu Toolから行いました。

書き込みが終わったらリセット。

 

put_into_tf_cardフォルダ内のはbadapple_demo.zipにあるのと変わらないはず。

2つともSDカードに入れて、Longan Nanoに挿す。

これで表示されるようになりました。

結局、2日がかりでなんとか使えるようになった…。疲れた。

 

しかしみんななんでこんな複雑なことがホイホイできちゃうんだろう…と、自分の不甲斐なさをしみじみ実感。

なんか動かなくて積み状態のボードも、こういう初歩的なことわかってなくて止まってるんだろうな。頑張るしかないか。

Sponsered Link

Sipeed Longan Nano(その2)

久々にハマって大変だったので、やったことメモ。

作業はWindows上。Mac版はなさそうだったので。

 

まずは簡単に以下のサンプルを実行してみようとしたところから。

 https://qiita.com/myston/items/ae0d93bd177e7ecf2e5a

ツールは以下からダウンロード。

 http://dl.sipeed.com/LONGAN/Nano/Tools/

その中の「GD32_MCU_Dfu_Tool_V3.8.1.5784_1.rar」をダウンロードして解凍。

GD32 MCU Dfu Driversを「管理者として実行」で起動し、インストール。(自分の環境は64bit版)

さらにGD32 MCU Dfu Toolを起動。

なんかウィンドウを触る度にうっかり「http://gd32mcu.21ic.com/documents/index/classify_id/7」が開くんだけど、無視。

 

ここでLongan nanoをPCとUSB接続。

接続時にBOOT0ボタンを押しながらRESETを押して…とか複雑で緊張したけど、どうもBOOT0とRESETを同時押しで接続して、RESETを先に離す程度でも大丈夫だった。

(不確かなのであまり大きな声では言えない)

DF Deviceで「GD DFU DEVICE 1」という表示が意外とあっさり出て接続成功。

 

次に画像用のデータをダウンロード。

 http://dl.sipeed.com/LONGAN/Nano/Firmware/

から、「badapple_demo.zip」をダウンロードして解凍。logo.binとbmp.binはMicroSDカードに入れておく。

GD32 MCU Dfu Toolの「Download APP program file」でbadapple_demo.binを選択。

「OK」を押して書き込み。成功。

…が、その後RESETを押しても起動しない。BOOT0のLEDが点灯したまま。

書き込みし直しても、リセットし直してもダメ。

 

これは失敗したかなと思い、さっさと切り替えて今度はLチカを試そうと今度は以下を参照。

 https://qiita.com/iwaoka1986/items/21f0f43c63e819d1d2d8#ide%E8%A8%AD%E5%AE%9A

しぶしぶVScodeにPlatformIOを入れるところから始めました…。

公式のドキュメントも詳細が説明されていて、かなり助かった。

 http://longan.sipeed.com/en/get_started/blink.html

ボードの情報とか初期設定を待つのに時間がかかったぐらいで、問題なかった。

 

でもサンプルをビルドするだけでエラー出まくり。

原因は、ウィルス保護のソフト(アバストセキュリティ)が邪魔しまくっていた。

なのでこのプロジェクトのフォルダを監視外に設定。

それでもまだエラーが出る。こんな感じ。

 

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Cannot open DFU device 28e9:0189
No DFU capable USB device available
*** [upload] Error 74

 

なんかこれ、そもそもデバイスに書き込みできてない気がする。

 

ということで、ビルドしたファームウェアの書き込みにもう一度GD32 MCU Dfu Toolを使おうと起動して気付いた。

flashのサイズが64kBになってる。

これ、Lite版だ。ということは、platformio.iniの編集が必要。

前にツイッターで見かけて気になって、いいねさせていただいた情報が役に立ちました。

そのものズバリな情報で本当にありがたい。

ツイッターの画像を参照させていただいて、

 

 [env:sipeed-longan-nano]
 platform = https://github.com/sipeed/platform-gd32v.git
 framework = gd32vf103-sdk
 board = sipeed-longan-nano-lite
 upload_protocol = dfu
 debug_tool = sipeed-rv-debugger

 

で、Lチカできました。ありがとうございました。

 

しかしまさか自分がこれに引っかかるとは思ってなかった…。

あとはBadAppleの方も修正したので、これについてもメモしておくことにします。

Sponsered Link