MDB开发方式基于simulink模型对硬件进行开发
基于simulink模型对硬件进行开发MDB开发方式,其中主要包括stm32、esp32的开发,包含foc电机开发、pwm波生成以及pwm检测、串口通讯、adc通讯等,以及常见疑难问题处理。
鼾声鼾语
汽车行业研发,人工智能领域及汽车电气自动化工程师
展开
-
Arduino Mega 2560开发板的引脚分配图及说明,以及链接can的方法
串行通信:提供4组串行通信端口,0(RX)和1(TX)作为串口1,19(RX)和18(TX)作为串口2,17(RX)和16(TX)作为串口3,15(RX)和14(TX)作为串口4。外部中断:提供6个外部中断源,分别是2(外部中断0),3(外部中断1),21(外部中断2),20(外部中断3),19(外部中断4),18(外部中断5)SPI通信:53作为SS,51作为MOSI,50作为MISO,52作为SCK。模拟引脚:A0~A15(在引脚号前加A,以区分数字引脚)TWI通信:20作为SDA,21作为SCL。原创 2024-07-31 11:33:25 · 911 阅读 · 0 评论 -
用can控制odrive电机角度控制不转的原因是什么?是因为参数必须是浮点数,通过can还可以配置多个控制节点,最多可以控制8个设备
odrive电机角度控制不转的原因是什么?是因为参数必须是浮点数,用工具转换一下就可以了,注意低字节和高字节的位置。我这里就是吧axis0这个电机设置为了nodeid位3,还设置了波特率为50000。原创 2024-07-20 03:07:53 · 68 阅读 · 0 评论 -
ENCODER_ERROR_INDEX_NOT_FOUND_YET,对于SPI的编码器, 注意由于使用的AS5048A是绝对编码器,没有索引信号,所以不用进行索引校准,直接进行偏移校准即可。
注意由于使用的AS5048A是绝对编码器,没有索引信号,所以不用进行索引校准,直接进行偏移校准即可。AS547P一般是增量式编码器。原创 2024-07-19 23:52:55 · 51 阅读 · 0 评论 -
使用simulink进行esp32开发,进行串口收发数据需要注意的地方,为什么收发不成功
模型直接选择使用的是那组串口就行了,一般情况下我们收发使用同一组就可以,这样收发模块填写的端口号是一样的。1,主要是因为simulink里的配置文件配置的波特率和串口接受软件配置的波特不一致导致的。2,主要有以下三个界面。原创 2024-07-11 22:58:24 · 180 阅读 · 0 评论 -
低通滤波以及卡尔曼滤波
先讲解几个低通滤波,低通滤波比卡尔曼滤波简单,因为卡尔曼滤波涉及到两个输入量,一个是控制量,一个是观测量,而低通滤波是一个输入量。参考地址:https://blog.csdn.net/m0_58683132/article/details/140141942。参考地址:https://zhuanlan.zhihu.com/p/161695666。1,利用工具箱配置低通滤波。2,自己搭建低通滤波。原创 2024-07-08 08:50:43 · 146 阅读 · 0 评论 -
stm32用stlink开发,出现了no target connected问题,解决办法如下:
具体原因分类如下:1,供电板子一定要供电!检查线路2,ST-LINK是否接触不良确保ST-LINK跟板子连接完好,检查线路3,按住reset点击download硬件和接线都没问题情况下,这时候可能是SWD的引脚被占用了,或者被禁用了。这时候ST-LINK自然无法通过SWD跟板子通信,所以才会提示No Target connected。所以,这时候按住reset,再点击download,再松开reset。原理就是在程序运行到SWD引脚占用之前,把新的程序烧录进去,抢个时间差。但是这招不是...原创 2021-05-06 10:03:07 · 7014 阅读 · 2 评论 -
simulink的stm32工具开发箱,开发串口读写,不能够获取到数据的原因
现在调通了。真的是太开心了,今天调通了,stm32工具箱开发stm32的应用很是方便,今天简单说下我遇到的问题,其实很简单我买的这个stm32的最小系统板子,实际上它的串口是ttl的格式,当然很多的小心开发板子应该也是这个格式,但是直接ttl接入到R232的线上是接收不到数据的,原因是不同的电平格式,需要先进行转换一下手头上没有这个转换的头,所以我就买了一个ttl装usb的装置,就可以实现了,大家有遇到这个stm32工具箱不会用的,可以留言,我看到会给大家一一回复。...原创 2021-03-17 15:01:42 · 521 阅读 · 0 评论 -
simulink中stm32开发LED闪烁,灯不闪烁
1,再stm32cubmax中没有配置添加time,的时钟2,原创 2021-03-15 13:54:19 · 1338 阅读 · 3 评论 -
利用simulink的stm32工具箱开发需要注意的地方
1,注意输出后数据类型的转换,out需要时unit82,待补充原创 2021-03-19 14:36:57 · 229 阅读 · 0 评论 -
simulink的工具箱开发stm32步骤
1,打开stm32cubeMx,配置芯片信息,记得配置时钟,之前就是因为没有配置time,出现灯不亮的问题。2,打开Matlab,将当前工作目录切换到配置文件的目录IOC配置文件(stm32cubeMx),然后开始调用simulink模块3,配置当前工作环境,设置elf文件为stm32.4,打开stm32的配置模块,进去后,调用配置文件5,开始i业务功能的开发6,开发完毕,点击代码生产,然后用keil打开工程,编译,下载即可7,STM32串口配置的一般步骤(配置的时候可以作为参考)IO口配置的原创 2021-03-15 16:03:34 · 598 阅读 · 0 评论 -
开发simulink 以及stm32半物理仿真碰到的问题,以及处理方法,Error:External Mode Open Protocol Connect command failed(实测有用)
串口实现的,但是在测试的时候发现,这个串口可以正常发送和接收数据,但是一旦把这个串口只让其进行版物理仿真就报错。直接刷写程序是可以的,最后查到问题了。我要实现半物理仿真,就是通过matlab实现可以直接控制stm32板子,实际上是通过xcp on。然后点击simulink上的观测按钮就可以直接和stm32平台进行通讯了。3,还是使用串口3,但是重新需要设置一下com口,因为重新插拔了一下,按照这个设置方法就可以。2,重新加载ioc文件。原创 2024-02-03 22:26:02 · 748 阅读 · 0 评论 -
STM32开发笔记19: STM32CubeMX中定时器的配置方法
本文介绍在STM32CubeMX进行定时器的配置,产生固定时间中断的方法,以TIM2为例,步骤如下:1、使能TIM2,指定时钟源。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210507142029323.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3B2bXNtZmNoY3M=,size_16,colo原创 2021-05-07 14:22:12 · 744 阅读 · 1 评论 -
基于simulink开发stm32,遇到的问题,函数或变量Pin_idx无法识别,error with copyModeFiles错误等
1,首先推荐使用的工具链,如图:我目前使用的是matlab2019b,也是可以的,stm32cubeMx5.6,keil的5.0版本,最好使用上图推荐的版本。2,问题1:函数或变量Pin_idx无法识别这个问题,可能是拖出来GPIO_Write模块的时候没有配置IO口的原因,打开模块配置上IO口就可以了,不影响3,问题2:stm32_make_rtw_hook():error with copyModeFiles()解决办法:先把simulink模型保存在cubemx生成的.IOC文件目录下,原创 2021-03-11 21:13:50 · 1491 阅读 · 2 评论 -
simplefoc开发基础入门,Commander command = Commander(Serial)的含义,以及simplefocstudio如何使用对PID进行调试
如果要使用simplefocstudio来进行调试,那么我们需要将电机的数据通过窗口发送出去,因为ESP32上引出的只有一个串口,所以不用显示串口号,只需要用Serial声明就直接可以指定嵌入式板子是哪个窗口输出出去了。别着急,Serial代表0串口,Serial1代表1串口,这样就可以通过串口将数据发送出去了,具体发送什么数据看下面代码,一般是将motor这个对象发送出去就可以了。参考学习链接:https://www.ngui.cc/el/3642321.html?原创 2023-10-18 11:04:42 · 286 阅读 · 0 评论 -
三款经典的轮式/轮足机器人讲解,以及学习EG2133产生A/B/C驱动电机。个人机器人学习和开发路线(推荐)
机械部分:2个foc无刷电机硬件和软件部分:没有驱动板子。只有驱动器,主控板esp32和驱动器通过pwm直接通讯。驱动器板子上有蓝色电机接口,直接驱动电机。2个eg2133+1个esp32主控芯片----esp32产生pwm驱动eg2133产生电机驱动的A/B/C相位安装教程:使用指南开源地址:https://github.com/ToanTech/Balance_Bot_DengFOC截图:机械部分:4个舵机+2个foc无刷电机的方案板子硬件和软件架构:1个esp32驱动板+1个esp32主原创 2023-10-18 14:14:34 · 2654 阅读 · 0 评论 -
STM32下载程序,可以使用串口了,但是要对的boot进行设置,以及boot的使用,直接烧录,可以运行,但是下次复位,得先换BOOT0为0
STM32下载程序。原创 2023-10-20 16:25:33 · 578 阅读 · 0 评论 -
PlatformIO在clion和vscode上的开发和使用,机器人开发嵌入式代码
如图选择的是开发框架:我选择的是arduino框架的方式,因而会生成一个main.cpp里面会和arduino 一样生成两个函数setup 和loop。原创 2023-10-19 08:38:33 · 253 阅读 · 0 评论 -
arduino框架开发esp32,arduino框架的优势是什么?为什么要用这个框架
此外,Arduino还有一个庞大的社区支持,你可以在其中找到大量的库和示例代码,这些都可以帮助你更快地实现你的项目。这就是Arduino框架的一个重要优点,它抽象了底层的硬件细节,让开发者可以更专注于实现具体的功能。例如,如果你试图在发送串口数据的同时,改变TX引脚的状态(作为GPIO使用),可能会干扰到串口通信。同样,如果你试图在接收串口数据的同时,读取RX引脚的状态(作为GPIO使用),可能会得到错误的结果。而用了arduino框架,我们可以直接使用这个引脚的功能,而不需要进行硬件定义的配置。原创 2023-10-20 09:06:50 · 539 阅读 · 0 评论 -
在simulink下编程stm32,为什么我的stm32用串口打印数据,总是00或者ff
这个带红圈的地方非常重要,否则收到的数据就是00或者ff了原创 2021-05-06 11:34:43 · 1459 阅读 · 0 评论 -
matlab中发送10列数以及数据大小获取,从官方案例中获取缓冲模块
原创 2023-08-03 21:31:15 · 75 阅读 · 0 评论 -
实现的效果是利用Matlab创建的代码,来控制Arduino的执行。
我们要实现的效果是利用Matlab创建的代码,来控制Arduino的执行。1、下载Matlab支持包百度云链接是https://pan.baidu.com/share/home?uk=3795675272&errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0#category/type=0解压之后会有5个文件夹,如下图所示:2.将相应的文件下载到Arduino中用编译软件打开文件——前3个应该属于原创 2021-03-05 15:46:19 · 436 阅读 · 0 评论 -
在Arduino上运行Simulink模型
Arduino您可以使用Simulink来开发算法并在Arduino上运行,Arduino是一种价格并不昂贵的开元微控制器板。Arduino板部署了一个Atmel ATmega处理器,提供数字和模拟连接以及串口通信。Simulink与ArduinoArduino平台帮助学生在不需要手动编程的情况下理解嵌入式系统的设计流程。学生可以使用Simulink来设计控制系统和机器人应用的算法,他们也可以应用工业中成熟的基于模型设计技术,在仿真中验证自己的算法。学生们也可以将自己的算法作为一种独立应用程序,在Ar原创 2021-03-05 16:01:50 · 1118 阅读 · 0 评论 -
aduino的mboard板子的原理对照图,Arduino - PinMapping32u4
以下文档是板子自带文档,和芯片原理能对应的上,这里做一个说明:pinnumber:是芯片中所有的序号,就是一个单纯的数字编号,indexofarduino:芯片内部之间的命名,用来标记引脚的和内部外设的对应关系,是芯片对应的外设公用的名字,通过它可以找到对应外设的端口。pinname(pinofatmega32U4):是芯片被配置好以后,端口的功能是什么。通过它可以知道这个端口被配置成什么功能了,当然可以通过升级固件进行端口的其他功能的配置mappingpinname(nameofinter...原创 2021-03-08 11:42:37 · 505 阅读 · 0 评论 -
matlab开发stm32教程--Install Simulink Coder Support Package for STM32--视频教程以及安装包下载,硬件支持包安装方法
使用cube以及matlanb开发stm32。原创 2024-01-15 11:35:35 · 624 阅读 · 0 评论 -
如何使用simulink的stm32工具箱进行串口打印
关于STM32串口打印输出:1.如果是字符输出,按如下第一第二图;2.如果是数据打印输出,按如下第三第四图;3.USART接收模块含义: NbRcv:接收字节的数量;PtRcv-接收字节数组的地址;dataRcv:接收数组数据USART发送模块含义:Nb2send: 发送字节的数目;Data2Send:数据发送的地址;Nbsent:已发送出去的数据数目,一般接空一般引脚不建议悬空,可接Terminator 未连接的输出端口防止警告报错...原创 2021-03-12 22:56:04 · 787 阅读 · 0 评论 -
(重要)simulink模型不会搭建了,就去官网查看demo,开发中,如何将读取的pwm信号转化为一个占空比的值?,用一个定时器或“Clock“模块控制计数的开始和结束,怎么操作呢?
在子系统内部,你需要放置一个"Counter Free-Running"模块,这个模块可以对PWM信号的高电平时间进行计数。在子系统外部,再放置一个"Counter Free-Running"模块,用于总的计数去测量整个PWM信号的周期。重要)simulink模型不会搭建了,就去官网查看demo,直接输入指令就可以打开demo,学习其中的模块,官方给的案例很多,很好用。chatgpt回答:在操作PWM信号时,计数模块和时钟或定时器模块通常是用来测量信号的高电平和周期的。原创 2023-08-04 10:32:33 · 816 阅读 · 0 评论 -
simulink编程keil编译错误:XXX.axf: Error: L6218E: Undefined symbol getBuffPtr (referred from untitled_1.o).
#XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).MDK 报错:keil报错问题:linking…stm32f103.axf: Error: L6218E: Undefined symbol Time1_8_Init (referred from led.o).分析问题:Undefined symbol Time1_8_Init,翻译过来就是:Time1_8_Init 这个符号没有被定义,小括号中的内容告诉你,是原创 2021-03-12 22:53:08 · 4607 阅读 · 0 评论 -
MATLAB /Simulink 快速开发STM32(使用st官方工具 STM32-MAT/TARGET),以及开发过程
Matlab生成的代码CTRL+B。原创 2023-08-03 14:43:01 · 1946 阅读 · 3 评论 -
电机控制策略以及基本概念,foc电机控制的基本概念,电机控制----FOC框架讲解,如何理解SVPWM中的马鞍波?
D挡位输出-240N,电机转速到5000后最大输出-90N。R挡最大输出240,电机转速5000后最大输出90N.1,电机请求扭矩,显示恒扭矩,然后是恒功率。原创 2024-02-01 16:51:20 · 534 阅读 · 0 评论 -
使用ATI重新添加新的a2l文件,新建策略,并且并保存标定文件后,没有数据的问题,是因为没有导入HEX
4,新建工程,添加设备后,添加屏幕文件,但是没有数据,reload也没有 数据。5,原因是没有导入HEX,在file中选择import,导入hex即可。1,从原来的策略的模板中重新保存一个模板。2,新建策略,导入A2L文件,保存策略。原创 2024-02-19 14:39:58 · 242 阅读 · 0 评论 -
simulink入门教程------------的模型搭建,使用状态机-最简单的教程,入门教程(推荐入门学习)
1,Matlab/Simulink基础了解(八):Stateflow。2,Simulink代码生成: 简单状态机及其代码。原创 2024-01-05 08:52:08 · 1525 阅读 · 0 评论 -
simulink的模型搭建,使用状态机-最简单的教程二,状态机不显示它的logo,而显示的是模型缩略图
1,选择chart和graph fuction,然后选择子图化所选内容,就可以实现点击进去,再进行逻辑编写。2,选择外围的chart,然后选择并行,则里面包含的chart就变为虚线了。原创 2024-01-05 17:27:07 · 666 阅读 · 0 评论 -
Matlab安装硬件支持包、simulink离线安装硬件支持包安装,离线安装ESP32、stm32等安装包,Are you up-to-date on SoftWare Maintenance?
注意:如果提示出现“没有可从此位置安装的兼容支持包后,这个问题,请查看步骤5,是不是没有按照步骤5进行操作.一般情况下出现“没有可从此位置安装的兼容支持包”后,重新安装选择了默认路径就可以成功。如果不是很清楚,直接安装在默认的文件夹下面,即使这个文件夹下没有matlab相关的文件夹,也要这么下载,没有为什么,切记尽量按默认路径安装,更改下载的路径不成功,别怪我没提醒。:下载到哪里非常重要,如果下载的不是默认的路径下,就需要将其中这个的是这个archives文件夹,连同其他文件一并要复制出来,拷贝到。原创 2024-07-02 09:34:01 · 474 阅读 · 0 评论 -
simulink-esp32开发foc电机
将 ESP32 连接到计算机的 USB 端口,然后将 ESP32 置于下载模式。ST-Link/V2:ST-Link/V2 是 STMicroelectronics 提供的用于编程和调试 STM32 微控制器的调试器/编程器。ISP(In-System Programming):ISP 是一种使用专用编程器将固件刷写到 STM32 的方法。这允许您使用串行连接或 USB 下载模式将固件刷写到 STM32。串行下载:串行下载可以使用串行连接将固件刷写到 ESP32。这对于已经部署的设备非常有用。原创 2024-07-01 09:40:46 · 246 阅读 · 0 评论 -
simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方
原来是需要在配置文件里开启一下timer的中断,其他模块自动加载ioc就可以了,这个timer需要注意力,需要自己勾选一下。1,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方。结果就是可以在log中看到了,非常好。原创 2024-06-29 01:07:59 · 390 阅读 · 0 评论 -
stm32cubemx,adc采样的几种方总结,触发获取adc值的方法dma timer trigger中断
方法1,软件触发方法2:,Timer触发ADC采集通过DMA搬运触发获取adc值的方法Regular Conversion launched by software 软件触发 调用函数即可触发ADC转换Timer X Capture Compare X event 外部引脚触发Timer X Trigger Out event 定时器通道触发,需要设置相应的定时器。原创 2024-06-28 15:04:36 · 688 阅读 · 0 评论 -
当我尝试用数字写入法将脉冲发生器调到最大值时,可以在求解器中进行设置。我将其设置为 1e-7,但频率仍然无法超过 25kHz。
当我尝试用数字写入法将脉冲发生器调到最大值时,出乎意料的是它已经在 25kHz 时停止了。经过研究,我发现这与 BaseRateSampleTime 有关,可以在求解器中进行设置。我将其设置为 1e-7,但频率仍然无法超过 25kHz。有没有人有过同样的经历,或者我仍然存在配置错误?还是因为 Simulink 无法生成更快的代码?原创 2024-06-25 16:23:50 · 431 阅读 · 0 评论 -
使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集
问题:本来是好的,突然编译运行报错,说是确少包,解决方案:重启以后好了。原创 2024-06-23 20:50:40 · 268 阅读 · 0 评论 -
stm32使用time模块输出pwm波,stm32-matlab开发电机控制
注意在stm32配置了两路的一个互补输出,但实际上在matlab里只需要给定占空比就行了,他会自动输出互补,驱动电机,这是因为有点的电机输出需要6路,有的只需要1路,我们看下图就知道了。原创 2024-06-23 10:51:21 · 293 阅读 · 0 评论 -
Solver-Fixed-step size(fundamental sample time)、Sample time(模块)、Sample time(powergui)三者的辨析
但可以明确的是:B>A,即模块中的Sample time优先级大于Solver中的Fixed-step size,但前者在数量级上必须是后者的整数倍,否则仿真报错。经测试,三者的优先级关系如下:模块中的Sample time>Fixed-step size(Solver中),而Sample time(powergui中)没啥作用,存在与否,不影响下文的测试结果。模块中设置Sample time,如sine wave模块,双击模块后,打开页面的最后一行可设置采样时间,,记为B。Simulink中三者的位置。原创 2024-06-12 10:19:43 · 287 阅读 · 0 评论