フレーム・プロペラ・0615 モーター (JJRC H36 Eachine E010適用)をSI2302A MOSFETドライバーによるモーター回転制御をテストしました。
参考
Make A Quadcopter Using Esp8266【https://www.electromaker.io/project/view/make-a-quadcopter-using-esp8266-this-quadcopter-can-climb】
実験ブレッドボード
ドローン用LIPO バッテリー3.7V(250mA)をLDO電圧レギュレータ(ドロップアウト電圧:0.4V)を通してESP8266に供給するとモーター回転制御中にRemoteXYのWIFI通信が切れてしまうので、直接バッテリーをESP8266に接続してテストをしました。満充電(4.2v)はESP8266規格を超える (電源電圧 3.0-3.6V)
SI2302A MOSFET
SI2302A MOSFETをヘッダーピンにハンダ付け、ブレッドボードに差込できるようにしました。
アマゾン購入
回路図
SI2302A MOSFET規格
RemoteXYアプリ
●同ブログ関連記事:【RemoteXY使い方】
【Properties】【Configuration】設定変更
[Connection]WiFi access point
[Board]ESP8266 based board
[Module]WiFi on chip
【Apply】実行
【Slider】をスマホ画面に貼付け、大きさ・色等を変更
(コントロール配置は5個以内)
【Get source code】実行
コードをArduino IDE エディタ画面に貼付てスケッチを行う。
プログラム書込み
パソコン Arduino IDE からFT232RL USBシリアル変換を接続してESP-WROOM-02にプログラム書込みを行います。
■FT232RL
ショートピン➨3.3V側
■ESP8266
IO0➨GNDにショート(書込み)
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 件のコメント:
コメントを投稿