在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>如何組裝有趣的機器人

如何組裝有趣的機器人

2022-12-01 | zip | 0.06 MB | 次下載 | 免費

資料介紹

描述

能夠測量分隔兩個位置的距離的需求可以在我們日常生活的不同領域有許多應用。

從獲得兩個位置之間足夠距離的那一刻起,就可以通過執行這些功能的算法來開發和設計自動門系統、安全系統、監控和各種自動化系統。

從那里,您將學習如何組裝有趣的機器人這個有趣的機器人是一個小型機器人,它使用帶有 LED 和超聲波傳感器的教學案例來計算距離。

其案例如圖1所示。

poYBAGNtnC2AByb9AAB8FSQBRG0414.jpg
圖 1 - 實施 HC-SR04 超聲波傳感器的教學案例。
?

對于這個教學案例的實施,您將學習如何使用 UNO arduino 組裝基本電路并創建編程

如您所見,外殼具有類似于笑臉的結構和一些側面 LED,以指示其前方物體或人的接近程度。LED 點亮的這個距離將在所提供的程序中實現。

在這個項目中,使用了超聲波傳感器 HC-SR04,它的工作原理是發射和接收聲波。

在本文中,您將學習如何編程和使用 HC-SR04 超聲波傳感器并了解其工作原理。

因此,通過本文,您將了解到:

  • 了解HC-SR04超聲波傳感器的結構;
  • 了解HC-SR04超聲波傳感器的操作;
  • 執行超聲波傳感器 HC-SR04 和 Arduino UNO R3 之間的通信
  • 將超聲波傳感器 HC-SR04 的結構展示給 SILICIOS LAB 開發的教學案例。

現在,我們將開始全面介紹使用 Arduino UNO 開發的 Didactic 超聲波傳感器 HC-SR04。

探索如何開發有趣的機器人

該項目包括展示一個使用 HC-SR04 超聲波傳感器和 UNO arduino 開發板的教學模型。

該項目基本上由 LED、超聲波傳感器 HC-SR04、UNO arduino 開發板組成,它將發送必要的脈沖來讀取傳感器的距離,如圖 2 所示。

pYYBAGNtnEKAfVV_AAgIyTMGc34249.jpg
圖 2 - 為超聲波傳感器的操作建議的電路。
?

超聲波傳感器發出的信號類似于在空間中傳播的波,通過這種方式,它將檢測到離物體最近的結構,如圖 3 所示。

HC-SR04 超聲波傳感器基本上由一個振蕩晶體、一個發射器和接收器聲波脈沖以及電源引腳構成。

傳感器發送高頻聲波。它們與路徑上的某個物體發生碰撞并返回傳感器,傳感器將捕獲它們。

最后,我們使用平均速度方程,如方程 1 所示,它允許我們計算聲波行進的距離。

Espa?o (m) = Velocidade (m/s)* 速度 (s)

根據計算出的距離,LED 將被激活以指示有趣機器人與物體的接近程度。

要設置實驗,首先確保您的 Arduino 已通過斷開 USB 電纜的連接來關閉。現在,將組件連接起來,如下圖 5 所示。

poYBAGNtnEmAQ_9rAAFnKlmpWAg991.png
圖 5 - 建議電路的接線圖。
?

根據圖 5 所示的接線圖,實驗由傳感器、arduino uno 電路、LED 和電阻器組成的電路組成。

使用的傳感器是 HC-SR04,它有 4 個引腳,電源引腳 (Vdc) 通過原型板連接到 arduino uno 的 5 伏電壓,以及它的 GND。

觸發引腳將連接到數字引腳 4,它負責每 10 微秒(微秒)發送一次脈沖。最后是連接到數字引腳 5 的 Echo 引腳。

正確連接電路后,根據完整代碼開始編程,如下圖所示。

//inicio - leds
int Led_azul1 = 2;
int Led_azul2 = 3;
int Led_amarelol = 6;
int Led_amarelo2 = 7;
int Led_vermelho1 = 8;
int Led_vermelho2 = 9;
int Led_verde1 = 10;
int Led_verde2 = 11;

//fim - leds

int inches = 0;

float cm = 0;

int triggerPin = 4;
int echoPin = 5;

long readUltrasonicDistance(int triggerPin, int echoPin)// fun?ao responsavel por processar o sinal dos pinos Trig e Echo
{
  pinMode(triggerPin, OUTPUT);  // apaga o pino de Trig
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  // coloca o pino de Trig em nivel logico alto por 10 us
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  //  Lê o pino Echo, e retorna o tempo de trajetoria da onda em microsegundos
  return pulseIn(echoPin, HIGH);
}

void setup()
{
  pinMode(Led_azul1,OUTPUT);
  pinMode(Led_azul2,OUTPUT);
  pinMode(Led_amarelol,OUTPUT);
  pinMode(Led_amarelo2,OUTPUT);
  pinMode(Led_vermelho1,OUTPUT);
  pinMode(Led_vermelho2,OUTPUT);
  pinMode(Led_verde1,OUTPUT);
  pinMode(Led_verde2,OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  // medida do sinal em centimetros
  cm = 0.01723 * readUltrasonicDistance(4, 5);
  // para converter o valor de centimetros em polegadas basta dividir por 2.54
  inches = (cm / 2.54);
  
  /*ANOTACOES
 distancia minima  3   
distancia maxima  336   
intervalo 333   
Quantidade de leds  8   
rela??o cm/leds = 41.625    
led_azul1 3 cm a 44.625 cm
led_azul2 44.625 cm  a 86.25 cm
led_amarelo1  86.25 cm a 127.875 cm
led_amarelo2  127.875 cm a 169.5 cm
led_vermelho1 169.5 cm a 211.125 cm
led_vermelho2 211.125 cm a 252.75 cm
led_verde1  252.75 cm  a 294.375 cm
led_verde2  294.375 cm a 336 cm

  */
  //INICIO - CONDICAO LEDS
  if((cm>=3)&&(cm<44.625)){
    digitalWrite(Led_azul1, HIGH);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=44.625)&&(cm<86.25)){
    digitalWrite(Led_azul1,LOW);
    digitalWrite(Led_azul2,HIGH);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=86.25)&&(cm<127.875)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,HIGH);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=127.875)&&(cm<169.5)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,HIGH);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
   else if((cm>=169.5)&&(cm<211.125)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, HIGH);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
   else if((cm>=211.125)&&(cm<252.75)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, HIGH);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=252.75)&&(cm<294.375)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,HIGH);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=294.375)&&(cm<336)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,HIGH);
  }
  //FIM - CONDICAO LEDS
  inches = (cm / 2.54);
  Serial.print(inches);Serial.print("in, ");Serial.print(cm);Serial.println("cm");delay(100); // aguarda 100 milisegundos
}

正確連接電路后,根據下面給出的代碼開始編程,該代碼說明了每個 LED 的數字引腳的定義、變量的初始化以及負責處理 Trigger 和 Echo 引腳上的信號的函數。

//inicio - leds
int Led_azul1 = 2;
int Led_azul2 = 3;
int Led_amarelol = 6;
int Led_amarelo2 = 7;
int Led_vermelho1 = 8;
int Led_vermelho2 = 9;
int Led_verde1 = 10;
int Led_verde2 = 11;

//fim - leds

int inches = 0;

float cm = 0;

int triggerPin = 4;
int echoPin = 5;

long readUltrasonicDistance(int triggerPin, int echoPin)// fun?ao responsavel por processar o sinal dos pinos Trig e Echo
{
  pinMode(triggerPin, OUTPUT);  // apaga o pino de Trig
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  // coloca o pino de Trig em nivel logico alto por 10 us
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  //  Lê o pino Echo, e retorna o tempo de trajetoria da onda em microsegundos
  return pulseIn(echoPin, HIGH);
}

之后,我們就有了 void setup 函數。所有 LED 引腳都配置為數字輸出。代碼如下所示。

void setup()
{
  pinMode(Led_azul1,OUTPUT);
  pinMode(Led_azul2,OUTPUT);
  pinMode(Led_amarelol,OUTPUT);
  pinMode(Led_amarelo2,OUTPUT);
  pinMode(Led_vermelho1,OUTPUT);
  pinMode(Led_vermelho2,OUTPUT);
  pinMode(Led_verde1,OUTPUT);
  pinMode(Led_verde2,OUTPUT);
  Serial.begin(9600);
}

LED 根據距離范圍觸發。void 循環函數中的代碼如下所示。

void loop()
{
  // medida do sinal em centimetros
  cm = 0.01723 * readUltrasonicDistance(4, 5);
  // para converter o valor de centimetros em polegadas basta dividir por 2.54
  inches = (cm / 2.54);
  
  /*ANOTACOES
 distancia minima  3   
distancia maxima  336   
intervalo 333   
Quantidade de leds  8   
rela??o cm/leds = 41.625    
led_azul1 3 cm a 44.625 cm
led_azul2 44.625 cm  a 86.25 cm
led_amarelo1  86.25 cm a 127.875 cm
led_amarelo2  127.875 cm a 169.5 cm
led_vermelho1 169.5 cm a 211.125 cm
led_vermelho2 211.125 cm a 252.75 cm
led_verde1  252.75 cm  a 294.375 cm
led_verde2  294.375 cm a 336 cm

  */
  //INICIO - CONDICAO LEDS
  if((cm>=3)&&(cm<44.625)){
    digitalWrite(Led_azul1, HIGH);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=44.625)&&(cm<86.25)){
    digitalWrite(Led_azul1,LOW);
    digitalWrite(Led_azul2,HIGH);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=86.25)&&(cm<127.875)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,HIGH);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=127.875)&&(cm<169.5)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,HIGH);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
   else if((cm>=169.5)&&(cm<211.125)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, HIGH);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
   else if((cm>=211.125)&&(cm<252.75)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, HIGH);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=252.75)&&(cm<294.375)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,HIGH);
    digitalWrite(Led_verde2,LOW);
  }
  else if((cm>=294.375)&&(cm<336)){
    digitalWrite(Led_azul1, LOW);
    digitalWrite(Led_azul2, LOW);
    digitalWrite(Led_amarelol,LOW);
    digitalWrite(Led_amarelo2,LOW);
    digitalWrite(Led_vermelho1, LOW);
    digitalWrite(Led_vermelho2, LOW);
    digitalWrite(Led_verde1,LOW);
    digitalWrite(Led_verde2,HIGH);
  }
  //FIM - CONDICAO LEDS
  inches = (cm / 2.54);
  Serial.print(inches);Serial.print("in, ");Serial.print(cm);Serial.println("cm");delay(100); // aguarda 100 milisegundos
}

正如您在上面的代碼中看到的,傳感器以厘米為單位讀取距離。

之后,我們驗證插入此距離的間隔,并激活一組 LED 來發出距離信號。

從物體到有趣的機器人的距離越大,激活的 LED 數量就越多。

除此代碼外,還開發了一個特殊案例,它將接收超聲波傳感器、電阻器和 LED。Arduino 將與外部連接。

搞笑機器人案例如圖 12 所示。

pYYBAGOIFnCAI3fvAAB6CiriFbM097.jpg
圖 12- 用于超聲波傳感器、電阻器和 LED 的教學案例。
?

從電路的組裝和arduino uno的編程,可以存儲教學案例橫向區域中使用的每個LED,以及將超聲波傳感器和對應于所需螺釘的孔耦合到結案。

這可以在圖 13 中看到。

poYBAGNtnC2AByb9AAB8FSQBRG0414.jpg
圖 13 - 將 LED 和傳感器安裝到外殼上。
?

緊接著,外殼的背面將存儲為 LED 選擇的電阻器。為此,為每個電阻器建模了一個小腔,如圖 14 所示。

poYBAGOIN6WADzRUAAB602PnUdc557.jpg
圖 14 - 用于存放電阻器的后殼結構。
?

為了最終確定控制結構,我們開發了NEXTPCB 印刷電路板該板旨在幫助對有趣的機器人進行編程。

NEXTPCB印刷電路板

從有趣的機器人項目中,開發了NEXTPCB 印刷電路板,如圖 15 所示。

poYBAGOIN6iAEMu2AADHJhPkQ5s731.png
圖 15 - 有趣的機器人 NEXTPCB 印刷電路板。
?

該印刷電路板是根據以下電子原理圖開發的。

poYBAGOIN6uAIx5rAAMsd0Vz0n8527.png
圖 15 - 控制滑稽機器人的電子原理圖。
?

如果需要,您可以訪問此鏈接并下載所有文件以生產您的印刷電路板 - NEXTPCB Gerber 文件

從這個項目中,您將能夠組裝您的有趣機器人并使用NEXTPCB 印刷電路板獲得您的印刷電路板

結論

因此,從這個項目的開發中,除了分析與NANO arduino的通信外,還可以了解HR-SR04超聲波傳感器的結構并了解其操作。

當傳感器發出聲波爆發時,實驗得出結論,在某些情況下,這些爆發與具有不均勻表面的結構發生碰撞。

當發生這種現象時,距離值有可能出現錯誤。您會注意到,在某些位置,不止一個 LED 會亮起。

致謝

我們感謝NEXTPCB 印刷電路板提供印刷電路板。

此外,我們要感謝Escola Rob? Lúdico do Brasil 對該項目的支持和發展。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1Eurotherm TKS Temperature 用戶手冊
  2. 1.46 MB  |  2次下載  |  免費
  3. 2無線系統中天線和RF元件電磁建模
  4. 7.48 MB   |  1次下載  |  4 積分
  5. 3納祥科技NX6806中文規格書,8位AD和DA單片機拓展,國產替代PCF8591
  6. 3.04 MB  |  1次下載  |  免費
  7. 4藍牙無線遙控小車
  8. 10.49 MB   |  1次下載  |  2 積分
  9. 5Multisim模擬電路仿真教程
  10. 1.93 MB   |  1次下載  |  3 積分
  11. 6MNGate系列智能網關詳細使用手冊
  12. 11.62 MB   |  次下載  |  2 積分
  13. 7PC3302 7V 1.5A 1.25MHz升壓10白光LED驅動器英文手冊
  14. 1.04 MB   |  次下載  |  免費
  15. 8FCO-3C-WT|超寬溫晶體振蕩器
  16. 4.87 MB  |  次下載  |  免費

本月

  1. 1晶體三極管的電流放大作用詳細說明
  2. 0.77 MB   |  32次下載  |  2 積分
  3. 2Python從入門到精通背記手冊
  4. 18.77 MB   |  25次下載  |  1 積分
  5. 3雙極型三極管放大電路的三種基本組態的學習課件免費下載
  6. 4.03 MB   |  23次下載  |  1 積分
  7. 4多級放大電路的學習課件免費下載
  8. 1.81 MB   |  21次下載  |  2 積分
  9. 5九陽豆漿機高清原理圖
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 61875功放原理圖
  12. 0.04 MB   |  11次下載  |  免費
  13. 7SW6306V AACC四口多協議升降壓移動電源SOC中文手冊
  14. 1.20 MB   |  10次下載  |  1 積分
  15. 8東芝彩色電視機29SF6C維修說明書
  16. 4.86 MB   |  9次下載  |  1 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420063次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191382次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183337次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81585次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73814次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: 日本黄色录像视频 | 四虎必出精品亚洲高清 | 狠狠色噜噜狠狠狠狠色综合久 | 欧美黄色高清 | 欧美日本一区二区三区道 | 韩国a级床戏大尺度在线观看 | 性色视频免费 | 日本中文字幕在线播放 | 窝窝午夜看片免费视频 | 国产成人福利夜色影视 | 国产叼嘿网站免费观看不用充会员 | 女人本色高清在线观看wwwwww国产 | 色婷婷综合在线 | 奇米影视久久 | 日本69sex护士hd | 色免费在线观看 | 国产一区国产二区国产三区 | 小优视频在线 | 青草悠悠视频在线观看 | 色综合视频在线观看 | 男女免费网站 | 国产黄色a三级三级三级 | 91av免费观看| 手机在线观看免费视频 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片鸭王 | 久久九九亚洲精品 | 免费一级特黄欧美大片勹久久网 | 岛国三级在线看 | 午夜欧美电影 | 欧美视频精品一区二区三区 | 欧美另类丰满69xxxxx | 蜜月mv国产精品 | 亚州第一视频 | 日韩三级在线观看视频 | 天堂电影免费在线观看 | 国产精品99r8在线观看 | 免费网址视频在线看 | 黄a一级 | 国模大尺度酒店私拍视频拍拍 | 毛片大全在线 | 国产一级做a爰大片免费久久 |