树莓派+舵机+pca9685+usb摄像头制作二维云台,图像追踪

news2024/10/7 16:24:49

使用树莓派+舵机+pca9685+usb摄像头制作二维云台,图像追踪

为什么使用pca9685驱动舵机,而不使用树莓派自带的引脚驱动舵机呢?
因为树莓派无法产生稳定的pwm波,容易造成舵机的抖动
我使用的是树莓派+ubuntu系统+pca9685

1.首先在ubuntu系统中安装相关依赖

sudo apt install whiptail parted lua5.1 alsa-utils psmisc

2.下载安装包

wget http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200601_all.deb

3.安装rasp-config

sudo dpkg -i raspi-config_20200601_all.deb

4.启用rasp-config

sudo raspi-config

在这里插入图片描述
在这里插入图片描述

5.打开IIC

6.安装PCA9685的库

下载依赖库

sudo apt-get install git build-essential python-dev

从github下载源码(这一步如果下载失败,可以直接复制链接到GitHub下载,然后移到工作空间下)

git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git

安装库

cd Adafruit_Python_PCA9685
sudo python setup.py install

测试是否接好线

sudo apt-get install i2c-tools

sudo i2cdetect -y 1

在这里插入图片描述
测试舵机

 python3  ~/Adafruit_Python_PCA9685/examples/simpletest.py

然后进行下面的图像追踪

import cv2
import time
import numpy as np
from threading import Thread
from pid import PID
import Adafruit_PCA9685

# 初始化PCA9685
pwm = Adafruit_PCA9685.PCA9685()
pwm.set_pwm_freq(60)

# 舵机的极限位置
servo_min = 150  # 最小脉冲长度
servo_max = 600  # 最大脉冲长度

# 初始化伺服电机
panChannel = 0
tiltChannel = 1
panAngle = 90  # 中心位置
tiltAngle = 90  # 中心位置

def set_servo_angle(channel, angle):
    pulse = (servo_min + (servo_max - servo_min) * angle / 180)
    pwm.set_pwm(channel, 0, int(pulse))

set_servo_angle(panChannel, panAngle)
set_servo_angle(tiltChannel, tiltAngle)

# 定义视频流类
class VideoStream:
    def __init__(self, src=0):
        self.stream = cv2.VideoCapture(src)
        self.stream.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
        self.stream.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)
        self.stream.set(cv2.CAP_PROP_FPS, 30)
        self.grabbed, self.frame = self.stream.read()
        self

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1898213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海尔智家:科技优秀是一种习惯

海尔智家:科技优秀是一种习惯 2024-06-28 15:19代锡海 6月24日,2023年度国家科学技术奖正式揭晓。海尔智家“温湿氧磁多维精准控制家用保鲜电器技术创新与产业化”项目荣获国家科学技术进步奖,成为家电行业唯一牵头获奖企业。 很多人说&…

odoo 物联网 设备数据采集方案

图一 架构手稿(许老师专属) 图二 架构简图 部署 方案一: odoo业务数据库与设备采集数据库使用一个instance。 缺点:重启pg服务相互影响。 方案二: odoo业务数据库与设备采集数据库独立部署,使用两个instance。 优点:…

VSCode远程服务器

一、安装VSCode Windows安装Visual Studio Code(VS Code)-CSDN博客 二、VSCode中安装Remote-SSH插件 1、在应用商店中搜索Remote - SSH并安装 2、安装后会出现下面标注的图标 三、开始SSH连接 1、点击加号,创建SSH连接 2、输入地址,格式是:…

java集合(1)

目录 一.集合概述 二. 集合体系概述 1. Collection接口 1.1 List接口 1.2 Set接口 2. Map接口 三. ArrayList 1.ArrayList常用方法 2.ArrayList遍历 2.1 for循环 2.2 增强for循环 2.3 迭代器遍历 一.集合概述 我们经常需要存储一些数据类型相同的元素,之前我们学过…

RocketMQ-订阅一致及解决方案

背景 这里借用Rocketmq官方的一句话来描述订阅关系一致: 订阅关系一致指的是同一个消费者分组Group ID下,所有Consumer实例所订阅的Topic和Tag必须完全一致。如果订阅关系不一致,可能导致消息消费逻辑混乱,消息被重复消费或遗漏。 具体的问题…

MySQL中mycat与mha应用

目录 一.Mycat代理服务器 1.Mycat应用场景 2.mycat安装目录结构说明 3.Mycat的常用配置文件 4.Mycat日志 5.mycat 实现读写分离 二.MySQL高可用 1.原理过程 2.MHA软件 3.实现MHA 一.Mycat代理服务器 1.Mycat应用场景 Mycat适用的场景很丰富,以下是几个典型…

【Java11】变量的初始化和内存中的运行机制

成员变量的初始化和内存中的运行机制 系统加载类或创建类的实例时,系统自动为成员变量分配内存空间,然后自动为成员变量指定初始值。 class Person {public String name; // 实例变量public static int eyeNum; // 类变量 }var p1 Person(); var p2 …

【unity实战】Unity中使用A*寻路+有限状态机制作一个俯视角敌人AI

最终效果 文章目录 最终效果前言A*寻路插件介绍下载导入AI插件生成寻路网格节点的类型障碍物寻路测试A*只打印报错信息 代码控制寻路动画配置敌人状态机各种状态脚本效果完结 前言 前面做过有限状态机制作一个敌人AI:【unity实战】在Unity中使用有限状态机制作一个…

【Odoo开源ERP】别把ERP与进销存软件混为一谈

导读:企业使用ERP软件能够实现管理升级,多方信息集成,按照既定策略逻辑运算,生成计划建议,减少人力成本,提高准确率的同时提高经营能力。 ERP,是MRP II的下一代软件,除了MRP II已有的…

WEB安全-靶场

1 需求 2 语法 3 示例 男黑客|在线渗透测试靶场|网络安全培训基地|男黑客安全网 4 参考资料

三万字带你一遍跑通uer

三万字带你一遍跑通uer 参考文档 今天给大家介绍个非常强大的项目uer,集成了许多可以做自然语言的东西,效果的话也非常好,很适合企业级的应用! 1. 先将项目uer从github拉取下来(zip或git都ok) 2. 用pycha…

Vue88-Vuex中的mapActions、mapMutations

一、mapMutations的调用 此时结果不对,因为:若是点击事件不传值,默认传的是event!,所以,修改如下: 解决方式1: 解决方式2: 不推荐,写法麻烦! 1-…

【代码大全2 选读】看看骨灰级高手消灭 if-else 逻辑的瑞士军刀长啥样

文章目录 1 【写在前面】2 【心法】这把瑞士军刀长啥样3 【示例1】确定某个月份的天数(Days-in-Month Example)4 【示例2】确定保险费率(Insurance Rates Example)5 【示例3】灵活的消息格式(Flexible-Message-Format …

基于深度学习的图像背景剔除

在过去几年的机器学习领域,我一直想打造真正的机器学习产品。 几个月前,在参加了精彩的 Fast.AI 深度学习课程后,似乎一切皆有可能,我有机会:深度学习技术的进步使许多以前不可能实现的事情成为可能,而且开…

链篦机回转窑球团生产工艺

生球在回转窑氧化焙烧,回转窑头部设有燃烧器,燃料可以采用气体、固体、液体。 来自环冷机一冷却段的高温废气作为二次风进入窑内参与燃烧,烧成成品球进入环冷机。 环冷机采用鼓风冷却,热风风箱分为四段: 一段气体引至…

人工智能系列-numpy(三)

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 副本和视图 副本 副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不会影响到原始数据,物理内存不再同一位置。副本一般发生在Pytho…

中英双语介绍英国伦敦(London)

中文版 伦敦简介 伦敦(London)是英国的首都,也是全球最重要的金融、文化、艺术和交通中心之一。作为一座历史悠久的城市,伦敦融合了现代化的城市生活与丰富的历史遗产。以下是对伦敦的详细介绍,包括其经济状况、高等…

zed摄像头 orin域控掉帧问题

cpu性能并没有吃满,双目摄像头的帧率忽高忽低 原因是域控没有开性能模式,调成MAXN模式就行。

实在智能对话钉钉:宜搭+实在Agent,AI时代的工作方式

比起一个需求需要等产品、技术排期,越来越多的人开始追求把自己武装成「全能战士」,通过低代码工具一搭,一个高效的工作平台便产生了。 宜搭是钉钉自研的低代码应用构建平台,无论是专业开发者还是没有代码基础的业务人员&#xf…

PCL从理解到应用【03】KDTree 原理分析 | 案例分析 | 代码实现

前言 本文分析KDTree的原理,集合案例深入理解,同时提供源代码。 三个案例:K近邻搜索、半径内近邻搜索、近似最近邻搜索。方法对比,如下表所示: 特性K近邻搜索半径内近邻搜索近似最近邻搜索描述查找K个最近邻点查找指…