基于MSP430 红外避障-遥控小车(电赛必备 附项目代码)

这篇具有很好参考价值的文章主要介绍了基于MSP430 红外避障-遥控小车(电赛必备 附项目代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


项目环境:

  • 1. MSP430F5529
  • 2. Code Composer Studio
  • 3. 蓝牙调试助手

项目简介:
小车可分为3种工作模式,每种工作模式都会打印在OLED显示屏上,通过按键转换工作模式。
模式1: 小车红外循迹,通过超声波实时监测障碍物距离,若超出规定路线,距离障碍物相对较近时,原地停止,等待指令。
模式2: 自主驾驶,通过超声扫描各障碍物距离,当小于一定距离时原地左转。
模式3: 蓝牙远程遥控

一、硬件清单

本项目用到的模块有:

  1. MSP430F5529开发板
  2. 红外循迹模块 TCRT5000L
  3. 超声波 HC-SR04
  4. 蓝牙 ATK_HC-05
  5. 显示屏 四针OLED
  6. 充电电池 12V
  7. TT电机及车轮
  8. 电机驱动 L298N
  9. 万向轮
  10. VCC、GND拓展口(自焊)
  11. 若干杜邦线及铜柱螺母
    基于MSP430 红外避障-遥控小车(电赛必备 附项目代码)

二、模块连接

手册先行
基于MSP430 红外避障-遥控小车(电赛必备 附项目代码)
基于MSP430 红外避障-遥控小车(电赛必备 附项目代码)

1. 蓝牙: UART
UART(A0): P3.4、P3.3(RX和TX)
UART(A1): P4.5、P4.4(RX和TX)

2. OLED : IIC
IIC(B0): P3.0、P3.1(SCL和SDA)
IIC(B1): P4.2、P4.1(SCL和SDA)

3. 超声波: TIMER
TA0:P1.1、P1.2、P1.3、P1.4、P1.5
TA1:P1.7、P2.0、P2.1
TA2:P2.3、P2.4、P2.5
TB0:P3.6、P5.6、P5.7、P7.4、P7.5、P7.6、P7.7

以上为该项目需要部分引脚分配,以下为我的模块连接示例:

  • Motor:P3.5、P3.6 P3.0、P3.1
  • PWM:P2.4、P2.5
  • TCRT5000L:P3.4、P6.6、P1.6
  • OLED:P2.0(SCL)、P2.2(SDA)
  • HC_SR-04:P1.2(echo)、P1.4(Trig)
  • ATK_HC-05:P4.4(TX)、P4.5(RX)

三、程序设计

1. motor_And_infrared_GPIOInit

P3SEL &= ~BIT0; //右轮
P3DIR |= BIT0;
P3SEL &= ~BIT1;
P3DIR |= BIT1;

P3SEL &= ~BIT5; //左轮
P3DIR |= BIT5;
P3SEL &= ~BIT6;
P3DIR |= BIT6;

P3SEL &=~BIT4;
P3DIR &=~BIT4;
P3REN |=BIT4;//左边

P1SEL &=~BIT6;
P1DIR &=~BIT6;
P1REN |=BIT6;//右边

P6SEL &=~BIT6;
P6DIR &=~BIT6;
P6REN |=BIT6;//中间

2. SetPwm_Init

P2DIR |= BIT4; //配置P2.4复用为定时器TA2.4
P2SEL |= BIT4; //配置P2.4为输出
TA2CTL = TASSEL_2+MC_1+ID_3;
TA2CCTL1 = OUTMOD_7 ;
TA2CCR1 = arr;
TA2CCR0 = psc;

P2DIR |= BIT5; //配置P2.5复用为定时器TA2.5
P2SEL |= BIT5; //配置P2.5为输出
TA2CTL = TASSEL_2+MC_1+ID_3;
TA2CCTL2 = OUTMOD_7 ;
TA2CCR2 = arr;
TA2CCR0 = psc;

3. OLED_Init


//OLED初始化函数
void OLED_Init(void)
{
    P2DIR |= BIT0;   //设置引脚为输出模式
    P2DIR |= BIT2;

    P2OUT |=BIT0;     //设置为高电平
    P2OUT |=BIT2;

    IIC_SDA_IN0;
    delay_ms(200);
    IIC_SDA_IN1;
//
    OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
    OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
    OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
    OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
    OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
    OLED_WR_Byte(0xCF,OLED_CMD);// Set SEG Output Current Brightness
    OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping     0xa0脳贸脫脪路麓脰脙 0xa1脮媒鲁拢
    OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction   0xc0脡脧脧脗路麓脰脙 0xc8脮媒鲁拢
    OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
    OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
    OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
    OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset   Shift Mapping RAM Counter (0x00~0x3F)
    OLED_WR_Byte(0x00,OLED_CMD);//-not offset
    OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
    OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
    OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
    OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
    OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
    OLED_WR_Byte(0x12,OLED_CMD);
    OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
    OLED_WR_Byte(0x40,OLED_CMD);//Set VCOM Deselect Level
    OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
    OLED_WR_Byte(0x02,OLED_CMD);//
    OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
    OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
    OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
    OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)
    OLED_Clear();
    OLED_WR_Byte(0xAF,OLED_CMD);

}

4. BlueTooth_Init

P4SEL |=BIT4+BIT5 ;                             // P4.5 P4.4 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST;                      // **Put state machine in reset**
UCA1CTL1 |= UCSSEL_2;                     // SMCLK
UCA1BR0 = 9;                              // 1MHz 115200 (see User's Guide)
UCA1BR1 = 0;                              // 1MHz 115200
UCA1MCTL |= UCBRS_1 + UCBRF_0;            // Modulation UCBRSx=1, UCBRFx=0
UCA1CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
UCA1IE |= UCRXIE;                         // Enable USCI_A1 RX interrupt
__bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled

5. TIMER_Init

TA0CCTL0 = CCIE;            //CCR0中断使能
TA0CCR0 = a*1000;            //设定计数值
TA0CTL =TASSEL_2+MC_1+TACLR;//SMCLK,增计数模式,清除TAR
_bis_SR_register(LPM0_bits+GIE);//低功耗模式0,使能中断

6. HCSR04_Init

USONUD_OUT |= TRIG;
USOUND_DIR |= TRIG;
USOUND_SEL |= ECHO ; //CCI0A

7. Key_Init

P1DIR &=~BIT1;//板载按键s2设为输入
P2DIR &=~BIT1;//板载按键s1设为输入

P2REN =BIT1;//上拉电阻
P1REN =BIT1;//上拉电阻

P1OUT |=BIT1;
P2OUT |=BIT1;//初始状态为高电平
//低电平触发函数

8. interrupt

// Echo back RXed character, confirm TX buffer is ready first,发送数据之前确定发送缓存准备好
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
  switch(__even_in_range(UCA1IV,4))
  {
  case 0:     //无中断
      break;                             // Vector 0 - no interrupt
  case 2:                                   // Vector 2 - RXIFG  接受中断
	  while (!(UCA1IFG&UCTXIFG));    // USCI_A1 TX buffer ready?   UCTXIFG(USCI Transmit Interrupt Flag)
      UCA1TXBUF = UCA1RXBUF;                              //等待数据发送完成 完成UCTXIFG置1 跳出循环                 // TX -> RXed character
   	  break;
  case 4:
      break;                             // Vector 4 - TXIFG  发送中断
  default: break;
  }
}
// UCTXIFG=0x02,UCA1IFG&UCTXIFG,当UCA1IFG的UCTXIFG位为1时,说明UCA1TXBUF为空,
//跳出while循环循环;当UCTXIFG位为0时UCA1TXBUF不为空,停在循环。

四、项目源码

若需项目源码可留言评论区QQ邮箱私信即可。

着急的小伙伴可直接加好友联系 👇文章来源地址https://www.toymoban.com/news/detail-401383.html

到了这里,关于基于MSP430 红外避障-遥控小车(电赛必备 附项目代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于STM32的蓝牙遥控避障小车

    文章目录 前言 一、 组成部分及功能介绍 二、 代码实例 1. main函数 2. 定时器初始化 3.串口部分 4.超声波部分 5.舵机 三、实物效果 总结     这是笔者第一次尝试在CSDN这个平台上编写文章,主要是想借此来记录一下自己做过的一些小项目,算是为生活添加乐趣叭~(^^)  本文

    2023年04月16日
    浏览(41)
  • 基于MSP432P401R爬坡小车【2020年电赛C题】

    主控板: MSP432P401R 数据显示: OLED 电机: 霍尔编码器电机 电池: 7.3V航模电池 巡线: OpenMV H7 Plus 警报: 蜂鸣器 电机驱动: TB6612 仪器: 3D打印机 视觉云台: 3D建模打印 转向: 数字舵机 其他: 铜柱、螺丝螺母、开关、面包板等。 编译器: Keil、OpenMV IDE 建模软件: Sketc

    2024年02月15日
    浏览(45)
  • 基于Arduino UNO的智能自主避障小车和蓝牙遥控小车

           Hello,大家好!今天我要给大家分享我近期制作的一个arduino小项目----智能避障小车。之前在某站上无意间刷到某位博主制作的一款智能避障小车,觉得很有意思,便打算自己也做一个来玩玩,于是便制作了一款我自己理解的避障小车。在此基础上,我还增加了蓝牙遥控

    2024年02月01日
    浏览(54)
  • 小车跟随行驶系统(基于MSP-EXP430F5529LP系统板)

    选用材料:主控板MSP-EXP430F5529LP、陀螺仪、直流减速电机(可以选用光电编码器,霍尔电机不好调节PID)、TB6612电机驱动、超声波测距模块、灰度传感器、无线透传/蓝牙模块(便于两辆小车相互发送信息)、OLED屏等。 总体思路:使用灰度传感器巡线,超声波检测前后车距,

    2024年02月12日
    浏览(42)
  • 《基于STM32的红外避障小车》

    本文主要讲解基于 STM32的红外避障小车的实现(标准库) 基于 stm32 实现的一个简单智能避障小车,具有“直行”、转弯、“避障”的功能。 直行、转弯:基于 stm32 的通用定时器TIM3输出 PWM 方波信号实现 避障:使用到 stm32 的外部中断以及通用定时器(使用红外中断), 代码

    2024年01月22日
    浏览(45)
  • 基于蓝牙技术使用stm32制造一个智能小车 (寻迹,避障,遥控)

    目录 1.制作智能小车的硬件名单: 3.引脚图 2.先让小车动起来  1.小车运动 2.代码 3.寻迹  1.工作原理 2.代码 4.超声波避障  1.工作原理 2.代码 5.蓝牙遥控  1.蓝牙工作原理 2.代码 6.oled屏幕 1.工作内容 7.led灯 8.蜂鸣器 9.蓝牙使用代码main  STM32C6T6核心板 1块 L298N电机驱动  1块 五

    2024年02月15日
    浏览(41)
  • 【2023电赛备赛】msp430f5529学习笔记(一)

    【写在前】 本人目前是大二在读生,第一次参加电赛,准备不充分,结果熬了四天,最后成绩却不如人意。有51和32的基础,然后想立一个flag系统的学习一下主打超低功耗的msp430f5529单片机为比赛做准备(毕竟电赛限制TI的板子)。另一方面也是给电协的后继者留下一些参考的

    2024年02月11日
    浏览(50)
  • 电赛MSP430F5529之超声波测距+OLED 显示(含主要代码)

    目录 前言 一、超声波介绍 二、部分代码 三、总结 哎,又双叒叕,电赛延期了,看起来像是遥遥无期,但是肯定要考虑大局,大家就继续抓紧时间学习知识,巩固自己的知识,更进一步。好了,今天主要是继承上一篇博文(OLED显示)写的,主要是写超声波测距的(US-015)

    2024年02月14日
    浏览(55)
  • 基于STM32F103的红外循迹 超声波避障小车

    单片机:stm32f103 传感器:普通红外(我用了4个) 超声波:HC-SR04 舵机:SG90 目标:可以循黑线(十字直行)、并避障 如果硬件配置和我一样以下代码可直接使用,用我配置的引脚即可。 亲测好用。 复制代码的同时请点个赞,多谢! .c .h .c .h .c .h .c .h 我的主函数有些啰嗦,

    2024年02月05日
    浏览(55)
  • 基于51单片机的红外自动避障小车(lunwen+任务书+开题+文献综述+翻译及原文+避障程序)

    目 录 1 绪论 1 1.1 课题研究背景及意义 1 1.2 国内外研究现状 1 1.2.1国外智能车辆研究现状 2 1.2.2发展前景 3 1.3 课题主要研究内容 4 2 工作原理及总体设计 5 2.1 工作原理 5 2.2 总体设计 5 3 硬件设计 7 3.1 小车车体设计 7 3.2 电源模块 7 3.3 电机驱动模块 8 3.4 电机模块 9 3.5 检测模块

    2023年04月24日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包