精华内容
下载资源
问答
  • 超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计超声波避障小车设计...
  • 避障小车.zip

    2019-07-12 21:16:53
    避障小车
  • 龙源期刊网http://www.qikan.com.cn基于树莓派的超声波避障小车作者:孙智勇戴文翔程文龙来源:《电脑知识与技术》2018年第30期摘要:如今越来越...该文则介绍一个相对简单些的利用超声波来做避障小车,以树莓派为...

    龙源期刊网

    http://www.qikan.com.cn

    基于树莓派的超声波避障小车

    作者:孙智勇

    戴文翔

    程文龙

    来源:《电脑知识与技术》

    2018

    年第

    30

    摘要:如今越来越多人走出课本不拘泥于文字之上,他们更多的边做边学,树莓派就是其

    中一个很好的例子,不少人会去拿树莓派去控制小灯,或通过树莓派来实现网页对小车的控

    制,更有甚者用树莓派来做智能家居。该文则介绍一个相对简单些的利用超声波来做避障小

    车,以树莓派为核心通过它

    L298n

    的控制来控制小车,利用超声波传感器来实时监测小车与障

    碍物之间的距离,利用算法来实现避障

    关键词:超声波传感器;

    Raspberry

    ;树莓派

    中图分类号:

    TP3

    文献标识码:

    A

    文章编号:

    1009-3044

    (

    2018

    )

    30-0206-02

    1

    硬件组成

    (

    1

    )避障小车硬件组成包括:小车底盘、

    4

    个车轮、四个直流电机、超声波测距传感器

    模块、电源盒、移动电源(也可直接通过

    5v

    电源接口直接使用)、无线网卡、树莓派。注:

    如果使用的板子是

    3

    个轮子的,则

    3

    个车轮中,两个前轮由直流电机直接驱动,后轮选择万向

    轮。

    (

    2

    )电源部分:包括四节

    1.5V

    (

    5

    号)电池,

    5000

    毫安移动电源。四节

    1.5V

    (

    5

    号)电

    池为

    L298n

    提供

    6V

    电压,

    5000

    毫安移动电源为树莓派提供稳定的

    5V

    电压。

    (

    3

    )驱动部分:包括小车底盘、

    L298n

    电机驱动、直流电机(

    2/4

    个)。

    3

    轮小车需要

    L298n

    驱动前轮,配合万向轮实现前进、后退以及左右转向。

    (

    4

    )主控制部分:树莓派。树莓派通过

    L298n

    控制直流电机转动,全方向达到移动的目

    的。树莓连接超声波测距模块,以达到实时测量与障碍物的距离。从而可以做到小车再碰到障

    碍物之前能按预设避让方式进行避让,最终实现智能避让。

    (

    5

    )传感器部分:超声波测距传感器模块连与树莓派,正常工作时,超声波测距传感器

    模块的工作电压为

    5V

    左右,电压会下降

    0.1V

    左右。传感器通过向空中发送超声波脉冲并测量

    反弹所需的时间来工作。该值可以用于计算脉冲行进的距离进而产生信号,是树莓派执行避让

    语句。

    注意点:找到距离的计算依赖于声音的速度,这随温度而变化。脚本根据预定义的温度计

    算要使用的正确值。如果需要可以更改此值,或者使用温度传感器动态测量该值。

    2

    软件编译

    展开全文
  • 超声波避障小车

    2019-03-16 13:30:57
    自己设计的自动避障小车
  • 龙源期刊网http://www.qikan.com.cn基于树莓派的红外避障小车作者:戴文翔孙智勇

    龙源期刊网

    http://www.qikan.com.cn

    基于树莓派的红外避障小车

    作者:戴文翔

    孙智勇

    展开全文
  • 红外避障小车

    2019-04-22 20:11:01
    红外避障小车元层序1的 推荐大家下载使用
  • 寻迹避障小车简单避障程序
  • 超声波避障小车.rar

    2021-04-25 10:59:49
    超声波避障小车设计
  • stm32 超声波避障小车2

    2017-12-14 18:59:09
    stm32 超声波避障小车2stm32 超声波避障小车2stm32 超声波避障小车2stm32 超声波避障小车2
  • 智能避障小车 一、开发环境 ArduiNo平台 网盘地址:https://pan.baidu.com/s/1w3MHxkCUBOlbqKRxRhlwbQ 提取码:o6gk 硬件 板载无线网卡 支持AP(路由), STA(上网设备)模式 二、知识点 1.串口通信 Serial.begin...

    智能避障小车

    一、开发环境及硬件
    ArduiNo平台
    在这里插入图片描述
    网盘地址:https://pan.baidu.com/s/1w3MHxkCUBOlbqKRxRhlwbQ
    提取码:o6gk
    硬件
    在这里插入图片描述
    WeMos D1
    板载无线网卡
    支持AP(路由), STA(上网设备)模式
    特性

    1. 基于ESP-8266EX
    2. Arduino兼容,使用rduino IDE来编程
    3. 11 x I/O 引脚
    4. 1 x ADC 引脚(输入范围0-3.3V)
    5. 板载5V 1A开关电源(高输入电压24V)

    在这里插入图片描述
    L9110s步进电机
    1.模块供电电压2.5V-12V
    2.VCC接2.5V-12V电压
    3.GND接GND
    4.IA1\IB1\IA2\IB2外接单片机IO口
    在这里插入图片描述
    遥控小车
    在这里插入图片描述
    超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一一个用于接收。电路板上有4个引脚: VCC (正极)、Trig (触发)
    Echo (回应)、GND (接地)
    二、硬件准备
    (一)、拆车
    在这里插入图片描述
    仅留两个红点处两根黑粗线
    (二)、连线
    1.超声波传感器模块
    VCC ---- Wemos 5v
    GND ---- Wemos GND
    Trig–Wemos D8
    Echo–D2
    2. L9110s步进电机
    VCC— Wemos 5v
    GND—Wemos GND
    B-1A—D7
    B-2A —D6
    A-1A—D4
    A-1B—D3
    三、Wemos 代码

    //定义接口
    #define Dong1 D6
    #define Dong2 D7
    #define Zhuan1 D3
    #define Zhuan2 D4
    #define Echo D2
    #define Trig D8
    #include <ESP8266WiFi.h>
    
    char* ssid = "WiFi热点名称";            //“wifi热点名称”
    char* passwd = "WiFi密码";         //”wifi热点密码”
    
    int port = 8888;  //端口号
    WiFiServer server(port); // 设置服务器端口号
    
    void initWifiSta()
    {
      WiFi.mode(WIFI_STA);         // 设置STA模式
      WiFi.begin(ssid, passwd);   //连接网络
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
      }
      Serial.println(WiFi.localIP());  //通过串口打印wemos的IP地址
    }
    
    //初始化函数
    void initXiaoche19220()
    {
      //定义为输出引脚
      pinMode(Dong1, OUTPUT);
      pinMode(Dong2, OUTPUT);
      pinMode(Zhuan1, OUTPUT);
      pinMode(Zhuan2, OUTPUT);
    }
    
    //前进
    void QianJin()
    {
      digitalWrite(Dong1, HIGH);
      digitalWrite(Dong2, LOW);
    }
    
    //后退
    void Houtui()
    {
      digitalWrite(Dong1, LOW);
      digitalWrite(Dong2, HIGH);
    }
    
    //右转
    void Youzhuan()
    {
      digitalWrite(Zhuan1, HIGH);
      digitalWrite(Zhuan2, LOW);
    }
    
    //左转
    void Zuozhuan()
    {
      digitalWrite(Zhuan1, LOW);
      digitalWrite(Zhuan2, HIGH);
    }
    
    //方向摆正
    void Zheng()
    {
      digitalWrite(Zhuan1, LOW);
      digitalWrite(Zhuan2, LOW);
    }
    
    //停止
    void Stop()
    {
      digitalWrite(Dong1, LOW);
      digitalWrite(Dong2, LOW);
    }
    //获取方波在传输过程中的时间
    long getTime()
    {
      digitalWrite(Trig, HIGH);
      delayMicroseconds(10);
      digitalWrite(Trig, LOW);
      return pulseIn(Echo, HIGH);
    }
    void initChaoShengBo()
    {
      pinMode(Trig, OUTPUT);
      pinMode(Echo, INPUT);
    }
    void setup() {
      // put your setup code here, to run once:
      initXiaoche19220();
      Serial.begin(115200);//开启串口
      //启动连接WIFI
      initWifiSta();
      server.begin();//启动服务器
      initChaoShengBo();//初始化超声波
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      char cmd;//定义存放数据的变量
      int mark = 0;//用作遇到障碍物时只做后退动作的标记变量
      //定义获取距离变量
      long dis;
    
      WiFiClient client = server.available();//服务初始化
      while (client.connected()) { //查看是否有客户端接入
        while (client.available() > 0) //接入后查看是否有数据传入
        {
          cmd = client.read();
          dis = getTime() / 58;
          if (dis < 10) {
            Houtui();
            delay(200);
            Stop();
            mark = 1;
          } else {
            mark = 0;
          }
          if (mark == 0) {
            switch (cmd)
            {
              case 'q':
                QianJin();
                break;
              case 'h':
                Houtui();
                break;
              case 'z':
                Zuozhuan();
                break;
              case 'y':
                Youzhuan();
                break;
              case 's':
                Stop();
                break;
              case 'd':
                Zheng();
                break;
            }
          }
        }
      }
    }
    
    展开全文
  • stm32超声波避障小车

    2020-12-28 21:55:38
    舵机+超声波避障小车
  • stm32 超声波避障小车1

    2017-12-14 09:20:17
    stm32 超声波避障小车1stm32 超声波避障小车1stm32 超声波避障小车1
  • stm32 避障小车

    2019-02-14 17:33:22
    使用stm32实现的智能避障小车,代码详细,欢迎大家下载
  • 循迹避障小车

    2015-11-03 11:49:43
    避障小车,这是一款比较简单的程序资料可供使用
  • 51智能避障小车

    2018-07-02 15:07:02
    基于51单片机的避障小车的源码,可以实现红外避障功能。车头前方左右需用两个红外传感器。
  • 简单的避障小车

    2018-04-01 12:42:24
    超声波避障小车,左右两个超声波传感器,两个电机驱动
  • 避障小车

    2014-04-04 10:29:30
    智能超声波避障小车的设计与制作
  • 红外蔽障模块 避障小车 避障传感器 黑白线识别 距离可调Arduino红外蔽障模块 避障小车 避障传感器 黑白线识别 距离可调Arduino
  • 智能避障小车开发

    2018-04-05 18:16:56
    资源包含了基于51单片机的智能避障小车兼红外控制的完整开发代码。
  • (已经优化过的带调速功能)超声波摇头避障小车代码 mixly代码 (已经优化过的带调速功能)超声波摇头避障小车代码,比原来的版本更加的稳定和实用
  • 超声波避障小车程序

    2018-03-02 10:30:29
    超声波避障小车总程序,包括舵机,超声波,L298N,电机每一个模块的详细程序,加上注解
  • 基于arduino的避障小车

    2019-04-11 16:39:59
    避障小车的制作方法大概有两种:一个是利用超声波制作,一个是光电开关(避障模块),而跟随小车便一个是利用超声波和光电开关配合制作,一个是光电开关(避障模块)制作。
  • 基于STM32F103C8T6的循迹避障小车完整制作过程 由于本人的一个小项目,要做一个基于STM32的循迹避障小车,前后花了约1周的时间,这个过程种也参考了很多大神分享的资料,学到很多的东西。但是资料都比较分散,有些...
    基于STM32F103C8T6的循迹避障小车完整制作过程
    

    本文适合小白观看
    由于本人的一个小项目,要做一个基于STM32的循迹避障小车,前后花了约1周的时间,这个过程中也参考了很多大神分享的资料,学到很多的东西。但是资料都比较分散,有些东西也不好找,在这里就想把自己制作小车的一个整体过程记录分享一下,希望能够帮到你。
    我自己也算是一个小白,之前有做过arduino的循迹避障小车,对于stm32也只是看过一点视频,还不算很熟练,这次制作也相当于学习stm32了,所以本文适合刚入门的同学参考,也虚心接受各大神的指导。

    如果你一点基础都没有,建议先看下原子哥F1开发板的视频,他们的资料都是开源的,看完你才有基础可以做这个小车。
    资料链接: 正点原子资料下载.

    话不多说,下面开始制作小车了
    

    **我的讲解的流程是:
    //第123点是基本的设置;第456点是做循迹小车;第789点是做避障小车。
    1,罗列需要的硬件
    2,如何使用STM32F103C8T6(编写和烧录程序)
    3,如何使电机动起来(使车子前进后退和转弯)

    4,如何通过pwm调整电机的转速(调节小车的快慢)
    5,如何设置IO口读取循迹模块的信号(检测黑线)
    6,完成循迹小车的制作(编写循迹主函数)

    7,如何用使用pwm让舵机旋转到相应的角度
    8,如何配置定时器使用超声波模块测距
    9,完成避障小车的制作
    **

    我这一周差不多每天花一点时间挨个解决这些问题,就完成了小车的制作,还是很轻松的
    

    一,制作小车需要的硬件

    1 STM32F103C8T6最小系统板
    2 4个轮子的智能小车底板
    3 L298N电机驱动模块
    4 舵机SG90云台和超声波模块HC-SR04
    5 2节18650电池
    6 TCRT5000循迹模块
    7 面包板和杜邦线若干
    8 jlink ob下载器
    9 5v转3.3v DC-DC模块
    10 0.96寸 iic通信的oled屏幕(可选)

    以上就是我制作小车所用到的硬件了,当然其它的一些工具像电烙铁,胶枪啥的都是必备品我就不说了
    它们大概长这样(淘宝都搜得到):
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    二,如何使用STM32F103C8T6(编写和烧录程序)

    拿到这块最小系统板,怎么用MDK来给它写程序驱动,因为我也是第一次实践用stm32,在用这块板子时也走了一些弯路,下面说说我遇到的几个问题,一般解决了这几个问题,正常的编写和烧录程序是没有问题的。

    1,keil4编写的工程在MDK5上编写警告

    就是用老版本写的工程在MDK5上打开会有这么个提示:
    在这里插入图片描述
    解决方法很简单,根据上面的提示来做就行了。我是直接下载了Legacy Support这个支持包,安装完就可以直接用MDK5编程了,具体操作可以参考下面这位博主的介绍:
    链接: ARM-IDE MDK5不兼容MDK工程.

    2,如何使用SWD模式下载程序

    我们可以看到,手上的这块F1最小系统板有4根向外支出来的引脚:SWIO,SWCLK,3V3,GND(可能引脚的名字被简化成了IO,CLK,G,V3,他们是一样的)。使用SWD 模式下载程序,只需要SWIO,SWCLK这两根线就可以完成程序下载了,很方便。
    我们将最小系统板的这4个引脚连接到jlink ob下载器对应的这4个引脚这里,再通过下载器与电脑连接,再在MDK5上进行相应的设置就可以下载了。
    就像下面这样连接,usb口接上电脑就行。
    在这里插入图片描述
    在MDK上需要进行以下设置:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击上图的Settings进入下图的选项:
    此时要把板子连接上电脑才看得到界面。
    在这里插入图片描述
    在这里插入图片描述

    3,STM32F103C8T6设置跳线帽为FLASH模式

    把程序下载到flash是为了掉电再上电后程序任然可以运行。
    在这里插入图片描述
    我是将两个跳线帽都放到了0这边,设置为FLASH模式。

    好了,到此为止你应该可以正常的编写和下载程序了,最开始编写程序最好拿一个卖家给的测试工程改写,因为你拿别的工程可能一编译就出现一大堆错误,很打击自信心。你可以先尝试写一个将某个IO口拉高的程序,下载进板子里,再用万用表测一下那个引脚的电平看是不是3.6v左右,如果是的话,就说明你已经会用这块板子了,可以进行下一步的程序编写了。
    比如这段程序:

     int main(void)
    {
        GPIO_InitTypeDef  GPIO_InitStructure;	
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIO的外设时钟
    
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1;//选择要用的GPIO引脚
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置引脚模式为推免输出模式						 
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置引脚速度为50MHZ         
        GPIO_Init(GPIOA, &GPIO_InitStructure);//调用库函数,初始化GPIO		
    	GPIO_SetBits(GPIOA,GPIO_Pin_1);   //将GPIOA1拉高
    }
    

    编译后烧录到板子上,测试A1引脚的电压为3.6V就ok。
    我这里上传了卖家给的最小系统板测试资料:
    链接: https://download.csdn.net/download/weixin_43924857/11647457.

    三,如何使电机动起来(使车子前进后退和转弯)

    要想让电机动起来,就需要电机驱动了,如下:
    在这里插入图片描述

    我这里只讲一下这个驱动怎么接线,以及它的工作方式和使用方法等,会用就行,要看更详细的介绍可以看这位博主的博客:链接: https://blog.csdn.net/singular_man/article/details/87285597.

    1,这个驱动怎么用呢?

    我们只需要做以下操作即可:
    1,12v输入和电源地接2节18650供电
    2,单片机IO控制输入接最小系统版的4个IO口,待会我们再写程序控制这几个IO口
    3,OUT1和OUT2是一对,分别接小车一侧电机两级,至于电机的两级具体该怎么接,等后面我们设置完程序运行后,要使它们转动的方向一直就行了。OUT3和OUT4同理。
    4,我们通过IN1,IN2,IN3,IN4分别控制OUT1,OUT2,OUT3,OUT4。其中IN1,IN2,IN3,IN4与单片机连接,设置他们的高低电平即可完成对电机驱动简单的控制。

    它的工作方法是这样的:
    首先我们将OU1和OUT2分别接电机的两极,这时我们控制单片机使输入端IN1接入高电平,则相应的OUT1端也就变为高电平;将IN2接入低电平后相应的OUT2也就变为低电平,OUT1和OUT2间有了电位差,这样电机就能转起来了,很简单。

    2,如何写程序使小车前进后退和转弯呢?

    设计思路就是设置4个IO口的高低电平
    我的IO口与电机驱动是这样连接的:A1–IN1;A2–IN2;A3–IN3;A4–IN4;
    再看下面这个代码,我简单的写了一个前进和一个左转函数

    void car_go(void);
    void car_left(void);
     int main(void)
    {
    	
        GPIO_InitTypeDef  GPIO_InitStructure;	
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIO的外设时钟
    
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;//选择要用的GPIO引脚
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置引脚模式为推免输出模式						 
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置引脚速度为50MHZ         
        GPIO_Init(GPIOA,&GPIO_InitStructure);//调用库函数,初始化GPIO
    	
    	car_go();//前进
    
    }
    
    
    void car_go(void)  //前进
    {
        GPIO_SetBits(GPIOA,GPIO_Pin_1);   //控制左边轮胎
    	GPIO_ResetBits(GPIOA,GPIO_Pin_2);
    	
    	GPIO_SetBits(GPIOA,GPIO_Pin_3);    //控制右边轮胎
    	GPIO_ResetBits(GPIOA,GPIO_Pin_4);
    }
    
    void car_left(void)  //左转
    {
        GPIO_SetBits(GPIOA,GPIO_Pin_1);   //控制左边轮胎
    	GPIO_ResetBits(GPIOA,GPIO_Pin_2);
    	
    	GPIO_ResetBits(GPIOA,GPIO_Pin_3); //控制右边轮胎
    	GPIO_SetBits(GPIOA,GPIO_Pin_4);   
    	
    }
    

    由于主函数里调用的是car_go函数,这个代码编译下载后车子就会向前走,如果你的轮子转反了的话,简单的方法就是把电机的正负极换个位置接就行了。

    好了,这篇文章已经很长了,今天就先码到这里,整个完整过程会分为上中下三篇,剩下两篇过两天慢慢码完再发。

    下面是我所制作的小车成品图,因为模块都是独立的,所以线比较多。

    在这里插入图片描述

    下面是我写的已经测试完成了的工程,主函数里有两个循环,分别是循迹和避障循环,他们是单独工作的,引用掉一个再打开另一个就行。
    https://download.csdn.net/download/weixin_43924857/11650617
    当然循迹和避障的策略都是我自己为了完成任务写的,比较简单,能够实现循迹避障功能,到后面你已经会操作各个模块后,自己写个更好的循迹避障策略是完全没有问题的,或者是用我的工程,里面的各模块函数也都写好了,直接调用就行。

    下面是中篇地址:
    基于STM32F103C8T6的循迹避障小车完整制作过程(详细)----中篇(第456点)

    工程文件已经放到百度网盘:
    链接:https://pan.baidu.com/s/1VSRC418Tz8uLCF8cjrIY1g
    提取码:7m9y

    展开全文
  • 智能避障小车

    2014-06-05 20:10:52
    智能避障小车,的原理图,制作,还是蛮全面的啦,可以学学,下载吧!
  • STM32循迹避障小车制作代码详解(简单实现版)

    万次阅读 多人点赞 2018-11-16 11:29:05
    写在最前:最近由于需要制作了一个循迹避障小车,制作比较简单但是还是出现了很多bug,因此在博客中记录一下,希望对后期需要制作的能有所帮助,小车由PWM信号+L293D驱动。(二轮驱动,第三轮为自由轮) 要求:小车...
  • 51单片机 红外循迹 红外避障小车 双功能小车 把红外循迹和红外避障整合到了一起 可以学习一下
  • 本文主要讨论了基于单片机的智能循迹避障小车的设计。智能自动循迹制导系统在驱动电路的基础上,实现自动跟踪汽车导线,而智能避障是使用红外传感器测距系统来实现功能来规避障碍。智能寻光避障小车是一种采用了多种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,584
精华内容 633
关键字:

避障小车