树莓派机载计算机的硬件资源使用样例教程

样例程序所在目录、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_树莓派机载计算机的硬件资源样例教程——无名创新相关推荐

  1. 4_树莓派机载计算机的机器视觉样例教程——无名创新

    typora-root-url: img 树莓派机载计算机的机器视觉样例教程 执行本样例程序需要的硬件 树莓派机载计算机 摄像头 参照官方介绍:树莓派文档 - 相机 (raspberrypi.com) ...

  2. 6_树莓派机载计算机通过串口指令控制无人机自主飞行教程

    typora-root-url: img 6_树莓派机载计算机通过串口指令控制无人机自主飞行教程 电赛飞行器赛题的前世今生 飞行器赛题至出现以来.从大体趋势上来看参赛学生的主流飞控路线主要经历了以下四 ...

  3. 推荐系统图算法实用干货汇总(含论文、代码、样例教程)

    Hello,今天为朋友们推荐一个值得学习的公众号「浅梦的学习笔记」,小编目前在电商公司从事推荐系统相关的工作.主要分享关于「推荐系统,图算法,NLP&CV以及求职面试」等内容,欢迎关注一起学习 ...

  4. 计算机cad模板样例,[计算机软件及应用]cad实例.doc

    [计算机软件及应用]cad实例 第三节 矩形,圆.正多边形,构造线 例1 1选取圆(C)绘制直径为140的圆 2捕捉圆心绘制直径为170的圆 3绘制直径为200的圆 4捕捉象限点绘制4个直径为10的圆 ...

  5. 计算机系统软件和应用软件图,样例_计算机软件及应用_IT计算机_专业资料

    样例_计算机软件及应用_IT计算机_专业资料 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 实验一系统响应及系统稳定性实验目的:学 ...

  6. 【计算机原理与接口技术(UNIX)⑰】——微型计算机系统的串行通信 [ 8250 + 具体样例 + 上机实验]

    ✅ 通过对 [计算机与UNIX汇编原理 ① ~ ⑫]的学习,我们已经大致掌握了汇编程序设计的相关知识 接下来,我将其分栏名改为 [计算机原理与接口技术(UNIX) ],重点将放在 "计算机原 ...

  7. 计算机专业毕业生、求职升学面试 项目亮点,算法原理 双语介绍思路与样例

    文章大纲 项目亮点 样例 背景 背景(简洁版) 技术上的亮点 业务上的亮点 算法工程师 自我介绍与评价样例 中文 英文 项目经历 口述DEMO 工作描述 项目描述 面试算法原理 叙述逻辑举例 KMea ...

  8. 浙江大学计算机学院博士论文格式,博士学位论文格式模板(浙江大学博士论文模板样例)...

    博士学位论文格式模板(浙江大学博士论文模板样例  密级:    博  士  学  位  论  文 论文题目  [博士论文标题] 作者姓名        [作者] 指导教师        [导师] 教授 ...

  9. 计算机大赛获奖证书,如何辨别五项学科奥赛竞赛证书的级别?(附2017版获奖证书样例)...

    昨日,学科竞赛网发布<2017年五项学科竞赛奖项等级与高校自招关系>一文,在各中学.家长和考生中引起强烈反响,一时之间刷爆朋友圈.与此同时,很多同学和家长纷纷致电学科竞赛网询问如何鉴别自己 ...

最新文章

  1. 约瑟夫环形链表问题、丢手帕问题、剑指offer圆圈中最后一个数问题
  2. Private Data Manipulation in Optimal Sponsored Search Auction
  3. 【个人网盘-updog】使用updog建立个人网盘,so easy
  4. c语言 字符串map,C语言实现BitMap
  5. from torchcrf import CRF
  6. MySQL后初次密码_mysql第一次安装成功后初始化密码操作步骤
  7. 怎么查看CAD图纸呢?如何实现CAD快速看图?
  8. 一体机扫描文档FTP搭建全程
  9. 批量修改后缀名的方法
  10. 嚯,这款AI建模工具实在太强大了,快来pick!
  11. 如何使用Reviewboard进行代码Review?
  12. 无线技术—安全认证技术
  13. 鼠标悬停出现二维码动画放大,url转二维码
  14. nux下导入、导出mysql数据库命令
  15. 滤波器基础05——巴特沃斯、切比雪夫与贝塞尔滤波器
  16. 计算机安装Hp1005打印机,hp1005打印机驱动官方版
  17. 【Windows11】Cuda和Cudnn详细安装教程
  18. 豆瓣前250个电影的相关分析
  19. Guava-retrying 重试机制
  20. elecworks无法连接至协同服务器

热门文章

  1. 3个赚钱思路和案例,都是暴利赚钱项目,最后一个你肯定见到过
  2. Translucent: 任务栏美化工具
  3. 软件著作权登记版权保护中心下发补正修改指南
  4. mediainfo工具查看文件信息
  5. oracle学习之sid_name
  6. java-php-python-ssm芮城县十全十美火锅店点餐系统计算机毕业设计
  7. jav获取本地图片上传到数据库中
  8. 产品运营必看!这6本书你不该错过!
  9. 通过新浪股票接口 实现 Echarts K线图
  10. 服务器被入侵网页后门,谨防“网页后门”,浅谈Webshell入侵网站的原理和预防措施...