
单片机学习
文章平均质量分 90
嵌入之梦
一个有志于普及嵌入式控制的工程师,主要为大学生学习单片机提供实践平台。
展开
-
掌上单片机实验室 — RT - Thread+ROS2 浅尝(26)
费尽周折,总算将 micos_ros 加入到我的 RT-Thread 程序框架中,完成了最重要的一步。在这个踩坑过程中,知道了 C++ 深奥,以及 AI 的强大。在此分享详细过程,希望能给同样踩坑的朋友提供参考。原创 2024-11-27 17:43:14 · 1710 阅读 · 4 评论 -
掌上单片机实验室 – RT-Thread + ROS2 初探(25)
得知 ROS 升级为 ROS2 后,将 rosserial 升级为可以在单片机上运行的 Micro_ROS,大大提升了性能。关键是 RT-Thread 中包含了 Micro_ROS 软件包,正好可以尝试一下,。于是有了文中的经历。原创 2024-11-19 22:54:19 · 1240 阅读 · 0 评论 -
DIY小车神器 - 智能轮式驱动单元
将很早前做的智能轮式驱动单元升级,完善低分辨率编码器测速,并在小内存的MCU上实现 PID 参数自整定。分享之,供有兴趣的朋友参考。原创 2024-03-17 11:18:23 · 799 阅读 · 0 评论 -
掌上单片机实验室 – 低分辨率编码器测速方式完善(24)
在测试新做的一批“轮式驱动单元”时,发现现有的测速算法存在问题,且自己对目前的算法不满意,太繁琐,时间间隔略久,自己都看不懂,故下决心重新构思,采用前N个脉冲平均周期计算,完成后程序逻辑简单、清晰、满意。将掌上实验室程序也相应修改,分享之,以免前面错误的构思误导大家。原创 2024-01-18 11:38:12 · 1204 阅读 · 0 评论 -
28BYJ48 步进电机驱动记
被 28BYJ48 的低价所惑,启动了替换舵机之旅,结果差点翻车,好在最后找到了出路。感觉 28BYJ48 步进电机市场上很多,估计会有不少人选用,故分享我的入坑经历,供同行者参考。原创 2023-11-05 22:56:00 · 1518 阅读 · 0 评论 -
掌上单片机实验室 – 单片机课可以这样开(23)
提出一个单片机课程建议,将教学和实验融为一体,将用作为教学核心,通过实践掌握基本的单片机应用技能。原创 2023-05-08 22:29:23 · 159 阅读 · 0 评论 -
掌上单片机实验室 – RT-Thread 之RISC芯片尝试(22)
想尝试基于 RISC-V 架构单片机 CH32V307 跑 RT-Thread 程序,结果发现还不具备作为开发应用程序的条件,需要芯片厂家进一步完善支持,应该要做到或接近 STM32的支持水准,否则无法成为一个被开发人员接受的芯片,至少在跑 RT-Thread时。估计芯片厂家苦于人手不足,建议厂家尝试发挥网络的力量,借鉴维基百科的机制,快速打造出符合实际开发需求的支持包,从而使芯片和系统都能为国人所接受。原创 2023-04-26 20:57:18 · 1238 阅读 · 0 评论 -
掌上单片机实验室 – RT-Thread 运行性能评估(21)
在 RT-Thread 下实现了小车的基础控制功能,但要判断 RT-Thread 是否适合这类实时性控制场景,需要检测评估一下其运行性能。从我的经验看,栈运行监测、外部中断响应时间、CPU占用率是需要测试的,因为这是基于 OS 编程需要关注的问题。实际测试后,感觉不错,我觉得可以应用于大多数场景!原创 2023-04-16 22:11:24 · 1377 阅读 · 0 评论 -
掌上单片机实验室 – RT-Thread 下实现PID自整定(20)
将基于 Arduino+FreeRTOS 实现的 PID 自整定功能移植到 RT-Thread 下,看看是否可行。实施结果:OK!基于 RT-Thread 完美实现了 PID 调速。顺带验证了基于 Serial V1 版本的发送阻塞验证,发送数据时并未阻塞,暂时可以不升级到 Serial V2.原创 2023-04-11 14:24:36 · 1090 阅读 · 0 评论 -
掌上单片机实验室 – RT-Thread 下实现运动功能(19)
基于 RTT 应用框架,将电机驱动按实际应用需求编入程序中,尝试用 C++ 的类方式定义电机驱动功能,因为两侧电机的驱动功能相同,用一个类即可。原创 2023-04-07 20:31:42 · 295 阅读 · 0 评论 -
掌上单片机实验室 – 基于 RT-Thread 框架的第一个应用(18)
基于 RT-Thread 应用程序框架,将前面实现的 RTT 激活程序加入到框架中,作为硬件测试功能,创建一个测试线程,将三个硬件激活功能作为基本测试操作,用串口指令操作执行。目的是感受一下 RT-Rhread 的多线程应用,以及线程间的同步、通讯功能。原创 2023-03-28 20:56:46 · 200 阅读 · 0 评论 -
掌上单片机实验室 – RT-Thread 应用程序框架(17)
通过跟踪调试,发现发送方式基本是阻塞完成的,故默认按阻塞逻辑处理,功能是实现了,后续再仔细分析一下。1)RT-Thread 创建线程多了一个参数:Slice,按说明是在轮流执行时,线程的执行时间,单位为 Tick,也就是说,RT-Thread 可以定义每个线程在轮流执行时的时间,而非每次Tick都转换线程。我觉得:就RT-Thread的学习而言,单个功能的示例官方已经提供,缺少的是结合实际需求(或接近实际的需求)的编程示例,比如说多文件的编程,因为随着代码增加,放在一个文件中会导致阅读费力,调试困难;原创 2023-03-27 15:15:46 · 465 阅读 · 0 评论 -
掌上单片机实验室 – RT-Thread 激活程序2(16)
本篇继续完成激活程序的后两部分,涉及 IO 中断及模拟量采集,IO中断所用的 Pin 组件已经由工程模板帮助安装了,此处按前一篇的方式添加 ADC 组件,验证一下前面总结的是否正确。原创 2023-03-24 16:51:16 · 294 阅读 · 0 评论 -
掌上单片机实验室 – RT-Thread 激活程序1(15)
在掌上单片机实验室硬件平台上,尝试应用 RT-Thread,这是第一个程序,使用 RT-Thread 官方的 RT-Thread Studio 开发环境,完成电机 PWM 驱动,涉及 PIN及 PWM 组件。原创 2023-03-23 12:03:16 · 431 阅读 · 0 评论 -
掌上单片机实验室 – 尝试RT Thread(14)
前面介绍了掌上单片机实验室的构想,以及以 Arduino、Free RTOS为基础的学习过程,如果针对非计算机专业的学生而言,所述内容作为单片机或嵌入式的课程素材,应该够了,因为他们只有大约40~60学时,能把前述的学习内容消化实施,再在此基础上做些拓展,结合自己的兴趣,做些个性化的应用尝试,已经能初步掌握单片机的应用技能。RT-Thread是开源的,完全可以在实际应用中,遇到问题或想提高性能或代码效率时,用单步调试方式,跟踪到系统代码中,琢磨如何结合应用的需求去优化。期待国人自己的OS能做的更好。原创 2023-03-23 10:49:25 · 217 阅读 · 0 评论 -
掌上单片机实验室 — 程序阶段性完善(13)
在完成功能后,重新梳理代码,将一些不合理的地方完善,是保证程序可靠的最基本方式。原创 2023-03-23 10:41:17 · 323 阅读 · 0 评论 -
掌上单片机实验室 – 检验自整定适应性(12A)
在另一个不同的小车底盘上,验证 PID 参数自整定的适应性,从而确定 PID 自整定库是否实用。检验的结果应该说相当满意!至少对于直流电机调速而言是可用的。原创 2022-12-13 15:49:22 · 408 阅读 · 0 评论 -
掌上单片机实验室 — 检验自整定效果(12)
前一步完成的 PID 参数自整定库的使用尝试,这一步验证一下使用 PID 自整定方式得到的 PID 参数是否靠谱?实际测试结果:十分满意!原创 2022-12-03 19:00:08 · 383 阅读 · 0 评论 -
掌上单片机实验室 - 编程环境(续)(6)
最近在帮朋友做个项目时,再次使用 STM32Duino,发现ST公司对STM32Duino做了较大的改进,前文我所抱怨的没有详细技术文档之事如今也增加了,为此,赶紧续文一篇,将此好消息与大家分享。原创 2022-11-29 11:28:41 · 188 阅读 · 0 评论 -
掌上单片机实验室 – 实现PID自整定(11)
上一篇实现了小车运动控制,在程序框架下,基于FreeRTOS编写了驱动任务,包含电机控制、测速、PID调速、行走距离控制等和运动相关的功能。但 PID 调速只是完成了算法,并未真正实现调速,因为 PID 调速的核心是PID 参数的确定,即整定!而整定是 PID 最富挑战的内容,调速效果的好坏完全取决于参数。本篇目的是尝试使用 Arduino 分享的自整定库实现 PID 参数自整定。原创 2022-11-27 10:16:02 · 6163 阅读 · 11 评论 -
掌上单片机实验室 - 实现运动功能(10)
前面已完成了硬件激活、编程环境选择、软件框架构建,并且基于软件框架尝试了基于 RTOS 编程,为在此软硬件环境下学习单片机编程做了充分的准备。从本篇开始,开始以其为载体,一步步完善其功能、性能,并基于其具备的能力去完成一些有趣的任务,在这个过程中,逐步掌握用单片机解决实际问题的技能。原创 2022-11-18 09:25:51 · 525 阅读 · 0 评论 -
掌上单片机实验室 – 基于框架编写第一个程序(9)
编程学习的目的是为了日后工作,在学习阶段编程的目的和工作不同,工作中编程目的是为了解决问题,而学习阶段的目的是掌握编程技能,解决问题的需求只是载体,并非目的,和学数学时的应用题性质一样。掌上单片机实验室为编程学习构建了程序框架,目的就在于此。 本篇尝试基于程序框架编写第一个应用。转载 2022-11-05 20:51:44 · 321 阅读 · 0 评论 -
掌上单片机实验室 – 用PC作为UI (8)
前面构建掌上实验室程序框架时,提出了用串口作为单片机人机交互界面的概念,并在框架中将串口命令接收、串口数据发送作为基础功能编写完成。程序框架具备了串口作为 UI 的能力,就需要有相应的外设与其配合,以实现所需的人机交互功能。前面提过,PC是可选的设备之一。本篇就以 PC 为载体,配合前述程序框架的串口收发功能,实现初步的人机交互,即:UI。转载 2022-11-01 10:28:37 · 621 阅读 · 0 评论 -
掌上单片机实验室 - 程序框架设计(7)
单片机学习很大比例是编程的学习,即:如何将现实需求转换为程序语言,让单片机执行,从而解决现实世界的问题。而编程的最佳方式是构建一个良好的程序框架,以此为基础,再根据具体要解决的问题,增加相应的处理部分即可,这样程序的构建和调试会很高效。本文尝试基于 Free RTOS 构建掌上实验室的程序框架,以此为基础,展开后续的学习。转载 2022-11-01 10:18:49 · 851 阅读 · 0 评论 -
掌上单片机实验室 — 硬件基础(2)
一、背景在“掌上单片机实验室-构思”一文中,探讨了基于四代圆梦小车实现掌上实验室的可能和益处。本文开始尝试具体设计一套基于此构思的掌上单片机实验室,先从硬件基础着手。二、需求硬件基础的核心需求为:一个可以灵活运动的小车底盘 体积足够小,以便降低使用环境的要求 成本足够低,以适应学生个人拥有 便于使用单片机核心板驱动,小车行走无需增加额外增加器件。 可灵活替换控制用单片机,以适应不同的教学需求 便于根据扩充相应的模块,如:通讯、传感器 使用方便,如电源、充电。三、设计..原创 2021-04-20 12:04:30 · 330 阅读 · 0 评论 -
掌上单片机实验室 — 激活(4)
前面已经构建了掌上单片机实验室的硬件基础,并选择、安装了配套的编程环境,目前要做的工作就是将它激活,即基于所选择的 Arduino IDE,在构建的硬件上,编写相应程序,使所提供的硬件可以运转,成为一个可以用的实验平台。转载 2021-04-20 13:56:11 · 1289 阅读 · 0 评论 -
掌上单片机实验室 — 基础实验(5)
我尝试构思几个实验内容,以便有兴趣的老师们更好的理解小车底盘作为实验装置的特点和优势。所构思的实验内容是受到《乐高组件和ROBOLAB软件在工程学中的应用》一书的启发,此书为乐高中国代理推荐。实验1:走指定距离1、实验内容编程使得小车以最快速度走完指定距离,距离值在900~1100mm内任意设置。按小车最快速度(使用4节镍氢充电电池,100% PWM时)对应走完设定距离的时间为最佳时间,为避免出现负值,可适当减小最佳时间。2、评价标准A)不得超过指定距离,超出则判不合格..原创 2021-04-20 13:55:20 · 200 阅读 · 0 评论 -
掌上单片机实验室 — 编程环境(3)
一、背景因为单片机学习是软硬结合的,离开软件,单片机无法工作。所以需要准备合适的编程环境。二、需求作为学习用的编程环境,我觉得应该满足:上手容易;不需要花很多时间学习后才能正确使用。 环境参数设置方便,有些编程环境参数设置过于复杂,对于做实际项目是有价值的,但对于学习者而言,就是障碍了。 无版权问题(无需花钱购买,或盗版) 有完善、丰富的参考资料。三、选择及准备3.1 选择因为目前硬件基础选择的是 STM32 系列单片机,可选择的编程环境有:经典的IAR或MDK编程.原创 2021-04-20 12:10:04 · 465 阅读 · 0 评论 -
掌上单片机实验室 – 构想(1)
一、背景突如其来的疫情,打乱了大学生的正常学习氛围,传统的校园学习模式无法实施,虽说网上教学做了相应的弥补,但对于多数工科课程,只靠线上教学很难完成,单片机课程就是其中之一。单片机这类工科课程有较强的实践需求,纸上谈兵很难达到预期的效果,所以开设这门课程的学校均建立有相应实验室。而经典的实验室设备很难让学生个人拥有,在家独立完成实验,因为实验设备的设计及实验内容的编制均未考虑到这样的场景。能否设计一款适合学生单独拥有,且可以自己完成实验的单片机学习实验装置呢?本文尝试用我设计的第四.原创 2021-04-20 11:58:29 · 333 阅读 · 0 评论