基于PIC的电子骰子DIY图解

电子说

1.2w人已加入

描述

步骤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 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分