Как вы знаете
сделал я
самодельный ЧПУ фрезерный станок. Входе обучения работы на нем я
делаю различные поделки и механизмы.
Нашел в интернете исходные файлы
(MeArmV03.svg) для
манипулятора и решил вырезать его на
ЧПУ станке.
Я думал что
с первого раза у меня ни чего не получиться.
Так как это достаточно сложная
работа
для ЧПУ
и очень много мелких деталей.
ЧПУ резал
больше часа и вырезал все детали. Провел
небольшую доработку с помощью надфиля.
Собрал на винтики манипулятор. Кстати
в интернете
много инструкций, от текстовых
до видео
по сборке манипулятора.
И Вот что у
меня получилось. Достаточно не плохо
на мой взгляд.
Серо-приводы
установлены,
Манипулятор собран. Но как
проверить его работоспособность. Поискал
в интернете примеров не дал результатов
и тогда я решил набросать небольшой
пример кода для NodeMCU. Тем более у меня
лежал без дела шилд для данной отладочной
платы.
Код получился
не очень красивый но для проверки
достаточно.
// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT
#include <ESP8266WiFi.h>
#include <RemoteXY.h>
// настройки соединения
#define REMOTEXY_WIFI_SSID "portalpk"
#define REMOTEXY_WIFI_PASSWORD ""
#define REMOTEXY_SERVER_PORT 6377
// конфигурация интерфейса
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
{ 255,4,0,0,0,31,0,6,5,0,
4,128,48,50,42,9,4,4,0,6,
12,9,36,2,4,0,85,11,9,37,
2,4,128,8,4,42,9,4 };
// структура определяет все переменные вашего интерфейса управления
struct {
// input variable
int8_t slider_1; // =0..100 положение слайдера
int8_t slider_2; // =0..100 положение слайдера
int8_t slider_3; // =0..100 положение слайдера
int8_t slider_4; // =0..100 положение слайдера
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
#include <Servo.h>
#define PIN_SERVO1 D1
#define PIN_SERVO2 D2
#define PIN_SERVO3 D3
#define PIN_SERVO4 D4
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
void setup()
{
RemoteXY_Init ();
// TODO you setup code
RemoteXY.slider_1 = 50;
RemoteXY.slider_2 = 50;
RemoteXY.slider_3 = 50;
RemoteXY.slider_4 = 50;
servo1.attach(PIN_SERVO1);
servo2.attach(PIN_SERVO2);
servo3.attach(PIN_SERVO3);
servo4.attach(PIN_SERVO4);
}
void loop()
{
RemoteXY_Handler ();
// TODO you loop code
// используйте структуру RemoteXY для передачи данных
int ms = RemoteXY.slider_1*20+500;
servo1.writeMicroseconds(ms);
int ms2 = RemoteXY.slider_2*10+500;
servo2.writeMicroseconds(ms2);
int ms3 = RemoteXY.slider_3*10+500;
servo3.writeMicroseconds(ms3);
int ms4 = RemoteXY.slider_4*10+500;
servo4.writeMicroseconds(ms4);
}
Вам скорее
всего нужно будет изменить начальные
угол для серо-приводов.
Тестирования
самодельного манипулятора показал
, что
все работает но скорее всего не достаточно
питания от одного
аккумулятора 18650. И
происходить перезагрузка
NodeMCU.
Запланировал
доработку кода для руки-манипулятора
и переделать источник питания. Но как
скоро будет продолжение зависит от вас
и от свободного времени.
Отличная работа!А что за мобильное приложение вы использовали для управления? Хочу попробовать собрать подобный манипулятор, опыта в
программировании нет :-(
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.