Talaan ng mga Nilalaman:

Joking Tank: 5 Hakbang
Joking Tank: 5 Hakbang

Video: Joking Tank: 5 Hakbang

Video: Joking Tank: 5 Hakbang
Video: River Crossing | Great Team Building Game 2024, Nobyembre
Anonim
Joking Tank
Joking Tank

Ito ay isang proyekto na ginawa ko sa aking paaralan ang HKU, na kinakailangan upang gumawa kami ng isang bagay sa isang Arduino Uno. Nais kong gumawa ng isang bagay na magagawa ang aking paboritong bagay, magpatawa ng mga tao. Napagpasyahan na gumawa ng isang kahon ng biro na magbibigay sa iyo ng isang biro, ngunit kung anong biro ang ibinigay sa iyo ay nakasalalay sa kung ano ang sinusukat ng isang pares ng mga module ng sensor sa tiyak na sandali sa oras. Upang gawing mas personal ito ay nagpasya akong gawin itong isang tank.

Hakbang 1: Pagkuha ng Mga Bahagi

Ang mga bahagi na kakailanganin mo upang muling likhain ang proyektong ito

  • 1x computer na may kakayahang magpatakbo ng Arduino IDE
  • 1x Arduino Uno
  • 1x usb connector cable para sa Arduino Uno
  • 1x Sonar sensor
  • 1x Speaker (mas kanais-nais na isa sa disenteng kalidad (, Ginamit ko ang isa na inilabas ko mula sa isang bluetooth speaker)).
  • 1x LM386 Amplifier module (posible na gawin ito sa iyong sarili ngunit gumamit ako ng isang module).
  • 1x LM393 Mikropono
  • 1x LDR
  • 1x LED (anumang kulay ang magagawa ngunit gumamit ako ng asul).
  • 4x 1kΩ risistor
  • 1x 2, 7kΩ risistor
  • 1x Breadboard
  • 1x micro SD card (mas mabuti na maliit (1 o 2 gb)).
  • 1x Power drill.
  • 1x 16mm drillhead (mas mabuti na ginawa para sa pagbabarena na metal).
  • 1x 9mm drillhead (mas mabuti ring ginawa para sa pagbabarena na metal).
  • 1x 1mm drillhead (muli mas mabuti na ginawa para sa pagbabarena ng metal).
  • 1x Model tank (Gumamit ako ng 1:35 scale leopard 2 ngunit ang iba pang mga kaso ay dapat na pagmultahin din).
  • Superglue / hotglue
  • at medyo ilang mga wire na mas mabuti sa iba't ibang mga kulay.
  • mga kurbatang kurdon (opsyonal).

Hakbang 2: Mga kable

Kable
Kable

Kailangan nating magsimula sa mga kable, ang imahe ay isang teknikal na pagguhit kung paano dapat i-wire ang lahat. Dapat itong magsilbing iyong blueprint. Tandaan: Ang lahat ng mga port ng Arduino ay pinangalanang AP # para sa bawat port. Kaya ang ika-4 na port sa Ang Arduino ay AP4, ang port A0 ay APA0 at ang port 6 ~ ay AP6 ~, atbp. Lahat ng iba pang mga port ay pinangalanan na lumitaw sa kanilang mga module mismo.

Hakbang 3: Mga Bagay na Pre Code

Ngayon bago namin masimulan ang paggamit ng code kailangan namin ng ilang stuf. Inirerekumenda ko sa iyo na sundin ang tutorial na ito ng tao mula sa hakbang 2 hanggang 4

www.electronoobs.com/eng_arduino_tut8.php

Gayunpaman hindi namin gagamitin ang kanyang code dahil gagamitin namin ang aming sariling Mangyaring tandaan na ang ilang tagapagsalita ay gumagamit ng iba't ibang mga frequency. Gumamit ang aking speaker ng 16-bit 32kHz audio file. Kaya't kung ang iyong pagsasalita ay gumagawa ng isang uri ng ingay ngunit hindi nagpe-play ng iyong mga file pagkatapos subukang i-play ang iyong dalas.

Hakbang 4: Code

Ngayon ay i-a-upload namin ang code sa arduino. Kopyahin ang lahat ng ito at ipasa ito sa Arduino IDE at i-upload ito sa iyong Arduino.

// may kasamang library para sa SD card reader. # isama ang "Wtv020sd16p.h" // kasama ang library na kinakailangan para sa sonar sensor. #include // Itinatakda ang mga pin para sa Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Itinatakda ang mga pin para sa SD card library. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Itinatakda ang mga pin para sa Sonar sensor library. NewPing sonar (11, 10); // Itinatakda ang iba pang mga input at itinatakda ang bitrate ng programa. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Pangunahing bahagi ng programa. void loop () {// Itinatakda ang intergers int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Pagkaantala upang ang proyekto na ang proyekto ay walang humpay na panatilihin ang paggamit ng nagsasalita. pagkaantala (30000); // Mga serial na naka-print at naka-print na linya upang madali mong makita kung anong mga halaga ang kinuha ng mga module ng sensor. Serial.print ("Halaga ng Tunog:"); // Maramihang kung mga pahayag upang ang programa ay nagpe-play ng iba't ibang mga audio file depende sa mga halaga ay sinusukat ng mga module ng sensor. kung (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Distansya:"); kung (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Magaan na Halaga:"); kung (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Isa pang serial print upang maaari mong makita kung anong eksaktong audio file ang pinatugtog. Serial.println ("1 --------"); // Isa pang pagkaantala upang hayaang tumugtog ang audio file ay buong haba nito. pagkaantala (5000); } iba pa kung (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Magaan na Halaga:"); kung (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); pagkaantala (8000); } iba pa kung (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); pagkaantala (8000); } iba pa kung (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); pagkaantala (6000); } iba pa kung (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Magaan na Halaga:"); kung (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); pagkaantala (5000); } iba pa kung (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); pagkaantala (5000); }}}}

Hakbang 5: Ang Kaso

Ang kaso
Ang kaso
Ang kaso
Ang kaso

Dumarating ngayon ang aktwal na kumplikadong bahagi.

Ang paglapat sa lahat ng ito sa kaso ay maaaring maging medyo nakakalito depende ito sa kung paano mo nilagyan ang lahat sa iyong breadboard o kung paano mo magkakasama ang mga bagay. Ngunit kakailanganin mong gumawa ng isang pares ng mga butas para sa mga sensor na dumikit. Inilagay ko ang micorphone (kinakailangan ng 9mm drill) at sonar module (6mm drill na kailangan) sa likuran at ang LDR sa harap ng tanke ngunit maaari mong mailagay ang mga ito nang mabisa kung mayroon kang puwang.

Tiyaking gupitin ang isang butas sa katawan ng modelo upang maikonekta ang iyong arduino sa cable ng konektor.

Inirerekumenda kong ilagay ang nagsasalita sa toresilya. dahil dapat mayroong maraming puwang naiwan doon.

Ang kaliwang imahe sa itaas ay kung paano ko nilagyan ang arduino at ang print na aking na-solder sa loob ng modelo ng Leopard 2. Ang tamang imahe ay isa sa karamihan ng mga kable na nakakabit.

Ang maaari mong gawin ay mag-drill ng maliliit na butas sa ilalim ng modelo upang ma-secure ang Arduino sa mga kurbatang kurbatang.

Ngunit kung hindi ako nagkakamali, dapat ay tapos ka na ngayon.

Inirerekumendang: