轻松玩 发表于 2023-10-31 12:05:28

基于ESP32 PICO D4设计的单体翻页时钟

ESP32-单体翻页时钟

这是一个基于ESP32-PICO-D4设计的单体翻页时钟,其主要特点是采用电机内置结构,体积小巧、并且结构件大部分都采用PCB,整体没有用到一条线,十分简洁。
先上视频:
https://www.bilibili.com/video/BV1Uo4y1A714/?share_source=copy_web&vd_source=05a706bbfb8a2b3090007f78f1cede0c
开源文件————————————————————————————————————————————————————————
[*]PCB工程(嘉立创EDA专业版)
[*]3D打印文件(stl)
[*]程序源码


[*]零件BOM


开源协议————————————————————————————————————————————————————————
本项目为GPL3.0协议,使用、修改后的软件同样以GPL协议开源,并保留原作者的版权信息。
项目相关功能
————————————————————————————————————————————————————————目前有两个版本: 二十四时辰:esp系统时间 + sntp校时天气预报:数据来源心知天气:https://www.seniverse.com/
项目属性
————————————————————————————————————————————————————————本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。
项目进度
————————————————————————————————————————————————————————本项目已经实现基本功能,能够准确显示时间和天气信息。
设计原理
————————————————————————————————————————————————————————3D模型

本结构的特点就是用PCB做框架,电机内置,把叶片滚轮设计成滑环就可以实现电机360度旋转。这种设计优点就是空间利用率高,使结构更加紧凑。缺点就是成本较高,不易装配和维护。

结构零件整个结构所用的PCB。

叶片24片版本PCB厚度0.8mm(有点大材小用),当然也可以使用面板打印,如果是60片版的厚度需要≤0.5mm。


二十四时辰对照表
上面两个版本主要是为了验证可行性,所以图案相当的直男。0.8mm不支持彩色丝印,彩色图案最好选择双面面板打印或者其他工艺。下面是我在网上找到的一些图案,大家可以参考一下。
二十四时辰

天气图标

主控&底板&侧板

主要器件:
[*]主控芯片:ESP32-PICO-D4
[*]电机驱动:TMC2209
[*]无线充电:BQ51013B(这个版本翻车了,暂时不能用)
[*]锂电池充电:TP4065
[*]5V稳压芯片:TPS63002

目前底板无线充电还不能用,开关机电路也还需要改进,其他功能正常。因为程序和硬件都没有考虑低功耗问题,所以电池坚持不了多久。测试待机电流10mA左右,电机运行电流200mA左右,建议插电使用。
主控和底板已经在嘉立创SMT贴好

只需要补焊接线柱和排母就可以了

主控和侧板使用彩色丝印,PCB厚度只能1.6mm。

这里需要注意的是弹簧顶针是从PCB背部穿过来的,并不是贴在表面的。这样做的目的是可以选择更大行程提高容错率。

叶片滚轮叶片滚轮(滑环)有24/60两个版本,厚度1.6mm

每块滑环PCB连接一相(A/B相两条线),然后通过四根铜柱连接到触点。两块滑环PCB要旋转180度连接。电机与滑环是通过弹簧排针和触点连接,电机与转接PCB(厚度0.8mm)焊好后一定要用热熔胶固定好,否则容易损坏电机。除了基本的元件外还有一些接线柱、弹簧顶针(POGOPIN)、焊接铜套等后面会给BOM表。

电机选择的是GM15BY永磁步进电机,推荐买减速比100以上,不焊线,轴长4.4/5mm版本


因为叶片PCB比较硬,很难形变,所以需要打印一个辅助装配叶片的零件,然后按照顺序装配就可以了






器件BOM
软件说明
————————————————————————————————————————————————————————程序比较简单,网上已经有很多网络时钟的开源代码,把显示部分改成控制步进电机就可以了。

代码我稍微封装了一下,更换不同叶片只需要修改几个参数就可以了
void ClockTask(void *arg)
{
    EventBits_t uxBits;
    Clock_config_t clockConfig = {
      .wifiConfig = {
            .sta = {
                "ssid", //ssid
                "password", // password
                .bssid_set = false,
            }
      },
      .ntpUrl = "ntp.aliyun.com",
      .userKey = "userKey", //心知天气userKey
      .location = "guangzhou",
      .powerPin = GPIO_NUM_4,
      .pages = 24, //叶片数
      .ntpInterval = 30,//网络校准时间间隔/分钟
      .speed = 2000, // 电机速度
      .compensation = 1000, //步进数误差补偿
      .stepperConfig = {
            .stepPin = 27,
            .dirPin = 26,
            .enPin = 25,
            .ms1Pin = 14, // 细分控制
            .ms2Pin = 12, //
            .timer_group = TIMER_GROUP_0,
            .timer_idx = TIMER_1,
            .miStep = MICROSTEP_16,//电机驱动细分
            .stepAngle = 0.086//0.086 0.12 步进电机减速后的步进角
      }
    };
    Clock1.config(&clockConfig);
    Clock1.init();
    vTaskDelay(1000/portTICK_PERIOD_MS);
    Clock1.runPages(Clock1.getTimeHour());
    //Clock1.runPages(Clock1.getWeatherCode());
    while (1)
    {
      uxBits = xEventGroupWaitBits(
                     clock_event_group,
                     SNTP_BIT | BTNJUMP_BIT | BTNLONG_BIT,
                     pdTRUE,
                     pdFALSE,
                     60000/portTICK_PERIOD_MS );//60000/portTICK_PERIOD_MS portMAX_DELAY
      if(uxBits & SNTP_BIT)//时间校准事件
      {
            //Clock1.runPages(Clock1.getWeatherCode());
            //Clock1.runPages(Clock1.getTimeHour());
      }
      else if (uxBits & BTNJUMP_BIT)//按键短按跳变/松开
      {
            Clock1.runInf(200); //短按微调时间
      }
      else if (uxBits & BTNLONG_BIT)//按键长按
      {   
            Clock1.powerOFF();//长按关机
      }
      else //最大等待时间,这里是一分钟刷新一次。
      {   
            Clock1.runPages(Clock1.getTimeHour());
      }
      }
    }
源码链接:https://github.com/DaqoLee/K_Clock.git
实物展示————————————————————————————————————————————————————————
实物图

介绍视频https://www.bilibili.com/video/BV1Uo4y1A714/?share_source=copy_web&vd_source=05a706bbfb8a2b3090007f78f1cede0c
其他————————————————————————————————————————————————————————挖坑单体版主要是对结构进行验证,现在双体版本已经在路上了,敬请期待。






设计图
阿主控

挡板右
挡板左
底板
电机转换
滑环_24
滑环_60


叶片_时辰


叶片_天气


主控_拼板


Panel_1


Panel_2


材料清单



附件下载


本文作者:DaqoLee

原文地址:https://oshwhub.com/daqolee/dan-tfan-ye-shi-zhong




hnyzcj 发表于 2023-10-31 12:37:38

流弊

鳄鱼 发表于 2023-11-1 08:15:35

这个厉害了!学习,感觉复制不了。

blueee 发表于 2023-11-1 11:50:23

hnyzcj 发表于 2023-10-31 12:37
流弊

{:5_131:}向大佬学习

blueee 发表于 2023-11-1 11:51:43

鳄鱼 发表于 2023-11-1 08:15
这个厉害了!学习,感觉复制不了。

哈哈哈,可以尝试下

JVUm7ppJGaRK 发表于 2023-11-2 19:44:51

膜拜大神

大海986 发表于 2023-11-3 09:53:03

厉害了,大神。

啊一 发表于 2023-11-9 09:48:41

请问这个怎么解决?
页: [1]
查看完整版本: 基于ESP32 PICO D4设计的单体翻页时钟