- 所需组件
- 电路原理图
- 使用EasyEDA为Raspberry Pi RGB LCD HAT制造PCB
- 使用EasyEDA在线计算和订购PCB样品
- Raspberry Pi LCD帽子的设置
- Raspberry Pi LCD HAT的Python代码
- 测试Raspberry Pi RGB LCD HAT
Raspberry Pi帽子与Arduino的防护罩相同,它们可以直接安装在Raspberry Pi的顶部,不需要任何进一步的连接。在这里,我们将为PCB上的Raspberry Pi构建RGB LCD帽子。该LCD帽子由一个16x2 LCD模块,五个开关和三个NeoPixel LED组成。此处,开关用于更改显示的文本,而NeoPixel LED用作指示器。这些开关和Neo Pixel可根据要求进行编程,例如开关可用于显示传感器值(如温度,湿度等),Neo Pixel可用于显示状态(如Red)以指示一些错误,并在接收某些数据时显示绿色。
在这里,我们将使用EasyEDA在线软件为该Pi HAT设计电路和PCB,并使用JLCPCB订购PCB。
所需组件
- 树莓派4
- 16 * 2 LCD显示模组
- 新像素LED(3)
- 电容器类
- 开关(5)
电路原理图
Raspberry Pi RGB LCD HAT的完整电路图如下所示。原理图是使用EasyEDA绘制的。如您所见,我们将一个16x2 LCD模块,3个NeoPixel LED和5个开关与Raspberry Pi连接在一起。连接器还用于启用或禁用NeoPixel LED。
使用EasyEDA为Raspberry Pi RGB LCD HAT制造PCB
在设计用于Raspberry Pi RGB LCD HAT的PCB时,最具挑战性的部分是正确的占位面积。如果尺寸错误,则组件将无法安装在PCB上。但幸运的是,EasyEDA几乎可以为市场上的所有组件提供封装。这是因为其庞大的用户社区,用户可以在其中创建足迹,并使其可供公众在其项目中使用。
EasyEDA是一个在线EDA工具,我以前使用过很多次,发现它使用起来非常方便,因为它具有大量资源,并且是开源的。设计完PCB之后,我们可以通过其低成本PCB制造服务JLCPCB订购PCB样品。他们还提供电子元件库存大量的元件采购服务,用户可以与PCB订单一起订购所需的元件。
在设计电路和PCB时,您还可以公开电路和PCB设计,以便其他用户可以复制或编辑它们并从中受益,我们还公开了此Pi RGB LCD帽子设计,请检查以下内容链接:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
您可以通过选择“层”窗口中的层来查看PCB的任何层(顶层,底层,顶层丝绸,底层丝绸等)。除此之外,它们还提供了PCB在制造后的外观的3D模型视图。LCD HAT顶层和底层的快照看起来像这样:
使用EasyEDA在线计算和订购PCB样品
完成此PI RGB LCD HAT的设计后,您可以通过JLCPCB.com订购PCB。要从JLCPCB订购PCB,您需要Gerber File。您可以从下面的链接下载Gerber文件:
- Raspberry Pi RGB LCD帽子的Gerber File
要生成PCB的Gerber文件,只需单击EasyEDA编辑器页面上的 Generate Fabrication File 按钮,然后从那里下载Gerber文件,或单击“在JLCPCB上订购”,如下图所示。这会将您重定向到JLCPCB.com,在这里您可以选择要订购的PCB数量,所需的铜层数量,PCB厚度,铜重量,PCB颜色和其他PCB参数,如下面的快照所示:
单击“ 在JLCPCB 上 订购” 按钮后,它将带您到JLCPCB网站,在这里您可以以非常低的价格订购PCB,即2美元。他们的构建时间也非常短,DHL交付3-5天为48小时。您将在订购后一周内得到PCB。
订购PCB后,您可以查看日期和时间以显示PCB的生产进度。您可以通过在“帐户”页面上进行检查,然后单击PCB下的“生产进度”链接,如下图所示。
订购几天的PCB后,我得到了包装精美的PCB样品,如下图所示。
确保轨道和脚印正确后。我着手组装PCB。完全焊接的电路板如下所示:
Raspberry Pi LCD帽子的设置
在开始编程之前,Raspberry Pi首先更新Raspberry Pi并安装一些必要的库。运行以下命令以更新和升级Raspberry Pi:
sudo apt-get更新 sudo apt-get升级
现在,安装NeoPixel LED的Adafruit_Blinka库。Adafruit_Blinka库在Python中提供了CircuitPython支持。
sudo pip3安装adafruit电路python-neopixel
之后,为LCD模块安装Adafruit_CharLCD库。该库适用于Adafruit LCD板,但也可以与其他品牌的LCD板一起使用。
sudo pip3安装Adafruit-CharLCD
Raspberry Pi LCD HAT的Python代码
在这里,我们通过使用很少的开关来显示LCD模块上的某些特定值和RGB LED作为指示器,来展示Raspberry Pi的RGB LCD帽子。因此,我们必须对Raspberry Pi进行编程,以使其在按下开关时应显示一些传感器值或其他值。
完整的python代码在页面末尾给出。在这里,我们逐步解释了代码。
通过导入所有必需的库来启动代码。
导入RPi.GPIO为GPIO导入neopixel导入时间导入板导入Adafruit_CharLCD为LCD
此后,定义连接LCD和其他开关的所有GPIO引脚。
lcd_rs = 7 lcd_en = 8 lcd_d4 = 25 lcd_d5 = 24 lcd_d6 = 23 lcd_d7 = 18 lcd_backlight = 2 sw0 = 5 sw2 = 13 sw3 = 19 sw4 = 26
现在,使用BCM模式定义GPIO模式。您也可以将其更改为BOARD。然后将所有开关引脚定义为输入。
GPIO.setmode(GPIO.BCM)#使用BCM GPIO编号GPIO.setup(sw0,GPIO.IN)GPIO.setup(sw2,GPIO.IN)GPIO.setup(sw3,GPIO.IN)GPIO.setup(sw4,GPIO 。在)
之后,定义连接Neo Pixel LED的GPIO引脚。然后定义新像素LED的编号。这里使用了三个LED,您可以根据需要进行更改。
pixel_pin =电路板。D21num_pixels = 3
现在在 lcddisplay() 函数中,为每个开关分配一个特定的任务。例如,在这里,当按下第一个开关时,Raspberry Pi应该在LCD上显示“ UP”,而当按下第二个开关时,它应该在LCD上显示“ DOWN”,以此类推。
您可以使用这些开关执行其他任务,而不用在LCD上打印东西。例如,您可以使用开关1显示温度值,使用开关2显示湿度值,使用开关3显示压力值,等等。
def lcddisplay():if(GPIO.input(sw0)== False):lcd.clear()lcd.set_cursor(0,0)lcd.message('UP')if(GPIO.input(sw2)== False ):lcd.clear()lcd.set_cursor(0,0)lcd.message('DOWN')if(GPIO.input(sw3)== False):lcd.clear()lcd.set_cursor(0,0)lcd.message('LEFT')if(GPIO.input(sw4)== False):lcd.clear()lcd.set_cursor(0,0)lcd.message('RIGHT')
现在在 while true 循环内部,使用pixel.fill函数以不同颜色点亮Neo Pixels。因此,Pi被编程为以红色,绿色和蓝色分别点亮Neo Pixels一秒钟。
您也可以将这些Neo Pixel用作指标。例如,您可以用红色点亮一个Neo Pixel像素以指示Pi已连接到电源,或者可以使用其他LED指示Pi正在接收或发送数据,等等。
pixel.fill((255,0,0))pixel.show()time.sleep(1)pixel.fill((0,255,0))pixel.show()time.sleep(1)pixel.fill( (0,0,255))pixel.show()time.sleep(1)rainbow_cycle(0.001)
测试Raspberry Pi RGB LCD HAT
组装完LCD并将其与Raspberry Pi连接之后,我们都准备使用此PI RGB LCD HAT。为此,请使用以下命令运行python代码。
python code_filename.py
现在按下开关。当您按下SW0开关时,它应该在LCD上打印“ UP”。对于SW2开关,它应该打印“ Down”,其余开关都应打印“ Down”。
下面提供了完整的工作视频以及Python代码。