●ESP32NodeMCU開発ボード
(技適製品)
●同ブログ関連記事:【RemoteXY使い方】【障害物回避ロボットカー ESP32】
動画
【Properties】【Configuration】設定変更
[Connection]WiFi access point
[Board]ESP32 based board
[Module]WiFi on chip
【Apply】実行
【Button】をスマホ画面に貼付け形・色・文字を入力
作成したら。
button_1 【G】
button_2 【S】
button_3 【B】
button_4 【R】
button_5 【L】
【Get source code】実行
コードをArduino IDE エディタ画面に貼付てスケッチを行う。
Arduino IDE
プログラム
// RemoteXY select connection mode and include library
#define REMOTEXY_MODE__ESP32CORE_WIFI_POINT
#include <WiFi.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[] = // 60 bytes
{ 255,5,0,0,0,53,0,16,20,1,1,1,14,5,37,21,5,24,71,0,
1,1,20,30,22,31,5,24,83,0,1,1,14,65,37,21,5,24,66,0,
1,1,44,30,17,31,5,24,82,0,1,1,1,30,17,31,5,24,76,0 };
// this structure defines all the variables and events of your control interface
struct {
// input variables
uint8_t button_1; // =1 if button pressed, else =0
uint8_t button_2; // =1 if button pressed, else =0
uint8_t button_3; // =1 if button pressed, else =0
uint8_t button_4; // =1 if button pressed, else =0
uint8_t button_5; // =1 if button pressed, else =0
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
#define LM1Pin 33 // AIN1 左モーター DRV8835
#define LM2Pin 32 // AIN2 左モーター
#define RM1Pin 26 // BIN1 右モーター
#define RM2Pin 25 // BIN2 右モーター
int PWM=250; //モーター回転数制御
void Go(){
ledcWrite(0, PWM);
ledcWrite(1, 0);
ledcWrite(2, PWM);
ledcWrite(3, 0);
}
void Back(){
ledcWrite(0, 0);
ledcWrite(1, PWM);
ledcWrite(2, 0);
ledcWrite(3, PWM);
}
void Right(){
ledcWrite(0, PWM);
ledcWrite(1, 0);
ledcWrite(2, 0);
ledcWrite(3, PWM);
}
void Left(){
ledcWrite(0, 0);
ledcWrite(1, PWM);
ledcWrite(2, PWM);
ledcWrite(3, 0);
}
void Stop(){
ledcWrite(0, 0);
ledcWrite(1, 0);
ledcWrite(2, 0);
ledcWrite(3, 0);
}
void setup()
{
RemoteXY_Init ();
// TODO you setup code
pinMode(LM1Pin, OUTPUT); // AIN1
pinMode(LM2Pin, OUTPUT); // AIN2
pinMode(RM1Pin, OUTPUT); // BIN1
pinMode(RM2Pin, OUTPUT); // BIN2
ledcSetup(0,490,8); // モータ 0CH 490Hz 8bit=0-255(PWM)
ledcSetup(1,490,8);
ledcSetup(2,490,8);
ledcSetup(3,490,8);
ledcAttachPin(LM1Pin, 0); // モータ 0CH
ledcAttachPin(LM2Pin, 1);
ledcAttachPin(RM1Pin, 2);
ledcAttachPin(RM2Pin, 3);
Stop();
delay(100);
}
void loop()
{
RemoteXY_Handler ();
// TODO you loop code
// use the RemoteXY structure for data transfer
// do not call delay()
if(RemoteXY.button_1 == 1)Go();
if(RemoteXY.button_2 == 1)Stop();
if(RemoteXY.button_3 == 1)Back();
if(RemoteXY.button_4 == 1)Right();
if(RemoteXY.button_5 == 1)Left();
}
0 件のコメント:
コメントを投稿