
学内展示作品制作 後記【Arduino+RFID+ラズパイPico+Unity,3Dプリンター等】
大学の制作作品の学内展示まで終わったので振り返り
Arduinoとか3Dプリンターはほぼ未経験で、Unityは少しだけ触ったことがありました。
Arduino、RaspberryPiPico、ILI9341あたりで共有事項もあるので、もしよかったら読んでもらえると嬉しいです

大学の制作展の作品です!🚞🎫📸
— こいけ© / 小池 (@koike_maple) January 16, 2025
切符を読み取り機にかざすと、その行き先に合わせたUnityの映像が出てきます
カメラで人の動きを検出して視点が変わっていきます(窓を眺めるときみたいに) pic.twitter.com/Zfza6NXux5

作品タイトル:「車窓より」
電車の過ごし方としてスマホを触る人が多い中で、電車の"車窓"の景色に着目して制作しました。たまにはのんびりと車窓を楽しむひとときを過ごすのも良いのではないでしょうか。

作品概要
切符を読み取り機にかざすと、LEDリングが光ると同時にモニターのシーンが変わり、その切符の行き先に合わせた景色が映し出されます。その間カメラで人のx座標を検出し、左に行けば右奥が見え、右に行けば左奥が見えるようになっており、読み取り機のディスプレイにもテキストが表示されます。

📅制作期間
11月末~1月中旬
💻使用機器など
・Chatgpt、インターネット上の文献
・モニター(大学所有)
・PC(Windows)
→ArduinoIDE, Thonny, Unity, Blender, AfterEffects, Z-Suite, GIMP
・Webカメラ
・ArduinoUno
・RaspberrypiePiPico
・ILI9341ディスプレイ(2.8inch)
・SDカード
・LED24リング
・RFIDリーダー(125KHz,Grove), 読み取り用カード
・ベースシールド
・330kΩ抵抗器
・コンデンサー(50V 470UF)
・ロジックレベル変換モジュール(MM-TXS01)
・はんだごて
・ジャンパーワイヤー
・3Dプリンター(zortrax m200 plus,ゼミ室所有)
・グルーガン
・カラービニール
・リース型発泡スチロール
・カバンテープ 等
📌スケジュール
<11月末>
秋葉原でArduinoセットを購入, LED光らせたりして遊ぶ
⇩
<12月上旬>
ディスプレイ文字表示やRFIDリーダー,LEDリングを試す
⇩
<12月下旬>
それぞれ個別で動作させていた配線・コードを統合し始める
⇩
<1月上旬>
3Dプリンターで筐体制作, Unityも準備し始める
⇩
<1月中旬>
Unityのシーンを制作, 全体調整, 吊り下げ物とポスター制作
⇓⇓⇓
本番 展示
💾内部動作
①RFIDリーダーでカードが読み取られる
②LEDリングが光ると同時にラズパイPicoとUnityがそのRFIDを受信
③Unityのシーン変更, ILI9341ディスプレイにテキスト表示
④ベース画面に戻る
ArduinoIDE:ArduinoUnoに繋げてるLEDリングとRFIDリーダーの動作
Thonny:Raspberrypie Pi Picoに繋げてるILI9341ディスプレイの動作
🛠️苦労したところなど
ILI9341(2.8inch)の取り扱い
・ArduinoUnoと繋げても上手く動かなくてどうしてだろうと思ったら、これは3.3VなのにArduinoUnoは5Vだから、ロジック変換モジュールを使ったり、とにかく配線が複雑になりそうだった。
→ロジック変換モジュールははんだづけしないといけなくて、はんだづけの経験が中学時代しかないから避けたかったけど、仕方なかったのではんだづけしました。
・ロジック変換したとしても描画速度が微妙なのかな?となり、試行錯誤しているうちにRaspberryPIPicoを使って制御することにした。
なので、ArduinoUnoでも本当は全然接続できると思う。
・画像表示したかったので、内蔵SDカードスロットを使って画像描画を行った。
→展示中、特に不調で何度も接続不良になった。はんだづけちゃんとしても治らなかった。配線か内部に問題があるかもしれない。
正直、RaspberryPiPico内に画像データを保存すれば良かった気がしてる…
内蔵SDカードスロットを使うために裏面のSDカード用のピンもはんだづけする必要性があった。
画像描画の速度が結構遅くてびっくりした。ArduinoIDEのサンプルコードのグラフィックテストはすごく早かったので、画像描画が遅くなるのは仕方ないのだと思う。
・読み込む画像の用意
jpg画像をbmp画像(rgb565)に変換→SDカードにセットします。
①GIMPで画像を開く
②「画像の拡大・縮小」で320×240に変更
③SDカードに保存 ("/sd/○○○○.bmp")
→16bit (R5 G6 B5)を選択
・日本語テキスト表示の準備
日本語フォント(○○.ttf)をtxtファイルに変換
使用する文字だけ変換して、SDカード(sd\fonts)に保存します。
・配線図
配線すごく苦労したので是非参考にしてもらえると嬉しいです。おそらくこれで動くと思います。

LEDリング
・はんだづけしないと使えないタイプのLEDリングなので、はんだづけしないといけなかった。
・はんだづけ不安過ぎて、YouTubeで見た動画のまんまにはんだづけしました⇩
RFIDリーダー

https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-0GKE
125kHzのRFIDリーダーなので、アマゾン等で対応のカードを買うときは注意
基本的にArduinoネット文献で出ているRFIDはRC522のことが多いと思いますが、それとは周波数が違うみたいです。
ただ、このRFIDリーダーは配線がめっちゃ楽です。
ベースシールドのD2にケーブル一本で繋げればいいだけです!
でもGrove用のケーブルと、ベースシールドを買わないといけません…。
最初からRFIDリーダーを使おうと思っていて全然Arduinoとかよく分かってない状態で秋葉原に行き、秋月電子の店員さんに作りたいものの概要を伝えて教えてもらって、
ベースシールドと、このRFIDリーダー(+対応のRFIDタグ)を買うといいよと教えてもらいました。
その他にも秋葉原の店員さんにはお世話になりました。本当にありがとうございました!
Arduino→RaspberryPiPicoのシリアル通信

ArduinoUnoは5V、RaspberryPiPicoは3.3Vなので、ロジック変換モジュールをかませた方が安全です。
3Dプリンターで筐体作成

ゼミ室にあった「zortrax m200 plus」という3Dプリンターで筐体を作成しました。
①Blenderでモデル作成
厚みもこの時点でつけるので、ソリッド化で2mmつけました。

②Z-SUITEに読み込み
縮尺がおかしくなることが多いので、Blender 側で設定や縮尺を変えます。
ミリメーターで0.001?設定だったと思います

かなりミリ単位まで正確に印刷してくれます!すごい
ArduinoUno→Unityの通信
シリアル通信でRFIDタグを送信します。UnityのアセットにUduinoというものもあったのですが、直接シリアル通信した方が簡単でした。
でもUSBポートにさすところが変わったりするとCOM○○(ポート番号)が変わるので、コードの設定に合わなくなって大変でした。
それと、シリアル通信をしてるときはシリアルモニタを開くと動かなくなるので注意!
いろいろ量が多いので、後で追記とかもするかもしれません
一旦ここまでにしようと思います…!
ここまで読んでいただき本当にありがとうございました🙇♀️