2024年6月1日土曜日

ドローン製作③ ESP8266コントローラ 組立

フレーム・プロペラ・0615 モーター (JJRC H36 Eachine E010適用)にESP8266コントローラを取付けて、浮上テストを行いましたが、どこに飛んでいくか分からない状態です。

総重量 20.46g 



動画

回路図



ESP-WROOM-02D+ピッチ変換基板 

●Wi-Fiモジュール ESP-WROOM-02D 技適製品 秋月電子通商【https://akizukidenshi.com/catalog/g/g113289/
●ESP-WROOM-02 ピッチ変換基板 コンパクト
秋月電子通商から引用
●仕様
・シリーズ:ESP8266
・電源電圧min.:2.7V
・電源電圧max.:3.6V
・コア:Xtensa LX6
・コアサイズ:32bit
・クロック:160MHz
・ROM:2MB
・プログラムメモリ[B]:2MB
・GPIO:11
・UART/USART:1
・I2C:0
・SPI:1



SI2302A






基板配線


ESP-WROOM-02Dに部品を直接取付ることを検討しましたがピッチが狭いので諦めました。
●MOSFET-SI2302A(表示面下側)
[G][S]チップ抵抗1KΩ
[D]モーター
●後日、落下衝撃で端子が変形した際、端子にハンダしたチップ抵抗10kΩが割れたので金属皮膜抵抗に3個入れ替えました。




ESP8266コントローラ
ヘッダーピン
 ■電源供給(現在はピン切断して、電源ケーブルをハンダ付)
 ■I2Cシリアル伝送
 ■プログラム書込み切替
●ドローン用LIPO バッテリー3.7V(250mA)満充電(4.2V)を直接ESP8266接続して使用しました。
※ESP8266規格を超える使用
・電源電圧min.:2.7V max.:3.6V
●浮上実験時、宙返り落下し畳に端子が当り端子が変形しました。(現在変形したまま使用)



フレームにコントローラ取付
フレームネジ穴2か所に基板のガイドピンを挿入して輪ゴムで固定する。(現在、LED側ガイドピンを削除して、モータフレーム4か所に切込みを入れて基板を固定)








バッテリー・充電器
●バッテリー


 HS210 3.7V 250mAh








プログラム書込み
パソコンUSBポートのFT232RL USBシリアル変換とESP8266のTXD RXD VCC GND接続して、プログラム書込みを行います。●FT232RL
ショートピン➨3.3V側
●ESP8266
IO0➨GNDにショート(書込み)





RemoteXYアプリ
●同ブログ関連記事:【RemoteXY使い方
【Properties】【Configuration】設定変更
[Connection]WiFi access point
[Board]ESP8266 based board
[Module]WiFi on chip
【Apply】実行
【Slider】をスマホ画面に貼付、大きさ・色等を変更
コントロール配置は5個以内)
【Get source code】実行
コードをArduino IDE エディタ画面に貼付てスケッチを行う。





























モーター回転方向
0615モーター
●CWモーター(時計回転)
赤⊕ 青⊖
M1 M3
●CCWモーター(反時計回転)
白⊕ 黒⊖
M2 M4


モーター位置



RemoteXYモータ操作
RemoteXY によるモータ個別操作
●スライダー
M1
M2
M3
M4







Arduino IDE
























プログラム
//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// you can enable debug logging to Serial at 115200
//#define REMOTEXY__DEBUGLOG  

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT
#include <ESP8266WiFi.h>

#include <RemoteXY.h>

// RemoteXY connection settings 
#define REMOTEXY_WIFI_SSID "RemoteXY"
#define REMOTEXY_WIFI_PASSWORD "12345678"
#define REMOTEXY_SERVER_PORT 6377


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =   // 42 bytes
  { 255,4,0,0,0,35,0,16,124,1,4,128,4,13,54,12,190,8,4,128,
  4,30,54,12,190,8,4,128,4,46,54,12,190,8,4,128,4,64,54,12,
  190,8 };
  
// this structure defines all the variables and events of your control interface 
struct {

    // input variables
  int8_t slider_1; // =0..100 slider position 
  int8_t slider_2; // =0..100 slider position 
  int8_t slider_3; // =0..100 slider position 
  int8_t slider_4; // =0..100 slider position 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define M1 12
#define M2 13
#define M3 14
#define M4 15

#define PWN_FREQ 1000 // PWM frequency: 1000Hz(1kHz)
#define PWN_RANGE 100 // PWN range: 100

void setup() 
{
  RemoteXY_Init (); 
  pinMode(M1,OUTPUT);
  pinMode(M2,OUTPUT); 
  pinMode(M3,OUTPUT);
  pinMode(M4,OUTPUT);
  
  analogWriteFreq(PWN_FREQ);
  analogWriteRange(PWN_RANGE);
}

void loop() 
  RemoteXY_Handler ();
  delay(100);
  int S1 = RemoteXY.slider_1; 
  int S2 = RemoteXY.slider_2; 
  int S3 = RemoteXY.slider_3; 
  int S4 = RemoteXY.slider_4; 
  analogWrite(M1, S1);
  analogWrite(M2, S2);
  analogWrite(M3, S3);
  analogWrite(M4, S4);
  
}


0 件のコメント:

コメントを投稿

Raspberry Pi Donkey Car スマートカー

  2020年に製作したDonkey Car スマートカー について記事にしました。 Donkey CarはRaspberry Pi のカメラからコースを ディープラーニングさせ自動走行を行います。(動画は白線上を自動走行)   動画