回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【Mind+Python】pinpong库玩机械臂 简单

头像 gray6666 2021.09.11 1387 1
project-image

【项目来源】

据最新消息:在9月10日的世界机器人大会开幕式上,神舟十二号飞行乘组三位航天员聂海胜、刘伯明、汤洪波在中国空间站发来祝福:“机器人技术正在深刻改变着人类的生产和生活方式,中国空间站机械臂也助力我们完成了两次出舱任务,在2021年世界机器人大会即将召开之际,神舟十二号飞行乘组在中国空间站预祝大会、博览会、大赛取得圆满成功!”这两次出舱任务中,机械臂发挥的作用都不可小看。10日,同款机械臂也亮相大会的博览会。用python代码制作可操控功能机械臂,为学生解密机械臂技术的项目产生。

【项目功能】

通过python编写代码实现,模拟角度传感器 和 游戏操控模块控制机械臂前后,左右,抓取动作。

  

步骤1 硬件准备

材料清单

  • DFRduino UNO R3 X1 链接
  • UNO v5扩展板(可用后面的V7连接替代) X1 链接
  • 180舵机 X4 链接
  • 机械臂雕刻件一套 X1
  • Gravity: JoyStick摇杆(Arduino兼容) X1 链接
  • Gravity:模拟角度传感器RotationSensorV1(Arduino兼容) X1 链接

电路连接:

机械爪舵机连接数字口8

中间两个舵机依次连接数字口9、10

舵机底座连接数字口11

模拟角度传感器 连接模拟口A0

JoyStick摇杆 Y方向Y连接 模拟口 A1 ,X方向连接模拟口 A2

project-image

步骤2 mind+安装库文件,编写代码

pinpong 库是用于连接硬件设备进行在线编程的 Python 库。可创作丰富有趣的软硬件互动项目。

project-image

步骤3 编写代码

切换python模式编写代码

project-image
代码
import time
from pinpong.board import Board,Pin,ADC,Servo
Board("uno").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别
adc0 = ADC(Pin(Pin.A0)) #将Pin传入ADC中实现模拟输入
adc1 = ADC(Pin(Pin.A1)) #将Pin传入ADC中实现模拟输入
adc2 = ADC(Pin(Pin.A2)) #将Pin传入ADC中实现模拟输入

s1 = Servo(Pin(Pin.D8)) #将Pin传入Servo中初始化舵机引脚,机械爪开合
s2 = Servo(Pin(Pin.D9)) #将Pin传入Servo中初始化舵机引脚,机械臂前后运动
s3 = Servo(Pin(Pin.D10)) #将Pin传入Servo中初始化舵机引脚,机械臂前后运动
s4 = Servo(Pin(Pin.D11)) #将Pin传入Servo中初始化舵机引脚,机械臂左右运动

while True:
    ########前端机械爪################
    v1 = adc0.read()  #读取A3口模拟信号数值
    print(v1)#打印电位器的数值
    v1=int((v1 - 0) * (180 - 0) / (1023 - 0) + 0)#用映射公式转换数值为舵机角度,控制机械手开合角度
    #(x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
    print(v1)
    s1.angle(v1)

    ########机械臂前后运动##############
    v22 = adc1.read()  #读取A3口模拟信号数值
    #print(v2)#打印电位器的数值
    v2=int((v22 - 0) * (180 - 0) / (1023 - 0) + 0)#用映射公式转换数值为舵机角度,控制大幅度前后运动
    v3=int((v22 - 0) * (60 - 0) / (1023 - 0) + 0)#用映射公式转换数值为舵机角度,协助前后小幅调整
    #print(v2)
    s2.angle(v2)
    s3.angle(v3)

    ########机械臂左右运动##############
    v4 = adc2.read()  #读取A3口模拟信号数值
    print(v4)#打印电位器的数值
    v4=int((v4 - 0) * (180 - 0) / (1023 - 0) + 0)#用映射公式转换数值为舵机角度
    print(v4)
    s4.angle(v4)

    time.sleep(0.05)

步骤4 运行测试

project-image

评论

user-avatar
  • Nd0TAy8yduIE

    Nd0TAy8yduIE2022.11.22

    厉害

    0