[Module]HC-05(06)Bluetoothを選択しますが、HC-5(06)Bluetoothモジュールは技適製品でありません。代替品にRN-42 Bluetooth無線モジュール技適製品を使いました。
●参考サイトhiramine.com:【https://www.hiramine.com/physicalcomputing/arduino/bluetooth_rn42.html】
●同ブログ関連記事:【RemoteXY使い方】【落下回避ロボットカー Arduino VL53 】
動画
RN-42 Bluetooth無線モジュール
販売元:秋月電子通商【https://akizukidenshi.com/catalog/g/g108690/】●RN-42Bluetoothバージョン2.0、1.2、1.1と下位互換
(HC-05(06)Bluetooth バージョン2.0)
●技適製品
通信ボーレートをRemoteXY SERIAL_SPEED 9600に合わせる
抵抗3.3KΩをIO7とVDD(3.3V)に接続する。(115200 → 9600bps)
【Properties】【Configuration】設定変更
[Connection]Bluetooth
[Board]Arduino Nano
[Module]HC-05(06)Bluetooth
【Apply】実行
【Button】をスマホ画面に貼付け形・色・文字を入力
作成したら。
button_1 【G】
button_2 【S】
button_3 【B】
button_4 【R】
button_5 【L】
【Get source code】実行
コードをArduino IDE エディタ画面に貼付てスケッチを行う。
回路図
プログラム
// RemoteXY select connection mode and include library
#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>
// RemoteXY connection settings
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600
// RemoteXY configurate
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = // 60 bytes
{ 255,5,0,0,0,53,0,16,138,1,1,1,22,6,20,18,177,31,71,0,
1,1,22,28,20,18,176,31,83,0,1,1,22,50,20,20,177,31,66,0,
1,1,1,28,19,18,177,31,76,0,1,1,44,28,18,18,177,31,82,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_5; // =1 if button pressed, else =0
uint8_t button_4; // =1 if button pressed, else =0
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
const int motorR2 = 4; //
const int motorR1 = 5; //
const int motorRp = 6; //
const int motorL2 = 7; //
const int motorL1 = 8; //
const int motorLp = 9; //
const int STBY = 10;
int dist;
void Go() {
digitalWrite( motorLp, HIGH );
digitalWrite( motorL1, HIGH );
digitalWrite( motorL2, LOW );
digitalWrite( motorRp, HIGH );
digitalWrite( motorR1, HIGH );
digitalWrite( motorR2, LOW );
}
void Back(){
digitalWrite( motorLp, HIGH );
digitalWrite( motorL1, LOW );
digitalWrite( motorL2, HIGH );
digitalWrite( motorRp, HIGH );
digitalWrite( motorR1, LOW );
digitalWrite( motorR2, HIGH );
}
void Stop(){
digitalWrite( motorLp, LOW );
digitalWrite( motorRp, LOW );
}
void Right(){
digitalWrite( motorLp, HIGH );
digitalWrite( motorL1, HIGH );
digitalWrite( motorL2, LOW );
digitalWrite( motorRp, HIGH );
digitalWrite( motorR1, LOW );
digitalWrite( motorR2, HIGH );
}
void Left(){
digitalWrite( motorRp, HIGH );
digitalWrite( motorR1, HIGH );
digitalWrite( motorR2, LOW );
digitalWrite( motorLp, HIGH );
digitalWrite( motorL1, LOW );
digitalWrite( motorL2, HIGH );
}
void setup()
{
RemoteXY_Init ();
pinMode( motorL1, OUTPUT );
pinMode( motorL2, OUTPUT );
pinMode( motorLp, OUTPUT );
pinMode( motorR1, OUTPUT );
pinMode( motorR2, OUTPUT );
pinMode( motorRp, OUTPUT );
pinMode( STBY, OUTPUT );
digitalWrite( motorL1, LOW );
digitalWrite( motorL2, LOW );
digitalWrite( motorLp, LOW );
digitalWrite( motorR1, LOW );
digitalWrite( motorR2, LOW );
digitalWrite( motorRp, LOW );
digitalWrite( STBY, HIGH );
}
void loop()
{
RemoteXY_Handler ();
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 件のコメント:
コメントを投稿