自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 DIY小车神器 - 智能轮式驱动单元

将很早前做的智能轮式驱动单元升级,完善低分辨率编码器测速,并在小内存的MCU上实现 PID 参数自整定。分享之,供有兴趣的朋友参考。

2024-03-17 11:18:23 640

原创 掌上单片机实验室 – 低分辨率编码器测速方式完善(24)

在测试新做的一批“轮式驱动单元”时,发现现有的测速算法存在问题,且自己对目前的算法不满意,太繁琐,时间间隔略久,自己都看不懂,故下决心重新构思,采用前N个脉冲平均周期计算,完成后程序逻辑简单、清晰、满意。将掌上实验室程序也相应修改,分享之,以免前面错误的构思误导大家。

2024-01-18 11:38:12 987

原创 28BYJ48 步进电机驱动记

被 28BYJ48 的低价所惑,启动了替换舵机之旅,结果差点翻车,好在最后找到了出路。感觉 28BYJ48 步进电机市场上很多,估计会有不少人选用,故分享我的入坑经历,供同行者参考。

2023-11-05 22:56:00 404

原创 掌上单片机实验室 – 单片机课可以这样开(23)

提出一个单片机课程建议,将教学和实验融为一体,将用作为教学核心,通过实践掌握基本的单片机应用技能。

2023-05-08 22:29:23 107

原创 掌上单片机实验室 – RTT之RISC芯片尝试(22)

想尝试基于 RISC-V 架构单片机 CH32V307 跑 RT-Thread 程序,结果发现还不具备作为开发应用程序的条件,需要芯片厂家进一步完善支持,应该要做到或接近 STM32的支持水准,否则无法成为一个被开发人员接受的芯片,至少在跑 RT-Thread时。估计芯片厂家苦于人手不足,建议厂家尝试发挥网络的力量,借鉴维基百科的机制,快速打造出符合实际开发需求的支持包,从而使芯片和系统都能为国人所接受。

2023-04-26 20:57:18 958

原创 掌上单片机实验室 – RTT 运行性能评估(21)

在 RT-Thread 下实现了小车的基础控制功能,但要判断 RT-Thread 是否适合这类实时性控制场景,需要检测评估一下其运行性能。从我的经验看,栈运行监测、外部中断响应时间、CPU占用率是需要测试的,因为这是基于 OS 编程需要关注的问题。实际测试后,感觉不错,我觉得可以应用于大多数场景!

2023-04-16 22:11:24 799

原创 掌上单片机实验室 – RTT下实现PID自整定(20)

将基于 Arduino+FreeRTOS 实现的 PID 自整定功能移植到 RT-Thread 下,看看是否可行。实施结果:OK!基于 RT-Thread 完美实现了 PID 调速。顺带验证了基于 Serial V1 版本的发送阻塞验证,发送数据时并未阻塞,暂时可以不升级到 Serial V2.

2023-04-11 14:24:36 583

原创 掌上单片机实验室 – RTT下实现运动功能(19)

基于 RTT 应用框架,将电机驱动按实际应用需求编入程序中,尝试用 C++ 的类方式定义电机驱动功能,因为两侧电机的驱动功能相同,用一个类即可。

2023-04-07 20:31:42 196

原创 掌上单片机实验室 – 基于 RTT 框架的第一个应用(18)

基于 RT-Thread 应用程序框架,将前面实现的 RTT 激活程序加入到框架中,作为硬件测试功能,创建一个测试线程,将三个硬件激活功能作为基本测试操作,用串口指令操作执行。目的是感受一下 RT-Rhread 的多线程应用,以及线程间的同步、通讯功能。

2023-03-28 20:56:46 124

原创 掌上单片机实验室 – RTT 应用程序框架(17)

通过跟踪调试,发现发送方式基本是阻塞完成的,故默认按阻塞逻辑处理,功能是实现了,后续再仔细分析一下。1)RT-Thread 创建线程多了一个参数:Slice,按说明是在轮流执行时,线程的执行时间,单位为 Tick,也就是说,RT-Thread 可以定义每个线程在轮流执行时的时间,而非每次Tick都转换线程。我觉得:就RT-Thread的学习而言,单个功能的示例官方已经提供,缺少的是结合实际需求(或接近实际的需求)的编程示例,比如说多文件的编程,因为随着代码增加,放在一个文件中会导致阅读费力,调试困难;

2023-03-27 15:15:46 244

原创 掌上单片机实验室 – RTT激活程序2(16)

本篇继续完成激活程序的后两部分,涉及 IO 中断及模拟量采集,IO中断所用的 Pin 组件已经由工程模板帮助安装了,此处按前一篇的方式添加 ADC 组件,验证一下前面总结的是否正确。

2023-03-24 16:51:16 203

原创 掌上单片机实验室 – RTT激活程序1(15)

在掌上单片机实验室硬件平台上,尝试应用 RT-Thread,这是第一个程序,使用 RT-Thread 官方的 RT-Thread Studio 开发环境,完成电机 PWM 驱动,涉及 PIN及 PWM 组件。

2023-03-23 12:03:16 325

原创 掌上单片机实验室 – 尝试RT Thread(14)

前面介绍了掌上单片机实验室的构想,以及以 Arduino、Free RTOS为基础的学习过程,如果针对非计算机专业的学生而言,所述内容作为单片机或嵌入式的课程素材,应该够了,因为他们只有大约40~60学时,能把前述的学习内容消化实施,再在此基础上做些拓展,结合自己的兴趣,做些个性化的应用尝试,已经能初步掌握单片机的应用技能。RT-Thread是开源的,完全可以在实际应用中,遇到问题或想提高性能或代码效率时,用单步调试方式,跟踪到系统代码中,琢磨如何结合应用的需求去优化。期待国人自己的OS能做的更好。

2023-03-23 10:49:25 151

原创 掌上单片机实验室 — 程序阶段性完善(13)

在完成功能后,重新梳理代码,将一些不合理的地方完善,是保证程序可靠的最基本方式。

2023-03-23 10:41:17 114

原创 掌上单片机实验室 – 检验自整定适应性(12A)

在另一个不同的小车底盘上,验证 PID 参数自整定的适应性,从而确定 PID 自整定库是否实用。检验的结果应该说相当满意!至少对于直流电机调速而言是可用的。

2022-12-13 15:49:22 269

原创 掌上单片机实验室 — 检验自整定效果(12)

前一步完成的 PID 参数自整定库的使用尝试,这一步验证一下使用 PID 自整定方式得到的 PID 参数是否靠谱?实际测试结果:十分满意!

2022-12-03 19:00:08 273

原创 掌上单片机实验室 - 编程环境(续)(6)

最近在帮朋友做个项目时,再次使用 STM32Duino,发现ST公司对STM32Duino做了较大的改进,前文我所抱怨的没有详细技术文档之事如今也增加了,为此,赶紧续文一篇,将此好消息与大家分享。

2022-11-29 11:28:41 125

原创 掌上单片机实验室 – 实现PID自整定(11)

上一篇实现了小车运动控制,在程序框架下,基于FreeRTOS编写了驱动任务,包含电机控制、测速、PID调速、行走距离控制等和运动相关的功能。但 PID 调速只是完成了算法,并未真正实现调速,因为 PID 调速的核心是PID 参数的确定,即整定!而整定是 PID 最富挑战的内容,调速效果的好坏完全取决于参数。本篇目的是尝试使用 Arduino 分享的自整定库实现 PID 参数自整定。

2022-11-27 10:16:02 4456 11

原创 掌上单片机实验室 - 实现运动功能(10)

前面已完成了硬件激活、编程环境选择、软件框架构建,并且基于软件框架尝试了基于 RTOS 编程,为在此软硬件环境下学习单片机编程做了充分的准备。从本篇开始,开始以其为载体,一步步完善其功能、性能,并基于其具备的能力去完成一些有趣的任务,在这个过程中,逐步掌握用单片机解决实际问题的技能。

2022-11-18 09:25:51 422

转载 掌上单片机实验室 – 基于框架编写第一个程序(9)

编程学习的目的是为了日后工作,在学习阶段编程的目的和工作不同,工作中编程目的是为了解决问题,而学习阶段的目的是掌握编程技能,解决问题的需求只是载体,并非目的,和学数学时的应用题性质一样。掌上单片机实验室为编程学习构建了程序框架,目的就在于此。 本篇尝试基于程序框架编写第一个应用。

2022-11-05 20:51:44 241

转载 掌上单片机实验室 – 用PC作为UI (8)

前面构建掌上实验室程序框架时,提出了用串口作为单片机人机交互界面的概念,并在框架中将串口命令接收、串口数据发送作为基础功能编写完成。程序框架具备了串口作为 UI 的能力,就需要有相应的外设与其配合,以实现所需的人机交互功能。前面提过,PC是可选的设备之一。本篇就以 PC 为载体,配合前述程序框架的串口收发功能,实现初步的人机交互,即:UI。

2022-11-01 10:28:37 493

转载 掌上单片机实验室 - 程序框架设计(7)

单片机学习很大比例是编程的学习,即:如何将现实需求转换为程序语言,让单片机执行,从而解决现实世界的问题。而编程的最佳方式是构建一个良好的程序框架,以此为基础,再根据具体要解决的问题,增加相应的处理部分即可,这样程序的构建和调试会很高效。本文尝试基于 Free RTOS 构建掌上实验室的程序框架,以此为基础,展开后续的学习。

2022-11-01 10:18:49 714

转载 掌上单片机实验室 — 编程环境(续)(6)

STM32Duino 的支持越加完善,基本可以应对商业应用程序的开发。作为学习的平台已经是很完美了,Arduino 原生的 MCU 有点小众,而 STM32 系列 MCU 可以说是绝对主流了,关键是性价比极高,可以发挥的编程空间较大,撇开由于芯片荒所致的涨价,一定是学习的不二选择。Arduino的加持使其更加容易上手。

2022-11-01 09:25:09 79

转载 掌上单片机实验室 — 激活(4)

前面已经构建了掌上单片机实验室的硬件基础,并选择、安装了配套的编程环境,目前要做的工作就是将它激活,即基于所选择的 Arduino IDE,在构建的硬件上,编写相应程序,使所提供的硬件可以运转,成为一个可以用的实验平台。

2021-04-20 13:56:11 1094

原创 掌上单片机实验室 — 基础实验(5)

​我尝试构思几个实验内容,以便有兴趣的老师们更好的理解小车底盘作为实验装置的特点和优势。所构思的实验内容是受到《乐高组件和ROBOLAB软件在工程学中的应用》一书的启发,此书为乐高中国代理推荐。实验1:走指定距离1、实验内容编程使得小车以最快速度走完指定距离,距离值在900~1100mm内任意设置。按小车最快速度(使用4节镍氢充电电池,100% PWM时)对应走完设定距离的时间为最佳时间,为避免出现负值,可适当减小最佳时间。2、评价标准A)不得超过指定距离,超出则判不合格..

2021-04-20 13:55:20 143

原创 掌上单片机实验室 — 编程环境(3)

一、背景因为单片机学习是软硬结合的,离开软件,单片机无法工作。所以需要准备合适的编程环境。二、需求作为学习用的编程环境,我觉得应该满足:上手容易;不需要花很多时间学习后才能正确使用。 环境参数设置方便,有些编程环境参数设置过于复杂,对于做实际项目是有价值的,但对于学习者而言,就是障碍了。 无版权问题(无需花钱购买,或盗版) 有完善、丰富的参考资料。三、选择及准备3.1 选择因为目前硬件基础选择的是 STM32 系列单片机,可选择的编程环境有:经典的IAR或MDK编程.

2021-04-20 12:10:04 399

原创 掌上单片机实验室 — 硬件基础(2)

一、背景在“掌上单片机实验室-构思”一文中,探讨了基于四代圆梦小车实现掌上实验室的可能和益处。本文开始尝试具体设计一套基于此构思的掌上单片机实验室,先从硬件基础着手。二、需求硬件基础的核心需求为:一个可以灵活运动的小车底盘 体积足够小,以便降低使用环境的要求 成本足够低,以适应学生个人拥有 便于使用单片机核心板驱动,小车行走无需增加额外增加器件。 可灵活替换控制用单片机,以适应不同的教学需求 便于根据扩充相应的模块,如:通讯、传感器 使用方便,如电源、充电。三、设计..

2021-04-20 12:04:30 259

原创 掌上单片机实验室 – 构想(1)

一、背景突如其来的疫情,打乱了大学生的正常学习氛围,传统的校园学习模式无法实施,虽说网上教学做了相应的弥补,但对于多数工科课程,只靠线上教学很难完成,单片机课程就是其中之一。单片机这类工科课程有较强的实践需求,纸上谈兵很难达到预期的效果,所以开设这门课程的学校均建立有相应实验室。而经典的实验室设备很难让学生个人拥有,在家独立完成实验,因为实验设备的设计及实验内容的编制均未考虑到这样的场景。能否设计一款适合学生单独拥有,且可以自己完成实验的单片机学习实验装置呢?本文尝试用我设计的第四.

2021-04-20 11:58:29 269

原创 ROS学习笔记之八:尝试在FreeRTOS中使用ROSSerial

我理解ROSSerial只是为MCU提供了一个和基于ROS主机(上位机)通讯的方式,而MCU要实现的功能还是要自己编写实现,这部分和以往需求一样,那么采用什么程序框架就是不可回避的问题。现在由于STM32以极优的性价比提供了可以运行RTOS的硬件平台,使用RTOS已经不是一件奢侈的事情了,如果能在RTOS框架下使用ROSSerial应该是编写嵌入式控制程序的福音,故做此尝试。为了便于实施...

2019-06-13 12:02:07 2822 2

原创 ROS学习笔记之七:ROSSerial初试

总体来说,ROS更偏重软件,其涉及的控制、算法都是偏策略或复杂的,但机器人是要和现实世界打交道的,必须有相应的执行机构,使ROS所能做的那些“高、大、上”的工作落地。真正能够和执行硬件打交道、操控起来得心应手的还是MCU,所以如何将MCU控制的硬件和ROS系统相连,可以基于ROS的信息交互机制实现控制和反馈,是学习ROS、基于ROS完成一些任务必须首先化解的问题。很早我就做了一个4轮全向小车平...

2019-06-13 11:55:39 1512

原创 ROS学习笔记之六:创建基于STM32的Arduino环境

既然ROS中和嵌入式(单片机)硬件打交道的示例多数是基于Arduino的,又有开源的资源支持用STM32作为Arduino的MCU,那当然应该考虑将Arduino环境作为小车控制器的开发平台了,这样可以充分利用网上的共享资源,少走弯路。而且,可以将精力集中于应用层,而非消化那些工具或相对晦涩的硬件手册,向“与硬件无关的编程模式”更接近一步。实际上嵌入式应用开发...

2019-06-13 11:48:49 920

原创 ROS 学习笔记之五:对Arduino环境刮目相看

接触Arduino是在2011年前后(https://user.qzone.qq.com/478273778/blog/1298984045),转眼已经 8 年了。当时对 Arduino 的看法是:给非专业人员玩玩的平台,所用 mega168及328 都太弱,程序封装后,资源消耗更多,留给编程人员的发挥空间太少了;且由于封装,编程是容易了 ,但性能降低了,本来单片机就跑不快,RA...

2019-06-13 11:39:46 440

原创 ROS 学习笔记之四:扫盲

基本环境安装好后,准备上手学习了。正对着一大堆资料和网上的信息无从开始,忽然想到了以前 Top 写的关于 ROS 入门的文章,立马翻出来仔细阅读了一遍,总算有个章法了。按文章中所述,认真将http://wiki.ros.org/ROS/Tutorials上 Beginning Level 的20个教程都看了,并且跟着实践了,收获不小,对ROS 的一些特点有了具体...

2019-06-13 11:37:12 368

原创 ROS 学习笔记之三:无线连接 Arduino

在准备过程中,实现了基于 rosserial 和 Arduino 的通讯,确定了单片机系统也可以作为 ROS 的一个 Node ,融入 ROS 机器人系统。但按目前我的理解和水平,似乎 ROS 的 Master 必须在 PC 上运行,而且是安装了 ubuntu 相应系统的 PC。如果通过串口线(USB线)和 Arduino 板相连才能实现 rosserial ,那局限性...

2019-06-13 11:34:13 914

原创 ROS 学习笔记之二:准备

因 ROS 是基于 linux 的,需要安装 ubuntu 系统,所以首先要准备一下 PC 环境。 由于不熟悉 Linux 操作,即便是图形化界面的 ubuntu ,也是用起来很不适应。因此计划将 ubuntu 安装在 win10 下的虚拟机中,通过切换使用 windows 作为下载、查阅资料的工具,用共享文件夹传递文件,毕竟 windows 下的工具软件较多,关键是我只熟...

2019-06-13 11:26:55 406

原创 ROS 学习笔记之一:缘起

ROS(Robot OperatingSystem)是一个专门用于机器人的操作系统,早有耳闻,但一直没有契机去触碰,一年前在一个极其热衷于 ROS 好友(Top)的影响下,准备动手尝试,可不巧应承了一件事情,没有精力顾及了,只好搁置。 现在那件事告一段落,又可以腾出精力做一些自己想做的事情了,首先想到了 ROS,于是重启炉灶,启动我的 ROS 学习之旅。 之所以想要触碰 R...

2019-06-13 11:18:49 382

智能小车DIY“全攻略”

智能小车越来越多的被用于作为嵌入式学习的平台,包括很多软件应用也在利用小车平台,如视觉导航等。此文介绍了如何DIY一辆符合自己需求的小车需要考虑的因素,以及合理的设计和制作。

2013-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除