Raspbian安装云台

news2024/11/26 0:49:53

Raspbian安装云台

  • 1. 源由
  • 2. 选型
  • 3. 组装
  • 4. 调试
    • 4.1 python3-print问题
    • 4.2 python函数入参类型错误
    • 4.3 缺少mjpg-streamer可执行文件
    • 4.4 缺失编译头文件和库
    • 4.5 python库缺失
    • 4.6 图像无法显示,但libcamera-jpeg测试正常
    • 4.7 异常IOCTL报错
    • 4.8 Git问题
  • 5. 效果
    • 5.1 WEB页面效果
    • 5.2 视频效果
    • 5.3 外观效果
    • 5.4 起飞前效果
  • 6. 参考资料
  • 7. 后续思考

1. 源由

既然安装了摄像头(《Raspbian安装摄像头》),那安装个简易云台也不过分。

注:看看后续能否配合ArduPilot开源代码之CompanionComputer上天计划。

2. 选型

基本上没什么可选的,找个市面上最通用的,且相对配套比较完善的。

-【Wiki】www.waveshare.net/wiki/Pan-Tilt_HAT
-【Github】https://github.com/waveshare/Pan-Tilt-HAT

3. 组装

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

4. 调试

调试才是最为麻烦的,因为得益于各位硬件、软件环境的差异性,会遇到各种不同的问题。以下是基于笔者发稿日的一个调试情况。

笔者测试环境:

  • 硬件:Raspberry Pi3B+
  • 系统:2022-09-22-raspios-bullseye-arm64-lite.img.xz
  • 软件:Pan-Tilt_HAT_code.7z

4.1 python3-print问题

无论是官网或者git获取的代码,都存在python3-print问题,估计写这个python代码的作者用的是pythron2。

在这里插入图片描述
原因:python3 print作为函数使用,需要增加括号。

diff --git a/RaspberryPi/web_Python/main.py b/RaspberryPi/web_Python/main.py
index 9986a42..daffeea 100644
--- a/RaspberryPi/web_Python/main.py
+++ b/RaspberryPi/web_Python/main.py
@@ -37,7 +37,7 @@ def server_fonts(filename):
 def cmd():
     global HStep,VStep
     code = request.body.read().decode()
-    print "code ",code
+    print( "code ",code)
     # speed = request.POST.get('speed')
     # print(code)
     # if(speed != None):
@@ -120,5 +120,5 @@ try:
     run(host=localhost, port="8001")
 except:
     pwm.exit_PCA9685()
-    print "\nProgram end"
-    exit()
\ No newline at end of file
+    print( "\nProgram end")
+    exit()

4.2 python函数入参类型错误

在这里插入图片描述
原因:python编程人员对变量的使用相对随意,这个是之前的一个隐患,python3当前环境进行更加严格的检查,发现了问题。

diff --git a/RaspberryPi/web_Python/PCA9685.py b/RaspberryPi/web_Python/PCA9685.py
index b596863..2cdc45c 100644
--- a/RaspberryPi/web_Python/PCA9685.py
+++ b/RaspberryPi/web_Python/PCA9685.py
@@ -80,7 +80,7 @@ class PCA9685:
   def setServoPulse(self, channel, pulse):
     "Sets the Servo Pulse,The PWM frequency must be 50HZ"
     pulse = pulse*4096/20000        #PWM frequency is 50HZ,the period is 20000us
-    self.setPWM(channel, 0, pulse)
+    self.setPWM(channel, 0, int(pulse))

   def start_PCA9685(self):
     self.write(self.__MODE2, 0x04)

4.3 缺少mjpg-streamer可执行文件

从7zip包里面,实际上该二进制是存在的,但是就是出毛病,无法执行。

在这里插入图片描述原因:该代码包中,mjpg-streamer已经编译过了,且路径和测试路径不一致。导致无法clean,也无法编译成功。最后删除_build目录后,重新编译,现象消失。

4.4 缺失编译头文件和库

原因:该mjpg-streamer代码包编译需要WiringPi和相关库支持。

$ sudo apt-get install libjpeg62-turbo-dev cmake
$ git clone https://github.com/WiringPi/WiringPi
$ ./build
$ gpio -v
gpio version: 2.70
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Pi 3B+, Revision: 03, Memory: 1024MB, Maker: Sony
  * Device tree is enabled.
  *--> Raspberry Pi 3 Model B Plus Rev 1.3
  * This Raspberry Pi supports user-level GPIO access.

4.5 python库缺失

原因:真正这个代码跑起来,缺少python3的一些组件,请务必安装。

$ sudo apt-get install python3-bottle python3-smbus

4.6 图像无法显示,但libcamera-jpeg测试正常

原因:mjpg-streamer仅支持legacy Camera。需要将下面配置修改为【YES】,重启树莓派。

在这里插入图片描述

4.7 异常IOCTL报错

最后确认,就是这个鸟样,直接可以忽略不管。

在这里插入图片描述

4.8 Git问题

如果想用最新的Git代码,需要提前处理git网络问题,详见:Github操作网络异常笔记

$ git clone https://github.com/waveshare/Pan-Tilt-HAT.git
$ cd Pan-Tilt-HAT/RaspberryPi/web_Python
$ git clone https://github.com/jacksonliam/mjpg-streamer

5. 效果

5.1 WEB页面效果

在这里插入图片描述

5.2 视频效果

PAN Tilt HAT for Camera 2D Control

5.3 外观效果

在这里插入图片描述

5.4 起飞前效果

在这里插入图片描述

6. 参考资料

【1】Raspbian安装摄像头
【2】Raspbian镜像无头烧录

7. 后续思考

【1】 Feature Request: pan-tilt gimbal controls #196

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

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

相关文章

CSS文本外观属性内容(知识点1)

知识引入 使用HTML可以对文本外观进行简单的控制,但是效果并不理想,为此CSS提供了一系列的文本外观样式属性,具体如下。 color:文本颜色 color属性用于定义文本的颜色,其取值方式有以下三种。 (1)预定义…

springboot中一些注解

springboot中一些注解 1:项目启动时会去扫描启动的注解,一般是启动时就想要被加载的方法: 2:springBoot中MSApplication启动类的一些其他注解: EnableAsync:这是一个Spring框架的注解,它用于开启方法异步调用的功能。当…

RTDETR 引入 UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv

大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…

Linux 一键部署influxd2-telegraf

influxd2前言 influxd2 是 InfluxDB 2.x 版本的后台进程,是一个开源的时序数据库平台,用于存储、查询和可视化时间序列数据。它提供了一个强大的查询语言和 API,可以快速而轻松地处理大量的高性能时序数据。 telegraf 是一个开源的代理程序,它可以收集、处理和传输各种不…

Docker容器引擎(1)

目录 一.Docker 概述 为什么要用到容器? docker是什么? 容器与虚拟机的区别? docker的三个核心概念: 二.安装docker 安装依赖包: 安装 Docker-CE并设置为开机自动启动: 查看 docker 版本信息&#…

制作高端的电子杂志神器推荐

根据市场调查数据显示,越来越多的消费者开始青睐电子杂志这种阅读方式。相比传统纸质杂志,电子杂志具有更高的阅读体验、更便捷的分享和传播方式以及更环保的阅读方式。此外,越来越多的企业也开始重视电子杂志的宣传作用,将其作为…

植物神经功能紊乱到底是什么疾病?今天来告诉你原因和治疗方法!

首先,什么是植物神经功能紊乱?简单来说,植物神经是自主神经系统的一部分,它控制着自主生理反应,比如呼吸、心跳、血压、消化系统等。当这个系统出现紊乱时,就会导致植物神经功能紊乱。咨询:tdhy…

Unity中URP下的 额外灯 逐像素光 和 逐顶点光

文章目录 前言一、额外灯 的 逐像素灯 和 逐顶点灯1、存在额外灯的逐像素灯2、存在额外灯的逐顶点灯 二、测试这两个宏的作用1、额外灯的逐像素灯2、额外灯的逐顶点灯 前言 在之前的文章中,我们了解了 主光相关的反射计算。 Unity中URP下的SimpleLit的 Lambert漫反…

eNSP学习——VLAN基础配置及Access接口

目录 原理概述 实验内容: 实验目的: 实验步骤: 实验拓扑 配置过程 实验编址 基本配置 创建vlan 配置Access接口 原理概述 早期的局域网技术是基于总线型结构的。总线型拓扑结构是由一根单电缆连接所有主机,就导致所…

[SS]语义分割_转置卷积

转置卷积(Transposed Convolution) 抽丝剥茧,带你理解转置卷积(反卷积) 目录 一、概念 1、定义 2、运算步骤 二、常见参数 一、概念 1、定义 转置卷积(Transposed Convolution)&#xf…

如何使用宝塔面板搭建Discuz论坛服务并结合内网穿透远程访问

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board(以下简称 Discuz!)是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上&a…

大模型的高效训练和部署技术卷出新高度

01 大模型训练的挑战 1. 大模型发展现状及问题 上图中展示了大模型的发展历程,其中纵坐标是 AI 模型的参数量。在过去几年间,AI 大模型的参数量飞速增长,大约每 18 个月时间就会增长 40 倍。例如 2016 年,世界最好的大模型 ResNe…

Leetcode—39.组合总和【中等】

2023每日刷题&#xff08;七十六&#xff09; Leetcode—39.组合总和 算法思想 实现代码 class Solution { public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {vector<vector<int>> ans;vector<int>…

聚道云软件连接器实现航信与用友NC凭证对接,助力企业实现数字化转型

客户介绍&#xff1a; 某自然资源产业集团有限公司是一家专注于自然资源产业的领军企业。自成立以来&#xff0c;该企业始终致力于矿产资源、土地整理和生态修复等领域的业务发展。该企业凭借其卓越的业绩和良好的社会声誉&#xff0c;赢得了广泛的认可与赞誉。 客户痛点&…

burp靶场--host攻击

burp靶场–host攻击 https://portswigger.net/web-security/host-header#what-is-an-http-host-header-attack 在本节中&#xff0c;我们将讨论错误配置和有缺陷的业务逻辑如何通过 HTTP 主机标头使网站遭受各种攻击。我们将概述用于识别易受 HTTP 主机标头攻击的网站的高级方…

Redis+lua 解决秒杀超卖问题

商品超卖的原因是在高并发场景下,业务层面扣库存和库存的判断会出现并发情况&#xff0c;但是使用lua 脚本&#xff0c;就会避免超卖的发生。 1.在项目resources文件夹创建一个名为 stock.lua的脚本 if (redis.call(hexists, KEYS[1], KEYS[2]) 1) thenlocal stock tonumber…

方法(java)

方法&#xff08;method&#xff09;是程序中最小的执行单元 实际开发中&#xff0c;重复的代码、具有独立功能的代码可以抽取到方法中 实际开发中&#xff0c;方法的好处&#xff1a; 1.可以提高代码的复用性 2.可以提高代码的可维护性 方法定义&#xff1a;把一些代码打…

【JS逆向学习】某壁纸下载(ast混淆)

逆向目标 目标网址&#xff1a;https://bz.zzzmh.cn/index逆向接口一&#xff1a;https://api.zzzmh.cn/bz/v3/getData逆向接口二&#xff1a;https://cdn2.zzzmh.cn/wallpaper/origin/0d7d8d691e644989b72ddda5f695aca2.jpg?response-content-dispositionattachment&aut…

基于YOLOv5、v7、v8的竹签计数系统的设计与实现

文章目录 前言效果演示一、实现思路① 算法原理② 程序流程图 二、系统设计与实现三、模型评估与优化① Yolov5② Yolov7③Yolov8 四、模型对比 前言 该系统是一个综合型的应用&#xff0c;基于PyTorch框架的YOLOv5、YOLOv7和YOLOv8&#xff0c;结合了Django后端和Vue3前端&am…

STL之map【有序哈希表】使用方法

这里写目录标题 map【有序哈希表】使用方法1.头文件:2.创建map:3.添加键值对:4.查找键值对&#xff1a;5.遍历键-值对&#xff1a;5.综合示例&#xff1a;班级学生 map【有序哈希表】使用方法 话不多说&#xff0c;接着讲map用法&#xff1a; map&#xff1a;映射&#xff0c…