单片机小车防跌落_单片机小车 - CSDN
  • 基于51单片机的巡线小车

    千次阅读 2018-11-25 21:37:39
    #include <reg52.h> #define uint unsigned int #define uchar unsigned char uint time,left, right,pwm0,pwm1,pwm2,pwm3; sbit IN1 = P1^0; sbit IN2 = P1^1; sbit IN3 = P1^2;...sbit in...

    #include <reg52.h>
    #define uint unsigned int
    #define uchar unsigned char

    uint time,left, right,pwm0,pwm1,pwm2,pwm3;

    sbit IN1 = P1^0;
    sbit IN2 = P1^1;
    sbit IN3 = P1^2;
    sbit IN4 = P1^3;

    sbit infrared1=P0^5;
    sbit infrared2=P0^3;
    sbit infrared3=P0^1;    

    void speed(int left,int rihgt)//该函数的作用是给pwm0,pwm1,pwm2,pwm3赋值
    {
       if(left>=0)
       {
               pwm0=left;
            pwm1=0;
       }
       else
       {
            pwm0=0;
         pwm1=0-left;
       }
           
         if(rihgt>=0)
       {
            pwm2=left;
            pwm3=0;
      }
       else
       {
            pwm2=0;
         pwm3=0-left;
       }
    }
    void main()
    {
        TMOD =0x01;
        TH0=(65536-10)/256; 
        TL0=(65536-10)%256;
        EA=1;
        TR0=1;
        ET0=1;
        speed(0,0);

    while(1)    
       {


         if(infrared1==0&&infrared2==1&&infrared3==0||infrared1==1&&infrared2==1&&infrared3==0||infrared1==0&&infrared2==1&&infrared3==1)
         /*传感器1低电平(白)传感器2高电平(黑)传感器3低电平(白)*/
         /*传感器1高电平(黑)传感器2高电平(黑)传感器3低电平(白)*/
         /*传感器1低电平(白)传感器2高电平(黑)传感器3高电平(黑)*/
           {
                speed(30,30);//A逆时针 B逆时针
           }                                                               
         
         if(infrared1==1&&infrared2==0&&infrared3==0)
         /*传感器1高电平(黑)传感器2低电平(白)传感器3低电平(白)*/
          {
                  speed(26,-26); //A逆时针 B顺时针
           }
        
           if(infrared1==0&&infrared2==0&&infrared3==1)
           /*传感器1低电平(白)传感器2低电平(白)传感器3高电平(黑)*/
           {
                    speed(-26,26);//A顺时针 B逆时针

           }
      } 

    }

     void time_0(void) interrupt 1 
    {
        TH0=(65536-10)/256; 
        TL0=(65536-10)%256;
        time++;
        if(time<=150)
        {                                                 
        if(time<=pwm0)
            IN1=0;
            else
            IN1=1;

        if(time<=pwm1)
            IN2=0;
            else
            IN2=1;

        if(time<=pwm2)
            IN3=0;
            else
            IN3=1;

        if(time<=pwm3)
            IN4=0;
            else
            IN4=1;    
        }
        else
        time=0;
    }
     

    展开全文
  • 智能小车红外避障模块----使用教程

    千次阅读 2020-01-10 21:21:21
    博主本科期间做过两个智能小车 b站小车视频分享 今天就给·大家分享一下,何如在你的单片机或者树莓派上调用红外避障模块。 循迹模块介绍 循迹模块和红外避障模块类似。循迹模块的红外发射二极管不断发射红外线,当...

    博主本科期间做过两个智能小车,链接如下
    b站小车视频分享
    今天就给·大家分享一下,何如在你的单片机或者树莓派上调用红外避障模块。

    循迹模块介绍

    循迹模块和红外避障模块类似。循迹模块的红外发射二极管不断发射红外线,当放射出的红外线被物理反射时,被红外接收器接收,并输出模拟值。输出模拟值和物体距离以及物体颜色有关,可以通过两路或者多路红外传感器判断黑线的位置,从而控制小车运动。
    其中,wiringPi.h这个库是有用户说明的,通过这个文献,你就可以了解到下文用到的各种库的含义了。
    wiringPi用户说明

    #include<wiringPi.h>
    #define Trig 28
    #define Echo 29
    #define LEFT 27
    #define RIGHT 26
    #define BUFSIZE 512
    
    int SR;//右侧循迹模块
    int SL;//左侧循迹模块
    
    wiringPiSetup();
    pinMode(1,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    softPwmCreate(1,1,500);
    softPwmCreate(4,1,500);
    softPwmCreate(5,1,500);
    softPwmCreate(6,1,500);
    while(1)
    {
    //有信号为LOW,没有信号为HIGH
    sr=digutalRead(RIGHT);//有信号表明在白色区域,车子底盘上L3亮;没信号表明压在黑线上,车子底盘L3灭
    SL=digitalRead(LEFT);//有信号表明在白色区域,车子底盘上L2亮;没信号表明压在黑线上,车子底盘L2灭
    if(SL ==LOW&&SR==LOW){
    	printf("GO");
    	run();
    }
    else if(SL==HIGH&&SR==LOW){
    	printf("RIGHT");
    	left();
    }
    else if(SR==HIGH&&SL==LOW){
    printf("LEFT");
    }
    }
    

    运行c源码程序时:
    首先将此扩展版插在树莓派,电机驱动上的IN1、IN2、IN3、IN4分别接在扩展版的P18、P23、P24、P25.此时树莓派即可驱动电机。

    • 红外避障模块:
      运行红外避障程序时,左侧传感器OUT接P16,右侧传感器OUT接P12
      运行红外追踪程序时,左侧传感器OUT接P12,右侧传感器OUT接P16
    • 超声波传感器:
      传感器的VCC接5V、负极接GND、echo接P21,trig接P20
    • 红外循迹传感器:
      传感器的VCC接5V、负极接GND
      左侧传感器OUT接P16
      右侧传感器OUT接P12
      在这里插入图片描述
      我的论文如下
      我的论文
    展开全文
  • 智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下防坠落小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言写。...

            智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下防坠落小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言写。下面给大家看一下视频演示:

    视频连接  //v.youku.com/v_show/id_XMTcwNjAwNjMwOA==.html


    15.2. 实验目的

    研究智能小车结合红外探头寻迹前进。


    15.3. 实验材料(网上都能买到便宜)

    TPYBoard开发板1块(能跑python语言的开发板,小车的大脑)

    四路红外感应探头(小车的眼睛)

    数据线一根

    充电宝一个(给整个系统供电)

    智能小车底盘(包括驱动模块)

    杜邦线若干

    15.3.1. TPYBoard v102开发板

    MicroPython是在单片机上可以跑的Python,也就是说,你可以通过Python脚本语言开发单片机程序。 由剑桥大学的理论物理学家乔治·达明设计。和Arduino类似,但Micro Python更强大。 MicroPython开发板让你可以通过Python代码轻松控制微控制器的各种外设,比如LED等,读取管脚电压,播放歌曲,和其他设备联网等等。TPYBoard是TurnipSmart公司制作的一款MicroPython开发板,这款开发板运行很流畅,关键是价格很便宜。


    15.3.2. 四路红外感应探头

    1、当模块检测到前方障碍物信号时,电路板上红色指示灯点亮,同时OUT端口持续输出低电平信号,该模块检测距离2~60cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少。 2、传感器属于红外线反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。 3、 传感器模块输出端口OUT可直接与单片机IO口连接即可, 也可以直接驱动一个5V继电器模块或者蜂鸣器模块;连接方式: VCC-VCC;GND-GND;OUT-IO。 4、比较器采用LM339,工作稳定; 5、可采用3.3V-5V直流电源对模块进行供电。当电源接通时, 绿色电源指示灯点亮。


    15.3.3. 智能小车底盘

    双电机驱动,万向轮改变方向。这是实验中最常用到的小车底盘,使用差速的方法进行转弯。配合使用L298N电机驱动模块,使用方法很简单,不多做介绍。



    15.4. 寻迹原理15.4.1. 红外探头的安装

    小车寻迹的原理其实就光的吸收,反射和散射。在小车的前端有安装孔,使用螺丝把红外传感器固定在安装孔上。保持发射端和接收端都保持竖直向下。


    15.4.2. 返回信号的判断

    在上面已经说了,红外探头在检测到物体存在的时候,在OUT端会持续的输出低电平。那么调节调距电阻,调节到一个适合的检测距离。在小车行驶路面检测到物体的时候,说明是前面是有路的,不是悬空的。那么小车 保持直行。如果前方检测到没有返回,没返回说明没有检测到物体,妈就说明前面是没有路的,是悬空的,那么小车就先进行后退,在进行右转(也可以左转,也可以一次右转一次左转,这个比较随意。)。



    15.5. 硬件接线

    接线其实很简单四路红外探头接线很简单,虽然有十八根线,但是有十二根是三根三根的分成四组的,对应着很好接线,剩下的六根,VCC和GND不多说了,还有四根是直接接到单片结IO口上就可以的。L298N的接线更简单了,这里不多介绍。 上个简单的帮助理解的原理图 (其实我们做实验都是插线,不做PCB图和原理图的)。

    再上个实物图给大家看看


    15.6. 运行与调试

    制作完成后,剩下的就是该调试了,调试中应该注意细节和小车稳定性的优化。


    15.7. 代码编写

    再把我写的程序给大家看一下,有需要的可以看一下。

    源代码:

    import pyb
    from pyb import UART
    from pyb import Pin
    
    M0 = Pin('X1', Pin.IN)
    M1 = Pin('X2', Pin.IN)
    M2 = Pin('X3', Pin.IN)
    M3 = Pin('X4', Pin.IN)
    N1 = Pin('Y1', Pin.OUT_PP)
    N2 = Pin('Y2', Pin.OUT_PP)
    N3 = Pin('Y3', Pin.OUT_PP)
    N4 = Pin('Y4', Pin.OUT_PP)
    
    print('while')
    while True:
            print('while')
            if(M2.value()|M1.value()|M3.value()|M0.value()==0):
                    N1.low()
                    N2.high()
                    N4.high()
                    N3.low()
                    pyb.LED(2).on()
                    pyb.LED(3).off()
            elif(M2.value()|M1.value()|M3.value()|M0.value()==1):
                    N1.high()
                    N2.low()
                    N4.low()
                    N3.high()
                    pyb.delay(300)
                    N1.low()
                    N2.high()
                    N3.high()
                    N4.low()
                    pyb.delay(200)
                    pyb.LED(3).on()
                    pyb.LED(2).off()
    

      

    转载于:https://www.cnblogs.com/xxosu/p/8278364.html

    展开全文
  • 基于arduino的智能小车红外避障实验(带后退掉头避障),使用了超声波等模块,代码写得很详细,适合新手学习arduino。
  • 多功能智能小车

    2020-07-26 23:32:39
    小车控制系统以STC89C52单片机作为主控核心,主要实现黑线循迹,自动避障,防跌落,无线通信和机械手臂的控制。黑线循迹功能和防跌落功能是以红外探头作为传感器 ,自动避障功能则运用了超声波测距模块,根据所...
  • 咸鱼ZTMS实例—智能车

    咸鱼ZTMS实例—智能车配件

    ZTMS机器人套装,搭载ZHPB大功率板实现寻迹,避障功能。开源的代码加上丰富的传感器接口,使同学们在搭建机器人的过程中,了解人工智能。并可以通过本产品进行自己的创意智造之旅,增强同学们的创造力和动手能力。

    ZTR1.1物联开发板说明
    在这里插入图片描述

    ZTMSPython开发板固件安装

    ZTZHPB大功率板说明
    在这里插入图片描述

    序号 名称 简要说明
    1 电机1接口 连接左侧直流电机
    2 电机2接口 连接右侧直流电机
    3 5P插槽 连接ZTMS物联网开发板
    4 船型开关 用于开启/关闭ZTZHPB大功率板
    5 电源线 连接电池(黑线对准电池黑线连接

    1.版型尺寸4.6*8.6
    2.支持PWM信号控制,可驱动电机正反转,可调电机转速
    3.适合场合多样,支持大功率输出。
    4.同时支持2电机驱动
    5.电源接口XHB端子接线压线方便使用 驱动板涉及到的芯片介绍 74LV245是低压硅栅CMOS器件,与74HC245和74HCT245针脚和送/接收(DIR)输入控向而输出使能(OE)输入则可实现轻松级联。针脚OE控制输出功能兼容4LV245是位元收发器,在发送和接收方向上都具有非反相3态总线兼容输出。因此总线可以得到有效隔离。

    MIC5219 提供可调或固定输出电压,采用节省空间的SOT-23-5和MM88引脚电源MSOP封装。

    ZTV电源板
    在这里插入图片描述
    ZT红外寻迹
    在这里插入图片描述

    规格参数:
    1.工作电压:DC 3.3V-5V
    2.工作电流:尽量选择1A以上电源供电
    3.工作温度:-10℃—+50℃
    4.安装孔径:M3螺丝
    5.检测距离:1mm至60 CM可调,距离越近性能越稳定,白色反射距离最远。
    6.尺寸大小:中控板4.4mm×4.0mm×12mm(长×宽×高)
    小板向前25mm×12mm×12mm(长×宽×高)
    7.输出接口:6线制接口(1234为4路信号输出端,+为正电源,-为负电源也就是地线)
    8.输出信号:TTL电平(可直接连接单片机I/0号,感应到传感器反射回来的红外光时,红指示灯亮,输出低电平;没有红外光时,指示灯不亮,输出高电平。)
    应用范围:
    1.智能小车或机器人寻线(包括黑线和白线),沿着黑线路径走,又称寻迹。
    2.智能小车避悬崖,防跌落。
    3.智能小车避障碍

    超声波测距模块
    在这里插入图片描述

    规格参数:
    工作电压:DC5V 静态电流:小于2mA 电平输出:高 5V 低 0V 感应角度:不大于15度
    探测距离:2cm–45cm 精度:0.2cm 接线方式:VCC、Trig(控制端) Echo(接收端) GND

    应用范围: 超声波模块主要用于智能循迹、灭火、遥控小车,机器人躲避障碍物等。

    亚克力结构板
    在这里插入图片描述
    SP12-FL万向球M8螺杆滚珠
    在这里插入图片描述
    7.4V锂电池
    在这里插入图片描述

    14GA-N20减速电机
    在这里插入图片描述

    参数
    直径 12MM
    机身不含轴长 26MM
    输出轴长 10MM
    电压范围 DC1.5-12.0V

    智能车安装说明:点击查看
    智能车接线说明:点击查看
    智能车程序说明:点击查看

    展开全文
  • 目录 产品基本介绍 产品基本FAQ 与开源硬件的基本匹配 其他(I²C版参考方案) 应用方案 1、产品基本介绍 ...TFmini 是一款小型激光雷达模组。主要实现实时、无接触式的距离测量功能,具有测量准确、 ...
  • TI 杯2019年全国大学生电子设计竞赛题A-电动小车动态无线充电系统 TI 杯2019年全国大学生电子设计竞赛题B-巡线机器人 TI 杯2019年全国大学生电子设计竞赛题C-线路负载及故障检测装置 TI 杯2019年全国大学生电子...
  • 咸鱼ZTMR实例—寻迹模块 主控板:ZTMR1.1python开发板 寻迹模块 ZT红外寻迹 规格参数: 1.工作电压:DC 3.3V-5V 2.工作电流:尽量选择1A以上电源供电 3.工作温度:-10℃—+50℃ 4.安装孔径:M3螺丝 ...
  • 本节书摘来异步社区《开源硬件创客——15个酷应用玩转树莓派》一书中的第1章,第1.2节,作者:朱铁斌,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.2树莓派基本介绍 正所谓“既要仰望星空,又要脚踏实地...
  • 本节书摘来自异步社区《开源硬件创客——15个酷应用玩转树莓派》一书中的第1章,第1.2节,作者 朱铁斌,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 树莓派基本介绍 正所谓“既要仰望星空,又要脚踏...
1
收藏数 13
精华内容 5
关键字:

单片机小车防跌落