2023年2月1日水曜日

RemoteXY ロボットアーム制御

ロボットアーム




















サーボモーター3軸(MG996R)
【Joystick】サーボモータ左右上下コントロール
【Slider】アーム開閉コントロール

回路図


各サーボケーブル(橙色)とESP32 GPIO12.13.14をそれぞれ接続、各サーボケーブル(赤)とスイッチング電源(+5V)を接続、各サーボケーブル(黒)・ESP32(グランド)とスイッチング電源(ー)を接続する。(ESP32電源はUSBより供給)





【NodeMCU-32S】下記プログラムを書いて実行すればRemoteXYアプリによりSlider・Joystick画面表示されてサーボモータを制御することが出来ます。
同ブログ:【RemoteXY使い方


NodeMCU-32Sプログラム

  1. /*
  2.    -- New project --
  3.    
  4.    This source code of graphical user interface
  5.    has been generated automatically by RemoteXY editor.
  6.    To compile this code using RemoteXY library 3.1.8 or later version
  7.    download by link http://remotexy.com/en/library/
  8.    To connect using RemoteXY mobile app by link http://remotexy.com/en/download/
  9.      - for ANDROID 4.11.1 or later version;
  10.      - for iOS 1.9.1 or later version;
  11.     
  12.    This source code is free software; you can redistribute it and/or
  13.    modify it under the terms of the GNU Lesser General Public
  14.    License as published by the Free Software Foundation; either
  15.    version 2.1 of the License, or (at your option) any later version.
  16. */
  17. //////////////////////////////////////////////
  18. // RemoteXY include library //
  19. //////////////////////////////////////////////
  20. // RemoteXY select connection mode and include library
  21. #define REMOTEXY_MODE__ESP32CORE_WIFI_POINT
  22. #include <WiFi.h>
  23. #include <RemoteXY.h>
  24. // RemoteXY connection settings
  25. #define REMOTEXY_WIFI_SSID "RemoteXY"
  26. #define REMOTEXY_WIFI_PASSWORD "12345678"
  27. #define REMOTEXY_SERVER_PORT 6377
  28. // RemoteXY configurate
  29. #pragma pack(push, 1)
  30. uint8_t RemoteXY_CONF[] = // 27 bytes
  31.   { 255,3,0,0,0,20,0,16,31,1,4,32,22,4,12,43,2,50,5,0,
  32.   7,47,46,46,2,26,31 };
  33.   
  34. // this structure defines all the variables and events of your control interface
  35. struct {
  36.     // input variables
  37.   int8_t slider_1; // =-100..100 slider position
  38.   int8_t joystick_1_x; // from -100 to 100
  39.   int8_t joystick_1_y; // from -100 to 100
  40.     // other variable
  41.   uint8_t connect_flag; // =1 if wire connected, else =0
  42. } RemoteXY;
  43. #pragma pack(pop)
  44. /////////////////////////////////////////////
  45. // END RemoteXY include //
  46. /////////////////////////////////////////////
  47. #define slider_1Pin 12 //使用するピン番号
  48. #define joystick_1_xPin 13
  49. #define joystick_1_yPin 14
  50. void setup()
  51. {
  52.   RemoteXY_Init ();
  53.   
  54.   
  55.   // TODO you setup code
  56.   pinMode(slider_1Pin, OUTPUT); // 出力ピン
  57.   pinMode(joystick_1_xPin, OUTPUT);
  58.   pinMode(joystick_1_yPin, OUTPUT);
  59.    
  60.   ledcSetup(0, 50, 10); //0ch 50Hz 10bit=0-1023(PWM)
  61.   ledcSetup(1, 50, 10);
  62.   ledcSetup(2, 50, 10);
  63.   ledcAttachPin(slider_1Pin, 0); //slider_1Pin  0ch
  64.   ledcAttachPin(joystick_1_xPin, 1); //joystick_1_xPin 1ch
  65.   ledcAttachPin(joystick_1_yPin, 2); //joystick_1_yPin 2ch
  66. }
  67. void loop()
  68. {
  69.   RemoteXY_Handler ();
  70.   
  71.   
  72.   // TODO you loop code
  73.   // use the RemoteXY structure for data transfer
  74.   // do not call delay()
  75.    int s1 = RemoteXY.slider_1;
  76.    s1 = map(s1, 100, -100, 40, 110);
  77.    ledcWrite(0, s1); //0ch ,PWM
  78.    
  79.    int jx1 = RemoteXY.joystick_1_x;
  80.    jx1 = map(jx1, 100, -100, 40, 110);
  81.    ledcWrite(1, jx1); //1ch ,PWM
  82.    
  83.    int jy1 = RemoteXY.joystick_1_y;
  84.    jy1 = map(jy1, 100, -100, 40, 110);
  85.    ledcWrite(2, jy1); //2ch ,PWM
  86.    
  87. }


0 件のコメント:

コメントを投稿

Raspberry Pi Donkey Car スマートカー

  2020年に製作したDonkey Car スマートカー について記事にしました。 Donkey CarはRaspberry Pi のカメラからコースを ディープラーニングさせ自動走行を行います。(動画は白線上を自動走行)   動画