マジョカアイリス ハック はじめます
マジョカアイリス ハック はじめます
今更ながら、マジョカアイリスハックをやってみようと思い、2台購入。
最初にマジョカアイリスがハックできることを知った時は、既にものが高騰し始めていたためスルーしたのだけど、今なら送料込みで1000円以下でAmazonで買えるようなので、思わずポチっとしてしました。
ちなみに定価は1万円ほどするんですね。
中の基板の名称から察するに、アメリカのおもちゃメーカであるCepia LLCが作成したWizard/Fairy-wandの部品を持ってきたのではないかとのこと。
やりたいこと
既に多くの方が、twitterやブログ、Githubなどでその成果をあげられています。
ESP32やSTM32、Raspberry piから使った報告があがっているので、これはROS2で使えるようにしたら、メッセージやステータス表示デバイスとして使えるんじゃないかと思い、ハックはじめました。ちなみに、最近でたところのRaspberry Pi Picoで動かしてる人も。
ROS/ROS2のサンプルでよくある、taker/listenerのlistnerとして動作し、送られてきた文字を列をディスプレイに表示して電光掲示場のように表示してあげるイメージです。ついでに状態や表示パラメータをサービスで取得・設定できるようにするとかして、実際に使えるものにできればと思っています。
まずは分解
外箱の刻印をみてロットを確認。
スティックの筐体はできれば再利用できるように、きれいに分解できないかなと思いつつ作業をすすめましたが、結果としては超音波カッターで裁断する必要があったのは2か所のみで、他はねじを外せばよいだけでした。
おもわず、
「きれいな側してるだろ。ウソみたいだろ。分解されてるんだぜ。それで。」
とか思っちゃいましたよ。
超音波カッターで裁断したのは、スティックの液晶基板が格納されている部分。二か所が半田ごてとかでプラスチックを溶かしてくっつけてる感じだったので、ここを超音波カッターでほじほじしました。
これで、液晶基板をカニの身のように、するっと取り出せました。
液晶基板との接続
液晶基板とはフレキシブルフラットケーブル (FFC) の22pinで接続することになるのですが、ここでまずは1山。
FFC 0.5mmピッチ22pinの変換基盤を探すとビンゴなのは、aitendoさんのになるかと思います。
ただ、これ、コネクタと基板のハンダ付けをしないといけないのですが、うまくやらないとノイズがのる等でつまずく場合がある模様。
ここは安全にいきたいので、他のものがないかと調べたところ、
- ピン数の多い、秋月の40pin変換基盤をつかって一部のコネクタだけつかう方法
- 22pinのうち、21と22は使用されてないのでそこを削って20pinのものを使う方法
で対応されてる例をみつけました。最初は40pinの秋月のものを使おうと思いましたが、
ちょっと多すぎる感があったので、Amazonで調べたところ24pinのものがあったので、それを使ってみることにしました。
数が多い場合は、差す位置とショートに気を付けないといけないですね。
ということで、今日はここまで。
Raspberry pi + Ubuntu18.04でGPIO 2020年11月版
Raspberry piにUbuntu Server 18.04入れて、WiringPiを使ってGPIOを操作しようとしたのだけど、少しはまったのでメモっておく。
基本は、以下のQiitaの記事を参考に作業。
Qiitaにあるように、パッチをあててビルドしないといけない模様。
ただ、現在、WireingPi-Pythonをcloneすると、wiringPiが2.60になっており、上記のパッチが2.50をターゲットにしているので、うまく当たらない。
ので、Qittaが書かれたあたりのcommitを取ってきて、wiringpi 2.50でパッチをあてたコードに入れ替えてビルドすることでうまく動作してくれました。
手順的には、
$ git clone https://github.com/WiringPi/WiringPi-Python $ cd WiringPi-Python $ git checkout 3315e8ec750ee8535b3f4ab31c7007b5863b7e97
で、wiringpi 2.50でパッチをあてたコードをWiringPi-PythonのWiringPi配下に丸ごとコピーして、
$ sudo python3 setup.py install
でビルド&インストール。ただし、ログとみたところ、site-packageのwiringPiのバージョン名は2.46としてインストールされてる。動いたのでいいかなぁ。
ギガビット USB Ethernetアダプタを購入
MAC Book AirにいれたUbuntuから有線で接続する必要が急に発生したので、手持ちのUSB Ethernetアダプタを探したところ見つからず・・・。
ということで急遽購入することに。Amazonでみたところ、最近はギガビットイーサネット(GbE)対応のものもあるようで、見た目で以下のものを購入。
Amazonの商品説明欄にはLinux互換(!?)と書かれてたので問題なく動くでしょう。
本日到着。
Ubuntu 18.04のインストールされてるMac Book Airに差して、
$ lsusb Bus 002 Device 005: ID 0bda:8153 Realtek Semiconductor Corp.
0bda:8153
で検索してみると、
RTL8153 Gigabit Ethernet Adapter
とのこと。
今のところ問題なく動いてます。
以上
NanoPi NEO2でROS2
はじめに
NanoPi NEO2でROS2が動くとのことなので、やってみる。
元ネタはこちら
NanoPi NEO2は、512MB版だが秋月で購入可能。
NAS用ケースとか
ヒートシンクもあります。
Linuxのインストール
dashingを使いたいので、Ubuntuの18.04、Bionicのイメージが必要。NanoPiはArmbianを採用しているもよう。
既に上記ページはFocal(Ubuntuだと20.04)になっているので、ページの最後にあるArchived Versionsのリンク先に移動。
"Armbian_20.02.1_Nanopineo2_bionic_current_5.4.20.7z"をダウンロードしてSDに書き込んで使用。
ROS2のインストール
これは普通に、ROS2の公式の手順でインストール。
"ros-dashing-ros-base"まで問題なくインストール完了。
動作確認
元ネタのブログと同様、デモのtalker-listenerを使って動作を確認。
以上
Raspberry pi Zero WにWio Terminalを繋いでディスプレイ表示する
はじめに
Seeedから発売されている、Wio TerminalがRaspberry pi(以下、ラズパイ)のディスプレイになるとのことで、今回試してみました。
ラズパイとWio TerminalはUSBで接続します。
Seeedの公式Wikiの以下の記事
Raspberry Pi用HMIディスプレイを作る - Seeedウィキ(日本語版)
に方法はかかれてますので、基本はここの内容に従って作業をすればよいです。
ただこのサイト、
と見にくいのに注意。例えば、「sudoサービスlightdmの再起動」は「sudo service lightdm restart」というコマンドを翻訳してしまったと思われます。
Raspberry Pi Zero Wで動くか(手順的な面と性能的な面)がわからなかったので、実際にやってみました。
結論としては、それなりに動きました。
見ての通り、解像度は320 x 240なのでやれることは限られてます。WiFiやBluetoohの切り替えとかにはつかるかもしれません。配置するウェジットを工夫すればちょっとしたことができかも?
設定でUSBの数だけWio Terminalを繋げるそうなので、Wikiではラズパイ(Zeroではない)の4つのUSBポートに4台つなげる例が書かれてます。が、あまり実用的には思えないですね。
本命は、WikiにもあるPyQtGraph等をつかって直接GUI表示する方法ですね。これは次に試してみようとおもっています。
さて、以降では、今回動作させるまでの手順+αをまとめます。Raspberry Pi Zero Wということで、セットアップ等は非常に時間がかかるので、VTuberの雑談配信やアニメをみながら作業するのがよいかと思います。(個人的嗜好)
今期アニメだと「戦翼のシグルドリーヴァ」が結構好き。
戦翼のシグルドリーヴァ 1(完全生産限定版) [Blu-ray]
- 発売日: 2020/12/23
- メディア: Blu-ray
環境
以下に、今回使用した環境をまとめておきます。
項目 | 内容 |
---|---|
H/W | Raspberry pi Zero W |
OS image | Raspberry Pi OS (32-bit) with desktop and recommended software. Version: August 2020, 2020-08-20 |
SD容量 | 16GB |
その他デバイス | Wio terminal |
USBケーブル | Wio terminal付属のもの |
大まかな手順
Wio Terminalの準備
Wio Terminalに、ディスプレイ表示用のファームウェアを書き込む必要があります。
ソースはgithubに公開されてるので、自分でもってきてArduino IDEで作成することができる一方、
Wikiからダウンロードできるuf2ファイルを使って、対応ファームを入れ替えることもできます。
Raspberry Pi用HMIディスプレイを作る - Seeedウィキ(日本語版)
PCにWio Terminalを繋いで、Wio Terminalのディスプレイに向かって左側面にある電源スイッチを、ONの位置から下に素早く2回引き下げます。すると、PC側にドライブとして認識されます。
そこにuf2ファイルをコピーすると、再起動してファイルを読み込んで起動します。mbedライクですね。
用意されてるuf2ファイルは2種類あって、Wio Terminalの画面右下にある青いスイッチでマウスを操作できるもの(USBDisplayAndMouseControl)と、マウスを使わないかわりリフレッシュレートが高いもの(NullFunctional)。今回はUSBDisplayAndMouseControlを使ってみました。
ラズパイ側の準備
$ sudo apt install raspberrypi-kernel-headers raspberrypi-kernel
その後、githubからドライバのソースを取得。作業はユーザのホームディレクトリ配下で行いました。
$ git clone https://github.com/Seeed-Studio/seeed-linux-usbdisp
その後、ビルドしてインストール、再起動。
$ cd ~/seeed-linux-usbdisp/drivers/linux-drive $ make $ sudo make install $ sudo reboot
設定ファイルを、Xサーバの設定ディレクトリにコピー。
sudo cp ~/seeed-linux-usbdisp/drivers/linux-driver/xserver_conf/10-disp.conf /usr/share/X11/xorg.conf.d/
ウィンドウマネージャ(lightdm)を再起動。
$ sudo service lightdm restart
WikiではここでWio TerminalをUSBポートに接続とありますが、Raspberry pi Zだと繋いだとたん電力不足でリブートしていまいますので、ラズパイ起動時に接続しておくのが良いです。
以上になります。
その他メモ
HDMIへディスプレイ出力を戻したい
Wio terminalにディスプレイ表示を切り替えると、HDMIへには出力されなくなります。
HDMIに戻すには、
1) 設定ファイル名を変更して無効にし、
$ mv /usr/share/X11/xorg.conf.d/10-disp.conf /usr/share/X11/xorg.conf.d/10-disp.conf.disable
2) ディスプレイマネージャ(lightdm)を再起動します。
$ sudo service lightdm restart
切り替えに少し時間がかかります。