实验7: 字母板¶
这个实验的目的是掌握在嵌入式 Linux 中如何使用已有的函数库编写应用程序操纵 GPIO ,如何编写字符设备驱动程序在内核程序中使用 GPIO ,并学习用面包板搭简单的外部设备电路的方法,掌握 Linux 网络程序和多线程程序的编写,实现一个网络访问的 LED 矩阵显示器。
本实验配有 实验指南 。
实验目的¶
- 学习嵌入式 Linux 的内核 GPIO 库函数的使用方式;
- 学习 Linux 设备驱动程序的开发过程。
实验器材¶
硬件¶
- Linux 实验板卡 1 块;
- 5V / 1A 电源 1 个;
- microUSB 线 1 根;
- 面包板 1 块;
- SPI接口 8x8 LED 矩阵 MAX7219 1个;
- 面包线若干。
软件¶
- 编译软件等。
实验步骤¶
此为实验报告的整体步骤,具体的实验步骤请参考 实验指南 。
- 设计方案,画连线示意图;
- 在面包板上连线,完成外部电路;
- 编写 C 程序,采用 Arduino-ish 库或虚拟文件系统访问 GPIO,实现在矩阵上显示文字或图案;
- 编写字符设备驱动程序,通过内核GPIO库访问引脚,能将
write()
送来的单个字符在矩阵上显示出来; - 编写 Linux 应用程序,能通过 MQTT 协议连接自己 MQTT broker,将订阅收到的文字在 LED 矩阵上流动显示出来;
- 在 5 的基础上实现实验 6 的 DHT-11 的数据发布到自己的 MQTT broker 上后显示在 LED 矩阵上。
自选扩展内容¶
- 设备驱动程序能将
write()
送来的字符串以每个字母停留 500ms 的速度依次显示; - 1中的
write()
函数是非阻塞类型的,每500ms一个字符的显示是由内核定时器队列实现的。
实验报告要求¶
此为实验报告的整体要求,具体的实验步骤请参考 实验指南 。
- 画出你所实际实施的连接示意图;
- 给出所用的器材的列表;
- 描述所做的实验步骤,给出各步操作的命令和结果;
- 说明所用的 GPIO 库的来源;
- 给出代码并解释;
- 说明其他所做的扩展内容的情况。
验收要求¶
- 现场演示通过 Arduino-ish 库或虚拟文件系统访问 GPIO,实现在矩阵上显示文字或图案;
- 现场演示使用字符设备驱动所编写的程序,将 DHT-11 的数据发布到自己的 MQTT broker 上后显示在 LED 矩阵上;
- 回答和实验相关的问题。