• 21
    回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【 2025 DigiKey 杯】智能手机支架整体方案介绍

前言

      创意的诞生往往源于对生活细致入微的观察与切身体会,它并非凭空捏造,而是扎根于真实的生活场景与需求之中。我此次关于智能手机支架的创新设计灵感,正是源自自身作为资深手机使用者的深刻感受。在当今数字化时代,手机已然成为人们生活中不可或缺的一部分,无论是工作学习、休闲娱乐,还是社交沟通,都离不开它的陪伴。而我,作为众多手机重度使用者中的一员,对手机支架的使用频率极高。手机支架,这个看似不起眼的小物件,却在我的日常手机使用中扮演着重要角色,它为我的双手解了放,让我能更舒适地观看视频、浏览资讯。然而,随着使用时间的增加,我逐渐发现了一些令人困扰的问题。当我将手机放置在支架上,沉浸在精彩的内容中时,不知不觉间,身体会不自觉地前倾,眼睛紧紧地盯着屏幕,仿佛被一股无形的力量吸引着。这种姿势一旦保持较长时间,每次看完手机,眼部酸痛的感觉十分明显,视线也变得模糊起来。更让我担忧的是,经过专业检查,我发现自己的视力已经有所下降,开始有点近视了。那么再科技飞速发展得今天,智能检测手段和控制方法层出不穷,为何不能将这些先进技术应用到手机支架上,为用眼安全保驾护航呢?基于这样的思考和设想,我决心展开本次创意得探索,将智能检测与控制技术融入手机支架之中。

方案介绍

      基于对用眼安全的高度关注,本次设计的智能手机支架聚焦于使用者与手机间的距离精准检测及运动部件智能控制。
      在距离检测方面,我们选用意法半导体(ST)的VL53L5CX传感器。该传感器具备4*4多区域距离检测能力(也可以扩展到8*8),可对使用者面部与手机屏幕间的距离进行细致划分和精准测量。它能实时获取多个区域的距离数据,形成全面的距离信息矩阵,有效避免单一区域检测可能出现的误差,为后续调整提供可靠依据。
在运动部件控制上,我们采用步进电机搭配滑轨的方案。当VL53L5CX检测到距离不符合安全用眼范围时,系统迅速处理数据并发出指令,驱动步进电机运转。步进电机带动滑轨平稳移动,精准调整手机与使用者之间的距离,确保始终维持在健康、舒适的区间,从硬件层面切实保障使用者的用眼安全,提升使用体验。
      整体方案框图如下:

硬件说明

主传感器:

      VL53L5CXV0GC/1 是意法半导体(STMicroelectronics)生产的一款飞行时间(ToF)多区测距传感器,采用微型封装,集成了单光子雪崩二极管(SPAD)阵列和衍射光学元件(DOE),用于高精度距离测量。该传感器支持多区域测距,最多可覆盖8x8个区域(64个独立点),在15 Hz帧率下提供高分辨率,或在60 Hz帧率下实现更快的速度。 它具备多目标检测能力,通过专利直方图算法区分视角内的多个物体,并减少盖片串扰影响,尤其在60 cm以外的物体检测中表现稳定。‌工作范围可达400 cm,支持连续或自主模式运行,功耗较低。传感器采用I2C接口,工作电压灵活(IOVDD为1.8 V、2.8 V或3.3 V,AVDD为2.8 V或3.3 V),尺寸为6.4 x 3.0 x 1.5 mm,兼容多种盖片材料,适用于机器人、手势识别、智能建筑等场景。开发支持包括STM32Cube扩展软件包、Linux驱动程序及示例代码,便于集成。
      为此我们需要进行一下传感器板卡得设计,原理图如下:

      传感器相对比较小,我们除了基本得接口外,主要就是对一些初始状态的基本引出,板子的整体尺寸也就比较小,PCB效果如下:

      实物图如下:

主控单元:

      主控单元我们选择了一款ST新出的单片机STM32U385,STM32U385‌ 是意法半导体基于 Arm® Cortex®-M33 内核的超低功耗 MCU,主打高能效与强安全性,适合电池供电的工业、医疗和消费类设备。其采用近阈值技术,运行功耗低至 10 μA/MHz,静态功耗低于 2 µA,能效比前代提升 5 倍。内置 256KB RAM 和 1MB Flash,支持 FDCAN 和 I3C 接口,提供 32-100 引脚多种封装。安全方面集成硬件加密(AES、PKA)和防篡改机制,支持读/写保护、安全区域等。外设丰富,包括 2 个 12 位 ADC、2 个 DAC、低功耗 RTC 和多个定时器,还内置音频数字滤波器(ADF)。本次的主控单元设计采用模块化设计思路,通过单间最小单片机系统以及基本接口的设置,例如供电、调试等内容,最后实现全引脚的输出。本次的设计主要是参考了LaunchPad接口设计,基于最小路径原则,让走线可以更加简洁,除了特殊功能的引脚外,所有引脚都引到最新的接口上,设置了一个用户按键和指示灯,提供32.768晶振和著外部高速晶振,并且提供四个定位孔用于安装。实物图如下,搭配的是官方调试器STlinkV3SET:

运动部件:

      运动部件采用的是步进电机带动的滑轨,目前手里只有这一个合适的器件,所以智能用这个比较大的滑轨来进行整个系统的搭建,实际上可以换成更加合适的部分来替代,这个相对来说有点大了,步进电机也可以更小,实物图如下:

交互部分:

      除了主控单元自带的一个用户按键,我们还引入了一个按键模块来完成更加丰富的交互内容,按键模块如下:

      通过上面的硬件介绍,我们已经对各部分的器件有了全面的认识,接下来我们需要将他们连接起来,整体的连接效果如下:

功能介绍

      本次主要功能的实现设计通过传感器数据的采集与判断实现运动部分的基本控制,由于多个按键的引入我们可以实现更加的丰富的功能,基本功能如下:
      1、可以实现基准位置的调整,通过按键模块的两个按键实现前进以及后退的基本控制;
      2、可以实现自动位置调整,通过板载按键实现自动模式的开启和停止,开启自动模式后,可以是基本距离保持在舒适的距离内(不超限);
      3、具备超限控制功能,开启自动模式后,其前后的最大移动范围限制控制,防止无人等情况出现超运行,

软件设计

      软件设计主要我Iran基本外设功能要求继续,基本框图如下

      这里涉及到的软件设计主要包括传感器数据的数据的采集,这里是通过轮询的方式继续传感器数据的采集,4*4区域共计16个:
void MX_TOF_Process(void)
{
  /* USER CODE BEGIN TOF_Process_PreTreatment */
  /* USER CODE END TOF_Process_PreTreatment */
  MX_VL53L5CX_SimpleRanging_Process();
  /* USER CODE BEGIN TOF_Process_PostTreatment */
    status = CUSTOM_RANGING_SENSOR_GetDistance(CUSTOM_VL53L5CX, &Result);
  if (status == BSP_ERROR_NONE)
    {
        print_result(&Result);
    }
    if (com_has_data())
    {
        handle_cmd(get_key());
    }
    for(uint8_t i=0;i<16;i++)
    {
        tofdata[i] = Result.ZoneResult[i].Distance[0];
    }
    HAL_Delay(POLLING_PERIOD);

  /* USER CODE END TOF_Process_PostTreatment */
}
      按键采集及处理:
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
    if(GPIO_Pin == KEY_Pin)
    {
            if(Autorunflag == 0)
                Autorunflag = 1;
            else
                Autorunflag = 0;
            HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
            Motor_stop();
    }
        
        if(GPIO_Pin == KEY1_Pin)
    {
            if(Autorunflag == 0 && runflag == 0)
            {
                Motor_run(0);
            }
            else if(Autorunflag == 0 && runflag == 1)
            {
                Motor_stop();
            }
    }
        if(GPIO_Pin == KEY2_Pin)
    {
            if(Autorunflag == 0 && runflag == 0)
            {
                Motor_run(1);
            }
            else if(Autorunflag == 0 && runflag == 1)
            {
                Motor_stop();
            }
    }
}
      定时器控制超限距离判断:
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if (htim->Instance == TIM15) {
    HAL_IncTick();
        if(Autorunflag == 1 && runflag == 1)
        {
            if(runDIRflag == 0)
                OverCnt--;    
            else
                OverCnt++;
            
            if(OverCnt<75)
            {    
                    OverCnt = 75;
                    Overflag = 1;
            }
            else if(OverCnt>125)
            {
                    OverCnt = 125;
                    Overflag = 1;
            }
            else
                Overflag = 0;
        }

    }
}
      传感器数据的判断与处理,这里我们是根据实际情况选择的,3、7、11、15的数据继续的判断处理,取其中的最小值作为依据,通过四个数据的参与可以具有尽可能大的检测范围,如果结构设计更加合理可以使用更多的数据参与判断:
while (1)
  {
    /* USER CODE END WHILE */

  MX_TOF_Process();
    /* USER CODE BEGIN 3 */
        if(Autorunflag == 1)
        {
            tofdatamax = tofdata[3];
            if(tofdata[7]<tofdatamax)
                tofdatamax = tofdata[7];
            if(tofdata[11]<tofdatamax)
                tofdatamax = tofdata[11];
            if(tofdata[15]<tofdatamax)
                tofdatamax = tofdata[15];
            if(tofdatamax>=300 && tofdatamax<=400)
            {
                Motor_stop();
            }
            else if(tofdatamax<300)
            {
                runDIRflag = 1;
                if(Overflag == 0)
                    Motor_run(runDIRflag);
                
            }
            else if(tofdatamax>400)
            {
                runDIRflag = 0;
                if(Overflag == 0)
                    Motor_run(runDIRflag);
            }
        }
        
  }
      电机的控制:
void Motor_stop(void)
{
  __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,0);
    runflag = 0;
}
void Motor_run(uint8_t runmode)
{
    if(runmode == 0)
    {
        HAL_GPIO_WritePin(Motor_DIR_GPIO_Port, Motor_DIR_Pin, GPIO_PIN_SET);
        __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,78);
    }
    else
    {
        HAL_GPIO_WritePin(Motor_DIR_GPIO_Port, Motor_DIR_Pin, GPIO_PIN_RESET);
        __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,78);
    }
    runflag = 1;
}

效果展示

      这里的实际效果展示实际上也是滑轨的控制,主要包括基线调整:

自动调整:

视频展示:

 

总结

      本次我们实现的基本功能主要是基于现有条件实现的,实际上对于后续的优化设计存在很大空间,比如加入更多的交互控制,增加显示,进行基准设计的调整,加入限位控制传感器提高安全运行等级,优化滑轨的选型等等。本次的创意实现主要是对于主技术路线的可行性的一次尝试,希望可以对我们的用眼安全提供一些帮助,当然这样的技术方案也不是只能应用在手机支架上,例如屏幕这类都是可以使用的。
全部回复(21)
正序查看
倒序查看
02-09 14:23

想知道这个能够商业化,有产品样机吗

0
回复
02-14 19:12

整体方案看过了,视频只是介绍了基本结构,但是个人感觉应用范围不广泛

0
回复
02-28 17:52

【2025 DigiKey杯】+从硬件工程师的角度,复位信号没有预留电容,IIC信号没有预留串阻,为了长期的信号质量建议还是预留。

0
回复
wmqlzy
LV.4
5
03-03 16:25

【DigiKey杯点评】+创意亮点/方案思路分析方面,能否增加角度偏移调整和左右移动调节功能,再能根据头部运动控制屏幕的显示内容那就更好。

0
回复
446727704
LV.3
6
03-03 20:02

【DigiKey杯点评】方案覆盖桌面、车载、直播多场景,以磁吸、夹持、悬臂为核心,适配性强、稳定可调。优点是场景全覆盖、易用性高;短板是便携与稳固难兼顾,部分结构易松动。整体成熟实用,性价比优先选折叠夹持款。

0
回复
03-06 22:27

【DigiKey杯点评】这个方案选题贴近生活,"用眼安全"是普遍社会问题,具有实用价值和市场潜力,将"被动提醒"升级为"主动干预",比纯软件方案更直接有效,原型机虽然简陋,但是基本原理方案是可行的。

传感器选型合适,并且精准,可以在多区域检测可识别面部轮廓,避免单一测距的误判问题

唯一缺点是交互能力有限,只有2个按键+1个LED,没有办法智能提示好和互动。

建议加入蜂鸣器/语音模块,距离过近时声音提醒,或者说考虑加入蓝牙/WiFi模块,连接手机APP查看用眼报告,这样那个可以通过APP的统计数据更加贴近个人生活,能够在后续更加贴近个人的习惯性使用

希望可以看到更加完善的产品,加油!

0
回复
03-11 10:45

【DigiKey杯点评】

场景刚需、实用性拉满:贴合日常学习、办公、娱乐、直播等高频使用场景,设计贴近生活,受众广、体验直观,是极具生活气息的优质作品。

• 方案完整性强:从结构设计、功能实现到使用体验形成完整整体方案,不只做单一零件,而是系统化解决方案,思路完整、逻辑清晰。

• 结构与工艺成熟:兼顾稳定性、便携性、可调角度与收纳设计,人机工程友好,使用舒适、安装简便,细节考虑到位。

• 创新与拓展性强:可集成无线充电、散热、防抖、折叠便携等附加功能,可拓展空间大,能轻松提升作品亮点与竞争力。

• 非常贴合赛事导向:材料易得、实现难度适中、可复现性高,展示效果好、易理解、易共鸣,评委与观众接受度极高。

整体是一款贴近生活、设计完整、实用性强、完成度高的优秀参赛作品。

0
回复
Veben
LV.1
9
03-11 11:02

【2025 DigiKey杯】+从芯片工程师的角度,这个使用ESP8266是不是开发起来更便捷呢

0
回复
03-12 11:49

【2025 DigiKey杯】该方案以真实痛点为起点,技术路线清晰且有创新性,为“手机支架智能化”提供了有价值的思路。若能在“技术细节补全、用户体验打磨、商业落地规划”三方面进一步深化,有望从“创意概念”转化为“可量产、有市场竞争力的产品”。

0
回复
地瓜patch
LV.9
11
03-12 17:12

【2025 DigiKey杯】+  思路挺好的,可以用于控制观看距离的人群,比如小学生上网课时,控制观看距离。老年人也可以用,只用几个按钮实现调节,解决行动不便的问题

0
回复
dy-r1Lm54ly
LV.1
12
03-13 10:33

【DigiKey杯点评】

这款智能护眼手机支架方案,精准切中用户近距离用眼的健康痛点,将多区测距传感器与步进电机滑轨结合,实现用眼距离的实时监测与自动调节,硬件选型专业、逻辑闭环清晰。若能优化传感器性价比,将“强制调距”改为“分级预警+辅助调节”,可进一步提升体验与落地性。

0
回复
fzwwj95
LV.7
13
03-13 14:21

【DigiKey 杯点评】本方案精准切中近距离用眼的健康痛点,创意亮点突出,将 ToF 多区测距与步进电机自动调节结合,把被动提醒升级为主动距离干预,技术路线清晰且逻辑闭环,还可拓展至各类屏幕设备,落地性与延伸性俱佳。硬件选型专业,VL53L5CX 传感器兼顾精度与检测范围,STM32U385 超低功耗 MCU 适配便携需求,模块化电路设计兼顾开发灵活性与小型化,仅需在 IIC 信号、复位信号处预留阻容件优化信号稳定性即可。功能上实现了基准调节、自动调距、超限保护核心需求,多区域取最小值的判断逻辑有效避免误判,软硬件配合让核心护眼功能落地,仅演示仅展示滑轨控制,缺少可视化交互稍显不足。后续可优化便携性,替换更小的电机与滑轨,增加声光提醒、屏幕角度调节功能,接入蓝牙模块联动手机 APP 生成用眼报告,让护眼体验更全面,进一步提升产品的市场竞争力。

0
回复
#回复内容已被删除#
14
蒋洪涛
LV.6
15
03-16 11:25

【DigiKey杯点评】我没用过手机支架方面的东西,但见过不少,不知道这个玩意能不能再加个语音识别控制,如果能加,是不是会更好

0
回复
xinmeng_wit
LV.2
16
03-16 21:26

【2025 DigiKey杯】这一智能护眼手机支架方案紧扣用眼健康痛点,技术路线清晰且落地性强,将 ToF 多区测距与电机自动调节结合,实现了从被动提醒到主动干预的升级,硬件选型专业、软硬协同的逻辑闭环完整,原型机验证了核心技术的可行性,还可拓展至各类屏幕设备,兼具实用价值与创新意义。美中不足的是当前交互形式单一、滑轨器件适配性欠佳,硬件设计也有细节疏漏,若能丰富交互、优化器件选型并打磨体验,有望从创意原型转化为具备市场竞争力的产品,还能针对性适配学生、老人等不同人群的使用需求。

0
回复
dy-LfmmIjVW
LV.4
17
03-19 10:39

这看起来是一个非常完善的硬件原理图设计,尤其是你提到了“最小路径原则”和参考了LaunchPad接口设计,说明你已经很好地考虑了走线简洁性和模块化。以下是基于你描述的STM32U385主控单元设计的一些专业反馈和建议:

1. 电源与功耗

你的设计充分利用了STM32U385的低功耗特性(10 μA/MHz,静态2 μA)。

建议:既然目标是低功耗,建议在软件初始化阶段尽量关闭所有未使用的外设时钟(RCC),并在不需要时禁用外设,以进一步降低功耗。电源完整性:由于你提到了“全引脚输出”,请确保所有模拟输入引脚(如ADC、DAC)都有适当的去耦电容(如0.1uF+10uF),且ADC参考电压要足够稳定。2. 时钟配置

提供32.768kHz晶振和高速晶振是非常标准且合理的做法。

建议:在启动代码中,确保正确配置了RCC时钟树,特别是如果你需要使用低功耗模式(如Stop模式),需要切换系统时钟源到HSI或LSI。3. 调试与固件烧录

搭配STlinkV3SET调试器是一个明智的选择,完全兼容ST的IDE(如STM32CubeIDE)。

建议:在固件烧录时,建议在Boot0引脚上加一个上拉电阻,这样可以通过Boot0引脚轻松切换到系统存储器模式(系统引导)进行重新编程或故障排除。4. 安全特性

STM32U385集成了硬件加密(AES、PKA)和防篡改机制。

建议:如果你的设备涉及敏感数据传输(如工业控制或医疗数据),请务必在软件中启用这些安全特性(如读/写保护),以利用芯片的硬件优势。5. 机械结构定位孔:提供四个定位孔非常有助于PCB安装和机械结构的固定,这也是工业设计中的一个加分点。封装:考虑到你使用了32-100引脚的封装,建议在PCB设计时预留出足够的空间,确保所有引脚都能轻松焊接。6. 最后一步实物检查:如果你有实物图,建议检查一下STlinkV3SET调试器的SWDIO和SWCLK是否连接正确,并且检查供电电压是否稳定在3.3V左右(或你设定的工作电压)。软件配合:硬件设计完成后,请确保在软件层面使用ST官方提供的CubeMX配置工具生成初始化代码,确保所有外设(如ADC、DAC、RTC、I3C)都能正常初始化。

总的来说,你的设计思路非常清晰且符合STM32U385的设计规范。祝你后续的固件开发顺利!

0
回复
dy-zTSlTFmU
LV.1
18
03-19 17:48

【2025 DigiKey杯】+从硬件工程师的角度,复位信号没有预留电容,IIC信号没有预留串阻,为了长期的信号质量建议还是预留。

0
回复
dy-2Z8imUBs
LV.1
19
03-21 13:07

【2025 DigiKey杯】这个思路感觉还挺新颖的,更适合比较大的显示器、平板那类控制距离,互动上面感觉加上一下柔和的呼吸灯提醒用户距离是否合适,是否已经达到最大调节位置

0
回复
only one
LV.8
20
03-23 23:50

真的不错,这个手机支架功能很多,比较实用

0
回复
fzwwj95
LV.7
21
03-24 17:08

【DigiKey杯点评】这个作品的切入点很自然,从长时间看手机的真实痛点出发,再落到 ToF 测距和滑轨自动调节上,思路是顺的。VL53L5CX 用来做人脸与屏幕距离判断很合适,如果后面再把响应速度、误触发过滤和机构小型化再打磨一下,产品感会更强。

0
回复
abc9981
LV.3
22
03-31 09:42

【DigiKey杯点评】

1. 作者设计的这个应用场景十分具有创新性,贴合实际场景,具象核心目标

2. 从目前测试的原型机来说已经是符合原始设计需求,但是对实际应用场景,存在体积上的局限性,无法让用户自然的去使用

3.我们做个大胆的思维转变,目前市场上用的最多的那种支架,加个轮子就可以自动前后变化,加个转盘的电机控制,支架板的电机控制,基本覆盖全角度,做个人眼追踪,这样设计更加容易落地市场

1
回复