资料介绍
描述
YAAAP
(另一个 Arduino 艺术项目)
妻子买了一件园林艺术品。等待。没啥事儿。添加了一些磁铁、Arduino 和中提琴!
每个摆的底部都附有一个永久磁铁。电磁铁线圈安装在悬挂磁铁下方。当线圈通电时,摆被排斥。当磁铁接近线圈并经过线圈时,线圈中会感应出一个信号。该信号由微控制器分析,当磁铁通过线圈时,线圈会短暂通电,提供一脚来维持摆动。
艺术
支架高 28 英寸,深 15 英寸,钟摆顶部距离地面 54 英寸。如果你在谷歌图片上搜索“花园艺术钟摆”,你会看到几个来源。它重约 30 磅,我认为它是墨西哥制造的。我在底座单元的顶部导轨上添加了 10 个螺钉,以防止摆轴四处游荡(见图)。
磁铁
每个磁铁长 20 毫米 x 直径 10 毫米,安装在粘在每个摆锤底部的木制支架上(“家用粘胶”)。钻 10 毫米孔并将磁铁压入到位。如果需要,可以粘上。我调整了磁铁的位置,使线圈和磁铁之间的间隙约为 2 到 3 毫米。在亚马逊搜索“10x20mm 磁铁”。速卖通的价格也好不到哪儿去。
电源
我从我的垃圾箱中选择了标有“11.5V 1.95A”的 Atari 电源。空载输出电压为 14.5 伏。我曾期待更好的监管。只有在完成项目后,我才能确定实际的电源需求。每个钟摆在运行时平均每 2 秒需要大约 1 安培的电流持续 5 毫秒。但是,电源必须能够在线圈通电期间提供 1 安培的电流,这在启动期间可能长达 200 毫秒。在开发过程中,我试验了电源电压,发现摆锤可以用 5 伏电源供电,但我没有测试低电压下的启动。电压上限受额定电压为 15 伏的 AMS1117 的限制。
电磁铁
线圈缠绕在一个长 3 英寸、直径 0.5 英寸的软铁芯上,这是一个机器人项目遗留下来的铁轴。我在芯的一端钻了一个孔并攻了一个 6-32 螺钉。我对线圈的设计标准只是基于 12 伏电源将电流限制在 1 安培,这意味着 12 欧姆线圈。我有一个 32 号线的线轴,所以我计算出大约 600 圈就可以了。我在摆锤下方安装了一个木架,线圈安装在木制横梁上(见图)。如果您对设计权衡感兴趣,这里有一个电磁力计算器:https ://www.daycounter.com/Calculators/Magnets/Solenoid-Force-Calculator.phtml
电路设计
该电路分为3个主要部分;电源、线圈控制和模拟信号处理。电源由一个为线圈提供电流的二极管隔离电容器组成。一个单独的电源由 3 个串联的 1N4001 二极管(~2 伏压降)组成,进入 AMS1117 5.0 伏稳压器,然后进入为模拟信号放大器供电的 MIC3565 3.3 伏稳压器。
每个线圈都由一个 AO3400 MOSFET 控制。这些小巧的 SOT-23 器件额定值为 30V、5.8A 和典型的 25 毫欧姆电阻。当 MOSFET 关闭时,感兴趣的信号在 MOSFET 的漏极处生成,因此漏极电压为 12 伏。一个 47 uF 电容器将电路的数字部分连接到模拟放大器,并将信号转移到地电平。
当磁铁通过线圈时,模拟信号略高于 0.5 伏。然而,在某些瞬态条件下,该信号可能高达 12V(在调试那个过程中烤了几个药丸、运放和 MOSFET!),因此有必要用 1N4148 小信号二极管将信号钳位到地限制信号至 0.7 伏。额外的 1N5819 肖特基二极管钳位负向信号。除了二极管钳位之外,Blue Pill 还控制另一个 MOSFET,该 MOSFET 在控制线圈通电后以及在其他两个线圈关闭的短暂时间内将信号钳位到地。信号经过滤波,使用 MCP6001 轨到轨运算放大器放大 10 倍,然后发送到 Blue Pill 的模数转换器。所有提到的组件都可以从 Ali Express 获得。
第一条示波器迹线显示了电平转换到地之后的信号和放大后的信号。第二幅示波器图片显示了信号(蓝色)和消隐信号(黄色)。请注意,消隐信号将信号钳位到地。第三个示波器捕获显示不同线圈的活动被关闭,这通常会在此信号上产生较大的瞬变,但该事件被短暂的钳位信号(黄色)消隐。
工作计划和预算
我使用 DipTrace 进行原理图捕获和 PWB 布局。这是一个免费的非商业用途的布局包。文件已附上。如果您不需要修改文件,还附有 Gerber 文件。我使用 JLCPCB.com 作为我的 pwb 供应商。模拟和数字电路彼此分开,数字和模拟地也是如此。跨接导线将 AGND 连接到 DGND。这种“单点接地”概念降低了模拟部分中的数字噪声。
微控制器
该项目基于基于 STM32F103 的“Blue Pill”。我选择 Blue Pill 是因为,就像我的一些最好的朋友一样,它们既便宜又快捷。从 Ali Express 以不到 1 美元(包括运费)购买 Blue Pill 的日子已经一去不复返了,但它们仍然是 Arduino 战场上成本最低的控制器。开发环境不像 Atmel 产品那样精致,用户群也不像 Atmel 产品那样广泛。然而,在克服了“陷阱”之后,它确实表现可靠。我最初使用 Arduino Uno 制作项目原型,只要钟摆摆动就可以正常工作,但 Uno 在启动时出现问题 - 无法足够快地处理信号。Blue Pill 的运行频率为 72 MHz,12 位模数转换器的转换时间仅为 1 微秒多一点。
此外,定时器架构非常适合该项目的需要。STM32F103 有六个 16 位定时器和六个 16 位预分频器。每个定时器有 4 个“通道”,可以单独设置以产生中断。所以我可以为每个钟摆指定一个计时器。当关闭线圈功率 MOSFET 时,定时器的通道 1 将产生中断。当需要关闭信号消隐 MOSFET 时,通道 2 将产生一个中断。通道 3 将检测钟摆是否停止摆动。第四个定时器生成一个 1 毫秒时基来控制额外的瞬态消隐。
集成开发环境
我使用 Dan Drown 板定义库。 在“工具”选项卡中设置以下变量;
“通用 STM32F103C 系列”,上传方法=串行,优化=最小(使用 30% 闪存)。我尝试了使用 41% 闪存的“最快”,但无法检测到足够的加速以证明偏离默认设置是合理的。
将串行转 USB 转换器连接到 TX、RX 和接地端子。注意——将电路板上的+5V 连接到+5 伏USB 串行转换器会将PC 的+5 连接到该电路板电源的+5。也许可以,但不推荐。将跳线“BOOT0”置于“1”位置,按下复位按钮,您就可以下载代码了。调用 IDE 监视器,Serial.print() 语句出现在监视器中。完成后,将 BOOT0 跳线置于“0”位置,系统将在通电后开始运行闪存中的代码。
软件
该软件分为几个主要组件;状态机、信号处理、线圈控制、消隐(钳位)控制、定时器和定时器中断服务程序。
状态机控制处于三种状态之一的每个摆锤的动作;启动、提升和稳定。启动时,摆底部的磁铁已被线圈的软铁芯吸住。在这种“捕获”状态下,钟摆的振动频率比正常情况高得多,通常比正常“摆动”频率快十倍。启动时,定时器通道 3 中断服务例程会生成一个线圈控制信号,该信号接近捕获的摆锤的基频加上随机“抖动”,在某个时刻,它将使摆锤脱离磁铁。当摆从下面的磁铁中解放出来时,会产生一个大信号,表明摆已经逃脱了捕获。当检测到该信号时,状态变为 BOOST 状态,线圈通电,当磁铁从检测线圈后退时产生恒定的脉冲。最后,在提升固定数量的反冲后,钟摆呈现稳定状态,其中线圈功率是所需周期误差的函数减去实际周期,使用仅基于“P”项的 PID 闭环控制算法.
在 STABLE 状态下,监测信号,当检测到急剧上升后急剧下降时,线圈会通电一定时间,该时间经过计算可使摆锤保持在规定的周期内摆动(闭环控制)。每次检测到信号,线圈控制例程都会重新编程摆锤对应的定时器,产生3次中断;定时器通道 1 将关闭线圈控制 MOSFET,并在线圈关闭瞬态期间短暂消隐其他 2 个信号,定时器通道 2 将在预期下一次磁体相遇之前关闭信号消隐,定时器通道 3 将检测到钟摆已经停止摆动。
提供了一个简单的基于终端的信息屏幕。用户可以控制报告哪个钟摆并为该钟摆设置所需的周期(它控制钟摆的位移)。报告会在启动期间根据正在启动的摆锤自动从一个摆锤切换到另一个摆锤。另请注意,仅当检测到报告信号的特定摆锤时,LED 才会闪烁。
- 从评论中生成艺术的开源项目
- Arduino坦克开源项目
- 使用Arduino制作基于音乐的项目
- Arduino雷达项目
- Arduino项目6(项目5的续集)
- Arduino键盘项目
- Arduino项目板
- DIY自己的arduino项目
- arduino测试项目
- 基于Arduino硬件光控灯制作资料 6次下载
- Arduino Uno国内改版电路原理图下载 0次下载
- Arduino教程之完美图解Arduino互动设计入门电子书免费下载 325次下载
- Arduino入门教程之Arduino设计入门资料图解资料免费下载 39次下载
- Arduino_1.0.3_软件下载 217次下载
- Arduino项目 14次下载
- Arduino模组的KiCad符号与封装库介绍 1508次阅读
- 如何使用Python和PinPong库控制Arduino 718次阅读
- 基于Arduino的机器学习开发 1.7w次阅读
- 如何使用Arduino构建一个电子动画眼睛 2299次阅读
- 基于Arduino Nano R3实现摩托车尾灯的设计方案 1910次阅读
- 如何使用Arduino和LDR传感器实现LCD液晶屏亮度的自动调节 6529次阅读
- DIY一个简单的Arduino板子 5350次阅读
- 使用Arduino实现映射功能的过程 4458次阅读
- 如何从网页控制arduino? 3836次阅读
- 如何利用Arduino创建一个电机滑动门 1614次阅读
- 基于钻井深度显示器和带有Arduino支持的7段显示器设计 2480次阅读
- 基于生成网络(GAN)来辅助艺术家进行更具创意的设计项目 5146次阅读
- PCB设计也能具有艺术性? 3855次阅读
- 浅谈Arduino和树莓派的区别 2.1w次阅读
- arduino是什么以及arduino能干什么 4.4w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多