当前位置: 首页 > article >正文

从玩具小车到智能台灯:用STM32和光敏电阻DIY一个自动追光/避光的小项目

从玩具小车到智能台灯用STM32和光敏电阻DIY自动追光系统周末整理储物间时翻出儿子淘汰的玩具小车底盘看着那些还能转动的轮子和电机突然想到可以用它做个会追太阳的智能小车。这个想法让我兴奋不已——用最基础的光敏电阻和常见的STM32开发板就能实现一个能感知光线、自主移动的智能装置。更妙的是同样的原理稍加改动就能变成根据环境光自动调节亮度的智能台灯。1. 项目构思与核心逻辑去年参加创客展时看到过一个能跟着手电筒光跑的机器人当时就觉得特别酷。其实这类项目的核心逻辑出奇简单用光敏电阻感知光线强弱变化通过STM32处理信号最后控制电机或LED做出响应。就像向日葵追着太阳转一样我们的装置也会朝着光线更强的方向移动。追光小车的控制逻辑在车头两侧各安装一个光敏电阻左L右R当左侧光强右侧时右转电机加速当右侧光强左侧时左转电机加速两侧光强相近时直行智能台灯的变体方案// 伪代码示例 if(环境光 阈值){ PWM输出 最大亮度 - (阈值 - 当前光强)*系数; }else{ PWM输出 最小亮度; }2. 硬件搭建实战指南我用的是一块吃灰已久的STM32F103C8T6最小系统板俗称蓝板价格不到20元。光敏电阻在电子市场5毛钱一个建议买GL5528这类常见型号。电机驱动模块选择了经典的L298N能同时驱动两个直流电机。关键硬件连接表模块连接引脚备注左侧光敏电阻PA0需接10KΩ分压电阻右侧光敏电阻PA1需接10KΩ分压电阻L298N ENBPB0 (PWM)右电机调速L298N ENAPB1 (PWM)左电机调速L298N IN1PB12右电机方向L298N IN2PB13右电机方向L298N IN3PB14左电机方向L298N IN4PB15左电机方向注意光敏电阻没有极性但分压电阻的阻值需要根据实际光照范围调整。我在室内测试时10KΩ效果不错户外强光环境下可能需要换成1KΩ。焊接时有个小技巧用热熔胶把光敏电阻固定在可旋转的小支架上这样就能灵活调整探测角度。我在车头用乐高积木搭了个简易云台效果出奇地好。3. 软件设计中的精妙之处初始化ADC时我选择了双通道交替采样模式这样能同时读取两个光敏电阻的值避免因采样时间差导致的判断误差。STM32的定时器产生PWM波控制电机转速通过改变占空比实现差速转向。核心控制代码片段// 光强差值计算 int light_diff left_light - right_light; // 转向控制逻辑 if(abs(light_diff) 50){ // 死区阈值 Motor_Forward(80); // 直行速度80% }else if(light_diff 0){ Motor_TurnRight(map(light_diff, 50, 500, 30, 100)); // 差值越大转向越急 }else{ Motor_TurnLeft(map(-light_diff, 50, 500, 30, 100)); }这里用到的map()函数是个非常实用的数值映射工具能把光强差值线性转换为PWM占空比。我在实际调试中发现加入非线性修正系数效果更好// 加入平方系数使小转角更平缓 pwm_out base_speed * (1 pow(light_diff/500.0, 2));4. 调试过程中的经验之谈第一个版本的小车表现得像喝醉酒似的总是来回摆动。后来发现是采样频率太高100Hz导致系统反应过度。通过示波器观察ADC波形后把采样间隔调整为200ms并加入5次移动平均滤波动作立刻流畅多了。常见问题排查清单小车原地转圈 → 检查光敏电阻是否对称安装对弱光无反应 → 尝试减小分压电阻阻值电机间歇性停转 → 检查电源是否供电不足ADC值跳动剧烈 → 增加软件滤波或并联电容有个有趣的发现当把台灯版本的光敏电阻用铝箔包裹成小喇叭形状时方向性检测灵敏度提升了3倍。这原理类似单反相机的遮光罩能减少环境杂散光干扰。5. 项目升级与创意拓展基础版本成功后我又尝试了几个变种避光模式修改判断逻辑让小车逃离强光光强记忆加入EEPROM存储用户偏好的亮度设置无线遥控通过蓝牙模块用手机调节灵敏度太阳能充电加装光伏板实现能量自给最实用的改进是给台灯版本增加人体感应模块HC-SR501实现人来灯亮人走灯灭的智能场景。配合光敏检测白天有人经过时只微微亮起夜晚则全亮度照明。// 智能台灯进阶逻辑 if(人体检测 环境光 夜间阈值){ LED亮度 最大亮度; }else if(人体检测 环境光 白天阈值){ LED亮度 50%亮度; }else{ LED亮度 0; }这个项目最让我惊喜的是原本对电子不感兴趣的儿子看到会追着手电跑的小车后主动要求学习编程。我们现在正一起用3D打印机制作更专业的底盘计划加入超声波避障功能。也许这就是创客项目最大的魅力——用简单的技术点燃创造的火花。

相关文章:

从玩具小车到智能台灯:用STM32和光敏电阻DIY一个自动追光/避光的小项目

从玩具小车到智能台灯:用STM32和光敏电阻DIY自动追光系统 周末整理储物间时,翻出儿子淘汰的玩具小车底盘,看着那些还能转动的轮子和电机,突然想到可以用它做个会"追太阳"的智能小车。这个想法让我兴奋不已——用最基础的…...

【PAT甲级真题】- Forwards on Weibo (30)

题目来源 Forwards on Weibo (30) 注意点 下标从 1 开始 题目描述 Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with followers relations.…...

WinUtil:你的Windows系统一站式管家,轻松管理软件与优化设置

WinUtil:你的Windows系统一站式管家,轻松管理软件与优化设置 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否曾…...

深入浅出SVPWM:在STM32F103上用手写代码理解同步电机驱动的核心算法

深入浅出SVPWM:在STM32F103上用手写代码理解同步电机驱动的核心算法 第一次接触SVPWM时,我被那些复杂的数学推导和坐标变换搞得晕头转向。直到有一天,我决定抛开那些晦涩的公式,直接从代码层面理解这个算法的本质。本文将带你用ST…...

Boss-Key:你的Windows桌面隐身大师,一键隐藏所有敏感窗口

Boss-Key:你的Windows桌面隐身大师,一键隐藏所有敏感窗口 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在繁忙的…...

开发者实战:2026年主流Claw工具技术对比与配置指南

面对众多AI代码助手(Claw工具),如何选择最适合自己的?本文从实战角度对比七大主流工具,提供详细的配置指南和使用技巧,帮助开发者快速上手。一、工具选型:从需求出发 1.1 明确你的需求 在选择Cl…...

JiYuTrainer:极域电子教室破解终极方案,三分钟重获学习自由

JiYuTrainer:极域电子教室破解终极方案,三分钟重获学习自由 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在课堂上遇到过这样的困境&#xff1f…...

SMUDebugTool终极指南:掌握AMD Ryzen处理器底层调校的完整实战手册

SMUDebugTool终极指南:掌握AMD Ryzen处理器底层调校的完整实战手册 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址…...

dify-sandbox 使用python 虚拟环境本地开发

dify-sandbox 使用python 虚拟环境本地开发为啥使用虚拟环境环境准备启动服务,验证相关接口为啥使用虚拟环境 本地直接使用 pip install 提示错误信息,要在系统范围内安装包,建议使用 apt install python3-xyz 。系统范围的依赖不建议修改&a…...

HideMockLocation完整技术解析:Android位置模拟检测的终极解决方案

HideMockLocation完整技术解析:Android位置模拟检测的终极解决方案 【免费下载链接】HideMockLocation Xposed module to hide the mock location setting. 项目地址: https://gitcode.com/gh_mirrors/hi/HideMockLocation HideMockLocation是一款基于Xposed…...

2026年,别让AIGC检测绊住你毕业!百考通AI查重降重全攻略

高效、安全、省心,你的论文通关搭档 又到一年毕业季,当你在图书馆熬了无数个夜,终于为论文画上最后一个句号时,真正的挑战可能才刚刚开始。 “重复率明明改下来了,导师却说AI痕迹太重,打回重写&#xff01…...

自然语言生成技术

自然语言生成技术:让机器学会"说话"的艺术 在人工智能飞速发展的今天,自然语言生成技术(NLG)正悄然改变我们与机器的交互方式。这项技术能让计算机像人类一样组织语言,从简单的天气预报播报到复杂的新闻报道…...

视觉模型在生产环境中失败的主要原因

计算机视觉现已成为大多数行业广泛采用的关键人工智能技术,其核心价值在于使机器能够解释和分析视觉数据,进而执行从医学成像、机器人技术到制造业自动化、零售智能化等各类实际任务。​ 然而,构建可靠的计算机视觉系统并非易事。这一过程通常需要开发视觉 AI 模型 —— 该…...

别再到处找了!Win7/Win10/Win Server各版本.NET 4.7.2离线安装包官方与备用下载全指南

彻底解决.NET 4.7.2安装难题:Windows全版本离线包获取与部署实战手册 还在为不同Windows系统寻找匹配的.NET 4.7.2离线安装包而头疼?这份指南将为你节省数小时的搜索时间。无论你使用的是老旧的Windows 7 SP1还是最新的服务器系统,我们都准备…...

利用 Global Speed 实现视频学习效率倍增的实战策略

视频学习已成为当代知识获取的主流方式之一。 从在线课程到技术讲座,从学术会议到行业分享,视频内容以直观生动的形式承载知识传播使命。 然而,被动接收式的观看模式往往导致学习效率低下。 Global Speed 视频倍速插件为解决这一问题提供了技…...

2026届最火的十大AI学术平台实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,人工智能内容生成技术被广泛应用,在此情形下,降低AI…...

如何快速检测Windows热键冲突:Hotkey Detective完整解决方案指南

如何快速检测Windows热键冲突:Hotkey Detective完整解决方案指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

WeChatMsg完全指南:3步永久保存你的微信记忆,让聊天记录成为个人数字资产

WeChatMsg完全指南:3步永久保存你的微信记忆,让聊天记录成为个人数字资产 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode…...

AIGC内容审核新篇章:MogFace-large实现图像中违规人脸检测

AIGC内容审核新篇章:MogFace-large实现图像中违规人脸检测 最近和几个做内容平台的朋友聊天,他们都在为一个事儿头疼:用户用AI生成的图片越来越多了,里面的人脸五花八门,怎么快速、准确地判断哪些是合规的&#xff0c…...

Matlab绘图进阶:xlabel函数从基础到高阶的实用指南

1. xlabel函数基础入门 第一次接触Matlab绘图时,我盯着那个默认的"X轴"标签看了好久,总觉得它太单调了。后来发现xlabel这个宝藏函数,简直打开了新世界的大门。xlabel最基本的功能就是给x轴加标签,但千万别小看这个简单…...

Zotero Reference:3分钟学会PDF文献参考文献自动提取的神器

Zotero Reference:3分钟学会PDF文献参考文献自动提取的神器 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 还在为手动整理参考文献而烦恼吗?Zotero Refer…...

免费开源PS Vita内容管理终极指南:如何用QCMA轻松管理你的掌机数据

免费开源PS Vita内容管理终极指南:如何用QCMA轻松管理你的掌机数据 【免费下载链接】qcma Cross-platform content manager assistant for the PS Vita 项目地址: https://gitcode.com/gh_mirrors/qc/qcma QCMA(Quality Content Manager Assistan…...

从LVDS接口到Ultrascale SelectIO:IDDRE1与ODDRE1原语的实战仿真解析

1. 从LVDS到Ultrascale SelectIO:为什么需要IDDRE1和ODDRE1? 第一次接触Xilinx Ultrascale系列FPGA的SelectIO资源时,我被官方文档里密密麻麻的原语列表搞得头晕眼花。直到项目逼着我必须实现一个800Mbps的LVDS接收接口,才真正静下…...

基于TDC-GPX的多通道高精度时间测量系统设计与激光雷达应用

1. TDC-GPX芯片深度解析 第一次接触TDC-GPX芯片时,我被它81皮秒的时间分辨率震惊到了——这相当于光在真空中只传播了2.4厘米所需的时间。这款德国ACAM公司的旗舰产品确实配得上"时间数字转换器中的瑞士军刀"这个称号。让我带你从工程师视角拆解这颗神奇的…...

SpringBoot缓存机制及常用注解

一、SpringBoot缓存到底是什么?说白了,缓存就是“临时存储”的地方。我们程序里,有些数据经常被查询(比如用户信息、商品列表),如果每次查询都去访问数据库,会很慢,还会增加数据库压…...

GBase 8a数据库双活容灾方案之应用场景及案例解析

南大通用GBase 8a数据库(gbase database)基于列存引擎与分片同步机制,构建了完整的双活容灾方案。核心同步工具GVR依托sync_clientsync_server组件,实现主备集群间增量数据毫秒级同步,点对点速度达450MB/s,支持同城双活…...

GBase 8a数据库双活容灾方案之GVR其他功能与特性

南大通用(gbase database)可视化集群双活同步工具软件(GBase Visio Rsynctool),是GBASE南大通用自主研发的、专门适用于GBase 8a MPP Cluster的集群间同步工具。其他功能介绍数据校验:支持基于表 SCN 号的对比原理&…...

【项目博客】系统基础框架和依赖模块的搭建

在完成系统设计之后,本项目进入工程实现阶段。本阶段的重点是将前期确定的系统架构和技术路线落地为实际可运行的系统,各模块开始从设计转向具体实现,并逐步形成完整的运行环境。 在这一阶段中,项目完成了整体基础架构的搭建。前端…...

智能代码生成技术落地真相(2026企业级实测白皮书首发)

第一章:智能代码生成技术落地真相(2026企业级实测白皮书首发) 2026奇点智能技术大会(https://ml-summit.org) 本章基于覆盖金融、制造、政务三大垂直领域的17家头部企业的实测数据,披露智能代码生成技术在真实生产环境中的性能边…...

Smithbox游戏修改工具:从魂系列到艾尔登法环的终极定制指南

Smithbox游戏修改工具:从魂系列到艾尔登法环的终极定制指南 【免费下载链接】Smithbox Smithbox is a modding tool for Elden Ring, Armored Core VI, Sekiro, Dark Souls 3, Dark Souls 2, Dark Souls, Bloodborne and Demons Souls. 项目地址: https://gitcode…...