电子说
步骤1:DeskClock板
首先,我开始使用DeskClock板。在设计时,我提供了6针连接器以允许连接编程电缆-这是板的照片,显示了各种连接器。
当然-当我们将组件加载到板上时,我们不会填充这些连接器-只需在其中进行编程和测试即可。
这张照片中板背面的一面,而不是带有所有LED的板正面,首先被填充。在制造过程中。
我用此板非常仔细地测量了要连接的各种连接的位置和间距。
现在-如何连接到板?很高兴你问。我用过弹簧针!
步骤2:Pogo引脚和其他硬件
Pogo引脚是专业人员在测试时用于临时连接到板的引脚。它们有多种尺寸和形状,并具有精密的弹簧加载机制,可确保将销均匀地推向电路板。
我从eBay上的供应商处购买了Pogo销-它们足够便宜,我想我现在可以一辈子了!相同的供应商还向我提供了其他我需要用来钳住电路板的棘手硬件。
这里有几张销子本身,漂亮的电路板夹具和橡胶板间隔安装件的照片。
第3步:测量和安装电路板支架
所以,我有弹簧针和其他安装硬件。我仔细测量了孔的大小和间距,并为激光切割机创建了布局。我也可以使用钻头简单地钻出孔,但是切割器的重复性很好。
我决定将孔隔开,以使插针不在焊盘孔的中心-这样可以确保插针牢固地接触板子。
我还为Clamp设计了空间,并为板子背面设计了一些卡舌。
对于DeskClock板,板上装有2.1mm轴向电源插座,我必须提供一个释放孔。最后,别忘了用橡胶垫支撑电路板的背面。
步骤4:用于大脑的Raspberry Pi和1.8英寸彩色显示屏
我需要更换笔记本电脑的东西,所以我决定使用Raspberry PI。
它可以很容易地安装在编程器的底部,并使用一条简单的26线电缆连接到GPIO引脚,以连接DeskClock板和显示器以及拨动开关。
我使用的特定引脚配置不是ortant-您将根据自己的需要使用自己的显示器。
所用的显示器是Sainsmart的1.8英寸显示器-我6个月前带了一大堆以防万一我发现它们的用途-这只是用途!我跟随Marks博客http://marks-space.com/2012/11/23/raspberrypi-tft/重建Linux内核以支持显示。
Mark是正确的-在Pi上编译内核这是一个缓慢的过程-我让它运行了一整夜。
连接显示器很简单,并且很快我有了一个工作正常的FrameBuffer2设备。
第5步:口袋固定1.8英寸显示屏
我需要一种将LCD显示屏安装在夹具上的方法,以免摇动。只需简单地将其倾斜即可-只需为其建立一个倾斜的口袋即可。
它整齐地坐落在设备的前部,以一定角度便于用户观看显示器。
显示器可以牢固安装,但万一它可以应该决定滑出,并将3毫米尼龙螺钉固定在适当的位置。
可笑的是,我忘记了大约20年的丙烯酸使用经验,我在学校的商店里用了它,然后立即忘记了。 ,我的工作坊里有很多东西:-)
第6步:让Pi成为程序员
构建的下一部分是寻找软件,使我可以直接用Pi对该板进行编程。我决定使用史蒂夫·马普尔(Steve Marple)在他的博客中介绍的方法:http://blog.stevemarple.co.uk/2013/03/how-to-use-gpio-version-of-avrdude-on.html。
在我的情况下,我使用了与GPIO引脚不同的1.8英寸LCD显示屏。
当我发现Pi正确编程时,大声欢呼。
有些人使用电平转换器来保护PI-我没有,该项目也可以正常运行。
步骤7:拨动开关从DeskClock板上断开电源
我决定安装一个拨动开关以断开DeskClock板上的电源,并告诉PI启动时间。
该开关为DPDT,因此一半连接到+ 5v,
当开关关闭时,GPIO引脚接地,而在打开时,GPIO引脚被拉高。我使用100欧姆电阻来确保GPIO引脚处于导通状态。
步骤8:Sof接下来,我编写了我的第一个Python程序。
我是C程序员-幸运的是,有很多教程可以帮助您。
》我从一组样本中获取了大部分代码,其中有人将其PI用作天气显示。
这是Pythonscript的代码,该Python脚本读取按钮并控制显示
#!/usr/bin/python
import pygame
import sys
import time
from time import strftime
import os
import subprocess
import RPI.GPIO as GPIO
GPIO.setmode(GPIO .BCM)
#如果不是os.getenv(‘SDL_FBDEV’):将帧缓冲设备设置为TFT :
os.putenv(‘SDL_FBDEV’,‘/dev/fb1’)
os .putenv(‘SDL_VIDEODRIVER’,‘fbcon’)
def displayTime():
#用于在TFT
屏幕上显示日期和时间.fill((0,0,0))
font = pygame.font.Font(None,50)
现在= time.localtime()
用于在[(“%H:%M:%S”,60),(“%d% b“,10)]:
时间格式,dim =设置
currentTimeLine = strftime(现在为时间格式)
text = font.render(currentTimeLine,0,(0,250,150))
Surf = pygame.transform.rotate(text,-90)
screen.blit(Surf,(dim,20))
def displayText(text ,大小,行,颜色,clearScreen):
#用于在TFT屏幕上显示文本
,如果clearScreen:
screen.fill((0,0,0))
font = pygame。 font.Font(无,大小)
text = font.render(文本,0,颜色)
textRotated = pygame.transform.rotate(text,-90)
textpos = textRotated.get_rect()
textpos.centery = 80
如果line == 1:
textpos.centerx = 90
screen.blit(textRotated,textpos)
elif line == 2:
textpos.centerx = 40
screen.blit(textRotated,textpos)
def main():
全局屏幕
pygame.init()
size =宽度,高度= 128,160
黑色= 0,0,0
红色= 255,0,0
绿色= 0,255,0
蓝色= 0,0,255
白色= 255,255,255
fail_cnt = 0
GPIO.setup (18,GPIO.IN)
pygame.mouse.set_visible(0)
屏幕= pygame.display.set_mode(size)
displayText(“ DougsWordClock”,20,1,GREEN,True)
displayText( “ 150mm编程器”,20、2,蓝色,False)
pygame.display.flip() displayText(“ Firmware Rev”,20、1,RED,True)
displayText(“ 20130520”,40,2,白色,False)
pygame.display.flip()
time.sleep(5)
而True:
displayText(“ Waiting” ,30,1,GREEN,True)
displayText(“ Insert Board”,20,2,BLUE,False)
pygame.display.flip()
如果(GPIO.input(18)):
displayText(“ Programming”,30,1,(200,200,1),True)
displayText(“ Wait 10 Sec”,30,2,RED,False)
pygame.display.flip()
这是实际执行编程的Shell脚本:
#!/bin/sh
cd/home/pi
sudo avrdude -c gpio -p m169 -Uefuse:w:0xf5:m -U hfuse:w:0xDa:m -U lfuse:w:0xFF:m -Uflash:w:DeskClock-Prod.hex
当然是您的夹具将具有不同的软件:-)
第9步:一切正常!
最后,我连接了很多东西,并且很好用了!
我学到了关于drivin的知识这些小的1.8英寸LCD显示屏,到现在我已将其用于微不足道的Pi项目的设备。
无论如何-这是运行中的几张照片。
享受。
在哪里从这里?
好吧,这是一个很酷的问题-目前,程序员只需对电路板进行编程,并验证微型闪存是否正确闪烁。我们通过视觉检查LED的操作(从而使显示屏明亮)-下一步是添加一个功能,该功能可以与运行板进行通信以验证RTC芯片/晶体组合的准确性,并将时间流逝与互联网进行比较标准。那应该不太难。..。.:-)
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !