【Mind+Python】pinpong库玩机械臂

2021-09-111635
AI 快速预览详细 收起
本文介绍了一个基于Mind+Python和pinpong库的机械臂控制项目。通过编写Python代码,实现了机械臂的前后、左右及抓取动作。硬件清单包括DFRduino UNO R3、扩展板、180舵机、机械臂雕刻件、摇杆和角度传感器。项目难度适中,适合初学者学习。
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

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

所需材料/产品

加载全部

    Gravity: 模拟旋转角度传感器(Arduino兼容,旋转 300°,旋钮)

    Gravity: 模拟旋转角度传感器(Arduino兼容,旋转 300°,旋钮)

    Gravity: 模拟旋转角度传感器(Arduino兼容,旋转 300°,旋钮)

    Gravity: JoyStick摇杆(Arduino兼容)

    Gravity: JoyStick摇杆(Arduino兼容)

    Gravity: JoyStick摇杆(Arduino兼容)

    DFRduino UNO R3开发板 - 兼容Arduino UNO R3

    DFRduino UNO R3开发板 - 兼容Arduino UNO R3

    DFRduino UNO R3开发板 - 兼容Arduino UNO R3

相关推荐

评论(1)
Nd0TAy8yduIE
Nd0TAy8yduIE
厉害
- 没有更多了 -

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

相关推荐

所需材料/产品

Gravity: 模拟旋转角度传感器(Arduino兼容,旋转 300°,旋钮)

Gravity: 模拟旋转角度传感器(Arduino兼容,旋转 300°,旋钮)

Gravity: 模拟旋转角度传感器(Arduino兼容,旋转 300°,旋钮)

Gravity: JoyStick摇杆(Arduino兼容)

Gravity: JoyStick摇杆(Arduino兼容)

Gravity: JoyStick摇杆(Arduino兼容)

DFRduino UNO R3开发板 - 兼容Arduino UNO R3

DFRduino UNO R3开发板 - 兼容Arduino UNO R3

DFRduino UNO R3开发板 - 兼容Arduino UNO R3

加载全部