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

PocketBeagle(その3)

久々にメモ書き、と同時に積み基板状態のPocketBeagleを引っ張り出してきた。

およそ2年ぶりぐらいだろうか。

やりたいことがあったので取り出したんだけど、2年近く放置していたせいでいろいろ問題が起きた。

 

まず最新のimgファイルをダウンロードし、SDカードに焼く。

 https://beagleboard.org/getting-started

 https://beagleboard.org/latest-images

USBでMacと接続。Macからはストレージとして見えている。

ここまでは前にもやったし問題ないと思う、LEDはちゃんと点灯しているので起動もしていると思われる。

 

が、SSHで接続できない。そもそも「http://192.168.6.2」で接続してもタイムアウトしてしまう。

なのでMac上で認識されたストレージに入ってるドライバ(FTDIとHoRNDIS)をインストールしてみようとしたけど、現在のOSではインストールできなかった。

どうやら調べた限りでは、今のMac OSに対応していないっぽい。10.15以降。

 

ついでなのでもうちょっと調べたところ、HoRNDISはインストールだけならMacでも可能。

以下にある「http://HoRNDIS-9.2-catalina_install.pkg.zip」をダウンロードしてみたら、インストールはできた。

 https://github.com/jwise/HoRNDIS/issues/102

でもインストールできるだけ。SSHで接続はできなかった。

 

なので以前はアクセスできたWindowsと接続したけど、ここでもタイムアウト。

(Windowsの場合はhttp://192.168.7.2)

お手上げ状態だったので、最後に試しにLinuxの入ったPCと接続した。

で、ようやくhttp://192.168.6.2に接続できた。

 

なんか以前接続した時のと全然違う。

Cloud9 IDEが起動する。

このままLinuxと接続して使うのには問題はなさそう。

でも前はWindowsで使えたのに、今回ダメだったのが謎。また別のimgファイルを使ってやり直してみたい。

Sponsered Link

TTGO T-Watch(その7)

「その6」の続き。

 

T-Watch用サンプルスケッチ、TFT_eSPIにあるやつが正しく表示されなくて悩んでたやつ。

結局、

「libraries/TFT_eSPIのUser_SetupsフォルダにあるSetup45_TTGO_T_Watch.hをリネームして、User_Setup.hにする」

で、正解だった。

これはTFT_Clockを表示させたとこ。

普通に表示させると、キーボードとは90°向きが違っている。

でもアナログ時計なのでわかりにくい。

 

前のでなんでダメだったのかというと、たまたま表示できないスケッチを使ってしまったとしか思えない。(どれかは忘れた)

今日になってサンプルスケッチ自体を変えてみたら、正しく表示されていた。

それにいつの間にかバージョンアップしてることもあるんで、たまに見直したほうが良さそう。

 https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library

実際、あれから全部アップデートしてた。

 

で、キーボードを付けたT-Watchの場合、普通に書き込むと画面表示が90°傾くので、スケッチをちょっと書き換えて表示を正しくしてみた。

All_Free_Fonts_Demo.inoを使って、下記のように書き換えた。

 

    TTGOClass *ttgo;

     ↓

    TTGOClass *ttgo = nullptr;
    TFT_eSPI *tft;

 

それと、

 

    ttgo = TTGOClass::getWatch();
    ttgo->begin();
    ttgo->openBL();

     ↓

    ttgo = TTGOClass::getWatch();
    ttgo->begin();
    tft = ttgo->eTFT;
    ttgo->openBL();
    tft->setRotation(1);

 

setRotationが画面の向きの指示になってる。

(TFT_eSPI.h内の記載にvoid setRotation(uint8_t r); // Set the display image orientation to 0, 1, 2 or 3)

これで表示が90°傾いて、キーボードを付けた時に正しく見える。

あとはキーボードの入力もいじってみたい。

これは引き続き調査中。

Sponsered Link