【OpenMV学习笔记】 pca9685学习之用python尝试写代码

pca9685学习资料在我的这篇BLOG:【学习笔记】——16路PWM舵机驱动板(PCA 9685) + Arduino:https://blog.csdn.net/qq_42807924/article/details/82229997
连接方式:
在这里插入图片描述

例程:main,py

# Servo Shield Example.
#
# This example demonstrates the servo shield. Please follow these steps:
#
#   1. Connect a servo to any PWM output.
#   2. Connect a 3.7v battery (or 5V source) to VIN and GND.
#   3. Copy pca9685.py and servo.py to OpenMV and reset it.
#   4. Connect and run this script in the IDE.

import time
from servo import Servos
from machine import I2C, Pin

i2c = I2C(sda=Pin('P5'), scl=Pin('P4'))
servo = Servos(i2c, address=0x40, freq=50, min_us=650, max_us=2800, degrees=180)

while True:
    for i in range(0, 8):
        servo.position(i, 0)
    time.sleep(500)
    for i in range(0, 8):
        servo.position(i, 180)
    time.sleep(500)

自己写代码:

#定义一个底座运行模块
def chassis_angle_analy():
    print('进入底座运行')
    x_chassis_ball = 30.0
    y_chassis_ball = 200.0
    chassised_angle=0
    chassis_angle=0
    while (1):
        chassised_angle=math.atan(x_chassis_ball/y_chassis_ball) #得到相对弧度
        chassised_angle=chassised_angle*180/3.14   #转换成角度
        chassised_angle=90-chassised_angle/0.34   #0.34=50/17  转换成舵机绝对角度
        print('底盘绝对角度是:')
        print( chassised_angle)
        if 0<=chassised_angle<=180:
            while(chassis_angle<chassised_angle):
                servo.position(0,chassis_angle)
                chassis_angle+=1
                time.sleep(30)
            while(chassis_angle>chassised_angle):
                servo.position(0,chassis_angle)
                chassis_angle-=1
                time.sleep(30)
        else:
            print('底座角度已经超出范围!')
        break

#手爪收紧函数
def hand_hold():
    pass
    print('手爪收紧')
    hand_angle=160
    max_hand_angle=160#手爪初始状态
    min_hand_angle=60

    while(min_hand_angle<=hand_angle):
        hand_angle+=1
        servo.position(4,hand_angle)
        time.sleep(30)
#抓到球三个电机回收的动作
def catchedback():
    print('恢复位置')
    while(elbow_angle!=max_elbow_angle or arm_angle!=max_arm_angle or chassis_angle!=90)
        pass
        i=3
        while(i>=0):
        #底座,手臂,肘,手爪,对应0123
            i=i-1
            if i==2 and elbow_angle<=max_elbow_angle
                servo.position(i,elbow_angle)
                elbow_angle++
            elif i==1 and arm_angle<=max_arm_angle
                servo.
1.1python软件的安装 先安装python软件优先,因为其他步骤如果用到sudo apt-get update 会导致python程序不是py2而是py3,就用不了我们的程序了 树莓派鼓励用户使用python和C++作为其开发语言,所以原则上可以不用安装python的编译器,但是树莓派自带的python(IDLE)和Thonny python IDE都过于简陋,不太适合python使用者进行复杂的OpenCV开发。在这里推荐Spyder作为树莓派的python IDE。这种编译器相对上述两种编译器略显笨重,但是对内核和运算值的控制更加灵活。   树莓派安装Spyder非常的方便,在命令行输入: sudo apt-get install spyder 下载时间可能比较长,因为在安装spyder3的同时很多python开发开发必要的依赖也一并被安装到树莓派里了,这也说明牺牲一定的空间下载spyder3是值得的。此时,我们已经可以在树莓派的开始菜单-programming中看到编译器了。注意: 1、 在下载spyder之前请不要输入 “sudo apt-get update/upgrade”, 否则会下载适用于python3.6的spyder,无法正常使用,比如图1-0中的spyder的python版本就是3.6,说明下载出现错误。 2、 如果看不到编译器说明安装过程出错,尝试重新执行:sudo apt-get update和 sudo apt-get install spyder3两条命令。   图 1-0下载完成后,在“start”中已经能看到Spyder编译器了     图 1-00 Spyder3的Python3.6版本 我们可以在preference/syntax coloring scheme中更换自己喜欢的主题,怎么样?是不是已经觉得树莓派和普通PC一样方便了呢?现在我们已经可以用在树莓派上舒适的开发python了。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值