Project Showcase '14


25

该徽标是Arduino社区徽标的派生产品,该徽标已获得Creative Commons许可CC-SA-BY-NC 3.0的许可

更新:宣布获奖者

比赛的优胜者已经宣布。有关详细信息,请参见Meta帖子

为庆祝Arduino成立10周年,我们很自豪地宣布Arduino Stack Exchange上的首个活动

取出电路板和焊接设备,挖出IC和电阻器。首届Arduino Stack Exchange竞赛即将来临。我们将寻找使用Arduino构建的有趣项目。比赛旨在分享,讨论和提供您和其他成员正在从事的项目的反馈。见公告

细节:

  • 奖品是官方的Stack Exchange T恤
  • 每人限制两个条目。如果提供两个以上,则仅考虑前两个。
  • 克隆允许的。
  • 待审核的项目将在2014年3月29日世界标准时间4:00之前接受万一有人想炫耀他们在2014年Arduino日所做的项目,这个问题将仍然存在。

请访问Meta帖子以获取有关此事件的讨论和更多信息。

答案格式

您最多可以张贴两个项目(作为两个单独的答案)作为比赛的参赛作品。所有其他条目将被删除。考虑使用以下模板进行输入:

项目名称

非常简短的说明

描述

你的项目是什么?它有什么作用?它解决什么问题?

设计

本节包括的内容:

  • 原理图和其他设计文档。Fritzing是绘制面包板原理图的好工具,如上面的项目徽标中所示。
  • 用于构建项目的组件
  • 图片或视频

结论

最后的想法。您从这个项目中学到了什么?如果必须重新开始,您会做些什么?

如果要使用此模板,可以复制/粘贴以下文本。

# Project Title
**Very Brief Description**

# Description
What is your project? What does it do? What problem does it solve?

# Design
Things to include in this section:

- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video

# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?

奖品

有两个奖项!获胜者将是获得最大投票数的作品(不计入投票数),并将获得Stack Exchange T恤*!亚军也将有一些东西。季军将由赛事组织者决定。

*某些限制可能适用。国际运输可能需要几个星期。

我在哪里提交项目?

发布您的项目作为此帖子的答案。


成为“ arduino”项目的资格到底是什么?我在很多地方都使用了optboot,但是我不能认为它是“ arduino”,因为它只是arduino工具链使用的一个项目。除了没有使用arduino格式的板子外,我看不出在“ arduino”和“ non-arduino”之间进行划界的清晰方法,除非您明确要求使用arduino文本编辑器来编译项目,因为arduino编辑器太糟糕了,而且所有好的编码人员很久以前就停止使用它,所以这可能会使所有合格的项目失去资格。
康纳·沃尔夫

@FakeName让我们将讨论带到Meta Post
sachleen 2014年

Answers:


14

有状态的任务箱

一个GPS供电箱,让你参观开幕前的几个景点

描述

它类似于questbox,但是它在EEPROM中存储了少量信息,因此在打开之前,您必须访问两个或三个不同的地方。

设计

所需的硬件:

  • Arduino Uno
  • 反向Geocache版本2(或protoshield)
  • GlobalSat EM-406A GPS模块
  • 2×8蓝色LCD,带连接器接头和电缆
  • Hitec HS-55伺服电机
  • 4-40推杆和U型夹,用于闩锁(某些版本提供Z形弯曲杆)
  • 2节AA电池座
  • 带嵌入式蓝色LED和4针电缆的金属按钮
  • Pololu低压开关
  • Pololu 5 V升压稳压器
  • EM-406A GPS模块的JST连接器
  • 用于显示,伺服和按钮连接器的直角插头
  • 两个电阻用于电流限制和显示对比度调节
  • 两个小电容器用于功率平滑
  • 用于显示对比电路的较大电容器

硬件总成本:137 $ +运费

辅助材料:

  • 一个不错的盒子
  • 环氧胶,木材覆盖件,工具

您可以在日d页面找到组装说明(可以从中购买大多数材料)

我将上传状态代码并在此处发布链接,不幸的是我不会准时获得所有需要的硬件,所以这只是一个主意:)

到目前为止编写的代码

灵感:原始任务箱

结论

了解了如何将许多组件和库全部集成在一起,我将不得不花一点时间对其进行测试:)

预算可以削减很多,从而改变了概念:


11

节能的PC用户

此设备在黑暗时(与我的PC屏保同步)打开/关闭我的桌面灯。

描述

该项目仅仅是光敏传感器,继电器和一些监视我的PC上的屏幕保护程序的智能代码的组合。黄昏时,并且屏幕保护程序未激活时,它将打开我桌上的灯。随后离开办公桌时,屏幕保护程序将启动,这又将触发关闭桌面灯。如果白天光线充足,则根本不会打开灯光。解决的问题是减少因离开房间后打开办公室照明而造成的能源浪费。

设计

由于微控制器/ Arduino的强大功能,只需要一点额外的硬件即可创建有用的项目。该项目的硬件也只不过是这样:

  • 一个Arduino
  • 几个螺钉护罩,用于连接外部组件
  • 与电阻器串联的LDR以测量环境光
  • 继电器卡,用于打开和关闭主电源灯
  • 从GND到RST的10 F电容可防止电路板复位和意外编程。

原理图

模拟此电路 –使用CircuitLab创建的原理图

结论

我学习了如何通过USB串行链接将PC与Arduino相连,以及如何读取PC上屏幕保护程序的当前状态。如果我要重新开始,我会使用更小的控制器,因为我实际上只需要一个数字输出和一个模拟输入。该项目可能基于V-USB。但是,Arduino非常适合快速轻松地验证概念(PoC)。(PoC已经在我的办公桌上呆了至少两年了)。


看到最终电路板和设置的图片很酷。响应时间如何?瞬间?一分钟后?
sachleen 2014年

@sachleen轮询屏幕保护程序的PC上的守护程序在关闭屏幕保护程序(当我在PC上工作)时每30秒运行一次,而在打开屏幕保护程序时每5秒运行一次。我可以提高速度,但是会影响CPU负载和功耗。...还连接了一个电容器,以防止Arduino重置和意外编程。
jippie 2014年

@sachleen随着时间的推移慢慢落下,这30秒并不是什么大问题。在30秒内没有人注意到黑暗的差异。当我返回鼠标时,在移动鼠标或敲击键盘的5秒钟内,灯会亮起。在被认为是暗和亮的地方会有轻微的滞后现象,以防止灯在昏暗的情况下每隔几秒钟打开/关闭灯一次,以至于无法激活。
jippie 2014年

您应该对其进行修改,以使其在50%的亮度下变暗10-15秒,这样您就不会完全处于黑暗中,它会给您一些“警告”
Anonymous Penguin 2014年

@AnnonomusPerson我正在切换指定为100-250VAC输入的SMPS的240VAC侧。恐怕不会发生,因为我不想切换次级侧。不过好主意,也许我可以以某种方式添加一个智能的小型白色LED。
jippie 2014年

8

我认为这种类型几乎不符合规则,但我认为无论如何都会发布它,这很有趣。

高精度,GPS同步时间戳生成器,用于数据获取。

这是一个相当有趣的项目,旨在用于提供一种同步多个独立数据采集系统的简便方法。

基本上,我在研究实验室中工作,我们经常使用的仪器具有多个独立的数据采集系统,这些系统在物理上可以相距50英尺。我们需要能够关联从每个系统获取样本的时间,如果要高精度解析采样时间,这可能会很困难。使用USB数据采集系统之类的东西,仅USB延迟会引入几百毫秒的未知延迟,这可能因采集而异。

先前的解决方案是一个24位并行计数器,该计数器可简单地总线连接到任何地方,需要巨大的线束,这对接屁股有点痛苦。

该系统使用专门的定时GPS模块,该模块可以合成任意频率的时钟,这些时钟的相位和频率锁定到GPS卫星中的原子钟。

MCU负责将GPS数据消息捆绑在一起(我不得不大量扩展和优化GPS数据的现有协议解析器)。GPS被配置为使用专有的二进制协议,并且全部由我编写的解析器进行解析。

该项目已进行了许多修订(如下图所示)。

设计

修订! 在此处输入图片说明
修订版1:由于我最初希望在价格便宜得多的GPS上使用软件dPLL来从1 PPS输出合成一个更高频率的时钟,所以此方法从未奏效。使其可行可能是可行的,但是时间上的投入却使其变得不值得。(而且我太讨厌编码员了)

使用了视差螺旋桨MCU。缺乏体面的编译语言也是一个主要问题。


在此处输入图片说明
Rev 2:转移到ATmega2560。工作,从第一版继承了许多时髦的设计方面。首先,尽管ATmega2560上的IO数量足够多,但仍继续将移位寄存器用于32位输出。

第一块运行Optiboot的板,实际上是完全使用标准的Arduino工具链进行编程的,之后我对此感到恼火,并开始修改工具链以更好地满足我的目的。


在此处输入图片说明
启3:也有效。之所以采用这种布线方式,是因为该板集成了一个内置USB集线器,以减少所需的USB端口数量(FTDI接口需要1个USB,GPS也具有USB接口)。不幸的是,尽管FTDI设备运行良好,但GPS不能正确枚举,我已经在其他地方毫无问题地使用了该集线器。奇怪的。

我没有合适的USB调试器,因此我只是完全丢弃了USB集线器,而是尝试解决此问题。无论如何,GPS USB 在设置之外并没有真正使用过。


在此处输入图片说明
修订版4:半决赛ATmega2560版本。添加了一个用于显示GPS状态的LCD,上面还装有LED等。而且,可能的超级电容器在不加电时可以保持GPS状态的更好占用空间。

这是最新的Optiboot版本。

MStimeMSTOW或毫秒,这是在时间戳输出时输出的GPS数据值的名称。这是一个32位变量,每毫秒会增加一次,并在每个星期滚动一次。这是GPS标准中比较晦涩的部分。

ITOW是另一个与GPS相关的值,是与1PPS信号相对应的值。两者之间的相关性无法正确显示在LCD上,因为我没有CPU时间以所需的速度更新LCD。实际上,这是Xmega设备升级中改进的主要内容之一。


在此处输入图片说明
修订版5:完整的体系结构切换。现在使用ATxmega128A1U处理器。不再是真正的“ Arduino”,但是在xmega处理器系列上具有多个中断级别的能力使我大大改善了代码结构。

我从这两根桥臂上进行了一些实验,如果没有它们,电路板也可以正常工作。

期待:

启6! 在此处输入图片说明
增加使用不同LCD尺寸的功能,在GPS天线连接上提供更多ESD保护(这是一个问题),使用CR2032电池来维持GPS时钟而不是超级电容器的功能。

而且,调试和状态LED的标记要好得多。

在此处输入图片说明
还有奖励Nyan-Cat!

在此处输入图片说明

(这些板现在正在制造中。当我得到它们时,我将添加真实板的图片。)


我在两个ATmega2560板之间进行了长时间测试,并且在72小时内,两个板之间的RMS时间误差约为20 uS。这也有两个完全独立的天线。我的设计目标是<1毫秒,所以我对此感到非常满意。

总的来说,我认为这很好地说明了Arduino如何成为“真实”产品/系统早期原型的有用工具。我用它来以最小的努力获得一个初始测试版本的运行,当我确信这个想法会奏效时,我实际上投入了工作,以迁移到完全定制的,针对特定目的的实现。


设计文件:
https : //fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(在“ GPS时间戳”系列目录中)。
(注意:文件来自Altium Designer。不是 eagle文件)。

源代码:
https :
//fake-server.no-ip.org/svn/Programming/Code/AVR/再次在“ gpsTimeStamp”系列目录中。

对不起,手机图片太烂了。


可以减少图片数量吗?3-4应该足以使想法传播。加载较慢的连接需要花费相当长的时间。
asheeshr 2014年

7
@AsheeshR-我强烈不同意。我可以删除上次修订中的其中一张图片,但是我认为随着系统设计的发展,这非常有价值。
康纳·沃尔夫2014年

1
玩丝印吗?
TheDoctor 2014年

噢,3D视图PCB。噢,这是Altium,而且很贵吗?:$看到这些项目,或者看看其他人正在执行的任何项目,都很有趣
Paul

7

音速射线枪

孩子们的两个项目

我正在与几个受过家庭教育的孩子一起工作,与arduino玩得很开心。他们的第一个项目是伪造的炸弹,就像您在电影中看到的那样,带有LCD倒数计时器和经典的“您剪红线还是蓝线?” 类型问题。

项目2首先向他们展示了toneMelody示例和一个小扬声器。很快,他们发现,如果将频率提高到15kHz,这对于青少年来说是相当烦人的。一个小时后,他们用杯子,卫生纸和用回形针制成的开关制作了声波声波枪,从而改进了设计。

可悲的是没有图片。

结论

不要让孩子无聊的玩耍。


3
您能否再描述一下(代码,Fritzing等)?
匿名企鹅2014年

7

(假)Linux在Arduino上

我最近购买了一个小的复合LCD屏幕,并很快开始使用Arduino TVout库进行播放。接下来是什么?Linux!

描述

在玩电视屏幕和TVout库时,我发现有一个预制的电视终端处理器。我很快开始尝试将其用作连接到PS / 2键盘的电视终端。我使用的PS / 2库存在一些问题,因此我将其转换为使用Mega ADK上的USB库以及USB键盘。效果更好。现在用于存储。

我的SD卡防护罩与我的Mega不兼容,因此我随意地将其连接到板端的SPI。我编写了命令处理程序以执行一些任务,例如列出文件并查找磁盘大小,可用空间等。整个程序集还没有完成,但是我对自己取得的进步感到满意。

该代码最终将被重定位到Github,请注意注释。

设计

缩小图片

放大屏幕

挑战性

将输入的字符连接到存储当前命令的字符串时遇到了很多麻烦,因为我的转换不正确。一旦弄清楚了,我还需要解决一些按键将随机垃圾打印到屏幕上的问题。这是由于在定义字母之前先读取内存而引起的,因此,一些if清除了它。

结论

我对代码非常满意。一旦添加了更多实用程序,我将其放在Github上,因此请观看评论。总体而言,这是一个非常有趣的项目。我学习了如何在此过程中使用Stino。


这听起来很有趣。我真的很想很快看到您的代码!
asheeshr 2014年


液晶显示器贵吗?
匿名企鹅


@AnnonomusPerson我将其分解,因为它太笨重
TheDoctor 2014年

5

液晶显示器

基于AVR的,与Arduino兼容的电路板,安装在8x1至20x4字符LCD屏幕的背面。

描述

我只是设计了该板和自定义库,以使其更易于使用和LCD。尽管它们目前很容易使用。它将使用的输出引脚数量从6个减少到3个。它还可以选择通过在驱动显示的驱动器上增加更多的移位寄存器来扩展I / O。使用的处理器是ATTiny45或ATTiny85,使用移位寄存器后,它们具有可用的数字引脚1(PWM)和4和数字引脚2(与数字引脚4相同)可用。

设计

原理图 OSH公园渲染 裸板

挑战性

我面临的一个不可预见的挑战是,当我开始使用数字引脚0-2来运行移位寄存器时,这些碰巧也是编程引脚(MISO,MOSI,SCK)。因此,每次我对设备进行重新编程时,LCD都会收到一堆乱码消息,必须关闭电源才能重置显示器。我通过将移位寄存器的锁存器引脚移至数字引脚3(不是编程引脚)解决了这个问题。解决这个问题也为我解决了另一个问题,因为当我移动闩锁引脚时,它打开了使用PWM的数字引脚1,从而允许开发板完成更多工作。

结论

尽管这可能不是最酷的产品或想法,但它仍然有其用途。直接回答问题:“您从这个项目中学到了什么?”我学会了从头到尾完成PCB板的设计。如果我可以做任何不同的事情,那就是使用表面安装的零件而不是通孔,那么它还是一个一次性的原型板。


您是如何编程ATtiny的?涉及什么代码?IDE?(请发表评论,不要编辑您的帖子。
匿名企鹅

@AnnonomusPerson看起来像是在删除评论之前张贴了我所做的事情的人,因此这是我获得对ATTiny进行编程所需的东西(Arduino IDE文件和编程原理图)的地方。highlowtech.org/?p=1695
Jesse Laning

为什么要使用表面贴装?在家焊接通孔容易得多吗?我认为SMD仅用于生产运行,或者还有其他功能吗?
保罗,

5

按下按钮的机器人。

按下按钮的四轮八磅遥控激光射击机器人。

描述

我在上学年做了这个项目。我当时在机器人课上,所以我们决定参加比赛。每个团队都将制造一个具有大按钮并可以按其他按钮的机器人。在今年年底,我们将举行最后的比赛,三个机器人将尝试按彼此的按钮。

到今年年底,我的机器人只工作了一部分。机器人的每个部分在某个时候都在工作,但是在油炸的Arduino,油炸的电机驱动程序,糟糕的代码组织之间,而我是我团队中唯一一个在机器人上工作了五个多小时的人,无法使其完全正常运行。

我已经有近一年没有碰过机器人了,所以我知道,如果我想让它再次工作,我将不得不重新连接机器人并重写代码。我可能有一天会决定这样做,但是现在我要去做一些不太雄心勃勃的项目。

设计

整体设计

在此处输入图片说明

信息/电流

+--------------------------+   +-------------------------------------------------+
|         Computer         |   |      Robot                                      |
|--------------------------|   |-------------------------------------------------|
|                          |   |                                                 |
| Keyboard +--> Processing |   |  Button +-------------+        Motor    Motor   |
|                          |   |                       |          ^       ^      |
|                    +     |   |                       |          |       |      |
|                    |     |   |  Batteries +-----+    |          +       +      |
|                    v     |   |                  |    |   +----> Motor Driver   |
|                          |   |                  v    v   +                     |
|               Bluetooth +-----> Bluetooth +--> Arduino Uno +--> Motor driver   |
|                          |   |                  +    +  +       +       +      |
+--------------------------+   |                  |    |  |       |       |      |
                               |                  |    |  |       v       v      |
                               |                  |    |  |    Motor     Motor   |
                               |                  |    |  |                      |
                               |                  |    |  |                      |
                               |                  |    |  +-----> Laser          |
                               |  +---------------|----|----+                    |
                               |  |       Arm     |    |    |                    |
                               |  |---------------|----|----|                    |
                               |  |     +---------+    v    |                    |
                               |  |     |      Motor Driver |                    |
                               |  |     v              +    |                    |
                               |  |  Servo             |    |                    |
                               |  |                    v    |                    |
                               |  |                  Motor  |                    |
                               |  +-------------------------+                    |
                               +-------------------------------------------------+

组件

  • Arduino Uno,(油炸)
  • 运输:
  • 简易按钮
  • 臂:
    • 伺服(连续旋转)
    • 电机驱动器,(油炸)
    • 电机,(12v,在老师的垃圾堆中发现)
    • 橡皮
    • 配重(装满便士的自制纸袋)
  • 2个电池组(12V,1300mAh,镍氢可充电电池
  • 2个无焊面包板
  • 激光(5mW)
  • 蓝牙:
  • 很多电线
  • 许多废金属和有机玻璃(在老师的机械店里找到)

我的代码组织得不太好,所以我希望这是正确的代码。

更多图片

在此处输入图片说明 在此处输入图片说明

机器人缓慢,无臂,无按钮,无激光和无蓝牙的早期版本的糟糕视频。

https://www.youtube.com/watch?v=Q7MvE7-Xb0E

结论

我真的很擅长油炸电子产品。

这是我第一次在实际的机械车间工作。我必须使用CNC铣床,手动铣床,车床和带锯。如果我再次开始这样的项目,我会做更好的文档,因此我可以弄清楚一年后我到底在做什么。


1
干得好!没有什么比经验更有价值,重要的一点是,您现在知道下次如何做得更好。
jippie 2014年

5

Arduino的4位LED显示

带有4个7段LED数字的小板,通过3个引脚进行管理。

描述

当我开始使用Arduino时,我想要一种方法来显示由我试验过的各种传感器收集的值,但是我不想将这些值输出Serial到PC。

我想要一个小板,可以轻松地从一个项目重复使用到另一个项目,并且想保留一块面包板。

该开发板及其小型图书馆当前允许显示4位数字,并且在显示期间不提供任何Arduino电流(仅当与开发板通信以显示新值时才提供电流)。

带柜台展示板

设计

由于我决定重用MAX-7219芯片来驱动我的LED显示屏,所以设计相当简单(我手头有几个)。

由于有了该芯片,原理图非常简单,但是正确理解如何使用它很重要。幸运的是,它的数据表很清楚。

原始设计在面包板上完成,并使用了4个单个LED 7段数字;但是我的口味需要太多的接线(需要以4组为一组连接网段)。另外,在我的第一个7段LED数字实验中,我炸了一个:它有2个接地引脚,但是我只将一个接地引脚连接到了GND,而不是两个都连接了:-(

然后,我决定去一个4x7段显示器,共阴极,段阳极已经连接了4位数字:只有4 + 8针!

电路板原理图

在测试过程中,我发现了一个有用的Arduino库,可以与MAX-7219一起使用,并决定重用。我已经使用非常简单的API在其上构建了自己的库

面包板之后,该使设计更持久了。由于我手边有一小块白板,所以我决定去做。

我搜索并找到了一个用于PC 设计的简易Stripboard设计器。

最初的剥离板设计并未在空间方面进行优化,因此我决定不实施它:

留言板设计#1

然后,我对设计进行了评估,以优化成本和尺寸(只有一个50x75mm的小型带状滑板);我以前发现的带走板设计器很容易:

留言板设计#2

开发板准备就绪后,我决定使用Arduino UNO和超声波传感器对其进行检查:

图片

除了我经常有奇怪的,不一致的显示值,它似乎起作用。经过调查,我发现这是由于显示板触发的噪声干扰了传感器。我只需要在传感器的电源引脚附近尽可能增加一个去耦帽即可,并且效果很好(请注意,显示板已经具有用于MAX-7219芯片的去耦帽)。

零件清单:

  • 1 x LN5461AS:共阴极4位数字的7段模块
  • 1 x MAX7219:多路LED驱动器芯片
  • 1 x IC支持(24针)
  • 1个22K电阻
  • 1个10uF电解盖
  • 1 x 100nF上限
  • 1 x排针(5针)
  • 1 x 90x50mm滑板
  • 电线,焊料...

结论

在我上一次电子实验之后的30年,我可以使用Arduino和第一个项目再次获得病毒,尽管相当简单,但它教会了我一些知识:

  • 解释数据手册以了解所使用的组件(MAX7219和LED显示屏)
  • 学习如何使用剥离板设计并使其有效
  • 所有标记为GND或V +的引脚都应连接:您不要选择自己想要连接的引脚!
  • 如果在测试电路时有些东西看起来很奇怪,而您却不明白为什么:不要搜索,那一定是噪音,请尝试添加一个去耦电容,应该这样做!
  • 了解如何创建Arduino库(不仅仅是草图)

如果我今天要再次开始这个项目,我将:

  • 尝试进一步优化剥离板设计(可能我可以进一步减小尺寸)
  • 用直角接头替换板上的直针接头,以便连接到Arduino的电线在板前面更突出

5

带有射频(RF)遥控器的数字壁钟

带有R / F遥控器的大型(40x30cm / 16x12“)7段显示壁钟。

在此处输入图片说明

描述

该项目具有一个带R / F遥控器的大型(40x30cm / 16x12“)7段显示器数字挂钟。它具有以下功能:

  • 它以两种格式(小时或日期以大数字显示)显示当前时间和日期(时,分,秒,日,月,年)。
  • 它以°C为单位显示当前温度。
  • 有一个用户定义的倒数计时,到零时将发出(讨厌的)警报。
  • 所有功能均由RF遥控器进行远程控制。
  • 有一个小的光标小键盘,用于控制其功能(当遥控器不可用时)。
  • 每个显示行的亮度控制独立。
  • 由于采用了纽扣电池供电的实时时钟IC,即使关闭,它仍可以准确地保持当前时间。

设计

该项目的关键方面如下:

  • 它完全基于Arduino和AVR ATmega328微控制器。
  • 由于采用纽扣电池供电的DR1307 RTC,即使关闭,它也可以保持当前时间。
  • 这些数字从不多路复用。取而代之的是,每个数字都有一个专用的8位串行移位寄存器IC(74HC595),它使选定的段保持独立于其他数字所显示的内容以及MCU的功能。
  • 由于电流消耗超过了MCU或移位寄存器的电流,段由达林顿阵列供电。
  • 时钟由控制板上的小键盘以及RF遥控器控制。无线电通信由一对便宜的434MHz无线电接收器和发射器执行。
  • 该项目采用模块化设计,其中一个控制器可以管理多达12个数字。控制器还接受可扩展的模块,用于无限制的位数(由于移位寄存器的菊花链连接及其时钟信号的衰减,最大位数受时序延迟的限制)。
  • 该设计支持许多现成的7段显示数字或用LED制成的自定义数字。

以下是控制器和7段板之一的示意图:

在此处输入图片说明 在此处输入图片说明

这是我设计,蚀刻和组装的板以及遥控器的一些图片:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

最后,这是时钟的另一个版本的图片。在这一节中,我将使用矩形LED和分立组件自己制作7段显示器。

在此处输入图片说明

结论

这个项目花了我很多时间,精力和学习才能达到这个阶段(据我所知,这还没有完成),但这很有趣。我学到的一些东西:

  1. 在控制器中分配GPIO引脚之前,请研究将要在项目中使用的所有库,以免发生潜在冲突。我一直不愿意使用与VirtualWire定时器关联的同一PWM引脚进行亮度控制,因此我必须修补电路板以使亮度和RF同时工作。

  2. 压接KK Molex和Modu连接器需要花费大量时间!

  3. 激光切割亚克力件是未来。即使您笨拙,它们也可以为设备增加很多质量。


您是如何制作PCB的(蚀刻和钻孔)?
sachleen 2014年

1
@sachleen我在熨烫时使用墨粉转移方法。我在激光打印机中将电路板设计打印到喷墨照片纸中,然后将其熨烫在电路板上,然后在FeCl中蚀刻电路板。需要一段时间才能找到正确的纸张和打印机设置。我使用dremel钻床进行钻孔,但仅使用酚醛板和高速钻头。玻璃纤维板在钻头上要坚硬得多,通常需要更昂贵,更脆的硬质合金钻头。
里卡多

您从哪里获得这些LED?我有一些看起来完全一样!
戴帽子的家伙

1
@TheGuywithTheHat绿色矩形框?这些在巴西这里很常见。我在我们的在线电子零件商店之一买到了那些。以下是一些链接:DigiKeyeBay上。这是我买到它们地方
里卡多

5

电视天线旋转器

红外遥控天线旋转

不能下床调整电视天线的方向吗?即使这样做,有时您靠近天线也会改变接收效果。能够从沙发上调节天线会很好。使用电视遥控器。

组件

Arduino Uno,IR接收器,带驱动器板的步进电机,1英寸ID轴承,Swiffer拖把手柄,塑料盒,

电视后面 Arduino带红外接收器 关闭盒子和轴承 伸缩手柄 这两个按钮在电视上什么也没做

描述

使用旧的Swiffer拖把手柄作为天线杆。从我最喜欢的在线商店中获得了一个1英寸ID轴承,拖把手柄会挤进并停下来。我在塑料盒上钻了一个足够大的孔,可以拖把手柄穿过,但轴承不适合。我钻了一个矩形如图所示,在拖把手柄端部插入一个孔以适合28BYJ-48步进电机的轴,然后将设备粘在盒中,如图所示,拖把手柄实际上位于轴承上,并且轴承被超级粘在塑料盒的顶部。

使用stepper.h库从Uno旋转电机。

我拆解了一个未使用的DVD播放器,并从中救出了IR接收器。您可以拆解任何具有遥控器的消费类电器,并使用其中的IR接收器,它将起作用。IR接收器使用IRremote.h库。使用串行监视器,我打印出了与我要用来操作天线电机的电视遥控器上两个按钮相对应的十六进制代码。一个用于向左旋转,一个用于向右旋转。

为了节省能量,每次移动后,请使用small_stepper.motorOff()函数关闭线圈。

结论

这是一个有趣的项目,对我的妻子也很有用。我没有在运动中实现任何加减速,这可能很好,尤其是在天线具有更大的旋转惯性的情况下。

编辑:很抱歉图片横盘整理!它在我的计算机上正对着,我不知道为什么它横向在线。


5

爆震灯

当桌子被打开时,可以打开/关闭的灯。目前处于Alpha阶段,仍处于原型制作阶段,但我认为它是现有的最有用的Arduino项目。包括坏话笑话发生器...来自以前录制的敲门笑话。注意:我知道我不能赢取规则,但是没有入场规则...我也可以炫耀我的项目。

描述

到目前为止,我几乎已经解释了其中的大部分内容。你敲门,灯打开和关闭。我目前在面包板上。我正在使用压电元件来检测振动的爆震。同时,我有一个1兆欧的电阻来保护Arduino Uno SMD。

我在寻找小拨动开关时几乎把我的灯从桌子上敲了下来(哈哈),想到了这个设计。我不完全是…… 机敏。敲桌子然后放光,真是太好了。我还使用电源开关尾部SSR(固态继电器:无噪音)通过Arduino的两个引脚对其进行控制。

设计

照片 摄像头悬挂在监视器上时拍摄的图像…eek!

弗里兹图

用于构建项目的组件:

  • 压电元件($ 3.00 USD)
  • 兆欧电阻($ 0.30 USD每5pk)
  • Arduino Uno SMD(在手)
  • 电源开关尾部SSR(约$ 25.00美元,已船运,但由于手头上没有成本,所以没有)
  • 面包板和跳线/额外导线(约5.00美元,但手头上没有成本)

我的成本:3.30美元+ 0.02美元(税)==仅3.32美元!

结论

总的来说,这是一个简单的项目,但实际上很有用。这与我的Arduino项目很不容易:我可以构建我会真正使用的东西吗?闪烁LED并不能完全帮助您的生活。很好玩,但仅此而已。

我面临的最大问题(仍然是)仍然没有得到足够强烈的信号。我从电信号中学到了很多东西:我想出了如何找到脉冲的“峰值”,而不仅仅是以随机的间隔读取引脚并错过更高的电压。我会尝试获得更敏感的压电元件。一个更大的会有所帮助。我试图修改电路以不限制电压,而是保护Arduino。在这种情况下,某种保险丝会有所帮助。我还在玩电阻值。对此范围有所帮助,但是我想没有...:P

完善电路后,我将使用ATtiny将其安装到PCB上,甚至可能开发一些套件。我将尝试发表有关如何使元素更敏感而又不冒董事会风险的发现。

状态更新:我最近真的很忙。我将在一两个星期内在这里订购一个齐纳二极管(4.3V),以除去兆欧电阻,以防止在保护芯片的同时稀释信号。如果需要(在齐纳管旁),我可以在此处构建一个简单的电压放大器,以使传感器更加灵敏。


1
转向具有差分和增益ADC的器件将有助于您从压电中获得更高的灵敏度。并可能使用TVS代替电阻器。
伊格纳西奥·巴斯克斯

您是否正在使用ADC进行检测或中断?想知道要检测多大的电压峰值吗?
jippie 2014年

@jipie ADC用于检测,我有相当有效的代码:它循环并每250 ms查找一次峰值。没有延迟。对于高峰期,IIRC约为14/1024(太懒了以至于现在无法转换)。我也应该研究AREF引脚,但是如果掉落它可能会使〜9V出现问题。
匿名企鹅2014年

试试这个作为输入缓冲区。该晶体管用作电流放大半波整流器/峰值检测器。无需使用ADC检测单个峰值,晶体管/电容器将为您拉动它。按照配置,输出电压具有2.2V直流偏置,但是您可以通过更改电阻分压器将其更改为您喜欢的任何一种。这样,您可以通过选择1V1或2V56带隙基准来使输入更加敏感。10M电阻器确保电容器放电大约一秒钟,实际上是我的DMM。
2014年

4

我的传感器

-了解如何创建自己的低成本无线传感器并将其连接到世界。

http://www.mysensors.org

我们称之为“物联网”

描述

我们将Arduino平台与小型无线电收发器结合在一起,形成了一个有趣,灵活的低成本无线传感器世界。

关于传感器通信的所有细节都被打包到一个方便的软件库中,因此您不必担心它们。

就像1、2、3一样简单。 Arduino + NRF24L01 +

  1. 连接零件。2.下载提供的示例。3.开始测量和控制世界!

在站点上阅读有关如何使用我们的Arduino库自动形成传感器网络的更多信息。它基本上形成一个星形网络,可以达到数百米。

传感器网络

在中间放置一个Arduion或Raspberry网关,该网关从传感器收集信息。 树莓控制器

Arduino网关

设计与原理图

这是我创建的用于控制房屋外花园照明的原型运动传感器之一。运动状态将发送到我的HA控制器,当检测到运动时,该控制器会通过z波打开灯。光传感器(不在图像中)确保仅在晚上打开灯。
在此处输入图片说明

您可以在这里找到所有的构建说明:http : //www.mysensors.org/build/

在其他站点上,还有许多其他无线传感器和执行器的易于遵循的构建说明。这里有些例子:

距离传感器,运动传感器,继电器执行器,湿度,光线,压力,雨水,温度,...

结论

该项目仍处于起步阶段,我们希望为越来越多的家庭自动化控制器提供插件。现在,我们列表上的第一件事就是提供一个DIY控制器,该控制器为您的传感器数据提供免费的云存储。

你好

见@ mysensors.org

/ Henrik Ekblad(用于传感器之间通信的开源Arduino库的创建者)

  • 更新27/3。使示例更加具体,并增加了与开源项目的隶属关系。

4
欢迎使用Arduino.SE!恐怕您的网站不符合我们展示柜的标准。我们正在寻找能证明Arduino实际应用的特定项目(如此处其他示例所示)。也许您可以提供一个已构建的传感器项目的示例?
彼得·布卢姆菲尔德

好的,也许我错过了要点;)。这里的“特定项目”是我们使用Arduino创建自愈无线传感器网络。为了对此进行存档,我们为NRF24L01 +收发器创建了一个开源Arduino库。
hek 2014年

4
这听起来更像是广告,而不是项目。更改音调,也许使其对单个应用程序更具针对性。我怀疑这就是为什么您投反对票。
Cyber​​gibbons 2014年

欢迎来到Ard.SE!根据您的个人资料网站,您在上面要宣传的网站上工作或拥有自己的网站。您必须回答中披露这是SE政策。请对其进行编辑以包括该内容。另外,您可以添加一个使用此示例吗?
匿名企鹅

在过去的六个月中,我一直在业余时间开发这个(开源)MySensors库。为了帮助其他人正确使用该库,我们(最近几个月来有更多人加入该项目)三天前启动了build-instruction-page。我认为在“项目展示”中获得反馈将是一个很好的Arduino项目。我认为我没有试图以任何方式掩盖我对项目的参与,如果描述被视为广告,我感到抱歉。我们对这个项目感到非常高兴!
hek 2014年

4

串口盒

盒装便携式串行监视器

描述

有时,对于设备(Arduino或其他)通过串行输出一些调试信息很有用。如果您手边有一台带有适当串行输入的计算机,那就太好了。但是,由于多种原因,情况并非总是如此。

这个项目是我通过创建便携式Arduino驱动的串行监视器来解决该问题的尝试,该监视器可以连接到现场的其他设备。

默认情况下,它将仅以回滚格式显示文本。即,文本显示在最底行,当更多内容出现时,所有内容都会向上滚动以腾出空间。这意味着它应该与各种通用设备整齐地工作。但是,也可以使用转义序列来更精确地控制显示,以便也可以对设备进行特殊编程以利用其功能。

设计

该设计由一组4个字母数字LCD显示屏(每个16x2字符)组成,它们在框中对齐,如下所示:

串行盒设计的3d样机

显示器是Epson EAX16027AR,不幸的是,它们与标准的Hitachi HD44780驱动程序不兼容。因此,我必须为他们编写自己的库

我之所以选择使用这些显示器(而不是一个大型显示器),主要是因为我只是把它们放在身边,并且想对它们做一些有趣的事情。我还认为能够针对某些应用程序独立控制每个显示器(例如,在每个应用程序上显示不同的信息)将非常方便。

在电路设计方面,显示器是并联连接的,芯片选择引脚用于根据需要将数据/命令定向到每个。

ATMega328将是最终单元的大脑,串行数据来自TTL电平线(用于直接连接到类似MCU的TX),或者可选地来自RS232 9针D-sub插座(用于连接到其他各种系统)。该设备还将具有一个对比度转盘,一个用于清除显示的按钮以及一个用于启动自检模式的按钮。将来,我想添加一些按钮,这些按钮也可以使用户浏览回滚历史记录。

下面是一个非常初步的电路布局(由于某些原因,让Fritzing表现出色时遇到了很多麻烦!)。它包括一个8位SIPO移位寄存器,用于驱动LCD的数据线,以绿色显示。您还可以看到橙色的芯片选择线。

初步电路布局

目前,该项目仍处于工作原型阶段,由Uno(克隆)板驱动。在下面,您可以看到运行中的照片,其中显示了从我的计算机通过串行方式传递的文本。

原型在行动

源代码

我正在下面的链接上在GitHub上提供我的LCD库。请注意,它处于开发的早期阶段。在不久的将来,我打算使其与核心LiquidCrystal库更加相似,以便在两者之间更轻松地过渡。

您可以在“示例”文件夹中找到我的串口盒原型的一些基本代码。

结论

我认为该项目进展顺利,我非常高兴能够使原型工作。我的主要挑战是将整个东西装在一个盒子里。我已经开始为显示器切出合适的孔,但是我对这种事情不是很有经验,并且发现将所有内容排列在一起非常棘手。

我最终会到达那里。我看完时可能看起来还不太漂亮!:)


3

加热控制器

您知道这是怎么回事-您将加热设置为在某个时间打开,您要延迟几天工作,并且全天候工作数小时,或者您离开了几天却忘记将其关闭?还是您很早就回到家并且房屋很冷的罕见情况?我认为解决此问题的简单方法是构建一个设备,使我可以通过短信/短信打开或关闭暖气。它将是对现有控制系统的补充,以免失去可以提供的灵活性。

该项目由几个主要部分组成:一个Arduino Uno克隆,一个Seeedstudio GSM屏蔽罩,一个DHT22温度传感器和一个25安培的SSR。

怎么运行的:

将现有的加热控件设置为“关闭”,并连接新的控制器以覆盖它们。Uno被编程为响应三种不同的消息-开,关和查询。如果是后者,则设备将读取DHT22并用当前温度和设备状态(打开或关闭)答复发送者。如果该命令为“打开”或“关闭”,它将响应并确认已执行的操作。一旦对消息采取了行动,则将其删除;任何不符合特定消息结构的消息都会留在SIM卡内存中,以后可以根据需要进行检查。

单元的电源由五伏三安开关模式电源供电。由于Arduino上的电源引脚只是暴露了开发板的内部5v总线,我决定通过这些电源为整体供电,并配置屏蔽以从Arduino汲取电源。

该设备具有三个状态LED。绿色的一个表示有电,蓝色的一个表示GSM板“带电”,红色的一个表示加热状态。这些是Arduino和护罩上提供的状态LED的补充。还有一个按钮开关,允许手动控制加热,并带有一个100nF的电容器来处理反跳动。

下一个:

许多代码都依赖于良好的旧delay()来给屏蔽罩足够的时间来执行其动作。我打算改进代码,以使其等待盾牌的确认,而不是假设它已在分配的时间内完成了所告诉的工作!我还将添加“仍然存在”功能-以固定的时间间隔关闭蓝色LED,将AT命令发送至屏蔽,并在确认后再次打开LED。防护罩受软件控制,因此,如果它无法响应,则将其关闭然后重新打开。

整个系统应安装在合适的外壳中,并与现有控制器相邻安装。我有一个内部照明的按钮开关,它将代替单独的开关和红色LED来使用它来处理优先操作。

从长远来看,我打算添加一个RTC,一个20 x 4 LCD和其他按钮,以便对该单元进行编程并同时充当时间开关。

原型制作已经开始!

结论。

在寒冷的冬天的休息日醒来,发送短信/短信以打开暖气,翻身再回到睡眠状态一个小时,有些something废。当您意识到自己还没有关闭夜晚时,可以在舒适的床上躺下来!

控制器映像1 控制器映像2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.