亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

HSVClock

组件和用品

Arduino UNO
× 1
Seeed 2.8" TFT 触摸屏 (V1.0)
× 1

关于这个项目

HSV 时钟

上次访问美国时,我从 RadioShack 买了一个 Seeed 2.8" TFT Touch Shield (V1.0)。我用它为父亲 80 岁生日制作了一个彩色时钟。

HSVLock.zipYouTube

重点是

  • 钟面 基于矩形单元格的网格。单元格角被随机小量扭曲,每个单元格被随机对角线分割。在单元格上应用随机的颜色分布,并且每个三角形都带有阴影以提供 3D 外观。在内部,颜色表示为 HSV(色相、饱和度和值),但转换为 RGB 以发送到 LCD。通过用互补色为某些单元格着色,时间以简单字体显示。
  • 外壳 是激光切割的竹子,在 Inkscape 中设计,由 Ponoko 切割。
  • 遗憾的是,防护罩没有安装孔 所以我有效地将它夹在外壳中,靠在前面。 Arduino Uno 通过接头针脚搭载在屏蔽板上。
  • 我需要 I2C 访问 外部 RTC (DS3232)。屏蔽层不会暴露未使用的引脚,因此我使用了具有额外 SDA/SCL 引脚的 Uno。我为这些位于屏蔽下方的小型接头连接器制作了一个。我从 ICSP 引脚上的一个类似连接器(也在屏蔽层下方)拉出电源和接地。
  • 我添加了简单的夏令时 支持草图(少一个时钟,一年设置两次!)。与处理“九月的最后一个星期天”这样的逻辑不同,它依赖于一个包含未来几年特定开始和结束日期的小表格(在我的例子中是新西兰)。
  • 我简化了触摸库代码来制作触摸屏 只是作为去弹跳按钮的 4x4 网格。例如,通过触摸左下角和右上角来设置时间。
  • 我为加速做出了一些相当英勇的努力 渲染:重新绘制单元格大约需要四分之一秒。渲染基于写入特定颜色像素的水平行。我使用修改后的 Bresenham 算法来计算构成给定单元格的三角形的一系列线对的水平范围。将像素发送到 LCD 的代码基于库,但经过内联、展开、简化和优化。由于像素颜色数据跨多个 PORTx 写入,因此在选择颜色时会预先计算所有值,因此将一行中的 N 个像素设置为该颜色会更快。
  • LCD 用于横向 .我挣扎了很长时间才能让屏幕在水平行中更新。控制器的数据表令人困惑。有设置“光标”位置的命令,“DRAM Horizo​​ntal/Vertical Address Set (R20h, R21h)”。像素数据写入光标位置,光标更新,需要时换行等。 还有一个改变屏幕方向的命令,“输入模式(R03h)”,也谈到了调整光标的行和列增量。但是,我发现将方向更改为横向然后定位光标不起作用。我最终找到的解决方案(可能埋在数据表中)是使用“window”命令而不是光标命令; “水平和垂直 RAM 地址位置(R50h、R51h、R52h、R53h)”。设置窗口左上角的坐标意味着像素数据从那里开始并水平更新(横向)。

电路

电路很简单

  • 安装在 Uno 上的 TFT 防护罩。
  • +5VDC、接地、SDA 和 SDL 从 Uno 上标记的引脚连接到 RTC 模块。显示在下面的前三张照片中(屏蔽移除)。请注意,出于访问原因,电源/接地来自 ICSP1 连接器。
弗里茨
      相片

      制造工艺

      1. Kazoo
      2. 竖琴
      3. 发泡聚苯乙烯泡沫 (EPF)
      4. Raspberry Pi 传感器
      5. 使用 Raspberry Pi 和 Bridge Shield 的机器人
      6. Web 操作的 DMX 控制器
      7. Arduino Spybot
      8. Arduino + ESP 气象箱
      9. 什么是剪线器?
      10. 什么是采石场?
      11. 什么是万能钥匙?
      12. 实验室中的氮气生成