Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Записываемая рука робота из картона

Компоненты и расходные материалы

Arduino UNO
× 1
Сервопривод нормального размера
× 3
Микро-серводвигатель SG90
× 1
Макет (общий)
× 1
Источник питания 5 В
× 1

Необходимые инструменты и машины

Пистолет для горячего клея (общий)

Приложения и онлайн-сервисы

IDE Arduino
Python

Об этом проекте

О

Это простая роботизированная рука, которая может записывать и воспроизводить позиции. Он сделан из легкодоступных материалов, таких как картон и горячий клей, что упрощает его сборку.

Вы управляете рукой с помощью графического интерфейса на компьютере, который отправляет данные в Arduino, который управляет рукой. Есть ползунки для управления каждым сервоприводом и кнопки для записи позиций и воспроизведения того, что вы записали. Вы также можете сохранять и открывать прошлые записи.

Вот демонстрация этого в действии:

Инструкции

1.) Загрузите и распечатайте шаблон выреза из картона в разделе «Пользовательские детали и корпуса» внизу страницы. По этому шаблону вырежьте детали из картона.

2.) Соберите часть руки, используя видео выше в качестве руководства. Сборка начинается в 0:22 видео.

3.) Постройте схему на основе схемы внизу страницы.

4.) Загрузите «Код Arduino для руки робота» внизу страницы в разделе кода на второй вкладке. Затем загрузите это в руку.

5.) Загрузите код «Пользовательский интерфейс Python» внизу страницы в Разделе кода на первой вкладке. Затем откройте его. Для его запуска у вас должен быть установлен Python, который можно загрузить отсюда:https://www.python.org/

Вам также понадобится библиотека PySerial для Python (https://pypi.org/project/pyserial/). Вы можете установить его, запустив «pip install pyserial».

6.) Подключите руку, запустите код «Python User Interface» и введите COM-порт Arduino (его можно найти в диспетчере устройств в Windows). Теперь вы готовы к использованию!

Если это не сработает, попробуйте увеличить time.sleep (0,15) в строке 20 кода Python до более высокого значения, например 0,2 или 0,3

Код

  • Пользовательский интерфейс Python
  • Код Arduino для манипулятора робота
Пользовательский интерфейс Python Python
 из tkinter import * из tkinter import filedialogimport serialimport timeport_opened =Falsedef set_port ():global port_opened, arduino com_port =port_input.get () arduino =serial.Serial (com_port, 9600) port_opened =True print ("COM-порт установлен на :"+ com_port) def send_positions (position):message =" {0:0 =3d} ". format (position [0]) +" {0:0 =3d} ". format (position [1]) +" {0:0 =3d} ". Формат (позиция [2]) +" {0:0 =3d} ". Формат (позиция [3]) +" {0:0 =3d} ". Формат (позиция [4 ]) + "\ n" arduino.write (str.encode (message)) print (message, end ='') time.sleep (0.2) saved_positions =[] def save_positions ():saved_positions.append ([servo1_slider.get (), servo2_slider.get (), servo3_slider.get (), servo4_slider.get (), servo5_slider.get ()]); print ("сохраненные позиции:" + str (saved_positions)) def play_positions ():для позиции в saved_positions:print ("play:" + str (position)) send_positions (позиция); time.sleep (1) def clear_all_positions ():global saved_positions saved_positions =[] print («очищены все позиции») def clear_last_positions ():global saved_positions удалено =saved_positions.pop () print («удалено:» + str (удалено) ) print ("сохраненные позиции:" + str (saved_positions)) def open_file ():global saved_positions имя_файла =filedialog.askopenfilename (initialdir ="/", title ="Выбрать файл", filetypes =(("Текстовые файлы", "* .txt *"), ("все файлы", "*. *"))) file =open (filename, "r") data =file.read () saved_positions =eval (data) file.close () print ("open:" + filename) def save_file ():save_file =filedialog.asksaveasfile (mode ='w', defaultextension =". txt") save_file.write (str (saved_positions)) save_file.close () print (" сохраненный файл ") def инструкции ():print (" 1.) Установите COM-порт Arduino и нажмите Enter. Это можно найти в диспетчере устройств в Windows ") print (" 2.) Переместите сервоприводы руки с помощью ползунков ") print ("3.) Чтобы записать позицию, щелкните на Record Position") print ("4.) Чтобы воспроизвести записанный позиции, нажмите «Воспроизвести позиции») print («\ nЧтобы сохранить то, что вы записали, перейдите в« Файл »>« Сохранить файл ».») print («Чтобы открыть ранее сохраненный файл, перейдите в« Файл »>« Открыть файл ».») window =Tk () window.title ("Контроллер руки робота 2") window.minsize (355,300) port_label =Label (window, text ="Set Port:"); port_label.place (x =10, y =10); port_input =Запись (окно) port_input.place (x =10, y =35) port_button =Кнопка (window, text ="Enter", command =set_port) port_button.place (x =135, y =32) servo1_slider =Scale (window, from_ =180, to =0) servo1_slider.place (x =0, y =100) servo1_label =Label (window, text ="Servo 1") servo1_label.place (x =10, y =80) servo2_slider =Scale (окно , from_ =180, to =0) servo2_slider.place (x =70, y =100) servo2_label =Label (window, text ="Servo 2") servo2_label.place (x =80, y =80) servo3_slider =Scale ( window, from_ =180, to =0) servo3_slider.place (x =140, y =100) servo3_label =Label (window, text ="Servo 3") servo3_label.place (x =150, y =80) servo4_slider =Масштаб (окно, from_ =180, to =0) servo4_slider.place (x =210, y =100) servo4_label =Label ( window, text ="Servo 4") servo4_label.place (x =220, y =80) servo5_slider =Scale (window, from_ =180, to =0) servo5_slider.place (x =280, y =100) servo5_label =Label (window, text ="Servo 5") servo5_label.place (x =290, y =80) save_button =Button (window, text ="Record Position", command =save_positions) save_button.place (x =10, y =220) ) clear_button =Кнопка (window, text ="Очистить последнюю позицию", command =clear_last_positions) clear_button.place (x =120, y =220) clear_button =Кнопка (window, text ="Очистить все позиции", command =clear_all_positions) clear_button .place (x =120, y =255) play_button =Кнопка (window, text ="Replay Positions", command =play_positions, height =3) play_button.place (x =250, y =220) menubar =Menu (окно) filemenu =Меню (строка меню, tearoff =0) filemenu.add_command (label ="Открыть файл", command =open_file) filemenu.add_command (label ="Сохранить файл", command =save_file) menubar.add_cascade (label ="Файл", menu =filemenu) editmenu =Menu (menubar, tearoff =0) editmenu.add_command (label ="Очистить последнюю позицию", command =clear_last_positions) editmenu.add _command (label ="Очистить все позиции", command =clear_all_positions) menubar.add_cascade (label ="Edit", menu =editmenu) helpmenu =Menu (menubar, tearoff =0) helpmenu.add_command (label ="Как использовать (напечатано в консоли) ", command =instructions) menubar.add_cascade (label =" Help ", menu =helpmenu) window.config (menu =menubar) while True:window.update () if (port_opened):send_positions ([servo1_slider.get (), servo2_slider.get (), servo3_slider.get (), servo4_slider.get (), servo5_slider.get ()]) 
Код Arduino для манипулятора робота Arduino
 #include  Servo servo1; Servo servo2; Servo servo3; Servo servo4; Servo servo5; int servoPositions [5]; void setup () {Serial.begin (9600); servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); servo5.attach (10);} void loop () {while (Serial.available ()) {Строка input =Serial.readStringUntil ('\ n'); servoPositions [0] =input.substring (0,3) .toInt (); servoPositions [1] =input.substring (3,6) .toInt (); servoPositions [2] =input.substring (6,9) .toInt (); servoPositions [3] =input.substring (9,12) .toInt (); servoPositions [4] =input.substring (12,15) .toInt (); } servo1.write (servoPositions [0]); servo2.write (servoPositions [1]); servo3.write (servoPositions [2]); servo4.write (servoPositions [3]); servo5.write (servoPositions [4]); delay (500);} 

Изготовленные на заказ детали и корпуса

Схема


Производственный процесс

  1. Цифровые игральные кости Arduino
  2. Рука робота MeArm - Ваш робот - V1.0
  3. Железный человек
  4. Найди меня
  5. Роботизированная рука, напечатанная на 3D-принтере Arduino
  6. Управление увлажнителем Arduino
  7. MobBob:самостоятельный робот Arduino, управляемый смартфоном Android
  8. Робот-пианино, управляемый Arduino:PiBot
  9. Littlearm 2C:создание напечатанной на 3D-принтере руки робота Arduino
  10. Джойстик Arduino