Mundarija:

Hazil tank: 5 qadam
Hazil tank: 5 qadam

Video: Hazil tank: 5 qadam

Video: Hazil tank: 5 qadam
Video: Askarlar qanday holatga qoldirdi.Mayorni 2024, Iyul
Anonim
Hazil tank
Hazil tank

Bu men XKU maktabida qilgan loyiham, bizdan Arduino Uno yordamida biror narsa qilishimiz kerak edi. Men o'zim yoqtiradigan, odamlarni kuldiradigan biror narsa qilishni xohlardim. Shunday qilib, siz hazil qiladigan hazil qutisini yasashga qaror qildingiz, lekin bu sizga qanday hazil berdi, shu vaqtning o'zida bir nechta sensorli modullar o'lchaganiga bog'liq. Shaxsiy bo'lish uchun men uni tank qilishga qaror qildim.

1 -qadam: ehtiyot qismlarni olish

Ushbu loyihani qayta tiklash uchun sizga kerak bo'ladigan qismlar bo'ladi

  • Arduino IDE bilan ishlaydigan 1x kompyuter
  • 1 marta Arduino Uno
  • Arduino Uno uchun 1x usb ulagich kabeli
  • 1x Sonar sensori
  • 1x karnay (yaxshi sifatli, (bluetooth karnayidan chiqarganimni ishlatganman)).
  • 1x LM386 kuchaytirgich moduli (buni o'zingiz qilishingiz mumkin, lekin men modul ishlatganman).
  • 1x LM393 mikrofoni
  • 1x LDR
  • 1x LED (har qanday rang bo'ladi, lekin men ko'k rangdan foydalanganman).
  • 4x 1kΩ qarshilik
  • 1x2, 7kΩ qarshilik
  • 1x non paneli
  • 1x micro SD -karta (yaxshisi kichik (1 yoki 2 gb)).
  • 1x quvvat matkapi.
  • 1x 16 mm burg'ulash boshi (tercihen metall burg'ulash uchun qilingan).
  • 1x9 mm burg'ulash boshi (shuningdek, metall burg'ulash uchun qilingan).
  • 1x 1 mm burg'ulash boshi (yana metall burg'ulash uchun afzal qilingan).
  • 1x model tank (men 1:35 o'lchovli leopard 2 dan foydalanardim, lekin boshqa holatlar ham yaxshi bo'lishi kerak).
  • Super yopishtiruvchi / issiq yopishtiruvchi
  • va ba'zi simlar, tercihen turli ranglarda.
  • kabel aloqasi (ixtiyoriy).

2 -qadam: simlarni ulash

Ulanish
Ulanish

Biz simlarni ishga tushirishimiz kerak, bu rasmni qanday ulash kerakligi haqidagi texnik rasm, bu sizning rejangiz bo'lib xizmat qilishi kerak. Eslatma: Barcha Arduino portlari har bir port uchun AP# deb nomlangan. Arduino - AP4, A0 - APA0, 6 - port - AP6 ~ va boshqalar. Boshqa barcha portlar modullarda paydo bo'lganidek nomlanadi.

3 -qadam: narsalarni oldindan kodlash

Endi biz kodni ishlatishni boshlashdan oldin, ba'zi ma'lumotlarga muhtojmiz. Men sizga mana shu qo'llanmani 2 dan 4 bosqichgacha kuzatib borishni tavsiya qilaman.

www.electronoobs.com/eng_arduino_tut8.php

Ammo biz uning kodini ishlatmaymiz, chunki biz o'zimizning kodimizni ishlatamiz, shuni esda tutingki, ba'zi karnaylar turli chastotalardan foydalanadilar, mening karnayim 16 bitli 32 kHz audio fayllardan foydalangan. Shunday qilib, agar sizning nutqingiz qandaydir shovqin qilsa, lekin fayllaringizni o'ynatmasa, chastotangiz bilan o'ynashga harakat qiling.

4 -qadam: kod

Endi biz kodni arduino -ga yuklamoqchimiz, bularning barchasini nusxa ko'chiring va Arduino IDE -ga o'tkazing va Arduino -ga yuklang.

// SD -kartani o'quvchi kutubxonasini o'z ichiga oladi.#include "Wtv020sd16p.h" // sonar sensori uchun zarur kutubxonani o'z ichiga oladi. #include // Arduino uchun pinlarni o'rnatadi. int resetPin = 4; int clockPin = 5; int dataPin = 6; int bandPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // SD -karta kutubxonasi uchun pinlarni o'rnatadi. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Sonar sensorlar kutubxonasi pinlarini o'rnatadi. NewPing sonar (11, 10); // Boshqa kirishni o'rnatadi va dasturning bit tezligini o'rnatadi. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Dasturning asosiy qismi. void loop () {// inter LightDetectedVal = analogRead (lightDetectedPin) oralig'ini o'rnatadi; int masofaVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Loyiha karnaydan foydalanishda davom etmasligi uchun kechiktiring. kechikish (30000); // Sensor modullari qanday qiymatlarni qabul qilishini osongina ko'rish uchun ketma -ket bosma va bosma chiziqlar. Serial.print ("Ovoz qiymati:"); // Dastur qiymatlarga qarab turli xil audiofayllarni o'ynashi uchun sensorli modullar yordamida o'lchanadi. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Masofa:"); if (masofaVal == 0) {Serial.println (masofaVal); Serial.print ("Yorug'lik qiymati:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Yana bir ketma -ket chop etish, siz aniq audio fayl qanday ijro etilganini ko'rishingiz mumkin. Serial.println ("1 --------"); // Ovozli faylni to'liq uzunlikda ijro etish uchun yana bir kechikish. kechikish (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); kechikish (5000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); kechikish (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); kechikish (5000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); kechikish (5000); } if if (lightDetectedVal> = 500 || lightDetectedVal 0 || masofaVal == NULL) {Serial.println (distanceVal); Serial.print ("Yorug'lik qiymati:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); kechikish (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); kechikish (8000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); kechikish (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); kechikish (8000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); kechikish (6000); } if if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); kechikish (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); kechikish (5000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); kechikish (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); kechikish (5000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); kechikish (5000); } if if (lightDetectedVal> = 500 || lightDetectedVal 0 || masofaVal == NULL || masofaVal> = 150) {Serial.println (distanceVal); Serial.print ("Yorug'lik qiymati:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); kechikish (5000); } if if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); kechikish (5000); } if if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); kechikish (5000); } if if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); kechikish (5000); } if if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); kechikish (5000); } boshqa if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); kechikish (5000); }}}}

5 -qadam: ish

Ish
Ish
Ish
Ish

Endi haqiqiy murakkab qism keladi.

Bularning barchasini o'rnatish biroz qiyin bo'lishi mumkin, bu sizning hamma narsani taxtangizga qanday o'rnatganingizga yoki narsalarni qanday qilib lehimlaganingizga bog'liq. Ammo datchiklar bir -biriga yopishishi uchun siz bir nechta teshik qilishingiz kerak. Men mikrofonni (9 mm matkap kerak) va sonar modulini (6 mm burg'ulash kerak) tankning old qismiga va LDRni tankning old qismiga qo'ydim, lekin agar sizda bo'sh joy bo'lsa, ularni xohlagan vaqtda qo'yishingiz mumkin.

Arduino -ni ulagich kabeliga ulash uchun model korpusidagi teshikni kesib oling.

Men karnayni minora ichiga joylashtirishni tavsiya qilaman. chunki u erda ko'p joy qolishi kerak.

Leopard 2 modelida lehimlangan arduino va bosmani men qanday o'rnatganman, o'ngdagi rasmda simlarning ko'p qismi o'rnatilgan.

Siz qila oladigan narsa - Arduino -ni kabel bog'lamlari bilan mahkamlash uchun modelning pastki qismida kichik teshiklarni burg'ulash.

Lekin adashmagan bo'lsam, buni hozir qilish kerak.

Tavsiya: