Raspbian安装云台

2024-01-23 09:36
文章标签 安装 云台 raspbian

本文主要是介绍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

这篇关于Raspbian安装云台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/635976

相关文章

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地