キイロイトリらぼ

ぬいぐるみと一緒に生きていきます

ESP32でラジコンカーを作る

概要

 ESP32でラジコンカーを作成した.

Bluetooth通信でスマホからコントロールできるようにした.

超音波センサーで壁際に近づいたら止まるようにもした.

基本的には,基本的に『ESP32&Arduino 電子工作 プログラミング入門』のロボットカーの章を参考にしている.サーボモータの機構などは,再現できなかったので,2つのモーターで左右の制御を実現できるようにはした.

結論

簡単にラジコンカーができた.すごい.

実行したこと

実行環境

【ホストPC】

  • windows10 64bit Home
  • VSCode - 1.45.1
  • PlatformIO(VScodeにインストール済み)

【ターゲットボード】

  • ESP32-WROOM-32 開発ボード

【センサ類】

  • TB6612FNG

http://akizukidenshi.com/catalog/g/gK-11219/

  • HY-SRF05

 【ハード】

  • ユニバーサルプレート 
タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)
 
  • トラック&ホイールセット
タミヤ 楽しい工作シリーズ No.100 トラック&ホイールセット (70100)

タミヤ 楽しい工作シリーズ No.100 トラック&ホイールセット (70100)

  • 発売日: 2009/06/23
  • メディア: おもちゃ&ホビー
 
  • M3スペーサー

 http://akizukidenshi.com/catalog/g/gP-01864/

  • ダブルギヤボックス  

 

  • モバイルバッテリー
  • 電池ボックス
  • 単三電池

手順 

ハードウェア準備

 ラジコンカーはユニバーサルプレートとトラックホイールセットを使って組み上げる.

ブレッドボードを乗せるために,ユニバーサルプレートの上に更に,ユニバーサルプレートを乗せる.今回は,ユニバーサルプレートを2枚組み合わせて広くしている.

ブレッドボードにはESP32をベースに,モータードライバと超音波センサを載せている.超音波センサはラジコンカーの進行方向に向くようにしている.

一段上のユニバーサルプレートにブレッドボードとモバイルバッテリーを載せられるように,センサの配置は少し工夫が必要だった.

モータードライバ用の電池ボックスは偶然上と下のユニバーサルプレートの間の空間に入ったので良かった.

 

用意したスペーサーでギリギリ上段のユニバーサルプレートを用意できたが,もう少し長めのユニバーサルプレートを用意すればよかった.

f:id:gijin94yobu:20200531204120j:plain

f:id:gijin94yobu:20200531220344j:plain
ソフトウェア準備

プログラムは『ESP32&Arduino 電子工作 プログラミング入門』のロボットカーの章をベースにしている.

本ではサーボモータに超音波センサーをつけているが,今回は超音波センサーを固定しているので,現在はただ単に壁際に近づいてるかを判断する機能のみの役割となっている.

github.com

 

Bluetooth通信には本にも紹介のある『Arduino bluetooth controller』アプリを使った.

play.google.com/store/apps/details?id=com.giumig.apps.bluetoothserialmonitor&hl=ja

構成

 

f:id:gijin94yobu:20200531225218p:plain

 

あとがき

 ぬいぐるみをラジコンカーに乗せると楽しい.

コントローラーがないと上手く制御できないので,壁を認識したら,自動で回転したり,しばらく,動物のようにウロウロ動くようにしてルンバみたいにしてみたい.

ぬいぐるみを乗せるには椅子とかいい感じに改良していきたい.

また,残念なことにこのプログラムに加えてOTA機能をつけてみたら,Flash容量が104%になってしまい,つけられなかった.ラジコンカーの改良はわざわざパソコンに持っていってシリアルケーブルにつなぐのが面倒なので,こういうときにこそOTAで離れたところでもプログラムアップデートをと思ったのだが...

実現するには,Flash容量の多いマイコンにするしかないみたいだ.ラズベリーパイでもできると思ったが,ラズベリーパイは普段のパソコンを弄りながら,開発できないから面倒なのだ.

f:id:gijin94yobu:20200531203801j:plain

f:id:gijin94yobu:20200531203814j:plain

参考

  • ESP32&Arduino 電子工作 プログラミング入門
ESP32&Arduino 電子工作 プログラミング入門

ESP32&Arduino 電子工作 プログラミング入門