DIY-ROBOT(ラズパイPicoを使った自作ロボット)

ラズパイPicoを搭載したロボットです。

今、そういうロボットは沢山売られているのですが、オープンソースである物が少ないので、自分で作ってみることにしました。

・DCモーターを2つ搭載。

・カラーセンサー/反射光センサーを搭載。

・スピーカー搭載。

・TFTカラー液晶搭載。

・単三型電池3本で動く。

、、、主な機能はこれだけです。GPIOがまだ7つ余っているので、あとで機能は増やせます。

回路図とプログラムはGitHubで公開中です。

github.com

 

www.youtube.com

 

プログラムはArduino-PicoとMicroPythonを用意してみました。

MicroPythonはすぐに実行できるのが魅力です。デバッグ向きですね。

Arduino-Picoの方はSDカードに対応していますが、使い道が思いつきません。上の写真はSDカードに「Hello!」という文字を書き込んでいる様子です。

 

NeoPixelのカラーLED(40円)とフォトトランジスタ(20円)を組み合わせて、60円でカラーセンサーを作ってみました。丸めた厚紙でカラーLEDとフォトトランジスタをカバーします。R・G・Bの光を3回当てて色を特定する仕組みなので、応答性が良くないのが難点です。

Arduino-PicoでNeoPixelを制御するには、「Adafruit NeoPixel library」を使います。自分の場合、コンパイル時にエラーが出てしまったのですが、バージョン1.15.0にすると解決できました。

 

カラーLEDを白色に光らせて測定することを反射光センサーと呼んでます。ライントレース時に使います。

外乱光の対策は何もやっていません。本当は赤外線にするとか、変調をかけるべきだと思います。

モータードライバは秋月の200円のやつを使ってます。過電流の検出機能がたまに働いて応答不能になってしまいます。回路にSTBYのリセット機能を入れた方が良かったかも(現状はHIGHに固定してます)。

ギヤボックスがガリガリと妙にうるさいのですが、これは油を挿したら静かになるのでしょうか。

 

主な部品と値段。タミヤ系の部品以外は、ほぼ全て秋月で入手可能です。

3000円くらいで作れるつもりだったのですが、実際やってみると細かい出費が重なってしまって、全部で4700円くらいかかってしまいました。高い。

もっと安く作れるようにしたいです。ラズパイPicoを初代に変更するとか、ディスプレイを0.96インチOLEDに変更するとか、ギヤボックスを中国製にするとか、工夫の余地があります。

 

www.youtube.com

今回は採用しませんでしたが、レゴ マインドストームの部品が使えるかも検討してみました。NXTやEV3のモーターを動かすには電圧が足りなくて、少し回転速度が遅いです。

 

秋月の1.54インチTFT液晶の代替品(336円)

秋月で750円で売っている1.54インチTFT液晶(正しい商品名は「1.54インチ 240×240ドットカラーグラフィックTFT LCDモジュール」)に似た製品を買ってみました。欲しいのはサイズが「1.54インチ」、解像度が「240×240ピクセル」、搭載チップが「ST7789」の液晶です。Amazon.co.jpで沢山売っていますが、値段を考慮してAliExpressで探すことにします。

 

AliExpressで「st7789」で検索したら大量に出てきます。その中からセールで336円+送料無料の液晶がありました。本当にこの値段で買えるのか、、、?

確認したら希望通りのスペックだったので注文してみました。

商品名が「1-10個 1.8インチ 1.54インチ 128x160 SPI フルカラーTFT LCDディスプレイモジュール ST7735S 7789 3.3V Arduino用OLED電源代替」と滅茶苦茶に表示されていたのですが、1.8インチと1.54インチで2種類の商品を扱っているのが原因だと思います。最後の「OLED電源代替」っていうのは意味不明です。

 

「エスポ便」と書かれたクッション封筒で無事に届きました。さらにケース入りです。スポンジが入っていてカラカラしません。

商品写真だとピンヘッダが外れてたのですが、届いたものはピンヘッダがハンダ付けされていました。

 

左が秋月で買った1.54インチ液晶(750円)です。右がAliExpressで買った1.54インチ液晶(336円)です。細かいところが違いますが、画面サイズとネジ穴とピンアサインが同じです。

 

裏側。左が秋月。右がAliExpressです。搭載チップがST7789だと書かれています。

 

動作テスト。左が秋月。右がAliExpressです。カメラの都合で発色が悪いですが、実際はもっとキレイです。

どちらも同じプログラムで動きました。コネクタもそのまま挿せます。あっさり動いて驚きました。大満足です。性能は全く同じですね。違いがわかりません。

購入後に商品ページを確認したら、値段が569円+送料312円になっていました。これだったら秋月の方がお得です。

 

nicotakuya.hatenablog.com

日経ソフトウエア2026年3月号

1月23日発売の「日経ソフトウエア2026年3月号」で記事を2件書かせて頂きました。

・OpenHands CLIの特集記事。

・生成AIの連載記事。

 

OpenHandsの記事は去年の9月から準備していたのですが、どんどん仕様が変わってしまうので、スクリーンショットの撮り直しと原稿書き直しで大変でした。Ver.1.4あたりから「validation error」が出るようになってしまって、仕方なく古いバージョンで対応することにしたのですが、Ver.1.7以降は「validation error」が出なくなってます。結局、古いバージョンにする必要はありませんでした。

あと、GEMINIのAPIの無料枠が厳しくなってしまいました。

 

連載の方はローカルLLMを使って四択クイズの問題を自動的に生成するのですが、その生成するコードそのものをChatGPTで生成しています。思い通りにコードを生成してくれないので、苦労しました。

 

ローカルLLM側は"gpt-oss:20b"を使ったのですが、日本に関する知識が足りなくて、たまにトンチンカンな問題を出します。8月に雪まつり?! これはボツ画像です。

誰でもできる!AIエージェント&LLMプログラミング入門

1月7日に「誰でもできる!AIエージェント&LLMプログラミング入門」というムックが出ました。雑誌に書いた記事の再録です。自分はメガドラ用ゲームの記事などを担当しています。

日経ソフトウエア2026年1月号

21日発売の雑誌「日経ソフトウエア2026年1月号」で2件ほど記事を書かせて頂きました。

・特集記事、AIエージェント特集 使い方編。

・連載記事、生成AIでプログラムを作ろう 第3回目。

 

AIエージェントの記事ではGemini CLIを使っています。原稿を書き始めた時点のバージョンは0.7.0。書いてる途中でバージョンが上がって、スクリーンショットを撮り直しました。

 

生成AIの連載はメガドラ用のゲームの作り方を紹介しています。開発環境はSDGKです。SDGKは仕様がどんどん変わるので、そのままだすると古いコードを生成するので、大量のエラーが出てしまいます。今回はエラーが出そうな定数や関数の名前を指定して力技で解決させてます。

 

作ったROMイメージはメガドラの実機でも動きます。カートリッジ基板の作り方はGitHubで公開しています。ロムライターのプログラムはPI STARTERで作っていたのですが、もう入手が難しいので、Pythonでも動くようにしました。

 

github.com

 

(2025/11/23追記)

AIエージェントの記事の中でGemini 2.5 Proの呼び出し回数を1日5回までと書いてしまったのですが、今確認したら50回に増えていました。知らないうちに変わってしまったのですが、19日にGeimini 3が出たタイミングでしょうか?

https://ai.google.dev/gemini-api/docs/rate-limits?hl=ja