步驟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
-
PIC
+關注
關注
8文章
507瀏覽量
87545 -
POGO
+關注
關注
0文章
10瀏覽量
4312
發布評論請先 登錄
相關推薦
評論