这是一个很酷的 Arduino 项目,可以在早上和晚上自动打开和关闭窗帘,外加手动操作。假设机械装置在那里(我的旧窗帘有一个简单的环绳),在这个项目中只处理网络和电机控制。
该项目包含以下软件功能:
该电机控制器应用打开和关闭窗帘。在我的例子中,我有一个旧的(60 年代!)手动窗帘开启器,用简单的绳子在窗帘的一侧上下移动。该项目通过用带滑轮的步进电机替换步进皮带和驱动 ir 来驱动“绳索”:
由于我的旧窗帘装置需要相当大的扭矩才能上下运行,因此我可以在伺服电机(或带变速箱的直流电机)和步进电机之间进行选择。基本上伺服会给我更多的扭矩,但我无法准确定位窗帘,而且我无法通过测量电机失速时的电流来感知窗帘导轨的末端(伺服电机几乎不显示电流波动由机械补偿;齿轮箱)。
所以选择步进电机,窗帘上没有检测传感器(开关)......精益求精:)。这也意味着我必须缓慢运行步进器(步进器-扭矩曲线是低速 -> 高扭矩,高速 -> 慢速扭矩。请查看我的 FullStepper 和 HalfStepper 的其他项目。
实现的电机功能:
当我们将 Arduino MotorShield 与 L298N 全桥结合使用时,我们正在进行软件控制时序。这对于慢速步进电机来说运行得很好,但是在正确的时间点测量电流是一个挑战(有时您会看到电流测量值下降,需要将其过滤掉。)
另一个挑战是我的旧窗帘导轨有一些沟渠,所以在某些时候它有更大的阻力,这意味着步进器中的电流波动。最后,很难区分窗帘的终点与轨道变化。所以软件过滤掉坏轨区域,(#def BADRAIL1 / BADRAIL2 in usteps )并一直跟踪到最后:)
内置软件中有一个调试功能 ( http:///D) ,使您可以转储测量的缓冲区(电流、环路平均电流、锁定%)。将其复制到 Excel 工作表并从中制作图表(其分号分隔数据):
如前所述,该项目会在日出和日落时打开和关闭您的窗帘。这意味着两件事:
实时时钟时间是通过同步到NTP 服务器来完成的。这是每天进行的(晚上 1:30)。如果失败,您可以通过使用时间设置和日期设置功能寻址 WebServer 来手动覆盖。
日落和日出的计算相当复杂。算法需要太阳倾角和具有 (Co)-Sine/Tan 函数的函数。因为我不在乎我的窗帘是在一分钟后打开还是关闭,所以我使用了一个非常粗略的线性计算算法。将其设置在查找表中或制作网络功能以从网站读取日出或日落将是一项待办事项 - 任何想法????
Web 服务器是使用 < WiFi101.h > 设置中定义的 Arduino WiFi 客户端函数构建的。这是创建一个基本的 HTML Web 服务器,响应请求。(在你的家庭路由器上给你的 Arduino MKR 一个固定的 IP 是明智的)
在浏览器中访问服务器的http://会提供一个通用菜单,其中包含打开/关闭窗帘的选项,或查看包含状态和计数器的高级信息。
该应用程序处理基本功能,并为您提供网络界面的屏幕截图。看起来更整洁:)
您可以下载 APK 或下载 AI2-app 以重新使用它 - 查看下载。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !