智能小车30:双轴舵机的安装与调试

本文介绍了使用双轴舵机实现红外发射头的精准定位,包括所需材料清单、安装步骤和调试方法。通过该方案,可以有效提升遥控设备的稳定性和美观度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前我安装的控制电视的红外发送头是用了一个上下传动的舵机来控制上下的方向,用小车自已的转动控制左右的方向。而红外发射头是绑在舵转盘上的。这当然也能达到控制的目的,但这种绑的方式不容易重复安装,不稳定,还很丑。另外摄像头也无法用这种方式来安装,所以我找到了这样的装置来解决摄像头安装的问题----双轴舵机。

红外发射头的单轴安装方式:

先看一下双轴舵机的拼装结构:

材料:2个舵机、1个轴承及螺丝,2个圆舵盘及螺丝,1套支架(2个扁型支架和1个u型支架)

安装过程:
从下往上,先只上可固定的最少螺丝。熟练后可一边安装一边调试舵机方向。
1.给小车地盘打孔,一般打m3孔或m2孔。
我这次是打了1个m3,2个m2。最好打4个孔。
2.固定最下面的扁型支架。

指头要伸到小车中间去固定螺母,是有些困难。成熟后就不用这么安装了,先打完孔装上再安装上一层的底盘。
要注意方向,下面的方向不对。突出的固定孔应该向上。


3.把1个舵机安装在下面的支架上,再套上一个舵盘,舵盘上面放另一个扁型支架。如图:
这个扁型支架的突出固定位在侧面,另一边安装上轴承和u型支架,轴承对面暂时空着。

4.安装上最后一个舵机,并用舵盘固定连接u型支架与舵机的转轴。

最后就可调试舵机的角度了,代码如下:
#include
Servo myservo;
/**
信号线(黄线)红线(电源线) 棕色(地线)
信号线接3号插座
*/
void setup(){
   Serial.begin(9600);
   myservo.attach(3);
}
int angle=0;
void loop(){
   int val=myservo.read();
   Serial.println(val);
   myservo.write(angle);
   angle+=10;
   if(angle>=180){
      angle=0;
   }
   delay(1000);
}

因为我卖的是180度的舵机,所以要把90度调在水平的中间和上下的中间,当然不会那么精确。相差90度以上,调转动盘的螺孔,转一下就是标准的90度嘛。小于90度,重新安装转动盘的角度。


程序名称: 飞思卡尔智能车舵机调试工具 v1.1 程序作者: LinX 时 间: 2009-03-07 联系方式: Q Q : 408111919 Email: linhaiwz@163.com" & vbCrLf & vbCrLf & _ 〖 本程序为方便舵机调试而编写,错误在所难免,如有建议欢迎我联系! 〗 角度转换为高电平时间 角度 -45 0 45 (anger/度) 高电平时间 1000 1500 2000 (t/us) 计算公式为:T = 1000 + (anger + 45) * (1000 / 90) 该程序可以通过串口单片机进行通讯,实时改变舵机的角度。 通讯协议为:0xfe 0xMM 0xNN (其中0xfe为包头,0xMM为PWMDTYx高8位,0xN为PWMDTYx低8位) 在串口中断中分三次接收,在第二次接收时保存数据到temp0中,在第三次接收到数据时将PWMDTY01= ((unsigned int)temp0 <<8) | RxData 就可以完成PWM改变输出了。 下位机程序如下: #include <hidef.h> /* common defines and macros */ #include <MC9S12XS128.h> /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12xs128" unsigned char RX=0,temp0; void uart_putchar(unsigned char ch) { if (ch == '\n') { while(!(SCI0SR1&0x80)) ; SCI0DRL= 0x0d; return; } while(!(SCI0SR1&0x80)) ; SCI0DRL=ch; } static void PWM_Init(void) { //SB,B for ch2367 //SA,A for ch0145 PWMCTL_CON01=1; //01联合成16位PWM; PWMCAE_CAE1=0; //选择输出模式为左对齐输出模式 PWMCNT01 = 0; //计数器清零; PWMPOL_PPOL1=1; //先输出高电平,计数到DTY时,反转电平 PWMPRCLK = 0X40; //clockA不分频,clockA=busclock=16MHz;CLK B 16分频:1Mhz PWMSCLA = 8; //对clock SA 进行2*8=16分频;pwm clock=clockA/16=1MHz; PWMCLK_PCLK1 = 1; //选择clock SA做时钟源 PWMPER01 = 20000; //周期20ms; 50Hz;(可以使用的范围:50-200hz) PWMDTY01 = 1500; //高电平时间为1.5ms; PWME_PWME1 = 1; } void setbusclock(void) //PLL setting { CLKSEL=0X00; //disengage PLL to system PLLCTL_PLLON=1; //turn on PLL SYNR=1; REFDV=1; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz; _asm(nop); //BUS CLOCK=16M _asm(nop); while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it; CLKSEL_PLLSEL =1; //engage PLL to system; } static void SCI_Init(void) //SCI { SCI0CR1=0x00; SCI0CR2=0x2c; //enable Receive Full Interrupt,RX enable,Tx enable SCI0BDH=0x00; //busclk 8MHz,19200bps,SCI0BDL=0x1a SCI0BDL=0x68; //SCI0BDL=busclk/(16*SCI0BDL) //busclk 16MHz, 9600bps,SCI0BDL=0x68 } interrupt 20 void SCI_Rx_IRS(void) //中断接收 { unsigned char RxData; DisableInterrupts; if (SCI0SR1&0x20) { RxData = SCI0DRL; switch(RX) { case 0: if (RxData==0xfe) RX=1; break; case 1: temp0 = RxData; RX=2; break; case 2: PWMDTY01= ((unsigned int)temp0 <<8) | RxData; PORTB=~PORTB; RX=0; break; } uart_putchar(RxData); } EnableInterrupts; } void main(void) { EnableInterrupts; setbusclock(); SCI_Init(); PWM_Init(); DDRB=0xff; for(;;) { } }
本设计基于TI MSPM0G3507微控制器,实现了一套集自动巡迹、目标识别激光瞄准于一体的自行瞄准装置。系统采用310双电机差速驱动方案,结合三路红外巡迹传感器实现高精度路径跟踪;通过OpenMV H7摄像头进行目标识别,配合双轴舵机云台实现±1mm瞄准精度。经测试,系统在100cm×100cm正方形赛道上完成1圈巡迹满足题目要求<,激光瞄准响应时间≤200ms,整体功耗≤3.5W,满足赛题所有技术指标要求。 关键词:自动寻迹小车、MSPM0G3507、PID算法、OpenMV视觉 1.系统方案 1.1运动方案论证抉择 方案一:步进电机。步进电机可以实现高精度,低速下可达到很高扭矩,不需要反馈系统,功耗略高。配合闭环 FOC 驱动对步进电机进行控制,利用霍尔传感器获取步进电机位置,实现闭环驱动,可以最大化地发挥了步进电机的特点。 方案二:舵机舵机可以实现精确位置控制,内置位置反馈,功耗低。但其速度性能较差,存在一定虚位。本任务中,需要云台不断进行小角度调整,舵机难以完成高频精密的任务。 基于上述分析,系统采用方案一步进电机,作为瞄准系统的控制单元,能够高效地实现自动跟踪。 1.2巡线模块的论证选择 方案一:灰度传感器阵列。灰度传感器阵列基于光反射原理,利用不同颜色、材质对光的反射率差异,通过发射红外光或可见光,检测物体表面对光的反射强度,将光信号转换为电信号,以判断目标物体的灰度值或表面特性。成本较低,响应速度快,能快速检测地面黑白线的灰度变化。在光照条件相对稳定的环境下,可实现较高的检测精度。不过,红外对管易受外界强光干扰,在阳光直射等复杂光照环境下,检测稳定性会有所下降。 方案二:摄像头视觉识别。摄像头视觉识别可获取丰富的图像信息,不仅能识别黑白线,还能对线路的曲率、分支等复杂情况进行判断,环境适应性较强,受光照变化的影响相对较小。但摄像头数据处理量大,对系统的运算能力要求较高,响应速度较灰度传感器阵列慢,且成本也相对较高。 基于上述分析,巡线任务中,对实时性成本有一定要求,且比赛环境的光照条件通常能得到一定控制。因此,系统采用方案一灰度传感器阵列作为巡线模块,能够更高效、经济地实现精准巡线。 2.系统理论分析计算​ 2.1小车巡迹控制算法分析 在红外传感器的小车寻迹控制中,核心算法围绕传感器阵列的信号识别路径偏差计算展开,我们采用以下算法; 二进制信号判断法 原理:红外传感器会根据检测到的颜色(如黑线吸收红外光、白线反射红外光)输出高低电平(0或1),通过阵列中“0”“1”的分布判断路径位置。 举例: 若5个传感器从左到右输出为  0 0 1 1 1 (假设“0”代表检测到黑线),说明黑线在左侧,小车需向左转向; 若输出为  1 1 1 0 0 ,则黑线在右侧,需向右转向; 若输出为  1 0 0 0 1  等对称分布,说明小车基本沿中线行驶。 2.2激光打靶控制算法分析 3.PID电路设计程序调试 3.1PID电机驱动板系统电路设计 3.2PID调参步骤实验对象​,​帮我把第二大点知识补充出来
08-03
请参考【项目内容:本项目基于STM32F103ZET6单片机上部署的模式状态机在OLED(IIC)构建多级菜单用户交互,并主要实现主功能:1.个人信息显示2.智能风扇3.万年历实时时间显示4.双机通讯5.心率测量6.温湿度检测7.血氧检测8.蜂鸣器警报。附带功能:采用WH-LTE-7S04G模块基于巴法云IoT,采用三区Flash进行OTA升级项目架构:1.APP:采用结构体+函数指针+链式调用构建状态机,搭建起菜单框架:main_menu分三种模式:个人信息 、时 间显示、家居功能,可采用按键选择三种模式。个人信息显示姓名学号,时间显示即万年历,家居功能包含智能风扇、双机通讯、心 率血检测、温湿度检测 、蜂鸣器警报六种功能2.BootLoader:对flash划分Bootloader、APP1APP2三区,由4G模块 通过AT配网远程获取bin文件由Bootloader跳转实现OTA升级。功能实现:1.APP:①采用射线回调实现按键消抖②家具功能各个子模块通过函数指针集成于main menu下,实现高内聚。③Bootloader跳转后需启用全局中断重设中断向量表位置及偏移量。2.Bootloader:4G模块AT配网后由HTTP协议于巴法云获取bin文件,由串口接收中断接收,并配置50ms空闲周期作为结束标志。②禁用全局中断防止跳转卡死③重设主栈指针复位中断函数地址跳转APP区④通过CRC64校验bin文件完整性,失败则自动回滚。调试总结 :OTA升级为本项目一大亮点,写Bootloader也加深了自己对CPU架构的理解】写出智能小车简历项目
最新发布
08-05
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值