不久前,我为 Raspberry Pi 创建了一个小型扩展板,用于进行一些硬件破解。
第一个版本是在面包板上完成的,使用一些电线连接到 Pi。对于下一个版本,我使用条状 PCB 并将组件焊接在上面。它可以工作,但不够美观。
随着我对概念的深入研究,我决定需要一些印刷电路板 (PCB)。这里的主要动机是能够在当地的 Java 用户组举办一些研讨会,让人们焊接电路板,然后对其进行编程。
我尝试了一些生成布局的选项。不幸的是,对于像我这样的业余爱好者来说,没有哪个真正出色。最重要的是,我也不想自己制造 PCB,因为需要用到各种化学品。经过一番搜索,我找到了 Fritzing,这正是我想要的。
Fritzing 是一款开源应用程序,用户可以通过从大型零件库中选择零件、连接它们并在虚拟面包板上布局来创建原理图。
原理图创建完成后,Fritzing 可以自动将原理图布线到 PCB 设计上(它支持单面和双面 PCB)。但在大多数情况下,它需要一些人工帮助。
一旦您对设计和/或 PCB 感到满意,您可以将它们导出为图像(这通常是您在 Arduino 文档中看到的)。或者您可以将它们发送到 Fritzing Fab 服务。
Fritzing 由德国的 FH Potsdam 创建,现在通过 Friends of Fritzing Foundation 不断发展。项目源代码可在 GitHub 上找到。
我选择了 Fab 服务,等待了一段时间,收到了一些非常专业的 PCB。下图显示了最终组装好并安装在 Pi 上的 PCB。
Fritzing 的另一个优点是,它允许您发布您的设计,以便其他创客可以采用它们、创建它们或根据自己的需求进行修改。例如,上面的电路板可以在这里找到。
当您将电路板放到 Pi 的扩展头(最靠近 CPU 的内排)上时,以下小 shell 脚本将点亮所有 LED,然后每秒显示当前温度。
#!/bin/sh
set -x
cd /sys/class/gpio
for i in 10 22 27
do
echo $i > export
sleep 5
echo out > gpio$i/direction
sleep 5
echo 1 > gpio$i/value
done
cd /sys/bus/w1/devices/10-*
while true
do
cat w1_slave | grep t=
sleep 60
done
有一行可能需要根据您拥有的 DS1820 温度计芯片的变体进行调整。
cd /sys/bus/w1/devices/10-*
我不确定的一件事是 DS1820 是否真的需要幻象电源。在之前对该芯片的实验中,我根本没有连接引脚 3。我认为这种额外的电源甚至可能会加热温度计芯片,因为我目前获得的值偏高约 5-6 度。
要读取按钮的状态,您可以使用此脚本
cd /sys/class/gpio
echo 9 > export
cd gpio9
while true ; do cat value; done
本文最初发布在博客 Some things to remember. 上。
硬件
一系列关于开放硬件的现状和未来的文章。
4 条评论