Агуулгын хүснэгт:

Тоглоомын танк: 5 алхам
Тоглоомын танк: 5 алхам

Видео: Тоглоомын танк: 5 алхам

Видео: Тоглоомын танк: 5 алхам
Видео: Как сделать простой танк из бумаги. Оригами танк 2024, Арваннэгдүгээр
Anonim
Тоглож буй танк
Тоглож буй танк

Энэ бол миний HKU сургууль дээр хийсэн төсөл бөгөөд биднээс Arduino Uno -той ямар нэгэн зүйл хийхийг шаарддаг. Би дуртай зүйлээ хийж, хүмүүсийг инээлгэхийг хүсч байна. Тиймээс хошигнол хийх хайрцаг хийхээр шийдсэн боловч энэ нь танд ямар хошигнол өгсөн нь тухайн цаг үед хэд хэдэн мэдрэгчийн модулийг хэмжиж байгаагаас хамаарна. Үүнийг илүү хувийн болгохын тулд би үүнийг танк болгохоор шийдсэн.

Алхам 1: эд ангиудыг авах

Энэ төслийг дахин бүтээхэд танд хэрэгтэй хэсгүүд байх болно

  • Arduino IDE -ийг ажиллуулах чадвартай 1х компьютер
  • 1 удаа Arduino Uno
  • Arduino Uno -д зориулсан 1х USB холбогч кабель
  • 1х Sonar мэдрэгч
  • 1х чанга яригч (зохистой чанарын хувьд илүү тохиромжтой (би bluetooth чанга яригчаас гаргаж авсан нэгийг ашигласан)).
  • 1x LM386 өсгөгч модуль (үүнийг өөрөө хийх боломжтой боловч би модулийг ашигласан).
  • 1х LM393 микрофон
  • 1x LDR
  • 1x LED (ямар ч өнгө хийх болно, гэхдээ би цэнхэр өнгийг ашигласан).
  • 4x 1kΩ эсэргүүцэл
  • 1x2, 7kΩ эсэргүүцэл
  • 1х талхны самбар
  • 1x micro SD карт (жижиг хэмжээтэй байвал зохино) (1 эсвэл 2 gb).
  • 1х цахилгаан өрөм.
  • 1х 16 мм өрмийн толгой (метал өрөмдөхөд илүү тохиромжтой).
  • 1х 9 мм өрмийн толгой (мөн метал өрөмдөхөд илүү тохиромжтой).
  • 1х 1мм өрмийн толгой (метал өрөмдөхөд илүү тохиромжтой).
  • 1х загварын танк (би 1:35 хэмжээтэй ирвэс 2 ашигласан, гэхдээ бусад тохиолдлууд ч бас сайн байх ёстой).
  • Супер цавуу / халуун цавуу
  • мөн нэлээд хэдэн утсыг өөр өнгөөр хийх нь зүйтэй.
  • кабелийн холболт (заавал биш).

Алхам 2: Цахилгааны утас

Цахилгаан утас
Цахилгаан утас

Бид утас холболтоос эхлэх хэрэгтэй, зураг нь үүнийг хэрхэн яаж холбохыг харуулсан техникийн зураг юм. Энэ нь таны зураг төсөл болох ёстой. Arduino бол AP4, A0 порт нь APA0, 6 порт нь AP6 ~ гэх мэт Бусад бүх портуудыг модулиуд дээр гарч ирснээр нэрлэнэ.

Алхам 3: Урьдчилан кодлох зүйлс

Одоо код ашиглаж эхлэхээсээ өмнө бидэнд зарим нэг мэдээлэл хэрэгтэй байна. 2-4 -р алхамаас эхлэн энэ хүний гарын авлагыг дагахыг танд зөвлөж байна.

www.electronoobs.com/eng_arduino_tut8.php

Гэсэн хэдий ч бид түүний кодыг ашиглахгүй байгаа тул зарим чанга яригч нь өөр өөр давтамж ашигладаг болохыг анхаарна уу. Миний чанга яригч 32 битийн давтамжтай 32 кГц аудио файл ашигладаг. Тиймээс хэрэв таны яриа ямар нэгэн чимээ шуугиан тарьж байгаа ч файлуудаа тоглуулахгүй байгаа бол давтамжтайгаар тоглож үзээрэй.

Алхам 4: Код

Одоо бид кодыг arduino -д байршуулах гэж байна. Энэ бүгдийг хуулж аваад Arduino IDE руу оруулаад Arduino -д байршуулна уу.

// SD карт уншигчийн номын санг багтаасан болно.#include "Wtv020sd16p.h" // sonar мэдрэгчид шаардлагатай номын санг багтаасан болно. #include // Arduino -ийн зүүг тохируулна. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // SD картны номын сангийн зүүг тохируулна. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Sonar мэдрэгчийн номын сангийн зүүг тохируулна. NewPing sonar (11, 10); // Бусад оролтыг тохируулж, програмын битийн хурдыг тохируулна. хүчингүй тохиргоо () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Цуваа эхлэх (9600); } // Програмын үндсэн хэсэг. void loop () {// Интертекторыг тохируулна int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Төсөл нь чанга яригчийг үргэлжлүүлэн ашиглахгүйн тулд хойшлуул. саатал (30000); // Цуваа хэвлэх ба хэвлэх шугамууд нь мэдрэгчийн модулиуд ямар утгыг авч байгааг хялбархан харах боломжтой болно. Serial.print ("Дууны утга:"); // Мэдээллийн мэдрэгч модулиар хэмжигдэхүүнүүдээс хамааран програм өөр өөр аудио файлуудыг тоглуулахын тулд олон тооны if мэдэгдлийг ашигладаг. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Зай:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Хөнгөн утга:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Өөр цуваа хэвлэлт, яг ямар аудио файл тоглосныг харах боломжтой болно. Serial.println ("1 --------"); // Аудио файлыг бүтэн хугацаанд тоглуулах боломжийг олгох бас нэг саатал. саатал (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); саатал (5000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); саатал (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); саатал (5000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); саатал (5000); } if if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Хөнгөн утга:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); саатал (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); саатал (8000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); саатал (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); саатал (8000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); саатал (6000); } if if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); саатал (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); саатал (5000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); саатал (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); саатал (5000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); саатал (5000); } if if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Хөнгөн утга:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); саатал (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); саатал (5000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); саатал (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); саатал (5000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); саатал (5000); } if if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); саатал (5000); }}}}

Алхам 5: Кейс

Тохиолдол
Тохиолдол
Тохиолдол
Тохиолдол

Одоо жинхэнэ төвөгтэй хэсэг ирлээ.

Энэ бүхнийг тохируулах нь жаахан төвөгтэй байж магадгүй, энэ нь та бүх зүйлийг талхны тавцан дээрээ хэрхэн яаж суурилуулж, эсвэл хэрхэн яаж гагнахаас хамаарна. Гэхдээ мэдрэгчийг чанга барихын тулд хэд хэдэн нүх гаргах шаардлагатай болно. Би микрофон (9мм -ийн өрөмдлөг шаардлагатай), sonar модулийг (6мм -ийн өрөмдлөг шаардлагатай) арын хэсэгт, LDR -ийг савны урд талд байрлуулсан боловч хэрэв танд зай байгаа бол та хүссэн үедээ үр дүнтэй тавьж болно.

Ардуиногоо холбогч кабелиар холбохын тулд загварын биед нүх гаргахаа мартуузай.

Би чанга яригчийг цамхагт байрлуулахыг зөвлөж байна. Учир нь тэнд маш их зай үлдэх ёстой.

Зүүн талд байгаа зураг бол би Leopard 2 загварын дотор гагнасан arduino болон хэвлэмэл загварыг хэрхэн яаж суурилуулсан тухай, баруун талын зураг нь ихэнх утсан холболттой зураг юм.

Таны хийж чадах зүйл бол загварын доод хэсэгт жижиг нүх өрөмдөж, Arduino -ийг кабелийн бэхэлгээгээр бэхлэх явдал юм.

Гэхдээ би андуураагүй бол одоо хийх ёстой.

Зөвлөмж болгож буй: