女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發燒友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. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費