聚丰项目 > AB32VG1项目之智能晾衣架

AB32VG1项目之智能晾衣架

本项目是解决实际生活中晾衣时,阳台沿容易遮挡阳光及有人站在阳台时,衣服又遮挡视线问题,给出的一个智能解决方案。主要实现的过程如下: 1. 晒衣过程,手动按键控制晒衣,这是一个基本的功能,具体过程就是开机后,要自动放下衣架,人放上衣服后,再按一下按键,升上衣架。 2. 一键收衣过程,手动控制及在任意模式下都可以收衣,具体过程为:无论是否在雷达控制下,都可以实现收衣,一般在雷达控制下,根据电机位置,可少转一圈。双击按键后,进入收衣,先放下衣架,收衣完成后,再单击按键,升上衣架。可以认为是晒衣的逆过程。 3.雷达控制晾衣高度,晒衣完成后,等待15后,会先降一圈(这样可以避免阳台上沿遮挡阳光,也就是曝晒模式)同时,打开雷达,检测是否有人。有人的话就再升起衣架,进入一个循环周期。 这样可以实现智能化的晾衣控制。

guangods guangods

分享
0 喜欢这个项目
团队介绍

guangods guangods

团队成员

刘工 研发管理

分享
项目简介
本项目是解决实际生活中晾衣时,阳台沿容易遮挡阳光及有人站在阳台时,衣服又遮挡视线问题,给出的一个智能解决方案。主要实现的过程如下: 1. 晒衣过程,手动按键控制晒衣,这是一个基本的功能,具体过程就是开机后,要自动放下衣架,人放上衣服后,再按一下按键,升上衣架。 2. 一键收衣过程,手动控制及在任意模式下都可以收衣,具体过程为:无论是否在雷达控制下,都可以实现收衣,一般在雷达控制下,根据电机位置,可少转一圈。双击按键后,进入收衣,先放下衣架,收衣完成后,再单击按键,升上衣架。可以认为是晒衣的逆过程。 3.雷达控制晾衣高度,晒衣完成后,等待15后,会先降一圈(这样可以避免阳台上沿遮挡阳光,也就是曝晒模式)同时,打开雷达,检测是否有人。有人的话就再升起衣架,进入一个循环周期。 这样可以实现智能化的晾衣控制。
硬件说明

rt-thread使用情况概述:整个方案涉及的技术栈有:硬件选型,PCB 设计,RT-Thread 程序,程序调试等。应该来说,硬件都是用到平时项目成熟的电路,所以这块省了不少时间。就是一个逻辑控制调试。尤其是对电机位置所需要标志及不同线程间的协调,还是费了一些时间的

内核部分:使用了线程、消息、事件

软件包部分:MultiButton(按键)

设备驱动:PWM,GPIO,外部中断


核心模块AB32VG1是蓝牙控制一体的芯片,引出了非常多的引脚,使用起来非常方便,可以直接通过 USB 供电。但考虑到有一个12V的电机,所以还是选用了之前项目的测试板,上面可以输出12V、5V、3.3V等电压。这样即可以驱动电机又可以驱动磁传感器还可以直接带个项目所需要的雷达检测电路,还可以直接给AB32Vg1来供电。基本的ab32vg1管脚分配及功能说明如下。

Snipaste_2021-11-25_18-14-19.jpg

搭建硬件电路,需要考虑到雷达的影响,因为雷达的频率比较高为24GHz,所以对电源的稳定性有一定的要求。板子上的只有一路5V,除雷达外,还需要给AB32的板子供电,这块是需要测试的。最终在程序中采用分时使用,这就避免了5V电源波动对雷达造成的误触发。

软件说明

这个项目本身难度不是很大,主要用到了消息及事件,对电机的控制主要是通过消息,用以区分不同的转动控制,而传感器位置检测则使用事件,这样可以比较快的作出反应。整体的控制流程如下:

Snipaste_2021-11-25_18-18-39.jpg


之前本来打算用温湿度控制另一路电机,但实际意义实在是不是很大,能伸出窗外晾衣的阳台不多,也听从了别人的建议,所以就把温湿度去掉了。线程基本上就是上面的线程,线程间通讯用的是消息,线程内用的是事件,难点在于电机位置的检测及控制。要想流畅的运行,还是费把劲的。


程序运行逻辑流程图如下:

Snipaste_2021-11-26_11-22-05.jpg

这个项目逻辑总体实现起来,还是比较清晰的,实施过程中,主要还是对ab芯片外部中断使用时遇到一些问题,具体总结在博客中,详见https://blog.csdn.net/guangod/article/details/121536624。其他根据流程图写就行了。通过这个项目,再次熟悉了rtt,之前本打算基于nano开发的,但考虑到对芯片实在是不熟悉,在写了一个测试程序后,就没在nano下实现。同时,也锻炼了程序的调试能力,感到非常的有收获。

演示效果

这个演示视频放不下,请移步B站https://www.bilibili.com/video/BV1UR4y1x7so/

代码,详见https://gitee.com/guangod/hanger


评论区(0 )