プリメイドai用にWiFiブリッジを作りました。
プリメイドaiは、Bluetooth接続で動作するようになっていますが、今回、ESP-32を使用して
WiFiから使用できるようにしました。
本ボードは、頭部のボードと4PinのZHコネクタで接続となり、ポン付けできます。
以下のコードを使用しました。
##・ESP32-Serial-Bridge
https://github.com/AlphaLima/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から動かす
https://qiita.com/arrowmeiwaracing/items/e9b88f36408c338e6b36