基于Arduino UNO的可控机械臂

目录

1.Aeduino UNO简介

2.项目构思

3.项目所需材料

4.代码示例

4.1 开发板代码

4.2 VS code控制代码

5. 运行结果


1.Aeduino UNO简介

Arduino Uno 是一款基于 微控制器 MTATmega328P的开发板。它有14个数字输入/输出引脚(这些引脚中有6个引脚可以作为PWM输出引脚),6个模拟输入引脚,16 MHz石英晶振,USB接口,电源接口,支持在线串行编程以及复位按键。用户只需要将开发板与电脑通过USB接口连接就可以使用。

2.项目构思

编辑arduino ide代码,获取舵机的当前状态,然后再vscode中使用图形化界面控制舵机转动。通过控制三个舵机的转动,实现控制一个三自由度的机械臂的运动。

3.项目所需材料

Arduino UNO控制板

SG90舵机*3

泡沫板

4.代码示例

4.1 开发板代码

#include <Servo.h>
Servo servo1;  // SG90
Servo servo2;  // SG90
Servo servo3;  // SG90

void setup() {
  Serial.begin(9600);
  servo1.attach(5);  // 连接到引脚5
  servo2.attach(6);  // 连接到引脚6
  servo3.attach(9);  // 连接到引脚9
}

void loop() {
  if (Serial.available()) {
    int servoNum = Serial.parseInt();  // 读取舵机编号
    int angle = Serial.parseInt();     // 读取角度
    
    switch (servoNum) {
      case 1:
        servo1.write(angle);
        break;
      case 2:
        servo2.write(angle);
        break;
      case 3:
        servo3.write(angle);
        break;
    }
  }
}

4.2 VS code控制代码

import serial
import time
import tkinter as tk

# 配置串口
arduino = serial.Serial('COM3', 9600)
time.sleep(1)

# 发送舵机控制命令到Arduino
def move_servo(servo_num, angle):
    command = f"{servo_num} {angle}\n"
    arduino.write(command.encode())

# 创建GUI窗口
window = tk.Tk()
window.title("舵机控制面板")

# 创建滑块和标签
label1 = tk.Label(window, text="舵机 1")
label1.grid(row=0, column=0)
scale1 = tk.Scale(window, from_=0, to=90, orient=tk.HORIZONTAL, command=lambda angle, servo=1: move_servo(servo, angle))
scale1.grid(row=0, column=1)

label2 = tk.Label(window, text="舵机 2")
label2.grid(row=1, column=0)
scale2 = tk.Scale(window, from_=0, to=90, orient=tk.HORIZONTAL, command=lambda angle, servo=2: move_servo(servo, angle))
scale2.grid(row=1, column=1)

label3 = tk.Label(window, text="舵机 3")
label3.grid(row=2, column=0)
scale3 = tk.Scale(window, from_=0, to=90, orient=tk.HORIZONTAL, command=lambda angle, servo=3: move_servo(servo, angle))
scale3.grid(row=2, column=1)

# 运行GUI主循环
window.mainloop()

# 关闭串口
arduino.close()

5. 运行结果

通过滑条控制舵机的运作。

运行视频:用装菜的泡沫箱做一个简易的三自由度可控机械臂。_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值