机械设计已经做好了,第一版做为原理验证,计划采用6个42步进电机直驱主动臂,不做减速机构。顶部的固定平台和主动臂用亚克力。电机的固定基座是异形件,用3D打印件,还有末端的小运动平台也是。黑色的从动臂是碳纤维杆。这样机械部分比较简(省)单(钱),缺点是运动范围非常小(鱼眼轴承偏转角度太小了),不过拿来搞原理验证也够了。对于三轴并联机器人,由于是3个主动臂驱动6个从动臂,也就是每个主动臂驱动2个从动臂
CubeMX简介传统的单片机开发时,需要针对片上外设做各种初始化的工作,相当麻烦。CubeMX是ST公司出品的一款图形化代码生成工具,通过图形化界面,可以非常直观的配置好各种片上外设,时钟,中断,DMA等等各种设备的参数,然后CubeMX可以直接生成初始化代码,使得开发人员可以将更多的精力放在核心代码的开发上。生成的代码选择性适配IAR,KEIL,以及ST自家的STM32CubeIDE(免费)
嵌入式开发–赛普拉斯cypress的铁电存储器FM25CL64B 简介FM25CL64B是赛普拉斯cypress出品的一款铁电存储器,这种存储器最大的优势是可以像RAM一样随机存储,和按字节写入,也可以像ROM一样掉电仍然可以保存数据,是一种相当优秀的新型存储器,但是容量不能做得很大,只适合保存一些重要数据。 重要参数及解读如下: 64K位,即8K字节100T的读写次数,这意味着即使对于同一
这个玩意吧,说起来很简单,就是几行代码的事,但楞是折腾了我大半天时间才搞定。原因后面说,先看代码吧: 读操作 读操作很简单,以32位方式读取的时候是这样的: data = *(__IO uint32_t *)(0x0800F000); 需要注意的是,当以32位方式读取时,地址需要是4的整数倍,即32位。8位或16位方式类似操作即可 写操作 需要注意的是,写操作时,是以64位方式写入
回顾之前讲过用 利用IDLE空闲中断来接收不定长数据 ,但是没有用到DMA,其实用DMA会更加的高效,MCU也可以腾出更多的性能去处理应该做的事情。 原理简介IDLE顾名思义,就是空闲的意思,即当监测到串口空闲超过1个串口的数据帧时,会使状态寄存器(SR或ISR)的IDLE位置位,如果此时控制寄存器(CR或CR1)的IDLEIE为1,则会触发IDLE中断。 DMA搬运数据,则是一边接收数据,一
嵌入式开发–获取STM32产品系列和容量信息 获取STM32产品系列 有时候我们需要知道当前MCU是STM32的哪一个系列,这当然可以从外部丝印看出来,但是运行在内部的软件如何知道呢? ST为我们提供了一个接口,F1和G4系列地址统一为:0xE004 2000,需要以32位方式读取。 H7系列的地址是0x10006450 对于F1系列,该说明如下: 对于G4系列,说明如下:
SVPWM空间矢量脉宽调节 这张图是基于α和β坐标系,也就是定子磁场坐标系,图中的Uout就是定子磁场的空间矢量,它的角度表示定子线圈产生磁场的方向,长度表示磁场的强度,以电机匀速旋转为例,FOC控制的目标就是让这个矢量的长度保持不变,角度匀速变化。 图上以60度为间隔,划分了6个区,其意义类似于6步换向,也就是在不同的区域,相应的开启或关闭相应的驱动桥的上下臂,以及上下臂的导通时间,来实
帕克变换的物理意义 前面说到克拉克变换的物理意义,是将三相定子线圈产生磁场的过程,等效为2个正交放置的线圈,来产生同样的磁场。通过控制这两个正交线圈即可等效控制三相定子线圈。 还有一个问题,定子线圈产生的磁场,如果与转子位置不匹配就成了开环控制了,显然我们需要与转子的位置对应起来控制,这个过程也叫闭环控制。也就是不断的读取转子的位置,并根据这个位置,实时的给出当前所需要驱动磁场方向和强度。
克拉克变换 首先说明,有很多方法,在数学上是等价的,比如3+3+3+3=3*4=12。下面说的事情也是。 为了更简明的控制,克拉克女士提出电机控制简化的方法,即建立一个坐标系,横轴是α 纵轴是β,并将三相电流在这个坐标轴上投影,用两个正交分布的投影代替。并描述二者之间的关系,从而得出任意时刻的iα和iβ。 其物理意义是用两个正交分布的线圈(分别放在α轴和β轴上),去模拟三相电机120度分布的
写在前面 最近刚学FOC电机控制,文中错误在所难免,欢迎批评指正,也欢迎在评论区留言讨论。 FOC意义 普通直流电机(DC MOTOR)的驱动是碳刷换向,能看到这篇文章的朋友应该不用我再去复述一遍直流电机的工作原理了吧。缺点很明显,存在碳刷换向,换向时会有感生电动势冲击。电机产生的磁场与定子磁场之间的夹角不能保持为0度(或者说180度,是一个意思,以下均用0度表示),驱动力会有波动,也不能产
6轴并联机器人,6轴运动展示 6轴并联机器人,6轴运动展示,包括XYZ轴方向的移动,和围绕XYZ轴的旋转,每一组的2根驱动臂是分别驱动的,这也是有6个自由度的关键。伺服电机驱动的工业级产品正在开发中,可用于生产线上产品的捡拾,装配,和搬运 6轴并联机器人
有6轴单独控制,运动控制时还会涉及到大量运算,图方便采用底板+主控板+6个子板的方式来实现。主板上的处理器进行总体控制,包括:液晶屏,通讯,定位,任务分配等,每个子板实现每个电机的轨迹运算,动作控制,并与主板通讯。与电脑的通讯,采用CAN总线方式,可靠,性能也好些。子板驱动电机,用脉冲+方向的方式实现。第2版由于用到伺服电机,还涉及到位置采集,将会留485和CAN接口,本来是准备用CAN的,但很多
6轴并联机器人开发–有限元分析 对我的正式版并联机器人做了一个有限元分析,并根据计算结果对相应位置做了一下补强。在负荷50公斤时,承力件最大变形为0.013mm,满足要求。由于机器人运动时,最大加速度不超过10米/秒秒,即1G,而负荷也只有3~5公斤,加上所有运动系统也不会超过10公斤,所以变形仅为计算值的1/5,约为0.0026mm。 最终机械设计如下 顺便说一下,用的是UG NX20
6轴并联机器人–运动测试6轴并联机器人,原理样机,由6个电机驱动,有6个自由度,末端平台可以在X,Y,Z方向平移,和围绕X,Y,Z轴做旋转,伺服电机驱动的工业级版本正在同步开发中。 目前是步进电机版本,而且关节轴承的运动范围非常小,造成整个机构运动范围也很小,不过本机器仅用来做原理验证,下一个版本为工业伺服电机驱动,是一个可用于生产线工作的机器,其速度,荷载,运动范围也会大很多。视频:6轴并联机
到年底了,终于有时间来进行我的并联机器人项目,目前在电脑端把位置算法解决了,这是用python写的一个模拟程序。示意图如下这是初始位置:以三轴方式运行,即只有XYZ的坐标,而没有围绕XYZ的旋转(姿态控制)时,上平台和下平台是平行的,每2个一组的主动臂也是平行的,其末端是在同一高度,如下:当加入姿态控制即下平台绕xyz轴均可旋转一定角度时,每2个一组的主动臂的运行不再平行,其末端(也就是主动臂的偏
串联机器人常见的工业机器人是串联臂,经常在电视里看到,长这样,每一节手臂都是串联在前一节上的,优点是动作范围大,缺点是刚性不好,速度相对较慢。 3轴4轴并联机器人工业中还有一大类是并联机器人3轴4轴并联臂一般长这样:3根主动臂驱动6根从动臂,末端执行平台的运行轨迹始终平行于底部工作台。第4轴就是从中间伸一根旋转轴,驱动末端平台可以旋转运动注意始终平行这几个字,这就是3轴4轴并联机器人的缺点
6轴并联机器人,6轴运动展示6轴并联机器人,6轴运动展示,包括XYZ轴方向的移动,和围绕XYZ轴的旋转,每一组的2根驱动臂是分别驱动的,这也是有6个自由度的关键。伺服电机驱动的工业级产品正在开发中,可用于生产线上产品的捡拾,装配,和搬运视频:6轴并联机器人_6轴运动展示
2021年的工作展望,打算以一已之力做一个6轴并联机器人的全套设计,包括机械结构,电路设计,运动算法,单片机的控制软件,电脑端的控制界面等。最终目标是通过手动示教,来写几个毛笔字。惊叹于故宫的写字人钟,准备做一个这样的东西致敬一下前辈。先观摩一下这个钟。这个钟是两百多年前,英国伦敦威廉森送给大清皇帝乾隆的,纯机械结构。惊叹,佩服,五体投地。 视频:叹为观止的故宫收藏-写字人钟 本项目是在我
电容式触摸功能的实现原理 现在有很多设备都实现的触摸功能。相比于原先的按键开关,由于没有机械动作,所以它的寿命更长,轻触即可实现按键的功能。具体的实现方式,是检测一个金属片的对地电容量,当这个电容量突然发生变化时,即可认为有了触摸行为。许多芯片还有自校准功能,可以消除环境变化导致电容量检测偏差。 芯片特点 一般的这种芯片都是微安级的待机电流,待机功耗很小。以BS814A为例,支持4个触摸按键
Altium的默认设置,有一些是很不合理的选项,强烈建议大家修改。在工程上点右键,并在弹出的菜单上选择最后一项:Project Options,即项目设置 弹出如下界面,如果操作不当,设置错了,可以点击左下的按键,设置成安装缺省,恢复默认设置。 重点是修改以下几项1 Duplicate Part Designators 重复的零件,如下图 2 Floating net label
STM32驱动2位数码管 数码管简介 驱动 实现 完整代码如下 数码管简介 一般我们用的数码管是8位的,其实就是在一个模块中集成了8个LED,分别显示笔划,如下图 电路原理如下,若是将所有LED的N极连接到一起,叫共阴,若是将P连接到一起,叫共阳。 我用红字标出了每个笔划对应的定义。2位数码管,就是有2个8段的显示,并把它们集成到了一起,其abcdefg
对于开发工程师来说,看芯片的技术手册是基本功,本例就以光耦的电路为例来讲解一下基本的电路设计过程。 光耦介绍 光耦常用于电气隔离,以免外部进来的信号中混有高压,大电流等脉冲,烧坏我们自己的电路或芯片。比如422,485,CAN,或室外的可能遇到雷击的各种传感器和线路,与设备连接时,通常都会用到光耦。光耦比较简单,外围电路也不多,最简单的光耦外部电路只有2,3个电阻,但这2,3个电阻的取值却是有
STM32开发时HardFault错误的排查 本篇是 嵌入式开发-STM32硬件I2C驱动OLED屏 一文的扩展。把相关的问题记录一下,给遇到HardFault_Handler问题的朋友做个参考。 故障现象 做STM32开发,经常遇到HardFault错误,也就是程序不会正常运行,此时若停止程序运行,会发现跳转到下面的程序段,并死循环运行,也就是著名的HardFault错误 void Ha
有硬件随机数发生器,(RNG) 对于有RNG功能的MCU,直接调用相关的函数即可,很简单HAL_RNG_GetRandomNumber 获得随机数 无硬件随机数发生器 中低端的MCU是不包含RNG单元的,但是也有办法产生随机数。 通过随机数函数,生成伪随机数 有srand()和rand()这两个函数,需要配对使用。srand()是输入一个随机数种子,然后调用rand()函数得到一
嵌入式开发-STM32硬件I2C驱动OLED屏 I2C简介 I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然
直流电机简介 直流电机,即通上直流电,就可以旋转的电动机。由于电机的线圈绕组会频繁的换向,换向碳刷或铜片与线圈接触处会有火花,这种电机工作起来会有较大的电磁干扰,对电源来说,也会带来尖峰毛刺。 三极管驱动电路 有人会说了,为啥不用MOS管或IC驱动?这篇文章是讲三极管的,当然就用三极管了嘛。电机参数:12V 0.1A 三极管选型 背景知识 这里有2个背景知识,知识1:直流电机工作的时候
本例以驱动继电器为例,来讲述相关电路设计,MOS管选型,以及看懂芯片手册。 驱动电路如下图 D1作用是泄放继电器的反向电动势 继电器参数 24V继电器 电大负载25A/250VAC,线圈电阻640欧。简单计算一下,流过线圈的电流为37.5mA。这里有个背景知识,继电器的线圈为感性负载,在通电和断电的瞬间,会产生反向电动势,通电时这个电动势与电源方向相同,上正下负,电源可以吸收绝大部分。断电
嵌入式开发—STM32硬件SPI驱动74HC595 本篇是硬件SPI口驱动74HC595。IO口模拟时序软件驱动74HC595见这一篇文章:嵌入式开发–IO口扩展–74HC595 硬件连接如下: 只用了一个74HC595,如果需要多个74HC595级联,参考前面的链接,里面有电路,不需要额外的信号线,就可以连接多个74HC595。 CubeMX中的设置如下: 用的是SPI1,驱动74HC
嵌入式开发—RS-485通讯的问题 嵌入式开发 RS-485通讯的问题 RS-485说明接口芯片硬件连接CubeMX设置代码编写引脚定义使能串口中断函数发送数据接收数据有一个问题,多收了一个数数据线上的波形问题分析问题解决 RS-485说明 RS-485一般简称485总线,是最常用的工业总线之一,一般采用2线的半双工模式,用差分方式收发信息。最高速度可达10M BPS。 接口芯片 单片
嵌入式开发–STM32片上外设–独立看门狗IWDG 看门狗 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,导致整个系统的陷入停滞状态,发生不可预料的后果。 看门狗,又叫 watchdog,从本
嵌入式开发–CAN总线与高速光耦6N137 6N137简介 CAN总线应用时,有时候需要加光耦隔离电路,以免在雷击或遇到高压干扰时,保护设备安全。常用的有光耦隔离和专用芯片隔离。本文介绍使用高速光耦6N137的光耦隔离方案。6N137是10MBPS的高速光耦,而CAN总线的最高速度仅为1MBPS,用在此处绰绰有余。6N137等效电路如下: 1,4脚空闲,2,3脚是输入侧,接发光二极管5脚
PID简介 讲解PID的文章书籍很多,本文就不详细讲了,只讲一下我在学习过程中不容易理解的一些问题点,以供大家参考。比如很多书籍对于PID,只讲了计算,但是最后计算出来的值如何应用,则完全不讲,当时我是一头雾水,后来搞明白以后又觉得还是很简单的,但如果书籍里面能提一下,那不是让人学习起来容易很多么。PID就是比例,积分,微分三个单词的首字母缩写,是工程上控制系统中的一个常用控制算法。以下结合我之
打开Halcon,点击摄像头图标,打开设置窗口,接口选择DirectShow 连接选项卡中点击“实时”按钮,可以在主界面中看到摄像头采集的画面 最后点代码生成按钮,采集单幅图像,异步,插入代码,即可看到主界面有代码生成 在图像窗口上点右键,工具,灰度直方图,打开直方图窗口 点RGB选择2号通道,也就是绿色通道,会变成单色显示 将界面最左边的绿色竖线往右拉,比如
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信