头像-8385

电子芯吧客社区老大

  • 138
  • RF/无线
  • 计算机网络

个人成就

获得 374 次赞

帮助过5250人

【话题讨论】接棒口罩机,呼吸机制造难度几何?电子厂商有方案!

参与话题讨论,立得200IC币疫情之下的电子行业及全球制造业,将在需求趋势下如何发展?又会带来哪些新技术和新方案?【疫情之下,全球震荡】在疫情的持续发酵下,呼吸机是抵挡死神的一张底牌,成为继口罩机之后,市场追逐的又一波热点。为满足全球抗疫需要,全世界的呼吸机厂商都处在满负荷运转中。德国政府日前与本国企业德尔格(Drager)达成了1万台呼吸机的购买协议,足够生产至年底。意大利政府要求呼吸机制造商将产量从每月125台增加到500台,瑞士Hamilton呼吸机已将产能提升了三成到四成,每天可以生产大约80台呼吸机。即使这样,厂商的产能提升速度还是远远低于疫情蔓延的速度。据了解,目前全球呼吸机需求缺口至少是医院现有的10倍。正如纽约州州长安德鲁·库默说:“关键是呼吸机、呼吸机、呼吸机。这是最迫切的需要。”【呼吸机制造困难重重】现货奇缺、价格飙升、图纸公开,呼吸机市场现在上演的正是当初口罩机走过的路。那么呼吸机最终能否和口罩机一样,在全民总动员的号召下,实现产能翻身呢?口罩机产能的迅速提升,主要是依靠转产、跨界的力量。上汽通用五菱汽车生产口罩的同时还顺便花三天时间完成了“五菱牌”口罩机的设计、制造、调试到成品下线的任务。 呼吸机能做到这样吗?貌似很困难。医用呼吸机为三类医疗器械,其研发生产需要跨学科知识的支撑,是集机械、结构、气路、控制、软件、算法于一体的产品。 一台呼吸机的生产,硬件和软件都不能出错,压力驱动系统、患者回路、过滤器、阀门等任何一个零部件发生故障,整个机器就无法运转,其中算法作为呼吸机的“大脑”,需要不断优化才能达到优秀状态。即使是专业的医疗设备制造商,生产一台呼吸机也可能需要花费多达40天的时间。从零起步的跨界企业可能要花费18个月才能实现量产。 其次从供应链来看,也是困难重重。呼吸机之所以为高端设备,就是因为需要一个全球的供应链来支持它的生产。呼吸机的核心零部件包括涡轮风机、各式传感器、芯片等,其中传感器是日本SMC和美国霍尼韦尔的天下,涡轮风机长期被欧盟和美国玩家占据;尤其是瑞士的Micronel,一条几十个工人的生产线,就占据了半数以上份额。国内龙头迈瑞和谊安生产的呼吸机,这一核心部件也一直依赖Micronel。 最后从产线导入时间来看,口罩机生产下线后就可以拉到客户现场去调试了,呼吸机属于医疗设备,受到各国的质量监管,生产测试耗时、认证周期长。除此之外,出口到国外还需要获得出口国家许可。【电子厂商应对方案】面对疫情,许多半导体与电子行业厂商也对呼吸机开放了解决方案。 ST的CPAP和呼吸机连续正气压呼吸机(CPAP)能保持肺泡开放并防止肺泡在呼气阶段完全塌陷,从而帮助患者呼吸。ST的电机控制集成电路可帮助实施非常精确的运动配置文件,减少声学噪音,提高了患者的舒适性。ST同时也提供了MEMS运动、压力和湿度传感器、高性能STM32微控制器、高精度运算放大器和低功耗调节器,以帮助开发先进的CPAP呼吸机。(图片来源:ST官网)Maxim美信的CPAP解决方案美信的CPAP解决方案包括一个小型风机,用于产生一定的正空气压力。气压被引入睡眠呼吸暂停症患者的口腔,保持呼吸道敞开,缓解或消除呼吸暂停症状。方案采用了气压可调节风机,气压变化由微控制器嵌入式系统控制。空气监测传感器和电机控制传感器组成了嵌入式系统。在患者端,采用了面罩压力由输入传感器监测,测量温度、湿度和压力。电机相关传感器包括:电机绕组电流输入检测、电机电压检测、温度传感器等。系统输出包括:电机速度、蜂鸣报警或语音报警。图:美信的CPAP解决方案,可提供蓝色部分的器件。(图片来源:Maxim官网)Microchip的呼吸机解决方案Microchip的呼吸机解决方案采用了dsPIC数字信号控制器,可以实现包括无感BLDC控制的多电机控制策略。(图片来源:Microchip官网)TI的医疗呼吸机解决方案TI主要提供电机驱动器和电源管理芯片。(图片来源:TI官网)NXP的呼吸机解决方案用于治疗睡眠呼吸暂停综合症。CPAP可以通过持续监控系统压力与呼吸机电机控制调速相结合来保持恒定气流。该解决方案NXP提供MCU、电源管理、电机驱动和压力传感器等芯片。(图片来源:NXP官网)声明:部分内容与图片来源于互联网及工机器人网(www.gg-robot.com),如侵犯到您的权益,请及时通知我们,我们将在第一时间内删除。

【RM】【同济大学+工具分享】机甲大师赛操作手训练模拟器游戏

【回复讨论即得200IC币】大家对RM比赛越来越了解后,相信都已跃跃欲试了很久,可惜受制于器材、场地、队友,大多都无法体验RM比赛的魅力。为了能让大家感受RM的乐趣,深入了解RM比赛的规则和过程,同济大学superpower战队的hyx,为大家带来了基于unity的机甲大师赛模拟器游戏!Robomaster模拟器,由同济大学Superpower战队队员使用unity游戏引擎独立开发。此模拟器有单机模式和局域网联机对抗模式。在单机模式下,可用于疫情期间操作手在家熟悉比赛场地、练习跑位和键鼠操作。在联机对抗模式下,适用于返校后操作手共连局域网,进行战术演练以及模拟对抗。以我们战队往年的经验来看,操作手的训练只能等到整车完成后才可以进行,而那时距离比赛往往只有不到一个月的时间,操作手的训练量严重不足。而且受场地限制,不可能搭建1:1的比赛地图进行训练,因此训练方式较为单一,只能练习一些基本操作。更重要的是,平日训练和实际比赛有很大出入,真正放到比赛地图和第一人称视角下时,会发现操作手在对于比赛进程的把握和战术执行上不是特别理想。而2020赛季的比赛地图更加立体,地形起伏更大,比赛机制更加复杂,因此更需要操作手像实际比赛那样进行战术练习。而这款模拟器能较好地辅助操作手进行训练。模拟器中使用了我们战队成员用建模软件搭建的1:地图模型,尽可能还原真实地图。操作手可以以第一人称视角在地图中行驶,体验实际比赛时的视角和站位。UI界面仿照官方客户端进行绘制,对于一些关键信息进行实时显示。实现了部分实际比赛中的机制,可以让操作手更加掌握比赛进程。联机模式下可以训练操作手间的交流配合、使其更好地执行战术。在战术讨论时也可以使用模拟器进行战术规划和演示,效果远胜于对着比赛地图纸上谈兵。模拟器具体使用说明见附件压缩包中的相关文档,以下是游戏场景截图:由于此模拟器开发时间较短,存在一些BUG和缺陷,望大家海涵。也希望大家在使用过程中遇到问题、操作不便的地方、以及改进建议等请在评论区进行反馈,后续作者会据此对模拟器进行更新和维护。谢谢大佬分享!下载链接:https://www.icxbk.com/download/detail/48727.html转载自RM论坛,作者solitudehttps://bbs.robomaster.com/forum.php?mod=viewthread&tid=10262&extra=page3D1

【NXP】直立车模实现原理(mpu6050控制)

【回复讨论即得200IC币】在NXP恩智浦智能车比赛中,电磁直立组是近年来新增的一项有趣项目。比赛是要求仿照两轮自平衡电动车的行进模式,让车模以两个后轮驱动进行直立行走。在电磁组比赛中,利用了原来C型车模双后轮驱动的特点,实现两轮自平衡行走。相对于传统的四轮行走的车模竞赛模式,车模直立行走在硬件设计、控制软件开发以及现场调试等方面提出了更高的要求。接下来由19年的参赛者:一城烟雨一楼台,分享自己参赛时,从零基础,到理解平衡车,实战比赛的学习心得。直立车模的调试分为三个部分:1.直立环 2.速度环3.转向环有人说速度环可以省略,我认为在你的转向环调得好的情况下可以省略,因为失去了速度环的车模就会一直处于加速状态(在弯道时由于摩擦的作用会使速度降下来),这就会导致在直道入弯时的速度无法控制,在转向环不强的时候很容易飞出赛道。直立组先上直立环的代码,当然这种代码网上很多,形式也都差不多。 /@@************************************************************************** 函数功能:小车平衡电机占空比控制,直立PD控制 入口参数:倾角角度、角速度 返回  值:平衡控制用PWM **************************************************************************/ int Balance_Ctrl_Pwm(float Angfloat Gyro) {     float Bias=Ang-QingJiaoZhongZhi;        //中值,求出平衡的角度中值 和机械相关     int balance;     float kp = 42 kd = - 26;     balance= -(int)(kp*Bias+Gyro*kd);   //计算平衡控制的电机PWM  PD控制   kp是P系数 kd是D系数          return balance; }   变量的含义QingJiaoZhongZhi // 小车平衡时候的数值,关闭电机,用手使得小车正好平衡时候的float Angfloat Gyro //这两个是mpu6050卡尔曼滤波后的倾角角度、角速度。然后再来说一下PD两个参数的调试。先调试kp,需要把kd置为0。首先需要确定正负,我们先随便给一个正值例如kp=10吧。然后我们相对于车模的平衡角度倾斜车模,如果车轮的转向和你倾斜车模的方向一致则可以确定kp应取正值,否则kp取负值。然后再来确定大小 逐渐增大Kp直至车身出现大幅低频摇摆的直立在地上,然后把这个数值乘以0.6基本就是一个比较稳定kp值。调试kd时同样需要把kp置为0。首先需要确定正负:例如先给他个kd=2;当你转动车模时车轮的转向与你车模转向一直则kd是正值,否则就是负值,注意pd与车模的平衡角度无关。大小的话同样也是逐渐增大直至出现低幅高频抖动时停止,也是把这个数值乘以0.6即可。注意:这里涉及到一个负反馈调节因为直立环是要保证正常站立。因为当实际角度脱离平衡角度时,轮子只有给车身一个更大的同方向的力才会使车身保持平衡。如果还是不理解可以拿支笔放在手指上试试,手指怎样移动才会使笔立在手指上?速度环速度环也是一个标准的负反馈例子。例如:我们想让车模加速,速度环就会降低车轮的速度使车身前倾,就会导致直立环起作用让车轮加速保持直立。这就完成了一个加速过程。需要注意的是速度环会干扰直立环,如果速度环的强度过大,车身就会非常不稳定。我在调用该函数时每一百次直立环才会调用一次速度环,这样就降低了速度环对直立环的干扰。/@@**************************************************************************函数功能:速度PI控制 修改前进后退速度,请修Target_Velocity,比如,改成60就比较慢了入口参数:左轮编码器、右轮编码器返回  值:速度控制PWM**************************************************************************/float Target_Velocity = 0;extern float kp_steep;int Velocity_Ctrl_Pwm(int encoder_leftint encoder_right){    static float VelocityEncoder_LeastEncoder;    static float Encoder_Integral;    float sudumax = 2700;    float kp=kp_steepki = kp/200;      //速度PI控制    Encoder_Least =(encoder_left+encoder_right)-Target_Velocity;                    //获取最新速度偏差==测量速度(左右编码器之和)-目标速度(此处为零)         Encoder *= 0.7;                                              //一阶低通滤波器           Encoder += Encoder_Least*0.3;                                  //一阶低通滤波器        Encoder_Integral +=Encoder;                                       //积分出位移 积分时间:?ms    if(Encoder_Integral>2000)   Encoder_Integral=2000;              //积分限幅    if(Encoder_Integral<-2000)   Encoder_Integral=-2000;              //积分限幅    Velocity=Encoder*kp+Encoder_Integral*ki;                          //速度控制            if(flag_zhongdian!=0)    Encoder_Integral=0;      //电机关闭后清除积分         //输出限幅    if(Velocity > sudumax) Velocity = sudumax;    else if(Velocity < -sudumax) Velocity = -sudumax;        return (int)Velocity;}转向环转向环其实有很多方法。我是用的比较简单的一种办法:动态的pid算法,P的系数是电磁传过来的偏差,D的系数是MPU6050的Z轴加速度(因为车模静止时我所在的地区Z轴加速度为2,所以在代码最后gyro+ 2进行了一次加速度补偿)。速度越快P越大D越小。当电磁传过来的偏差小于5时,判为直道,采用很小的P。可有效地减少直道上的晃动。我一开始这样做发现过弯时会有特别严重的抖动,经常飞出赛道,因此在最后加了个判断 if((My_Abs(Turn_Target) - My_Abs(Turn_Target_last)) >= 37) //入弯防抖 else if((My_Abs(Turn_Target_last) - My_Abs(Turn_Target)) >= -40) //出弯防抖 入弯防抖同时增大3倍P2倍D是车模更快更准的转弯,避免速度快时过弯不及时(毕竟我这一届只有不到30cm的前瞻)。出弯防抖与前者配合减少转弯过度带来的晃动。变量 RoadPianCha 是左右横电感和斜电感的差除以左右电感的和。也就是说这个变量的范围是 0-100。/@@**************************************************************************函数功能:转向控制  修改转向速度,请修改Turn_MaxPwm即可入口参数:左轮编码器、右轮编码器、Z轴陀螺仪返回  值:转向控制PWM作    者:**************************************************************************/int Turn_Ctrl_Pwm2(int encoder_leftint encoder_rightfloat gyro)//转向控制{    static float Turn_TargetTurnTurn_Target_last;    float Turn_MaxPwmKpKd;   //   if(My_Abs(RoadPianCha) <= 2)   //   RoadPianCha = 0;          Turn_Target_last = Turn_Target;      Turn_Target=RoadPianCha - (encoder_left-encoder_right)/5;               if(My_Abs(RoadPianCha) >= 5) {         Kp = 41.0 * (200+encoder_left + encoder_right)/200.0;        Kd = -4.2/ ((200+encoder_left + encoder_right)/200.0);        Turn_MaxPwm = 2000;      }      else {      Kp =3;      Kd = -5;      Turn_MaxPwm =200;      }       if((My_Abs(Turn_Target) - My_Abs(Turn_Target_last)) >= 37) //入弯防抖      {       // Target_Velocity = 100;        Kp = Kp * 3.2;        Kd = Kd * 2.3;      }      else if((My_Abs(Turn_Target_last) - My_Abs(Turn_Target)) >= -40)  //出弯防抖      {       // Target_Velocity = 1000;        Kp = Kp * 1.7;        Kd = Kd * 3.4;      }      if(Turn_Target>Turn_MaxPwm)  Turn_Target=Turn_MaxPwm;           //转向速度限幅      if(Turn_Target<-Turn_MaxPwm) Turn_Target=-Turn_MaxPwm;              //=转向PD控制器==//      Turn=  -Turn_Target*Kp + (gyro+ 2)*Kd;       //结合Z轴陀螺仪进行PD控制      return (int)Turn;}汇总最后关于这几个环串起来:在主函数中开一个定时器(时间大概为1-2毫米)把这几个函数轮番调用下面的是我定时器触发函数////====数据处理====平衡控制==速度环控制==转向环控制void PIT1_isr (void){       flag1ms++;    if(flag1ms%2 == 1)    {            Get_Dip_Angle();            //角度获取                Balance_Pwm = Balance_Ctrl_Pwm(Angle_BalanceGyro_Balance);         //===平衡PID控制                if(flag1ms >= 100)            {            flag_100ms++;            flag1ms = 0;            Velocity_Pwm = Velocity_Ctrl_Pwm( Encoder_Left Encoder_Right);        //===速度环PID控制     记住,速度反馈是正反馈,就是小车快的时候要慢下来就需要再跑快一点            }    }    else    {      Encoder_Right =   FTM_AB_Get(FTM1);          //脉冲为前进+,后退为-          Encoder_Left  =   -FTM_AB_Get(FTM2);             Get_AD_data();      //获取电感,测距的AD值    AD_chuli();         //处理AD值,得出最终偏差    Turn_Pwm = Turn_Ctrl_Pwm2(Encoder_Left Encoder_RightGyro_Turn);  //===转向环PID控制       }        //输出电机PWM————负脉冲向前    Moto_Left=Balance_Pwm+Velocity_Pwm+Turn_Pwm;                   //===计算左轮电机最终PWM    Moto_Right=Balance_Pwm+Velocity_Pwm-Turn_Pwm;                  //===计算右轮电机最终PWM          //end    PIT_TFLG(1) |= PIT_TFLG_TIF_MASK;    //清中断标志位    }版权声明:本文为CSDN博主「一城烟雨 一楼台」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_42803127/article/details/102856398

【NXP】智能车竞赛大神笔记(室外电磁组硬件篇)

【回复即得200IC币】作为更加亲民的智能车比赛,NXP恩智浦智能车比赛大家都有所耳闻,也在社区有了解过相关项目。相信很多朋友一定十分感兴趣,但又没有实际参与过。今天为大家带来大神选手WillChan_的实战资料,揭秘一个优秀的参赛选手如何备战NXP智能车比赛。一、概要比赛规则与赛道:比赛没有赛道,只有电磁线。但赛道元素包括有直道、弯道、坡道、十字路口以及横断路障。室外电磁组原则上选择室外的马路、草坪、体育场组织比赛,场地内可能会存在高度不大于 2 厘米的硬质路坎、沙坑、深度不超过 2 厘米的水坑等。选手制作的车模完成赛道运行一周。比赛时间从车模冲过起跑线到重新回到起跑线为止。越野车外形车的功能与实现: 本文脉络 二、硬件部分:1.主控板(1)原理图:K60引脚分配:引脚通过查K60引脚功能来分配,除去特殊功能引脚外,其余引脚为普通I/O口特殊引脚:I2C通信:SDA,SCLFTM(PWM输出):PWMA,DPWMAD(模数转换):AD1~AD6串口通信:TX2,RX2电源部分及笔记:(7~8v输入,5v和3.3v输出)以下为原理笔记: 按键模块:(SW2为4并排按键,用于设置车的模式) 电机输出(为排针插座,接驱动板,DIRA为电机方向控制,PWMA为速度控制): 舵机输出(为排针插座,5v供电电压,DPWM为脉冲输出,以控制舵机转角): AD输入(为排针插座,接传感器板,6路电感值输入): 普通IO口: 串口: 蜂鸣器: (2)PCB和3D图 PCB中,logo部分和敷铜(GND)已去除,以更清晰显示电路 2.电机驱动板:用于驱动电机(1)原理图H桥电机驱动:VCC直接接电池(7~8V) H桥原理: 12v升压(用于IR2104s驱动mos管): 电源部分: VCC是电机供电 12V(用于IR2104s驱动MOS)和3.3v(逻辑芯片供电): 调速及转向: Led显示电机方向及速度大小(速度越大越亮): 排针插座信号输入,3.3v用于逻辑芯片供电: 逻辑非和逻辑与芯片: 原理笔记:(2)PCB(GND敷铜已去)和3D图 3.传感器板:处理电感数据(1)原理图电源部分:信号放大:(opa2350为运放,根据电阻,放大倍数最大50倍,输入输出为正弦波,共6路) 信号整流(经实验,连接AD输出和GND的电容会严重削弱信号,故去除): 信号输入输出(为插座): (2)PCB(GND敷铜已去除)和3D图 4.电磁探测板:探测电磁线信号(1)原理图谐振部分:谐振可以很好放大信号,电感电容值根据20K频率谐振计算。 其他部分(LED和排针插座): (2)PCB(GND敷铜已去除)和3D图 电感与电磁线垂直时信号最强,故六路电感位置摆放: 这样放置电感,可以满足在多方位的检测需求。 版权声明:本文为CSDN博主「WillChan_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_42121843/article/details/89180738

【RM】机器人的关键动力,有感无刷电机是怎么组成的?

大家都知道,目前主流的智能机器人都是电力驱动。RM的参赛选手当然也是如此。在对控制要求极高的RM比赛中,能检测电机当前转速的有刷无感电机就极其重要了。本期,就让我们一起来探索霍尔传感器的原理和有刷无感电机的组成吧!不喜欢看文字版的朋友,可以观看更详细的视频节目哦!视频链接:【RM】机器人的关键动力,有感无刷电机是怎么组成的?对于有刷无感电机,比普通电机要多一根线,通往检测电机转速的传感器。这个传感器通常就是霍尔传感器。霍尔效应是电磁效应的一种,这一现象是美国物理学家霍尔于1879年在研究金属的导电机制时发现的。 当电流垂直于外磁场通过半导体时,载流子发生偏转,垂直于电流和磁场的方向会产生一附加电场,从而在半导体的两端产生电势差,这一现象就是霍尔效应,这个电势差也被称为霍尔电势差。这就是霍尔传感器的原理。那么对于无刷电机来说,转子上有一圈均匀安装的磁铁,按次级均匀间隔排布。且N极和S极数量相等,磁场分布固定不变。霍尔传感器安置在转子磁铁下方,固定在定子上。转子转动时,就能感知转子的磁场变化,继而把信息上传给电调,就能知道转子转了几圈。由于编程时已把磁极数量写入程序,配合传感器输出的Uh模拟量、AD转换芯片,就可以感受微小的磁场变化,得出转速。如图一个典型的通知系统负反馈方框图,代入上述的系统,就是有感无刷电机的基本原理啦!你对于有感无刷电机有什么经验和心得呢?欢迎大家讨论!还没搞清楚的朋友们,可以观看视频更详细哦!视频链接:【RM】机器人的关键动力,有感无刷电机是怎么组成的?图片视频来源于RoboMaster官网www.robomaster.com