スマホアプリ【RemoteXY】を使ってサーボモータ(MG996R)による塩ビパイプブームの回転制御テストを行いました。ジョイスティックを左右に移動するとブームを左右90度(180度)回転制御ができます。
カメラ三脚とサーボモータ取付金具をピンクの専用ナットで固定。
ステアリングギアディスク2個をサーボモータに取付ます。
塩ビパイプ継手(13x3)内径18㎜を18㎜ドリルで内側の段を除去して、ブームの塩ビパイプ(13)1メータ挿入する。
塩ビパイプ(20)に18㎜穴を空けて
塩ビパイプ(13)ブームを取付ける。
【NodeMCU-32S】下記プログラムを書いて実行すれば【RemoteXY】アプリによりジョイスティック画面表示されてブームを制御することが出来ます。
同ブログ:【RemoteXY使い方】
回路図
ジョイスティックのX軸のみ使用。
ESP32 USBにモバイル電池接続して電源供給。
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[] = // 19 bytes
- { 255,2,0,0,0,12,0,16,31,1,5,0,1,14,61,61,2,26,31 };
-
- // this structure defines all the variables and events of your control interface
- struct {
- // input variables
- 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 joystick_1_xPin 13
- #define joystick_1_yPin 14
- int jx = 80;
- int jy = 80;
- void setup()
- {
- RemoteXY_Init ();
- // TODO you setup code
- pinMode(joystick_1_xPin, OUTPUT);
- pinMode(joystick_1_yPin, OUTPUT);
- ledcSetup(1, 50, 10); //0ch 50Hz 10bit=0-1023(PWM)
- ledcSetup(2, 50, 10);
- 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 jx1 = RemoteXY.joystick_1_x;
- jx1 = map(jx1, 100, -100, 30, 120);
- if( jx1 > jx ) {
- for (jx; jx != jx1 ; jx++){
- ledcWrite(1, jx); //1ch ,PWM
- delay(100);
- }
- }
- else if( jx1 < jx ){
- for (jx; jx != jx1 ; jx--){
- ledcWrite(1, jx);
- delay(100);
- }
- }
-
- int jy1 = RemoteXY.joystick_1_y;
- jy1 = map(jy1, 100, -100, 50, 100);
- if( jy1 > jy ) {
- for (jy; jy != jy1 ; jy++){
- ledcWrite(2, jy); //2ch ,PWM
- delay(100);
- }
- }
- else if( jy1 < jy ){
- for (jy; jy != jy1 ; jy--){
- ledcWrite(2, jy);
- delay(100);
- }
- }
- }
0 件のコメント:
コメントを投稿