プリメイドai用WiFiブリッジを作ったよ プリメイドaiをWiFi化


プリメイドai用にWiFiブリッジを作りました。

プリメイドaiは、Bluetooth接続で動作するようになっていますが、今回、ESP-32を使用して
WiFiから使用できるようにしました。
本ボードは、頭部のボードと4PinのZHコネクタで接続となり、ポン付けできます。


カバーも問題なし

回路図

以下のコードを使用しました。

・ESP32-Serial-Bridge

config.hを変更します
(RXとTXを間違えたからですが・・・)

変更前

#define UART_BAUD0 19200            // Baudrate UART0
#define SERIAL_PARAM0 SERIAL_8N1    // Data/Parity/Stop UART0
#define SERIAL0_RXPIN 21            // receive Pin UART0
#define SERIAL0_TXPIN 1             // transmit Pin UART0
#define SERIAL0_TCP_PORT 8880       // Wifi Port UART0

変更後

#define UART_BAUD0 115200            // Baudrate UART0
#define SERIAL_PARAM0 SERIAL_8N1    // Data/Parity/Stop UART0
#define SERIAL0_RXPIN 17            // receive Pin UART0
#define SERIAL0_TXPIN 16            // transmit Pin UART0
#define SERIAL0_TCP_PORT 8880       // Wifi Port UART0

プログラムの書き方を念のため追記しておきます。
これは、M5Stackをはじめよう Arduino編からの引用です。
https://qiita.com/usashirou/items/3d5f03b0de320cf0ee57

まずは、Arduinoをインストールします。
https://www.arduino.cc/en/Main/Software
Arduinoをダウンロードしましょう

ファイル⇒環境設定を開きます

以下のアドレスをボードマネージャーのURLに入力します。
https://dl.espressif.com/dl/package_esp32_index.json

ツール→ボード(???ここは気にしないでね)→ボードマネージャーをクリックします。

「ESP32」と入力し、インストールします。

ボードをESP32にします
(ここで選択するESP32は、どれでもいいわけではありませんが、ESP32Dev Moduleならば、問題ないようです)

次に、上記のGithubのページからファイルをダウンロードします。
・ESP32-Serial-Bridge
https://github.com/AlphaLima/ESP32-Serial-Bridge
Clone or Downloadをクリックし
Download ZIPを選択します

ダウンロードしたファイルを解凍し、実行します。
すると、こんな画面が出てきます。

OKを押した場合、必ずConfig.hを同じフォルダに入れるようにしてください。
ArduinoIDEの仕様により、プロジェクト毎にフォルダを作るようになりました。
同じフォルダの中に、conhig.hが入っていないとエラーが出てしまいます。

プログラムを修正したら、マイコンボードに書き込みます。

書き込む際は、ボードのRX,TXにUSBシリアルなどを使用して接続します。
注意:RXにはRXポートを
TXにはTXポートを接続します。
注意事項として3V電源については要注意です。
突入電流として800mA程度必要なため、ボードによっては使用できないケースがあります(私はこのために数か月無駄にしています)
今回であれば、お勧めできませんが、プリメイドaの4ピンコネクタを接続すれば、電源が確保できます。

TeraTermで接続してみます。
ビットレートは115200にしましょう

普通に起動するとこんな画面になります。(Resetボタンを押して確認してください)
変な文字列が出てしまいましたね・・・

書き込みの際は、PSボタンを押しながらResetボタンを押します。
Resetボタンを先に離すことでDownloadModeになります。
この状態にすることで書き込みが可能になります。
TeraTermで見るとこんな表示になります。
ちなみに、シリアル接続中は書き込みできないので、必ず切断するようにしてください。

ArduinoIDEで書き込みを行う前に、必ず、上記ボタン操作をするようにしてください。
(そうしないと、書き込みできません)

使用には、VCPDriverなどが必要になります。
まずは、無線で接続しましょう。

config.hの以下項目を変更した方が便利かと思います。

const char *ssid = "LK8000";  // You will connect your phone to this Access Point
const char *pw = "Flightcomputer"; // and this is the password

ついでのAPモードも変更しても良いと思います。

WiFi.mode(WIFI_AP);

無線で接続出来たら
USRVCOMで接続します。
今回は、192.168.4.1の8880になっています。(私は8881も同じ設定になっています)
https://www.usriot.com/support/downloads/usr-vcom-virtual-serial-software.html

プリメイドaiとはComHexを使用します。
@kiruroboさんに感謝ですね。
https://drive.google.com/file/d/1Oy_G2rJxmCQNNGJbNXCuu_6m60Sld17X/view

電圧不足になるとこう表示されます。

WIndowsで普通に使う場合は、こちらを参考に

プリメイドAI(廉価版)をWindows10から動かす