Mündəricat:
- Addım 1: hissələri əldə edin
- Addım 2: Kabel çəkmə
- Addım 3: Əşyaları Kodlaşdırın
- Addım 4: Kod
- Addım 5: Dava
Video: Zarafat tankı: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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 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
İ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ə:
Balıq Tankı LED Bonanza!: 8 addım
Balıq Tankı LED Bonanza! Yaxşı qidalanırdı və suyunu həftədə iki dəfə dəyişirdi. Bir çox insanlar şərhlər vasitəsilə soruşduqları üçün xəbərdarlığı yerinə yetirməyi məsləhət görürəm. Parlaq LEDlər və kiçik bir tank balıqlarınızı öldürə bilər. (Şəkilə baxın
Su Soyuducu Tankı: 7 addım
Su Soğutucu Tankı: Bu sadə, evdə sadə komponentləri olan bir su soyuducusunun necə hazırlanacağına aiddir
PIR, 3D Çaplı Balqabaq və Troll Arduino Uyğun Audio Pranker/praktik zarafat lövhəsi istifadə edərək Halloween Qorxu Maşını .: 5 addım
PIR, 3D Çaplı Balqabaq və Troll Arduino Uyğun Səs Prankeri/praktik zarafat lövhəsi istifadə edərək Halloween Qorxu Maşını: EngineeringShock Electronics şirkətindən Patrick Thomas Mitchell tərəfindən yaradılan və tam olaraq Kickstarter tərəfindən maliyyələşdirilən Troll lövhəsi. Mükafatımı bir neçə həftə erkən aldım ki, bəzi istifadə nümunələri yazım və bir Arduino kitabxanası qurum
Hərəkətli FPV Kameralı RC Tankı: 9 Addım (Şəkillərlə)
Hərəkətli bir FPV Kamera ilə RC Tankı: Salam.Bu təlimatda sizə FPV kamerası ilə uzaqdan idarəetmə tankının necə qurulacağını göstərirəm. Əvvəlcə FPV kamerası olmayan yalnız RC tankı qururam, amma evdə sürərkən harada olduğunu görmədim. Buna görə əlavə edəcəyim bir şeylə gəldim
Sonsuz zarafat: 7 addım (şəkillərlə)
Infinite Jest: Robot əlcəklə idarə olunan fırlanan maşın. Bitməyən əyləncə