3_树莓派机载计算机的硬件资源样例教程——无名创新
树莓派机载计算机的硬件资源使用样例教程
样例程序所在目录、Visual Studio Code程序导入与程序运行
执行树莓派硬件资源使用demo的前提是,用户已经使用NoMachine或者VNC Viewer远程登陆系统桌面,也可以直接通过树莓派4B上的Micro HDMI接口扩展连接显示屏,可以根据实际显示屏接口自行购买Micro HDMI转HDMI/VGA转换线。当局域网网络不稳定时,有线连接的方式会极大的提升开发效率,同时此方式也需要配备一组无线键盘、鼠标用于操作ubuntu系统。
进入系统桌面后,鼠标右键cindy的主文件夹,其中用户只有操作的文件放在rpi_python_opencv、catkin_ws、autostart三个文件夹下,
其中rpi_python_opencv用于存放树莓派硬件资源使用的样例程序、基于Python开发的OPENCV机器视觉基础与进阶样例
打开ubuntu桌面的visual studio code软件,点击左上角文件,选中rpi_python_opencv文件下后,点击确定后导入所有文件。
visual studio code会进入以下界面,用户直接在VS code软件中,编写python程序,对于已安装的第三方库会自动补全相关变量或函数。
1、GPIO口驱动RGB灯
在VS code下方命令窗口中(也可以CTRL+ALT+T在用cd命令进入该目录下),依次输入如下命令既可以观察gpio控制板载RGB的效果,其中RGB灯为共阴方式,高电平亮低电平灭。
cindy@cindy-desktop:~/rpi_python_opencv$ ls -l
总用量 44
drwxrwxr-x 2 cindy cindy 4096 1月 9 02:39 1树莓派资源样例
drwxrwxr-x 4 cindy cindy 4096 1月 13 18:31 2机器视觉基础例程
drwxrwxr-x 4 cindy cindy 4096 1月 15 04:31 3机器视觉进阶例程
-rw-rw-r-- 1 cindy cindy 15080 2月 11 21:33 main.py
-rw-rw-r-- 1 cindy cindy 14531 1月 8 22:53 main.pybackup
cindy@cindy-desktop:~/rpi_python_opencv$ cd 1树莓派资源样例/
cindy@cindy-desktop:~/rpi_python_opencv/1树莓派资源样例$ ls -l
总用量 56
-rw-rw-r-- 1 cindy cindy 1250 2月 24 21:21 1_gpio_rgb.py
-rw-rw-r-- 1 cindy cindy 2081 1月 8 17:43 2_hardwave_pwm.py
-rw-rw-r-- 1 cindy cindy 951 1月 8 17:10 3_uart_send.py
-rw-rw-r-- 1 cindy cindy 945 1月 8 18:01 4_uart_receive_and_send.py
-rw-rw-r-- 1 cindy cindy 2480 1月 9 02:04 5_i2c_mpu6050.py
-rw-rw-r-- 1 cindy cindy 839 1月 9 02:28 6_i2c_oled_1306_image.py
-rw-rw-r-- 1 cindy cindy 2342 1月 9 14:24 7_i2c_oled_1306_draw.py
-rw-r--r-- 1 cindy cindy 24629 1月 9 05:25 happycat_oled_64.ppm
最后运行1_gpio_rgb.py,程序运行的效果是RGB灯三色依次闪烁,并屏幕打印提示端口和运行状态。
python3 1_gpio_rgb.py
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xk98cOF3-1645889851215)(/image-20220224213340462.png)]
执行CTAL+C
终止程序运行
2、硬件PWM的使用
预留出来的可用PWM口有四路,四个PWM口是GPIO12、GPIO13、GPIO18、GPIO19依次对应PWM0、PWM1、PWM2、PWM3,其中PWM0、PWM1两路PWM口与串口4的TXD、RXD复用,当初始化GPIO18、GPIO19为PWM口后,再需要将GPIO18、GPIO19用作串口时,必须重新启动树莓派系统。程序中通过pwm0_1_enable变量来控制PWM0、PWM1是否使用。
运行2_hardwave_pwm.py,程序运行的效果是输出频率为1000hz的PWM波,占空比从0100%,然后从100%0,用户可以将PWM口接示波器、外接RGB灯或者万用表测平均电压的方式来观察PWM输出效果。
python3 2_hardwave_pwm.py
3、串口发送
扩展板引出了全部用户可用的5组串口,5组串口已经在树莓派系统启动配置文件中使能开启,用户可以直接使用,避免了传统ubuntu系统通过外接usb转ttl模块扩展串口资源的方式,降低了接线复查程度。用户可以在命令窗口中执行ls -l /dev/ttyAMA*
命令来查看可用的串口设备。
同时用户可以执行cutecom
调用cutecom串口调试工具对串口进行相关操作
在提供的示例中,默认操作的是UART4,用户也可以调整串口参数,更改成其它串口或者波特率等。
运行3_uart_send.py,程序运行的效果是输出串口打印“Hello,World”,用户可以外接usb转ttl模块,通过串口调试助手观察发送的数据。
python3 3_uart_send.py
4、串口接收并发送
本例程利用串口inWaiting()函数查询串口缓冲区数据长度,利用read()方法读取缓冲区数据,最后将接收到的数据通过write()方法发送出来,实现接收数据并转发回显的效果。
python3 4_uart_receive_and_send.py
5、I2C读取MPU6050数据
本例程利用I2C1口,挂载MPU6050设备,通过SMBus第三方库读取MPU6050数据,ubuntu系统启动文件中,已经对I2C硬件资源配置进行了使能,用户可以像单片机I2C编程一样直接使用I2C资源。同时当采用C/C++编程时可以采用wiringpi库对I2C资源进行编程。
树莓派系统查看I2C外设可以利用i2c-tools工具包执行如下指令实现。
sudo i2cdetect -y 1
可以看到I2C外设中存在地址未0x0e、0x68、0x76三组I2C设备,查询数据手册可知0x68即为MPU6050的地址,另外两组为IST8310磁力计、SPL06气压计的地址。查询I2C外设寄存器数据可以通过命令行:sudo i2cdump -y 1 0x68
寄存器写操作可以通过执行命令
sudo i2cset -y 1 0x68 0x6B 0x00
sudo i2cset -y 1 0x68 0x19 0x00
sudo i2cset -y 1 0x68 0x1A 0x02
sudo i2cset -y 1 0x68 0x1B 0x08
sudo i2cset -y 1 0x68 0x1C 0x10
最后执行
sudo i2cdump -y 1 0x68
对比前后对应寄存器地址数据是否变化
同时用户可以查看单个寄存器地址中的数据,例如读取传感器ID信息who am i寄存器信息,执行命令如下:
sudo i2cget -y 1 0x68 0x75
以上操作是利用i2c_tools工具包对I2C外设进行操作,提供的demo是读取MPU6050温度、加速度、陀螺仪数据,并通过串口打印显示出来,执行本例程需要确保I2C端口存在MPU6050外设,否则回导致I2C设备硬件读取出错。执行程序命令如下:
python3 5_i2c_mpu6050.py
6、I2C挂载SSD1306显示屏显示图像
本例程利用I2C1口,挂载SSD1306显示屏,利用Adafruit_SSD1306库函数实现图形显示,执行命令如下:
python3 6_i2c_oled_1306_image.py
7、I2C挂载SSD1306显示屏显示字符
本例程利用I2C1口,挂载SSD1306显示屏,首先利用PIL库生成ImageDraw方法,运用此方法在自定义图像中添加字符、数字等内容,最后用Adafruit_SSD1306图形显示函数刷新显示出来。本例程调用了python3中subprocess 模块,查看系统IP、运存、内存等信息,这部分内容初学者不需要了解。本例程执行命令如下:
python3 7_i2c_oled_1306_draw.py
方法,运用此方法在自定义图像中添加字符、数字等内容,最后用Adafruit_SSD1306图形显示函数刷新显示出来。本例程调用了python3中subprocess 模块,查看系统IP、运存、内存等信息,这部分内容初学者不需要了解。本例程执行命令如下:
python3 7_i2c_oled_1306_draw.py
3_树莓派机载计算机的硬件资源样例教程——无名创新相关推荐
- 4_树莓派机载计算机的机器视觉样例教程——无名创新
typora-root-url: img 树莓派机载计算机的机器视觉样例教程 执行本样例程序需要的硬件 树莓派机载计算机 摄像头 参照官方介绍:树莓派文档 - 相机 (raspberrypi.com) ...
- 6_树莓派机载计算机通过串口指令控制无人机自主飞行教程
typora-root-url: img 6_树莓派机载计算机通过串口指令控制无人机自主飞行教程 电赛飞行器赛题的前世今生 飞行器赛题至出现以来.从大体趋势上来看参赛学生的主流飞控路线主要经历了以下四 ...
- 推荐系统图算法实用干货汇总(含论文、代码、样例教程)
Hello,今天为朋友们推荐一个值得学习的公众号「浅梦的学习笔记」,小编目前在电商公司从事推荐系统相关的工作.主要分享关于「推荐系统,图算法,NLP&CV以及求职面试」等内容,欢迎关注一起学习 ...
- 计算机cad模板样例,[计算机软件及应用]cad实例.doc
[计算机软件及应用]cad实例 第三节 矩形,圆.正多边形,构造线 例1 1选取圆(C)绘制直径为140的圆 2捕捉圆心绘制直径为170的圆 3绘制直径为200的圆 4捕捉象限点绘制4个直径为10的圆 ...
- 计算机系统软件和应用软件图,样例_计算机软件及应用_IT计算机_专业资料
样例_计算机软件及应用_IT计算机_专业资料 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 实验一系统响应及系统稳定性实验目的:学 ...
- 【计算机原理与接口技术(UNIX)⑰】——微型计算机系统的串行通信 [ 8250 + 具体样例 + 上机实验]
✅ 通过对 [计算机与UNIX汇编原理 ① ~ ⑫]的学习,我们已经大致掌握了汇编程序设计的相关知识 接下来,我将其分栏名改为 [计算机原理与接口技术(UNIX) ],重点将放在 "计算机原 ...
- 计算机专业毕业生、求职升学面试 项目亮点,算法原理 双语介绍思路与样例
文章大纲 项目亮点 样例 背景 背景(简洁版) 技术上的亮点 业务上的亮点 算法工程师 自我介绍与评价样例 中文 英文 项目经历 口述DEMO 工作描述 项目描述 面试算法原理 叙述逻辑举例 KMea ...
- 浙江大学计算机学院博士论文格式,博士学位论文格式模板(浙江大学博士论文模板样例)...
博士学位论文格式模板(浙江大学博士论文模板样例 密级: 博 士 学 位 论 文 论文题目 [博士论文标题] 作者姓名 [作者] 指导教师 [导师] 教授 ...
- 计算机大赛获奖证书,如何辨别五项学科奥赛竞赛证书的级别?(附2017版获奖证书样例)...
昨日,学科竞赛网发布<2017年五项学科竞赛奖项等级与高校自招关系>一文,在各中学.家长和考生中引起强烈反响,一时之间刷爆朋友圈.与此同时,很多同学和家长纷纷致电学科竞赛网询问如何鉴别自己 ...
最新文章
- 约瑟夫环形链表问题、丢手帕问题、剑指offer圆圈中最后一个数问题
- Private Data Manipulation in Optimal Sponsored Search Auction
- 【个人网盘-updog】使用updog建立个人网盘,so easy
- c语言 字符串map,C语言实现BitMap
- from torchcrf import CRF
- MySQL后初次密码_mysql第一次安装成功后初始化密码操作步骤
- 怎么查看CAD图纸呢?如何实现CAD快速看图?
- 一体机扫描文档FTP搭建全程
- 批量修改后缀名的方法
- 嚯,这款AI建模工具实在太强大了,快来pick!
- 如何使用Reviewboard进行代码Review?
- 无线技术—安全认证技术
- 鼠标悬停出现二维码动画放大,url转二维码
- nux下导入、导出mysql数据库命令
- 滤波器基础05——巴特沃斯、切比雪夫与贝塞尔滤波器
- 计算机安装Hp1005打印机,hp1005打印机驱动官方版
- 【Windows11】Cuda和Cudnn详细安装教程
- 豆瓣前250个电影的相关分析
- Guava-retrying 重试机制
- elecworks无法连接至协同服务器
热门文章
- 3个赚钱思路和案例,都是暴利赚钱项目,最后一个你肯定见到过
- Translucent: 任务栏美化工具
- 软件著作权登记版权保护中心下发补正修改指南
- mediainfo工具查看文件信息
- oracle学习之sid_name
- java-php-python-ssm芮城县十全十美火锅店点餐系统计算机毕业设计
- jav获取本地图片上传到数据库中
- 产品运营必看!这6本书你不该错过!
- 通过新浪股票接口 实现 Echarts K线图
- 服务器被入侵网页后门,谨防“网页后门”,浅谈Webshell入侵网站的原理和预防措施...