Мазмұны:

Әзіл танк: 5 қадам
Әзіл танк: 5 қадам

Бейне: Әзіл танк: 5 қадам

Бейне: Әзіл танк: 5 қадам
Бейне: Басқа тышты деген осы 😡 2024, Шілде
Anonim
Әзіл танк
Әзіл танк

Бұл мен ХКУ мектебінде жасаған жоба, ол бізге Arduino Uno көмегімен бірдеңе жасауды талап етті. Мен сүйікті ісіммен айналысатын, адамдарды күлдіретін нәрсе жасағым келді. Сізді әзілдейтін әзіл -қалжың жасауды шештім, бірақ ол сізге қандай әзіл берді, сол уақытта сенсорлық модульдердің екеуінің өлшегеніне байланысты болады. Жеке болу үшін мен оны танкке айналдыруды шештім.

1 -қадам: бөлшектерді алу

Бұл жобаны қайта құру үшін сізге қажет бөліктер болады

  • 1x компьютер Arduino IDE іске қосуға қабілетті
  • 1x Arduino Uno
  • Arduino Uno үшін 1x USB қосқыш кабелі
  • 1x Sonar сенсоры
  • 1x Динамик (лайықты сапалы (мен Bluetooth динамигінен шығарылғанын қолдандым)).
  • 1x LM386 күшейткіш модулі (мұны өзіңіз жасауға болады, бірақ мен модуль қолдандым).
  • 1x LM393 микрофон
  • 1x LDR
  • 1x жарық диоды (кез келген түс болады, бірақ мен көк түсті қолдандым).
  • 4х 1 кОм резистор
  • 1x2, 7kΩ резистор
  • 1x Нан тақтасы
  • 1x micro SD картасы (жақсырақ шағын (1 немесе 2 Гб)).
  • 1x қуат бұрғышы.
  • 1х 16 мм бұрғылау ұңғысы (металды бұрғылау үшін жақсырақ).
  • 1х 9 мм бұрғылау ұңғысы (сонымен қатар металды бұрғылауға арналған).
  • 1х 1мм бұрғылау ұңғысы (металды бұрғылау үшін жақсырақ жасалған).
  • 1x үлгідегі цистерна (мен 1:35 масштабындағы барсты 2 қолдандым, бірақ басқа жағдайлар да жақсы болуы керек).
  • Супер желім / ыстық желім
  • және кейбір сымдар жақсырақ түрлі түсті.
  • кабель байланысы (міндетті емес).

2 -қадам: Сымдарды жалғау

Сымдар
Сымдар

Біз сымнан бастауымыз керек, бұл суреттің барлығы қалай қосылатынын көрсететін техникалық сызба. Бұл сіздің схемаңыз ретінде қызмет етуі керек. Ескертпе: Arduino порттарының әрқайсысы әр порт үшін AP# деп аталады. Arduino - AP4, A0 порты - APA0 және 6 - порт - AP6 ~ және т.б. Барлық басқа порттар модульдерде қалай пайда болса, солай аталады.

3 -қадам: алдын ала кодтау заттары

Енді кодты қолдануды бастамас бұрын бізге кейбір мәліметтер қажет. Мен сізге 2 -ден 4 -ке дейінгі нұсқаулықтарды орындауды ұсынамын.

www.electronoobs.com/eng_arduino_tut8.php

Бірақ біз оның кодын қолданбаймыз, өйткені біз өзіміздің жеке кодты қолданатын боламыз. Назар аударыңыз, кейбір динамиктер әр түрлі жиіліктерді пайдаланады. Менің динамигім 32 кГц 16 биттік аудио файлдарды қолданды. Егер сіздің сөйлеуіңіз шу шығарса, бірақ файлдарды ойнатпаса, жиілікпен ойнауға тырысыңыз.

4 -қадам: код

Енді біз кодты arduino -ға жүктейміз, осының барлығын көшіріп, Arduino IDE -ге қойыңыз және оны Arduino -ға жүктеңіз.

// SD картасын оқуға арналған кітапхананы қамтиды.#include «Wtv020sd16p.h» // дыбыс сенсорына қажет кітапхананы қамтиды. #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); // Басқа кірістерді орнатады және бағдарламаның бит жылдамдығын орнатады. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Бағдарламаның негізгі бөлігі. void loop () {// Inter Light интерфейсін орнатады 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); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println («2 --------»); кешіктіру (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println («3 --------»); кешіктіру (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println («4 --------»); кешіктіру (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println («5 --------»); кешіктіру (5000); } else 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); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println («8 --------»); кешіктіру (8000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println («9 --------»); кешіктіру (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println («10 -------»); кешіктіру (8000); } else 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); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println («14 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println («15 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println («16 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println («17 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || қашықтықVal == NULL || қашықтықVal> = 150) {Serial.println (distanceVal); Serial.print («Жарықтық мәні:»); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println («19 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println («20 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println («21 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println («22 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println («23 -------»); кешіктіру (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println («24 -------»); кешіктіру (5000); }}}}

5 -қадам: Іс

Іс
Іс
Іс
Іс

Енді нақты күрделі бөлігі келеді.

Бұл жағдайда бәрін орнату қиын болуы мүмкін, бұл сіздің бәрін тақтаға қалай орнатқаныңызға немесе заттарды қалай дәнекерлегеніңізге байланысты. Бірақ сенсорлар бір -біріне жабысып қалуы үшін бірнеше тесік жасау керек. Мен микрофонды (9 мм бұрғылау қажет) және дыбыс модулін (6 мм бұрғылау қажет) резервуардың алдыңғы жағына, ал LDR -ды резервуардың алдыңғы жағына қойдым, бірақ егер сізде бос орын болса, оларды кез келген уақытта тиімді түрде қоя аласыз.

Ардуиноны коннектор кабелімен жалғау үшін модельдің корпусында тесік жасаңыз.

Мен динамикті мұнараға қоюды ұсынар едім. өйткені онда көп орын қалуы керек.

Жоғарыдағы сол жақ сурет - мен Leopard 2 моделінің ішіне дәнекерленген arduino мен басылымды қалай орнатқаным. Оң жақ суретте сымдардың көп бөлігі орнатылған.

Сіз жасай алатын нәрсе - Arduino -ны кабельдік байланыстармен бекіту үшін модельдің төменгі жағындағы кішкене тесіктерді бұрғылау.

Бірақ егер мен қателеспесем, енді сіз мұны істеуіңіз керек.

Ұсынылған: