wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4329|回復: 3
打印 上一主題 下一主題
收起左側

基于Arduino UNO的智能自主避障小車和藍牙遙控小車制作 代碼與教程

[復制鏈接]
跳轉到指定樓層
樓主
ID:1012298 發(fā)表于 2022-4-19 12:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Hello,大家好!今天我要給大家分享一下我近期制作的一個arduino的小項目----智能避障小車。之前在某站上無意間刷到某位博主制作的一款智能避障小車,覺得很有意思,便打算自己也只做一個來玩玩,于是便寫了一款我自己理解的避障小車,在此基礎上,我還增加了藍牙遙控功能,二者可以相互切換,提高其趣味性。和其他的避障小車類似,這款也是超聲波來進行距離避障,代碼相對其他大神來說顯得比較表層,但這也相對來說顯得更加好理解一些,廢話不多說,看代碼!!!

一、代碼

/*********************************/                  //調(diào)取藍牙模塊庫,調(diào)取伺服電機庫

#include <SoftwareSerial.h>                          //調(diào)取庫函數(shù)
#include <Servo.h>                                   //聲明調(diào)用Servo.h庫
SoftwareSerial BT(A0, A1);                           //新建對象,接收腳為A0--TXD,發(fā)送腳為A1--RXD
Servo servo;                                         //創(chuàng)建一個舵機對象

/*********************************/                  //定義驅(qū)動模塊串口及變量

int TrigPin = 2;                                     //發(fā)出超聲波
int EchoPin = 3;                                     //收到反射回來的超聲波                                                                                                   
int Input1 = 4;                                      //定義uno的pin5向Input1輸出
int Input2 = 5;                                      //定義uno的pin5向Input2輸出
int Input3 = 6;                                      //定義uno的pin5向Input3輸出
int Input4 = 7;                                      //定義uno的pin5向Input4輸出
int pos = 118;                                       //創(chuàng)建變量,存儲從模擬端口讀取的值
float cm;                                            //因為測得的距離是浮點型的,單位為cm
int xuan;                                            
int choice;                                          //小車功能選擇

/********************* ************/                 //控制函數(shù)部分

void stop()                                          //小車停止
{
   digitalWrite(Input1,LOW);                         //給低電平
   digitalWrite(Input2,LOW);                         //給低電平
   digitalWrite(Input3,LOW);                         //給低電平
   digitalWrite(Input4,LOW);                         //給低電平
   delay(50);  
}

void forward()                                       //小車前進
{
   digitalWrite(Input1,HIGH);                        //給高電平
   digitalWrite(Input2,LOW);                         //給低電平
   digitalWrite(Input3,HIGH);                        //給高電平
   digitalWrite(Input4,LOW);                         //給低電平
   delay(50);
}

void backward()                                      //小車后退
{
   digitalWrite(Input1,LOW);                         //給低電平
   digitalWrite(Input2,HIGH);                        //給高電平
   digitalWrite(Input3,LOW);                         //給低電平
   digitalWrite(Input4,HIGH);                        //給高電平
   delay(50);  
}

void turnleft()                                      //小車左轉
{
   digitalWrite(Input1,HIGH);                        //給高電平
   digitalWrite(Input2,LOW);                         //給低電平
   digitalWrite(Input3,LOW);                         //給低電平
   digitalWrite(Input4,HIGH);                        //給高電平
   delay(50);  
}

void turnright()                                     //小車右轉
{
   digitalWrite(Input1,LOW);                         //給低電平
   digitalWrite(Input2,HIGH);                        //給高電平
   digitalWrite(Input3,HIGH);                        //給高電平
   digitalWrite(Input4,LOW);                         //給低電平
   delay(50);
}

void Left()                                          //舵機左轉
{
   while(pos < 180)
    {
      pos++;
      servo.write(pos);                              //寫入舵機角度      
      delay(15);                                     //延時使舵機轉到相應角度   
    }
}

void Right()                                         //舵機右轉
{
   while(pos > 60)
    {
      pos--;
      servo.write(pos);                                 
      delay(15);                                       
    }
}

void Ranging()                                       //測量距離
{
   digitalWrite(TrigPin, LOW);                       //低電平發(fā)一個短時間脈沖去TrigPin
   delayMicroseconds(2);                             //delayMicroseconds在更小的時間內(nèi)延時準確,delayMicroseconds是毫秒級計時單位
   digitalWrite(TrigPin, HIGH);                      //通過這里控制超聲波的發(fā)射
   delayMicroseconds(10);                           
   digitalWrite(TrigPin, LOW);                       //通過這里控制停止超聲波的發(fā)射
   cm = pulseIn(EchoPin, HIGH) / 58.0;               //將回波時間換算成cm ,其中pulseIn(接收信號引腳,高低電平)函數(shù)用來接收反射回來的聲波
   cm = (int(cm * 100.0)) / 100.0;                   //保留兩位小數(shù)
   Serial.print("Distance:");
   Serial.print(cm);
   Serial.print("cm");
   Serial.println();
   //以上四句在串口監(jiān)視器中輸出
   delay(1000);
}

/****************************************************/

void setup()
{
   Serial.begin(9600);                               //與電腦串口相連,波特率為9600
   servo.attach(9);                                  //9號引腳輸出電機控制信號,僅能使用PWM引腳
   pinMode(Input1, OUTPUT);                          //Input1引腳設置為輸出模式
   pinMode(Input2, OUTPUT);                          //Input2引腳設置為輸出模式
   pinMode(Input3, OUTPUT);                          //Input3引腳設置為輸出模式
   pinMode(Input4, OUTPUT);                          //Input4引腳設置為輸出模式
   pinMode(TrigPin, OUTPUT);                         //發(fā)出超聲波串口設置為輸出
   pinMode(EchoPin, INPUT);                          //接受超聲波接口設為輸入
   BT.begin(9600);                                   //設置波特率為9600
}

void loop()
{
  switch(choice)
    {
       case 'X' :                                    //選擇避障
         Ranging();                                  //測量距離
         if(cm > 10.0)                               //沒有碰到障礙物
           forward();
         else                                        //碰到障礙物
           {
             backward();                             //小車后退
             delay(200);                             //延時確定后退距離
             stop();                                 //小車停止
             Right();                                //舵機右轉
             Ranging();                              //測量距離
             servo.write(118);                       //舵機回中
             if(cm > 10.0)                           //如果右邊滿足條件
               {
                 turnright();                        //小車右轉
                 delay(200);                         //延時確定轉彎角度
               }
             else                                    //如果右邊不滿足
               {
                 Left();                             //舵機左轉
                 Ranging();                          //測量距離
                 servo.write(118);                   //舵機回中
                 turnleft();                         //小車左轉
                 delay(200);                         //延時確定轉彎角度
               }
           }
      case 'Y' :                                     //選擇遙控
        while(BT.available())                        //藍牙識別字符
          {
             xuan = BT.read();                       //藍牙讀取字符
             switch(xuan)
               {
                 case 'A' :                                
                   forward();                        //調(diào)取前進函數(shù)
                 case 'B' :                                 
                   backward();                       //調(diào)取后退函數(shù)  
                 case 'C' :                                
                   turnleft();                       //調(diào)取左轉函數(shù)
                 case 'D' :                              
                   turnright();                      //調(diào)取右轉函數(shù)   
                 case 'E' :                                
                   stop();                           //調(diào)取停止函數(shù)
               }
          }   
    }
}
代碼看起來是不是很通俗易懂呢!!!

接下來給你們介紹我理解的手機藍牙通訊和電腦串口通訊分別是(波特率):

BT.begin(9600);

Serial.begin(9600);

雖然說二者的更深層次的含義由于學術不精,無法給出具體解釋,但經(jīng)過實際檢測是正確的。

在代碼中涉及的伺服電機角度,是根據(jù)我所買的伺服電機結合制作時需要所測量和設定的角度,只具有參考性。各位可以根據(jù)自己買的伺服電機來進行修改。

void Left()                                          //舵機左轉
{undefined
   while(pos < 180)
    {undefined
      pos++;
      servo.write(pos);                          //寫入舵機角度      
      delay(15);                                     //延時使舵機轉到相應角度   
    }
}

這部分控制舵機轉動運用while循環(huán)主要是為了能夠是舵機逐角度的變化,也可以直接用

servo.write(pos);

寫入需要的角度,但這就會使得舵機在轉動到所需要的角度所需時間會非常短,可能會對舵機有損耗(個人觀點)。

二、所需材料

1.Arduino UNO板子

2.HC-SR04超聲波模塊

3.HC-06藍牙模塊

4.L298N電機驅(qū)動板模塊

5.智能小車底盤

6.18650充電電池及電池倉

7.杜邦線若干

以上這些材料我制作時所用到,都是可以在某1個寶上買到的。當然對于小車底盤,有能力的朋友,可以自己設計建模一款小車底盤,然后通過3D打印機打印出來也是很好的。

手機端藍牙遙控器用的是‘手機藍牙調(diào)試器’,在應用商店里就可以下載到。相對應的A,B,C,D,E,X,Y在按鍵操作里編輯即可。



評分

參與人數(shù) 1黑幣 +90 收起 理由
admin + 90 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:1020048 發(fā)表于 2022-4-21 15:27 來自觸屏版 | 只看該作者
樓主,還在嗎我那個藍牙模塊通過arduino的串口監(jiān)視器發(fā)送就有回應。然后手機遙控就還是一點反應都沒有。能看出這是什么問題?
回復

使用道具 舉報

板凳
ID:1011222 發(fā)表于 2022-4-23 13:00 | 只看該作者
編譯錯誤
回復

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
5#
ID:995613 發(fā)表于 2024-6-28 22:27 | 只看該作者
你好,有ad原理圖嘛
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
日韩av一二三区| 精精国产xxxx视频在线动漫| 久久男人av资源网站| 亚洲成人资源网| 黑人巨大精品欧美一区| 天天摸天天做天天爽水多| 欧美a视频在线观看| 六月丁香综合在线视频| 免费h片在线| www.99热| 国产精品无码人妻一区二区在线| 国产精品久久久久久久久久ktv | 久久艳片www.17c.com| 欧美视频免费在线| 国产精品18久久久久| 97视频精品| 日韩精品成人| av人人综合网| 老司机性视频| 色悠悠久久综合网| 日本视频一区在线观看| 91精品国产91久久| 亚洲精品永久免费| 欧美日韩精品专区| 一区二区三区四区精品在线视频| 国产成人欧美日韩在线电影| 精品动漫一区| 久久超碰99| 国产999精品在线观看| 成人高清免费在线| 日韩日韩日韩日韩| 不卡av电影在线| 亚洲性猛交xxxx乱大交| 手机在线免费观看毛片| 国产精品宾馆| 欧美日韩精品免费观看视完整| 天堂午夜在线| 天堂中文资源在线观看| 日韩免费av网站| 爱爱视频免费在线观看| 亚洲精品女人久久久| 九九视频精品在线观看| 一本大道东京热无码aⅴ| 热舞福利精品大尺度视频| 91久久精品日日躁夜夜躁国产| 久久久久久久av| 麻豆国产va免费精品高清在线| 国产一区二区在线影院| caoporn超碰国产公开| 青青草国产免费自拍| 亚洲精品成人无码| 日本国产一级片| 国产黄视频在线| 黄色一级大片免费| 一区二区视频在线免费| 欧美高清视频一区二区三区在线观看| 亚洲free性xxxx护士hd| 国产欧美 在线欧美| 国产精品爱久久久久久久| 久久久视频在线| 欧美激情精品在线| 欧美高跟鞋交xxxxxhd| 久久视频在线直播| 欧美精品一本久久男人的天堂| 色播久久人人爽人人爽人人片视av| 亚洲国产另类 国产精品国产免费| 综合久久久久久久| 91免费观看国产| 成人中文字幕在线| 99久久免费视频.com| 国产成人av在线影院| 自拍日韩欧美| 精品视频成人| 午夜电影一区| 成人午夜网址| 成人线上视频| 男人最爱成人网| 免费日韩电影| 米奇精品关键词| 菠萝蜜视频网站入口| 国产野外战在线播放| 欧美videos巨大粗暴| 成人小视频在线播放| 精品在线视频免费观看| 日本一区二区三区免费视频| 久久久久久久久影院| 国产一级片一区二区| 亚洲自拍偷拍另类| 懂色av蜜臀av粉嫩av分享吧| 先锋影音男人| 国产福利一区二区在线精品| 啪啪免费网站| 国产福利电影网| 免费看的黄色欧美网站| 9999精品免费视频| 日韩视频在线直播| 日韩大尺度在线观看| 人人狠狠综合久久亚洲婷婷| 亚洲欧洲成人| 一级在线视频| 欧美a在线看| 午夜不卡影院| 亚洲午夜免费| 日韩国产在线| 亚洲少妇在线| 成人毛片老司机大片| 高清电影在线观看免费| 免费av网站在线观看| 999av小视频在线| 福利一区视频| 精品大片一区二区| 人人精品视频| 中文字幕日韩一区二区不卡 | 成年人在线看| 在线女人免费视频| 欧美美女啪啪| 一区二区福利| 99在线精品免费视频九九视| 久久成人精品无人区| 国产午夜精品福利| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲欧美区自拍先锋| 欧美日韩中国免费专区在线看| 日韩精品久久久久久| 高潮一区二区| 亚洲高清999| 欧美成人久久| 成人福利在线看| 国产精一品亚洲二区在线视频| 成人自拍视频在线| 亚洲成人tv网| 亚洲美女在线观看| 国产精品www| 亚洲综合首页| 老司机午夜网站| 中文字幕12页| 日本午夜精品理论片a级app发布| 日本xxxx人| 国产精品露脸自拍| 成人黄色在线免费| 久久久国产精华液999999| 国产精品中文久久久久久| 久久久国产精品黄毛片| 天天综合天天色| 免费av片风间由美在线| gay欧美网站| 中文字幕视频在线| 日本欧美电影在线观看| 免费看久久久| 国产真实精品久久二三区| 亚洲国产一区二区视频| 亚洲欧洲一区二区三区在线观看| 国产精品激情av在线播放| 欧美 日韩 国产 在线观看| 欧美一级网址| 狠狠艹夜夜干| 中文字幕日本在线| 国产精品任我爽爆在线播放| 欧美专区18| 一区二区三区精品久久久| 亚洲精品中文字幕有码专区| 亚洲综合日韩中文字幕v在线| 成人精品小视频| 久久久精品国产sm调教| 韩日中文字幕| 黄黄的网站在线观看| 国产一卡不卡| 久久久综合九色合综国产精品| 日韩一区二区精品| 国产欧美日韩亚洲精品| 国产xxxxx视频| 人妻丰满熟妇av无码区| sese视频| 国产成人免费精品| 免费在线一区观看| 欧美在线一二三| 欧美在线视频网| 国产精品97在线| 国产成人无码一区二区在线播放| 日皮视频在线免费观看| 人在线成免费视频| 99re8精品视频在线观看| 天堂俺去俺来也www久久婷婷| 午夜精品毛片| 中文字幕av资源一区| 亚洲视频在线看| 亚洲欧美日韩另类精品一区二区三区 | 色婷婷在线观看视频| 91免费视频播放| 在线国产福利| 精品国产18久久久久久洗澡| 成人免费观看男女羞羞视频| 亚洲电影第1页| 欧美xxxx黑人又粗又长精品| 精品国产无码在线观看| 国产精品视频a| 污黄视频在线观看| 在线成人av观看| 美女在线观看视频一区二区| 日韩小视频在线观看专区| 久久99热只有频精品91密拍| 97超碰青青草| 污污视频网站在线免费观看| 国产又粗又猛又色又| 欧美丰满艳妇bbwbbw| 国产麻豆剧果冻传媒观看hd高清| 多野结衣av一区| 日韩综合在线视频| 精品少妇一区二区三区在线视频| 韩国成人av| 国产一二三av| 天天摸天天干| 深爱激情久久| 夜夜嗨av一区二区三区网页| 欧美在线视频一区二区| 免费在线观看日韩av| 四虎国产精品永久| 综合另类专区| 国产**成人网毛片九色 | 免费观看成人网| av中文字幕第一页| 美丽的小蜜桃4春潮| 亚洲成人av观看| av日韩中文| 日本欧美韩国一区三区| 国产人伦精品一区二区| 超薄丝袜一区二区| 男人天堂网视频| 好吊色一区二区| 日本午夜大片a在线观看| 国产福利一区二区三区视频| 中文字幕少妇一区二区三区| 成人一区二区免费视频| 国产www免费观看| 丁香花电影在线观看完整版| 精品一区二区三区蜜桃| 中文字幕av一区二区三区谷原希美| 国产人妻777人伦精品hd| 亚洲国产精品久久久久久6q| 正在播放日韩精品| 国产欧美精品日韩区二区麻豆天美| 欧美色欧美亚洲高清在线视频| 国产精品久久久久久久久久小说 | 国产精品直播网红| 日韩精品无码一区二区三区久久久| 青青草免费观看完整版高清| 奇米777国产一区国产二区| 亚洲影视在线播放| 国产精品成人一区二区三区| 日韩乱码在线观看| 欧美三级电影一区二区三区| 国产精品一区三区| 91国内免费在线视频| 日本少妇高潮喷水xxxxxxx| av手机天堂| 国产一区二区三区免费观看| 久久久久久99久久久精品网站| 久久久久中文字幕| 中文字幕一区三区久久女搜查官| 被陌生人带去卫生间啪到腿软| 亚洲成aⅴ人片久久青草影院| 日韩欧美a级成人黄色| 日韩av不卡在线播放| 在线免费观看高清视频| 91久久国产综合久久91猫猫| 中文成人综合网| 99久久久精品免费观看国产| 亚洲精品男人天堂| 日本成人不卡| 国产欧美日韩在线观看| 亚洲伊人久久大香线蕉av| 日韩av在线电影| 欧美四级在线| 国产精品欧美一区二区三区| 欧美视频亚洲色图| 久久精品一区二区三| 欧美高清电影在线| 久久99精品久久久久久动态图| 欧美日韩成人免费| xxxxx在线观看| 男人天堂亚洲二区| 国产在线国偷精品免费看| 9.1国产丝袜在线观看| 国产在线免费av| a√在线中文网新版址在线| 99久久综合精品| 青青草91久久久久久久久| 一区二区在线观看免费| 欧美精品在线一区| 噜噜噜久久,亚洲精品国产品| 欧美在线在线| 欧美久久久影院| 91久久精品一区二区别| 欧美日韩综合一区二区三区| av成人免费看| 在线免费视频一区二区| 欧美日韩亚洲一| 18岁免费网站| 午夜小视频福利在线观看| 91免费看视频| 久久久久久久免费| 亚洲一道本在线| 久久影院一区| 伦理中文字幕亚洲| 久久久久久福利| 日韩av一级| 日韩你懂的在线观看| av一区二区三区在线观看| 三级黄色片在线观看| av免费观看一区二区| 国产欧美一区在线| 色噜噜狠狠一区二区三区| 一道精品视频一区二区三区男同| 91精品亚洲| 久久99亚洲热视| 黄色一级片免费看| 激情久久免费视频| 日韩av综合中文字幕| 成人黄色a级片| 在线天堂中文资源最新版| 欧美色图在线观看| 亚洲午夜在线观看| 在线观看自拍| 琪琪一区二区三区| 成人av电影免费| 最新亚洲精品国自产在线观看| 99国产精品自拍| 成人h猎奇视频网站| 五月婷婷久久久| 久久av国产紧身裤| 夜夜躁日日躁狠狠久久88av| 日韩av手机在线免费观看| av基地在线| 樱桃视频在线观看一区| 欧美性大战久久久久xxx | 综合激情五月婷婷| 亚洲欧美一区二区激情| 久久久久久免费观看| 国产精品免费精品自在线观看| 亚洲另类激情图| 日本熟女一区二区| 伊人春色精品| 国内精品久久久久久中文字幕| 97超碰人人模人人人爽人人爱| 999精品在线| 成人春色激情网| 国产在线精品一区二区不卡| 国产一区二区三区精品欧美日韩一区二区三区 | 欧洲成人综合网| 日韩一区二区电影| 美女福利视频在线观看| 大陆精大陆国产国语精品| 欧美猛男性生活免费| 国产v在线观看| 日韩精品一二区| 亚洲资源在线网| 天堂а在线中文在线无限看推荐| 亚洲资源在线观看| 久久久老熟女一区二区三区91| 在线观看涩涩| 亚洲天堂av电影| 97成人在线观看| 久久国产66| 一本一道久久久a久久久精品91| 欧美激情偷拍自拍| 国产一区二区三区自拍| 国产精品一区二区三区免费视频| 日韩在线观看视频一区| 国产精品久久久久久久免费软件| 福利精品视频| 四虎影视永久免费观看| 亚洲视频1区| 就去色蜜桃综合| 国产农村av| 欧美日韩国产一区中文午夜| chinese麻豆新拍video| 香蕉成人在线| 欧美日韩国产二区| 一区二区三区视频在线免费观看| 国产伦精品一区二区三区免费迷| 999精品网| 成人妖精视频yjsp地址| 日韩精品综合在线| av网站在线播放| 91精品国产免费| 伊人久久综合视频| 欧美日韩亚洲一区| 欧美一级高清免费| 人xxxx性xxxxx欧美| www.一区二区| 色综合天天综合网国产成人网| 国产又粗又猛又黄又爽| 久久er精品视频| 成人av一级片| a日韩av网址| 91国内在线视频| www视频网站| 富二代精品短视频| 精品视频久久久久| 国产精品视频|