树莓派4B使用PCA9685控制舵机
一.IIC通信
在raspi-config中的interface选项打开IIC通信
二.下载Adafruit_PCA9685包
pip3 install Adafruit_PCA9685
也可以去github或者gitee搜索adafruit_pca9685查看源码和demo
注:
这里还可以选用SERVO DRIVER HAT这一控制舵机的板子
可参考(17条消息) 树莓派4B通过16路PWM输出的PCA9685模块控制舵机(机械臂)附完整代码_袁六加.的博客-CSDN博客
三.接线
根据本人的实际情况,当仅仅取树莓派的3.3V电压时舵机是不会动的,因此需要一个电源模块供电(与pca板子上的绿色柱相连)
四.编写程序
(使用a d 控制舵机转角)
# -*- coding: utf-8 -*-#键盘控制舵机转动
from __future__ import division
import sys, select, termios, ttyimport time# Import the PCA9685 module.
import Adafruit_PCA9685#获取键盘事件
def getKey():settings = termios.tcgetattr(sys.stdin)tty.setraw(sys.stdin.fileno())rlist, _, _ = select.select([sys.stdin], [], [], 0.1)if rlist:key = sys.stdin.read(1)else:key = ''termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings)return keydef set_servo_angle(channel, angle):#输入角度转换成12^精度的数值date=int(4096*((angle*11)+500)/20000)#进行四舍五入运算 date=int(4096*((angle*11)+500)/(20000)+0.5) pwm.set_pwm(channel, 0, date)pwm = Adafruit_PCA9685.PCA9685()
pwm.set_pwm_freq(50)beangle = 0
channel1 = 15
channel2 = 14while 1:key = getKey()if key == 'a':while True: beangle += 2.5if beangle >= 180:beangle = 180set_servo_angle(channel1,beangle)set_servo_angle(channel2,beangle)key = getKey()if (key != 'a'):breakif key == 'd':while True:beangle -= 2.5if beangle <= 0:beangle = 0set_servo_angle(channel1,beangle)set_servo_angle(channel2,beangle)key = getKey()if (key != 'd'):breakif key == 'q':break
自此就可以通过输入转角或者使用键盘控制舵机了。
报错IOError: [Errno 121] Remote I/O error:
1.仔细检查接线有没有错误
2.参考(17条消息) 树莓派4B使用 Adafruit_PCA9685 报错IOError: [Errno 121] Remote I/O error解决办法_Black__Jacket的博客-CSDN博客
树莓派4B使用PCA9685控制舵机相关推荐
- stm32中如何使用PCA9685控制舵机(详解)
这里写自定义目录标题 一.PCA9685简介 二.硬件 1.电压 2.i2c地址 3.使能脚 4. 频率 5.地址定义表 6. 舵机角度 最近在公司实习,都说跨入职场是让人进步最快的方式,记录一下我自 ...
- 树莓派4B的引脚控制简单demo
淘宝上的店家提供了很多示例程序,这里只拿一种来演示下,借此熟悉下如何用c或者python环境去操作树莓派.前提配置见我的之前的系列博客 树莓派4B基础软硬件环境搭建_jiugeshao的专栏-CSDN ...
- python舵机控制程序_树莓派PWM控制舵机的两种方式
PWM控制舵机简介 通常情况下,伺服电机(舵机)是由一个标准的直流系统和一个内部反馈控制装置(一个减速齿轮和电位计)来组成的.伺服电机(舵机)的主要作用是将齿轮轴旋转到一个预定义的方向上.伺服电机(舵 ...
- 树莓派4B通过16路PWM输出的PCA9685模块控制舵机(机械臂)附完整代码
树莓派4B通过16路PWM输出的PCA9685模块控制舵机(机械臂)附完整代码 文章目录 树莓派4B通过16路PWM输出的PCA9685模块控制舵机(机械臂)附完整代码 一. Servo Driver ...
- 树莓派视觉小车 -- 人脸追踪(人脸识别、PID控制舵机运动)
目录 效果展示 基础理论(人脸识别) 1.基于特征的算法 2.基于图像的算法 3.Haar特征 4.Adaboost级联决策器 API 基础理论(PID算法) 1.作用 应用场景 2.PID原理 1. ...
- 立创梁山派GD32F450ZGT6--通过PCA9685控制16路舵机
PCA9685芯片,每一路LED输出端均可自由调节PWM波的频率 (40~1000Hz) 和占空比 (0%~100%) .这款芯片主要通过输出不同占空比的PWM脉冲信号来控制舵机转动的角度.是16通道 ...
- 树莓派3b+控制舵机
树莓派3b+控制舵机 1.RPi.GPIO控制: 2.gpiozero控制: 1.RPi.GPIO控制: 控制信号:GPIO18 import RPi.GPIO as GPIO import time ...
- 使用PCA9685控制多个舵机
todolist 要单独去找舵机的两个极值的大小,然后去该前文的映射的初始值 把角度值打印出来 0.准备 0.1.硬件设备 0.2.软件安装 1.安装好Arduino IDE 可以前往Arduino官 ...
- 实例4:树莓派GPIO控制舵机转动
实例4:树莓派GPIO控制舵机转动 实验目的 通过背景知识学习,了解舵机的外观及基本运动方式. 了解四足机器人mini pupper腿部单个舵机的组成结构. 通过GPIO对舵机进行转动控制,熟悉PWM ...
最新文章
- 胡想——对机器人控制体系的一些想法
- python3 统计文件夹下文件(含文件夹)的个数
- 组策略的优先级是 本地》站点》域》组织单位
- 异常机制及throw与throws的区别 (z)
- CentOS下的账户管理
- flutter 代码仓库_go-flutter开发桌面应用(二) 创建go-flutter插件
- jQuery对象和DOM对象
- 螺旋方阵 | 蛇形填数
- POJ3666序列最小差值
- [vue] SSR解决了什么问题?有做过SSR吗?你是怎么做的?
- python画国际象棋_python图形工具turtle绘制国际象棋棋盘
- mysql jar jdk1.6_Windows下JDK1.6+MySQL+MyEclipse开发环境的配置
- Covariance and Contravariance in C#, Part One
- mysql 导入百万级数据 几种 java_百万级数据,如何迁移到MySQL?
- 得物App联合Zippo推出限量款打火机 首批开售十分钟即售罄
- 桌面整理工具不显示文件夹_Win10桌面图标显示不正常变成了白色
- 雷达原理---时频分析--1.基本概念
- 合成大西瓜html5游戏,关于html5:魔改和上线你的合成大西瓜最全教程
- 2021-11-06大数据学习日志——数据埋点+网络爬虫——数据提取
- recovery_minui解说