当前位置: 首页 > news >正文

Raspbian安装云台

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,VStepcode = 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 -warrantyRaspberry 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.lryc.cn/news/286023.html

相关文章:

  • 蓝桥杯理历年真题 —— 数学
  • 自然语言处理--双向匹配算法
  • IDEA 2023.3.2 安装教程
  • C语言常见面试题:什么是宏,宏的作用是什么?
  • 【0248】Background Writing实现机制分析
  • 基于springboot+vue的教师工作量管理系统(前后端分离)
  • 4-新建子模块(尝鲜)
  • 反序列化字符串逃逸(上篇)
  • [C++]使用yolov5的onnx模型结合onnxruntime和bytetrack实现目标追踪
  • i2c接口验证
  • 1、Pandas 数据结构:从 Series 到 DataFrame
  • MySQL函数—字符串函数
  • PLC从HTTP服务端获取JSON文件,解析数据到寄存器
  • LeetCode 46. 全排列
  • NVMe TCG安全数据存储简介
  • Linux命令-ab命令(Apache服务器的性能测试工具 )
  • 蓝桥杯java基础
  • Unity3d引擎中使用AIGC生成的360全景图(天空盒)
  • React Router v6 改变页面Title
  • postman测试导入文件
  • ZigBee学习(一)
  • Unity—配置lua环境变量+VSCode 搭建 Lua 开发环境
  • 前端-云点播技术
  • k8s---ingress对外服务(traefik)
  • MySQL-SQL-DQL
  • Docker(十四)Etcd 项目
  • EtherNet/IP开发:C++开发CIP源代码
  • 【算法题】68. 文本左右对齐
  • PHP 调用 e 签宝接口签名指南
  • 穿越Flink的时间隧道:解锁实时数据之窗,掌握流处理之巅