首页 论坛 创客及开源专区 开源、DIY及3D打印 智能升降桌控制器开源:STM32F051/F103原理图/源代码/测试视频等资料

发帖 回复

[资料] 智能升降桌控制器开源:STM32F051/F103原理图/源代码/测试视频等资料
9137 查看
280 回复
 楼主 | 发布于 2018-02-12 | 只看楼主
分享到:

智能升降桌/电动升降桌控制器开源:STM32F051/STM32F103原理图/源代码/测试视频等资料

持续更新,可以关注 

资料下载见附件,电脑登入 

技术交流群:171897584

双轴、4轴的主要是同步:可以从电流检测方面入手 

如需转发:可以点击右上角,转发到微信朋友圈


升降桌控制板(线性驱动):主要市场为海外市场,1年市场容量在10亿左右;
目前做的比较好:比如浙江捷昌(上市公司)、常州凯迪电器等;

浙江捷昌:https://www.jiecang.com/

常州凯迪电器:http://www.czkaidi.cn/ 

参考设计细节:http://www.orangeshop.cn/productsdetail_504_149_149.html 

线性驱动系统简介
    线性驱动原理是通过机械结构将电动机的圆周运动转换为推杆的直线运动,可主动实现对整个机械系统的升降、伸展、角度调节等复杂功能的综合应用。该行业涉及的技术范围广,关联计算机软件、网络、通讯、机械等相关产业技术和相关学科的综合集成应用,涉及电子产业、计算机硬件产业、软件行业、远程咨询业等广泛的产业和领域。
    线性驱动器又称电动推杆,英文名LinearActuator,由驱动电机、减速齿轮、螺杆、螺母、导套、推杆、滑座、弹簧、外壳及涡轮、微动控制开关等组成,与开关电源、控制器或面板一起组成线性驱动系统(电动调节系统),是众多下游行业产品的核心配件,被广泛应用于位移、角度控制机构中,可实现远距离控制、集中控制或自动控制。电动推杆是一种新型的电动执行机构,在一定范围行程内作往返运动,把电机的旋转运动转化为直线往复运动。 

产品用途:主要面向久坐的办公一族,可以有效的调整坐姿和站姿,轻松实现坐站交替的健康办公模式。

除此之外它还支持实时显示高度、位置记忆等功能,更带有遇阻反弹、过载、过压、欠压等保护功能。

结合人体工学设计,为职场久坐人群打造“负责任的、有益的”智能健康办公桌。选取E1级的环保实木桌面,人体工学与优美的双凹形曲线设计结合,端正职场精英的办公坐姿;4档高度记忆设置,满足职场精英办公的任意高度需求,站坐交替升降自如,实现自律有序,呵护身心健康,同时防水的控制面板、360°旋转自由移动且可调节高度的脚轮等,均出于“以人为本”的服务理念,细节彰显品质。


控制板主要分:操作器和控制器2大部分;
操作器:主要用由数码管显示,按键,MCU采用STM32F051C8T6;
控制器:主要控制电机的升降,温度,位置检测等,MCU采用STM32F051C8T6;

软件使用平台都是:KEIL MDK;


STM32F051官网链接:

http://www.st.com/content/st_com ... x1/stm32f051c8.html

操作器和控制器自己采用:串口通讯的方式进行通讯;下图为操作器

 

  

 




本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(3 ) (5 )
回复 举报

楼主 | 回复于 2018-02-12 沙发

控制器主程序部分:


//        IWDG_Open();
        main_cycle_count = SystemTimeTickGet();
        while(1)
        {
//        TIM_SetCompare1(TIM1, (uint16_t)TIM_CCR_VALUE(pwm_on_rite));        //0%
//        TIM_SetCompare1(TIM1, (1.0-pwm_on_rite)*(PWM_T-1));        //
                CommuicationWork();        

        //每2ms处理一次采样数据
        if(1 /* (PastTick(main_cycle_count) % 10 == 0) */)
        {
            ProtectCheckRun();
        }

        Motor1ParamCheckRun(); 

        MotorControlWorking();


        #if(__TEST_MAIN__)
        main_run_time++;
        //实测通常情况下12us一个循环周期 2016.8.13
        if(main_run_time >= 10000)
        {
            temp_arry[ii++] = PastTick(main_cycle_count);
            main_run_time = 0;
            main_cycle_count = SystemTimeTickGet();
            if(ii >= 100)
            {
                ii = 0;
            }
        }
        #else
        //每500ms喂狗
                if(PastTick(main_cycle_count) >= FEED_IWDG_TIME)
                {
                          IWDG_Feed();
                        main_cycle_count = SystemTimeTickGet();
                        LED_toggle_flag=(FlagStatus)!LED_toggle_flag;
                        LED_ToggleRun1(LED_toggle_flag);
            
            #if(0)
            if(pwm_on_rite < 100)
            {
                pwm_on_rite += 10;
                TIM_SetCompare1(TIM1, (uint16_t)TIM_CCR_VALUE(pwm_on_rite));        
            }
            if(pwm_on_rite == 100)
            {
                pwm_on_rite = 200;
                TIM_SetCompare1(TIM1, (uint16_t)TIM_CCR_VALUE(0));        //0%
            }
            #endif
                }
        #endif
        }
}
(0 )
评论 (0) 举报

楼主 | 回复于 2018-02-12 2#

自己支持下;
(0 )
评论 (0) 举报

回复于 2018-02-13 3#

学习
(0 )
评论 (0) 举报

回复于 2018-02-13 4#

无量寿福,,
(0 )
评论 (0) 举报

回复于 2018-02-13 5#

谢谢分享啊啊啊
(0 )
评论 (0) 举报

回复于 2018-02-13 6#

谢谢分享
(0 )
评论 (0) 举报

回复于 2018-02-13 7#

666
(0 )
评论 (0) 举报

回复于 2018-02-13 8#

郑总,有资料包下载吗?
(0 )
评论 (1) 举报

回复于 2018-02-13 9#

感谢分享
(0 )
评论 (0) 举报

回复于 2018-02-13 10#

谢谢
(0 )
评论 (0) 举报
发表回复
0/3000





举报

请选择举报类别

  • 广告垃圾
  • 违规内容
  • 恶意灌水
  • 重复发帖

全部板块

返回顶部