所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

【Mind+Python】pinpong库玩机械臂

gray6666 gray6666 2021-09-12 09:00:01
1
0
简单
projectImage

【项目来源】

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

 

【项目功能】

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

  

步骤1 步骤1
硬件准备
材料清单 材料清单
1x
DFRduino UNO R3
1x
UNO v5扩展板(可用后面的V7连接替代)
4x
180舵机
1x
机械臂雕刻件一套
1x
Gravity: JoyStick摇杆(Arduino兼容)
1x
Gravity:模拟角度传感器RotationSensorV1(Arduino兼容)

电路连接:

机械爪舵机连接数字口8

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

舵机底座连接数字口11

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

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

 

 

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

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

projectImage
步骤3 步骤3
编写代码

切换python模式编写代码

 

projectImage
代码 代码
	                    					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 步骤4
运行测试
projectImage
Makelog作者原创文章,未经授权禁止转载。
1
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]