İçindekiler:
Video: Şaka Tankı: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu, okulumda HKU'da yaptığım ve Arduino Uno ile bir şeyler yapmamızı gerektiren bir proje. En sevdiğim şeyi yapacak, insanları güldürecek bir şey yapmak istedim. Bu yüzden size bir şaka yapacak bir şaka kutusu yapmaya karar verdim, ancak size hangi şakayı yaptığı, o belirli anda birkaç sensör modülünün ne ölçtüğüne bağlı olacaktı. Daha kişisel hale getirmek için onu bir tank yapmaya karar verdim.
Adım 1: Parçaları Alma
Bu projeyi yeniden oluşturmak için ihtiyaç duyacağınız parçalar
- Arduino IDE çalıştırabilen 1x bilgisayar
- 1x Arduino Uno
- Arduino Uno için 1x usb bağlantı kablosu
- 1x Sonar sensörü
- 1x Hoparlör (tercihen iyi kalitede biri (, bir bluetooth hoparlörden çıkardığımı kullandım))).
- 1x LM386 Amplifikatör modülü(bunu kendiniz yapabilirsiniz ama ben bir modül kullandım).
- 1x LM393 Mikrofon
- 1x LDR
- 1x LED (herhangi bir renk olur ama ben mavi kullandım).
- 4x 1kΩ direnç
- 1x 2, 7kΩ direnç
- 1x Ekmek Tahtası
- 1x mikro SD kart(tercihen küçük (1 veya 2 gb)).
- 1x Elektrikli matkap.
- 1x 16mm matkap ucu(tercihen metal delmek için yapılmıştır).
- 1x 9mm matkap ucu (tercihen metal delmek için yapılmıştır).
- 1x 1 mm matkap ucu(yine tercihen metal delmek için yapılmıştır).
- 1x Model tank (1:35 ölçekli leopar 2 kullandım ancak diğer durumlar da iyi olmalı).
- Süper yapıştırıcı / sıcak yapıştırıcı
- ve tercihen farklı renklerde oldukça fazla teller.
- kablo bağları (isteğe bağlı).
Adım 2: Kablolama
Kablolama ile başlamamız gerekiyor, resim, hepsinin nasıl kablolanması gerektiğinin teknik bir çizimidir. Bu, planınız olarak hizmet etmelidir. Not: Tüm Arduino portları, her port için AP# olarak adlandırılmıştır. Arduino AP4, bağlantı noktası A0 APA0 ve bağlantı noktası 6~ AP6~, vb. Diğer tüm bağlantı noktaları modüllerin kendilerinde göründükleri gibi adlandırılır.
Adım 3: Ön Kod Şeyleri
Şimdi, kodu kullanmaya başlamadan önce, bazı şeylere ihtiyacımız var. Şimdi bu kılavuz öğreticiyi adım 2'den 4'e kadar izlemenizi tavsiye ederim.
www.electronoobs.com/eng_arduino_tut8.php
Ancak kendi kodumuzu kullanacağımız için onun kodunu kullanmayacağız. Lütfen bazı hoparlörlerin farklı frekanslar kullandığını unutmayın. Hoparlörüm 16-bit 32kHz ses dosyaları kullandı. Bu nedenle, konuşmanız bir tür ses çıkarıyor ancak dosyalarınızı oynatmıyorsa, frekansınızla oynamayı deneyin.
4. Adım: Kod
Şimdi kodu arduino'ya yükleyeceğiz. Bunların hepsini kopyalayıp Arduino IDE'ye yapıştırın ve Arduino'nuza yükleyin.
//SD kart okuyucu için kitaplığı içerir.#include "Wtv020sd16p.h" //sonar sensörü için gerekli kitaplığı içerir. #include //Arduino için pinleri ayarlar. int resetPin = 4; int saatPin = 5; int veriPin = 6; int meşgulPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; //SD kart kitaplığı için pinleri ayarlar. Wtv020sd16p wtv020sd16p(resetPin, clockPin, dataPin, meşgulPin); //Sonar sensör kitaplığı için pinleri ayarlar. YeniPing sonarı(11, 10); //Diğer girişleri ayarlar ve programın bit hızını ayarlar. geçersiz kurulum() { wtv020sd16p.reset(); pinMode(lightDetectedPin, INPUT); pinMode(soundDetectedPin, INPUT); Seri.başla(9600); } //Programın ana kısmı. void loop() { //Aracıları ayarlar int lightDetectedVal = analogRead(lightDetectedPin); int mesafeVal = sonar.ping_cm(); int soundDetectedVal = digitalRead(soundDetectedPin); //Projenin konuşmacıyı sonsuza kadar kullanmaması için geciktirin. gecikme(30000); //Sensör modülleri tarafından hangi değerlerin alındığını kolayca görebilmeniz için seri baskı ve baskı hatları. Serial.print("Ses Değeri: "); //Çoklu if deyimleri, programın farklı ses dosyalarını çalması için değerlere bağlı olarak sensör modülleri tarafından ölçülür. if (soundDetectedVal == 0) { Serial.println(soundDetectedVal); Serial.print("Mesafe: "); if (distanceVal == 0) { Serial.println(distanceVal); Serial.print("Hafif Değer: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(1); // Tam olarak hangi ses dosyasının çalındığını görebilmeniz için başka bir seri baskı. Serial.println("1-------"); //Ses dosyasının tam uzunlukta çalmasına izin vermek için başka bir gecikme. gecikme (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(2); Serial.println("2-------"); gecikme (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(3); Serial.println("3-------"); gecikme (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playSes(4); Serial.println("4-------"); gecikme (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(5); Serial.println("5-------"); gecikme (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || DistanceVal == NULL) { Serial.println(distanceVal); Serial.print("Hafif Değer: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(7); Serial.println("7-------"); gecikme (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(8); Serial.println("8-------"); gecikme(8000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(9); Serial.println("9-------"); gecikme (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playSes(10); Serial.println("10-------"); gecikme(8000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(11); Serial.println("11-------"); gecikme(6000); } else if (lightDetectedVal >= 500 || lightDetectedVal <= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(13); Serial.println("13-------"); gecikme (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(14); Serial.println("14-------"); gecikme (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(15); Serial.println("15-------"); gecikme (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(16); Serial.println("16-------"); gecikme (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(17); Serial.println("17-------"); gecikme (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || DistanceVal == NULL || DistanceVal >= 150) { Serial.println(distanceVal); Serial.print("Hafif Değer: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playSes(19); Serial.println("19-------"); gecikme (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playSes(20); Serial.println("20-------"); gecikme (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playSes(21); Serial.println("21-------"); gecikme (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playSes(22); Serial.println("22-------"); gecikme (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(23); Serial.println("23-------"); gecikme (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal << 500) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(24); Serial.println("24-------"); gecikme (5000); } } } }
Adım 5: Vaka
Şimdi asıl karmaşık kısım geliyor.
Her şeyi kasaya yerleştirmek biraz zor olabilir, bu her şeyi breadboard'unuza nasıl taktığınıza veya bir şeyleri nasıl lehimlediğinize bağlıdır. Ancak sensörlerin tam olarak yapışması için birkaç delik açmanız gerekecek. Tankın arkasına mikrofon (9mm matkap gerekli) ve sonar modülü (6mm matkap gerekli) ve LDR'yi tankın önüne koydum ancak yeriniz varsa bunları etkili bir şekilde koyabilirsiniz.
Arduino'nuzu bağlantı kablosuna bağlayabilmek için modelin gövdesinde bir delik açtığınızdan emin olun.
Hoparlörü tarete koymanızı tavsiye ederim. çünkü orada çok fazla alan kalması gerekiyor.
Yukarıdaki soldaki resim, arduino'yu nasıl yerleştirdiğimi ve Leopard 2 modelinin içine lehimlediğim baskıyı gösteriyor. Sağdaki resim, kabloların çoğunun takılı olduğu resim.
Arduino'yu kablo bağları ile sabitlemek için modelin altına küçük delikler açabilirsiniz.
Ama yanılmıyorsam, şimdi bitmiş olmalısın.
Önerilen:
WiFi Yağ Tankı Monitörü: 6 Adım (Resimlerle)
WiFi Yağ Deposu Monitörü: Isıtma yağı deposunda ne kadar yakıt kaldığını kontrol etmenin birkaç yolu vardır. En basit yol, soğuk bir kış gününde çok hassas ama pek eğlenceli olmayan bir seviye çubuğu kullanmaktır. Bazı tanklar, yine doğrudan bir gösterge veren bir gözetleme tüpü ile donatılmıştır
PIR, 3D Baskılı Balkabağı ve Troll Arduino Uyumlu Sesli Şaka/pratik Şaka Panosu Kullanan Cadılar Bayramı Korkutma Makinesi: 5 Adım
PIR, 3D Basılı Balkabağı ve Troll Arduino Uyumlu Sesli Şakacı/pratik Şaka Panosu Kullanan Cadılar Bayramı Korkutma Makinesi: EngineeringShock Electronics'ten Patrick Thomas Mitchell tarafından oluşturulan ve çok uzun zaman önce Kickstarter'da tamamen finanse edilen Troll panosu. Bazı kullanım örnekleri yazmaya ve bir denemede bir Arduino kütüphanesi oluşturmaya yardımcı olmak için ödülümü birkaç hafta erken aldım
Balkabağı Pi Hile veya Şaka Takibi: 5 Adım
Pumpkin Pi Trick-or-Treat Tracker: Birden fazla yönden faydalı olan hızlı bir Cadılar Bayramı projesi mi arıyorsunuz? Pi Zero WH'yi iyi bir şekilde kullanmak ister misiniz? Gelecek yıl için ne kadar şekere ihtiyacınız olacağını belirlemek için verileri kullanmak ister misiniz? Pumpkin Pi Trick-or-Treat Tracker'ı oluşturmaya hazır olun!
Şaka-o-Lantern: 5 Adım (Resimlerle)
Şaka-o-Lantern: Dünyanın ihtiyacı olan şey bir Arduino Jack-o-lantern! Katılmıyor musunuz? Bu proje, Hileler ve İkramlar sağlayabilen bir jack-o-lantern! Başının yanındaki düğmeye basın ve beraberindeki müzikle rastgele seçilmiş bir Cadılar Bayramı şakası elde edin
Çok Basit Yine Çok Etkili Şaka (Bilgisayar Şakası): 3 Adım
Çok Basit… Yine Çok Etkili Şaka (Bilgisayar Şakası): Bu Eğitilebilirlik ÇOK basit, ancak ÇOK etkili! Ne olacak: Kurbanın masaüstündeki tüm simgeleri gizlersiniz. Siz şakayı yaptıktan sonra, kurban bilgisayarı gördüğünde çıldıracaktır. Bu bilgisayara hiçbir şekilde zarar veremez