基于STEP PICO的交通灯控制器与电压表
基于STEP PICO的交通灯控制器与电压表,完成了按键切换两种模式
标签
嵌入式系统
开发板
PICO
Mircopython
voncg
更新2023-03-30
安徽师范大学
256

一.项目描述

板卡介绍:

STEP Pico是一款低成本,高性能的微控制器开发板,具有灵活数字接口(完全兼容Raspberry Pi Pico)。硬件上,采用Raspberry Pi官方自主研发的RP2040微控制器芯片,搭载了ARM Cortex MO+双核处理器,高达133MHz的运行频率,内置了264KB SRAM和2MB闪存,还板载有多达26个多功能的GPIO引脚。软件上,可选择树莓派提供的C/C++SDK,或者使用MicroPython进行开发,且配套有完善的开发资料教程,可方便快速入门开发并嵌入到产品中。

特性:

2个按键输入

4个单色LED

12个WS2812B RGB三色灯

1个姿态传感器

1个128*64 OLED显示屏

1个蜂鸣器

1个可调电位计(用于电压表)

1路音频信号输入(用于示波器)

8位R-2R电阻网络构成的DAC(用于DDS信号发生器)

完成项目:

1.制作一个交通灯控制器

具体要求:仿真马路上的交通灯的工作状态切换,利用板上的红、黄、绿三种颜色的LED显示道路状态的切换,行人按键时,具有优先功能

实现方式:利用板上的3个不同颜色的LED模拟交通灯,程序会轮流切换三个灯的状态,并根据按键的输入(中断或查询机制)调整交通灯的切换

2.制作一个电压表(附加功能)

具体要求:利用板上的电位计调节电压从0-3.3V之间变化,在OLED显示屏上显示电压值,可以以数字的方式也可以以图形的方式来显示

实现方式:调节电位计产生0-3.3V之间变化的电压,树莓派Pico内部的ADC对该电压进行采集,得到0-4095之间的数值,经过计算以后对应到相应的电压值,再通过OLED显示屏显示出来

经过设计、整合,成功实现能够使用按键切换功能,两个任务都完成了。

二.设计思路

因为大一的时候就做过51单片机的红绿灯,并且根据已经给的题目,结合之前做过pico项目的经验,选择了LED红绿灯。同时,为了丰富项目内容,同时增加了ADC采集电压表内容。

ADC采集具体实现就是初始化ADC引脚与相关功能,根据已经提供的滑动变阻器可以改变电压值,通过数据转换然后显示在oled上。

流程图:

(1)硬件部分

主控采用pico,rp2040核心,平台使用的是电子森林自研的STEP平台,并且有相对应的库,可以很方便很简单的进行开发。因为硬件部分都使用的是已经提供的部分,所以不再赘述。

(2)软件部分

软件部分分为两个部分。

第一部分是开机的红绿灯自动运行,我自己编写后,放在循环里可以不断执行。

第二部分便是中断处理部分,使用两个外部中断K1、K2。

K1中断作为行人按键使用,每次按下后,行人通过时间增加5s,当然只在灯为绿灯和黄灯的时候具有作用,红灯的时候为另一种状态,此时按下没有作用。

K2中断作为切换功能使用,按下后,灯会变成全白色,此时OLED屏幕会显示此时ADC时时采集到的电压值,是已经经过计算转换后的数值,如果此时单片机是连接电脑的话,也会给串口打印出来电压值。

三.部分代码讲解

(1)主循环部分

主循环部分主要是进行灯的切换与延时,并且区分标志位,用于行人按键的控制,ws2812b.on_all是对等的颜色进行切换,time.sleep是延时代码。

(2)按键K1、K2部分

按键K1按下触发中断1,判断state标志位是否为1,出发延时5s的行人按键控制。

按键K2按下触发中断2,切换模式,进行电压表模式,进行ADC采集初始化与OLED数值显示。

(3)电压采集计算部分

这部分主要是进行电压的采集,数值转换,打印与OLED的初始化与OLED数值显示的规定,在按下按键K2后触发,此时ADC会实时采集电压值,将其显示在OLED上。

更详细的见代码文件

四.效果展示

红绿灯模式:

此时可以看到图片为绿灯状态,在过了规定时间之后变为黄色,然后红色,一切按照正常红绿灯模式展开,此时按下k1可以开启行人模式。此状态为红绿灯模式

电压表模式:

此时为电压表模式,根据初始好的adc进行实时采集电压,并通过转换显示在oled屏幕上,并且精度可达小数点6为,通过旋转滑动变阻器,可以实时改变电压值。此模式为电压表模式

五.总结

       本次寒假练可以说提供了一个很完整的资源,有了硬禾提供的相关库,可以很方便的做出自己想做出的功能。并且PICO与STEP平台相结合也颇有趣味,如果说唯一的遗憾,就是自己做的项目水平还需要提高。

       很感谢硬禾学堂,提供一个平台,能够在空余时间提高自己开发的能力,学习到了更多的知识。同时我也期待未来还能够通过更多活动学习更多的内容。感谢电子森林能够提供这个平台。希望未来电子森林能够有更多好玩有趣的项目。白嫖更多的板子。

附件下载
pico_hanjia.zip
团队介绍
myself
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号