首页/作品列表/智能避障变速小车
智能避障变速小车
17420 0
主要内容

团队介绍

组长 彭柯(硬件制作组装)

组员 曹选坤(代码设计)
组员 王嘉铭(PPT制作)

作品设计理念

一.项目背景
随着信息化技术的不断普及,智能机器人越来越多的进入到人们的生活之中,并且迅速的改变着人们的生活方式。小到智能玩具,大到国防工业,电子,冶金,航天开发等各个领域,都缺少不了智能机器人的身影。用机械来代替人工劳动以此来解放生产力一直是人类的梦想,并且我们一直在为之努力。


二.创意想法
生活中有不少家用或公用机器人能帮够助人们完成许多工作,他们的特点是无需人的控制就能自动完成任务,而这就需要一个最基础的功能:
能够感知并躲避前方的障碍物。
以此为出发点,我们的课题应运而生!

作品展示

连接好的基本原件

成品展示

具体设计方案

1. 小车由4个N20减速电机驱动4个车轮前进;
2. 车头左右各一个灰度传感器检测前方障碍物;
3. 电位器可以调整小车行驶速度;
4. OLED 屏幕显示灰度传感器传出的值以及小车当前速度;
5. 4个LED彩灯显示正在转弯的方向。

功能实现

当小车在行驶过程中,遇到障碍物(一侧灰度传感器检测值小于800)时,小车另一侧车轮反向旋转,从而实现转向避障。


代码块及代码展示

#include <Microduino_Motor.h>

float var_spd;

int var_grey;

float var_t;

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);


ColorLED strip_8 = ColorLED(16, 8);


ColorLED strip_4 = ColorLED(16, 4);


ColorLED strip_2 = ColorLED(16, 2);


ColorLED strip_12 = ColorLED(16, 12);


Motor MotorLeft(MOTOR0_PINA, MOTOR0_PINB);

Motor MotorRight(MOTOR1_PINA, MOTOR1_PINB);


void setup()
{
 
   strip_8.begin();


    strip_4.begin();


    strip_2.begin();


    strip_12.begin();


    MotorLeft.begin();

    MotorRight.begin();
 
   var_grey=800;


}


void loop()
{
    
var_spd=((analogRead(A6))*2)/10;
 
   var_t=1.5-((var_spd)/180);
   
 u8g.setFont(u8g_font_9x15);
   
 u8g.firstPage();
    
do
    {

 
       u8g.setPrintPos(0, 10);
       
       u8g.print((analogRead(A2)));


 
       u8g.setPrintPos(90, 10);
 
       u8g.print((analogRead(A0)));


 
       u8g.setPrintPos(50, 30);
 
       u8g.print((var_spd));


 
       u8g.setPrintPos(50, 50);
 
       u8g.print((var_t));



    }
    while (u8g.nextPage());

 
   strip_8.setPixelColor(0,0xffffff);

 
   strip_8.show();
   
 strip_4.setPixelColor(0,0xffffff);

   
 strip_4.show();
   
 strip_2.setPixelColor(0,0x000000);

  
  strip_2.show();
   
 strip_12.setPixelColor(0,0x000000);

   
 strip_12.show();
   
 if(((((analogRead(A0)) > (var_grey))) && (((analogRead(A2)) > (var_grey)))))
    {
 
       MotorLeft.setSpeed(var_spd);

        MotorRight.setSpeed(0-(var_spd));

 
   }
    else
    {

        if(((((var_grey) > (analogRead(A0)))) && (((analogRead(A2)) > (var_grey)))))
       
 {
            MotorLeft.setSpeed(var_spd);
    
        MotorRight.setSpeed(var_spd);
   
         strip_4.setPixelColor(0,0xffbb00);

       
     strip_4.show();
      
      delay((var_t)*1000);

   
     }
     
   if(((((var_grey) > (analogRead(A2)))) && (((analogRead(A0)) > (var_grey)))))
        {
          
  MotorLeft.setSpeed(0-(var_spd));
  
          MotorRight.setSpeed(0-(var_spd));
 
           strip_8.setPixelColor(0,0xffc300);

  
          strip_8.show();
     
       delay((var_t)*1000);

       
 }
       
 if(((((var_grey) > (analogRead(A2)))) && (((var_grey) > (analogRead(A0))))))
       
 {
            MotorLeft.setSpeed(0-(var_spd));
 
           MotorRight.setSpeed(0-(var_spd));
  
          strip_12.setPixelColor(0,0xff0000);

  
          strip_12.show();

            strip_2.setPixelColor(0,0xff0000);

   
         strip_2.show();
  
          delay((var_t)*1000);

 
       }

  
  }


}

代码展示
暂无数据!
附件下载
  • 资料展示
  • car dejavu.zip
0
大牛,别默默的看了,快登录帮我点评一下吧!

立即注册