ロボットアーム |
サーボモーター3軸(MG996R)
【Joystick】サーボモータ左右上下コントロール
【Slider】アーム開閉コントロール
回路図
各サーボケーブル(橙色)とESP32 GPIO12.13.14をそれぞれ接続、各サーボケーブル(赤)とスイッチング電源(+5V)を接続、各サーボケーブル(黒)・ESP32(グランド)とスイッチング電源(ー)を接続する。(ESP32電源はUSBより供給)
【NodeMCU-32S】下記プログラムを書いて実行すればRemoteXYアプリによりSlider・Joystick画面表示されてサーボモータを制御することが出来ます。
同ブログ:【RemoteXY使い方】
NodeMCU-32Sプログラム
- /*
- -- New project --
-
- This source code of graphical user interface
- has been generated automatically by RemoteXY editor.
- To compile this code using RemoteXY library 3.1.8 or later version
- download by link http://remotexy.com/en/library/
- To connect using RemoteXY mobile app by link http://remotexy.com/en/download/
- - for ANDROID 4.11.1 or later version;
- - for iOS 1.9.1 or later version;
-
- This source code is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- */
- //////////////////////////////////////////////
- // RemoteXY include library //
- //////////////////////////////////////////////
- // 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[] = // 27 bytes
- { 255,3,0,0,0,20,0,16,31,1,4,32,22,4,12,43,2,50,5,0,
- 7,47,46,46,2,26,31 };
-
- // this structure defines all the variables and events of your control interface
- struct {
- // input variables
- int8_t slider_1; // =-100..100 slider position
- int8_t joystick_1_x; // from -100 to 100
- int8_t joystick_1_y; // from -100 to 100
- // other variable
- uint8_t connect_flag; // =1 if wire connected, else =0
- } RemoteXY;
- #pragma pack(pop)
- /////////////////////////////////////////////
- // END RemoteXY include //
- /////////////////////////////////////////////
- #define slider_1Pin 12 //使用するピン番号
- #define joystick_1_xPin 13
- #define joystick_1_yPin 14
- void setup()
- {
- RemoteXY_Init ();
-
-
- // TODO you setup code
- pinMode(slider_1Pin, OUTPUT); // 出力ピン
- pinMode(joystick_1_xPin, OUTPUT);
- pinMode(joystick_1_yPin, OUTPUT);
-
- ledcSetup(0, 50, 10); //0ch 50Hz 10bit=0-1023(PWM)
- ledcSetup(1, 50, 10);
- ledcSetup(2, 50, 10);
- ledcAttachPin(slider_1Pin, 0); //slider_1Pin 0ch
- ledcAttachPin(joystick_1_xPin, 1); //joystick_1_xPin 1ch
- ledcAttachPin(joystick_1_yPin, 2); //joystick_1_yPin 2ch
- }
- void loop()
- {
- RemoteXY_Handler ();
-
-
- // TODO you loop code
- // use the RemoteXY structure for data transfer
- // do not call delay()
- int s1 = RemoteXY.slider_1;
- s1 = map(s1, 100, -100, 40, 110);
- ledcWrite(0, s1); //0ch ,PWM
-
- int jx1 = RemoteXY.joystick_1_x;
- jx1 = map(jx1, 100, -100, 40, 110);
- ledcWrite(1, jx1); //1ch ,PWM
-
- int jy1 = RemoteXY.joystick_1_y;
- jy1 = map(jy1, 100, -100, 40, 110);
- ledcWrite(2, jy1); //2ch ,PWM
-
- }
0 件のコメント:
コメントを投稿