Mündəricat:

Zarafat tankı: 5 addım
Zarafat tankı: 5 addım

Video: Zarafat tankı: 5 addım

Video: Zarafat tankı: 5 addım
Video: “ÜREYİM İSTƏSƏ VEREREM BUNDAN KİMƏ NƏ?!” - 18+ QIRĞIN DEBAT 2024, Noyabr
Anonim
Zarafat tankı
Zarafat tankı

Bu, HKU məktəbində etdiyim və Arduino Uno ilə bir şey etməyimizi tələb edən bir layihədir. Ən çox sevdiyim işi edəcək, insanları güldürəcək bir şey etmək istəyirdim. Beləliklə, sizə zarafat edəcək bir zarafat qutusu hazırlamaq qərarına gəldim, amma verdiyin zarafat, o anda bir neçə sensor modulunun nə ölçdüyündən asılı olacaq. Şəxsi hala gətirmək üçün onu tank etmək qərarına gəldim.

Addım 1: hissələri əldə edin

Bu layihəni yenidən yaratmaq üçün sizə lazım olan hissələr olacaq

  • Arduino IDE ilə işləyə bilən 1x kompüter
  • 1x Arduino Uno
  • Arduino Uno üçün 1x usb konnektoru
  • 1 x Sonar sensoru
  • 1x Dinamik (üstünlük verilən keyfiyyətli bir (bluetooth dinamikindən çıxardığım birini istifadə etdim)).
  • 1x LM386 Gücləndirici modulu (bunu özünüz etmək mümkündür, amma bir modul istifadə etdim).
  • 1x LM393 Mikrofon
  • 1x LDR
  • 1x LED (hər hansı bir rəng edəcək, amma mavi istifadə etdim).
  • 4x 1kΩ rezistor
  • 1x2, 7kΩ rezistor
  • 1x Çörək Paneli
  • 1x micro SD kart (tercihen kiçik (1 və ya 2 gb)).
  • 1x Güc matkabı.
  • 1x 16 mm qazma başlığı (tercihen metal qazmaq üçün hazırlanmışdır).
  • 1x9 mm qazma başlığı (tercihen metal qazmaq üçün hazırlanmışdır).
  • 1x 1 mm qazma başı (yenidən tercihen metal qazmaq üçün hazırlanmışdır).
  • 1x Model tankı (1:35 ölçülü leopard 2 istifadə etdim, amma digər hallar da yaxşı olmalıdır).
  • Super yapışqan / isti yapışqan
  • və bəzi tellər, tercihen fərqli rənglərdə.
  • kabel bağları (isteğe bağlı).

Addım 2: Kabel çəkmə

Kablolama
Kablolama

Kablolama ilə başlamalıyıq, şəkil hər şeyin necə bağlanması lazım olduğunu göstərən texniki bir rəsmdir. Bu sizin planınız olaraq xidmət etməlidir. Arduino AP4, A0 portu APA0 və port 6 ~ AP6 ~ və s. Bütün digər portlar modullarda göründükləri kimi adlandırılır.

Addım 3: Əşyaları Kodlaşdırın

İndi koddan istifadə etməyə başlamazdan əvvəl bəzi məlumatlara ehtiyacımız var. İndi bu adam təlimatını 2 -dən 4 -ə qədər izləməyi məsləhət görürəm.

www.electronoobs.com/eng_arduino_tut8.php

Ancaq öz kodumuzdan istifadə edəcəyimiz kimi onun kodundan istifadə etməyəcəyik. Unutmayın ki, bəzi natiqlər fərqli frekanslardan istifadə edir. Dinamikim 16 bitlik 32 kHz səs sənədlərindən istifadə edir. Beləliklə, danışmağınız bir növ səs -küy salırsa, ancaq fayllarınızı çalmırsa, tezliyinizlə oynamağa çalışın.

Addım 4: Kod

İndi kodu arduino -ya yükləyəcəyik. Bunların hamısını kopyalayın və Arduino IDE -yə köçürün və Arduino -ya yükləyin.

// SD kart oxuyucusu üçün kitabxananı ehtiva edir.#include "Wtv020sd16p.h" // sonar sensoru üçün lazım olan kitabxananı ehtiva edir. #include // Arduino üçün sancaqlar qurur. int resetPin = 4; int clockPin = 5; int dataPin = 6; int məşğulPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // SD kart kitabxanası üçün pinləri təyin edir. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Sonar sensor kitabxanasının sancaqlarını təyin edir. NewPing sonar (11, 10); // Digər girişləri qurur və proqramın bit sürətini təyin edir. boş quraşdırma () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Proqramın əsas hissəsi. void loop () {// inter LightDetectedVal = analogRead (lightDetectedPin) intergers -i təyin edir; int məsafəVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Layihənin sonsuza qədər dinamikdən istifadə etməməsi üçün təxirə salın. gecikmə (30000); // Sensor modulları tərəfindən hansı dəyərlərin alındığını asanlıqla görə biləcəyiniz üçün seriyalı çap və çap xətləri. Serial.print ("Səs Dəyəri:"); // Proqramın dəyərlərdən asılı olaraq fərqli audio faylları çalması üçün çoxlu ifadələr sensor modulları ilə ölçülür. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Məsafə:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("İşıq Dəyəri:"); əgər (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Başqa bir serial çapı, hansı dəqiq audio faylın oynandığını görə bilərsiniz. Serial.println ("1 --------"); // Səs faylının tam uzunluğunda çalınması üçün başqa bir gecikmə. gecikmə (5000); } başqa if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); gecikmə (5000); } başqa if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); gecikmə (5000); } başqa if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); gecikmə (5000); } başqa if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); gecikmə (5000); } if if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("İşıq Dəyəri:"); əgər (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); gecikmə (5000); } başqa if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); gecikmə (8000); } başqa if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); gecikmə (5000); } başqa if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); gecikmə (8000); } başqa if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); gecikmə (6000); } başqa əgər (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); gecikmə (5000); } if if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("İşıq Dəyəri:"); əgər (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); gecikmə (5000); } başqa if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); gecikmə (5000); } başqa əgər (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); gecikmə (5000); }}}}

Addım 5: Dava

Hal
Hal
Hal
Hal

İndi əsl mürəkkəb hissə gəlir.

Hər şeyin uyğun olması bir az çətin ola bilər, bu, hər şeyi çörək taxtanıza necə bağladığınızdan və ya əşyaları necə lehimlədiyinizdən asılıdır. Ancaq sensorların bir -birinə yapışması üçün bir neçə deşik etməlisiniz. Mikrofonu (9 mm matkap lazımdır) və sonar modulunu (6 mm matkap lazımdır) tankın arxasına, LDR -ni isə tankın qabağına qoydum, ancaq yeriniz varsa istədiyiniz yerdə təsirli şəkildə qoya bilərsiniz.

Arduino -nu bağlayıcı kabel ilə bağlaya bilmək üçün modelin gövdəsində bir delik kəsdiyinizə əmin olun.

Dinamiki qülləyə qoymağı məsləhət görürəm. orada çox yer qalmalı olduğu üçün.

Yuxarıdakı sol şəkil, arduino və Leopard 2 modelinin içərisinə lehimlədiyim çapı necə bağladığımdır. Sağdakı şəkillərin əksəriyyəti quraşdırılmışdır.

Arduino -nu kabel bağlamaları ilə təmin etmək üçün modelin altındakı kiçik deliklər qazmaq olar.

Ancaq səhv etmirəmsə, indi etməlisiniz.

Tövsiyə: