Բովանդակություն:

Կատակի տանկ. 5 քայլ
Կատակի տանկ. 5 քայլ

Video: Կատակի տանկ. 5 քայլ

Video: Կատակի տանկ. 5 քայլ
Video: Հրադադարից 20 րոպե անց հետախույզ Գնելը ԱԹՍ-ի հարվածից անմահացավ. 5 քայլ էր մնացել, որ խրամատ հասներ 2024, Նոյեմբեր
Anonim
Կատակի տանկ
Կատակի տանկ

Սա նախագիծ է, որը ես արել եմ իմ դպրոցում `HKU- ով, որը պահանջում էր, որ մենք ինչ -որ բան պատրաստենք Arduino Uno- ով: Ես ուզում էի պատրաստել մի բան, որն աներ իմ ամենասիրածը, ծիծաղեցնել մարդկանց: Այսպիսով, որոշեց կատակ տուփ պատրաստել, որը ձեզ կատակ կթափեր, բայց այն, ինչ դա ձեզ տվեց, կախված կլիներ այն բանից, թե ինչ չափիչ սենսորային մոդուլներ էին չափում տվյալ պահին: Ավելի անհատական դարձնելու համար ես որոշեցի այն տանկ դարձնել:

Քայլ 1: Մասերի ձեռքբերում:

Այն մասերը, որոնք ձեզ անհրաժեշտ կլինեն այս նախագիծը վերստեղծելու համար, կլինեն

  • 1x համակարգիչ, որն ունակ է աշխատելու Arduino IDE- ով
  • 1x Arduino Uno
  • 1x USB միակցիչ մալուխ Arduino Uno- ի համար
  • 1x Sonar սենսոր
  • 1x բարձրախոս (նախընտրելի է արժանապատիվ որակի (ես օգտագործել եմ այն, որը հանեցի bluetooth բարձրախոսից)):
  • 1x LM386 ուժեղացուցիչի մոդուլ (հնարավոր է դա ինքներդ պատրաստել, բայց ես օգտագործել եմ մոդուլ):
  • 1x LM393 խոսափող
  • 1x LDR
  • 1x LED (ցանկացած գույն կանի, բայց ես օգտագործում էի կապույտը):
  • 4x 1kΩ դիմադրություն
  • 1x 2, 7kΩ դիմադրություն
  • 1x Breadboard
  • 1x միկրո SD քարտ (ցանկալի է փոքր (1 կամ 2 գբ)):
  • 1x ուժային փորվածք:
  • 1x 16 մմ տրամագծով հորատիչ (նախընտրելի է պատրաստել մետաղի հորատման համար):
  • 1x 9 մմ տրամագծով հորատիչ (նաև գերադասելի է պատրաստել մետաղի հորատման համար):
  • 1x 1 մմ տրամագծով հորատիչ (կրկին գերադասելի է պատրաստել մետաղի հորատման համար):
  • 1x մոդելային տանկ (ես օգտագործել եմ 1:35 մասշտաբի ընձառյուծ 2, բայց մյուս դեպքերը նույնպես պետք է լավ լինեն):
  • Superglue / hotglue
  • և բավականին լարեր, նախընտրելի է տարբեր գույներով:
  • մալուխային կապեր (ըստ ցանկության):

Քայլ 2: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր

Մենք պետք է սկսենք էլեկտրագծից, պատկերը տեխնիկական նկար է, թե ինչպես պետք է ամեն ինչ միացված լինի: Սա պետք է ծառայի որպես ձեր նախագիծը: Նշում. Arduino- ի բոլոր նավահանգիստները յուրաքանչյուր նավահանգստի համար անվանվում են AP#: Այսպիսով, 4 -րդ նավահանգիստը Arduino- ն AP4 է, A0 նավահանգիստը `APA0 և նավահանգիստ 6 -ը` AP6 ~ և այլն: Մնացած բոլոր նավահանգիստներն անվանված են այնպես, ինչպես իրենք են հայտնվում մոդուլներում:

Քայլ 3: Նախնական ծածկագիր

Այժմ, նախքան մենք կսկսենք օգտագործել կոդը, մեզ պետք է որոշակի stuf: Ես խորհուրդ եմ տալիս, որ այժմ հետևեք այս ձեռնարկի ձեռնարկին 2 -ից 4 -րդ քայլից

www.electronoobs.com/eng_arduino_tut8.php

Այնուամենայնիվ, մենք չենք օգտագործի նրա ծածկագիրը, քանի որ մենք օգտագործելու ենք մեր սեփականը: Խնդրում ենք նկատի ունենալ, որ որոշ բարձրախոսներ օգտագործում են տարբեր հաճախականություններ: Իմ խոսնակը օգտագործել է 16 բիթանոց 32 կՀց հաճախականությամբ աուդիո ֆայլեր: Այսպիսով, եթե ձեր խոսքը ինչ -որ տեսակի աղմուկ է բարձրացնում, բայց չի խաղում ձեր ֆայլերը, ապա փորձեք խաղալ ձեր հաճախականությամբ:

Քայլ 4: Կոդ

Այժմ մենք կբեռնենք կոդը arduino- ում: Պատճենեք այս ամենը և տեղադրեք Arduino IDE- ում և վերբեռնեք ձեր Arduino- ում:

// ներառում է գրադարան SD քարտի ընթերցողի համար: #include // Կարգավորում է Arduino- ի կապում: int resetPin = 4; int clockPin = 5; int dataPin = 6; int զբաղվածPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Տեղադրում է SD քարտերի գրադարանի կապում: Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Սահմանում է Sonar սենսորների գրադարանի կապում: NewPing սոնար (11, 10); // Կարգավորում է մյուս մուտքերը և սահմանում ծրագրի բիթ -արագությունը: void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Mainրագրի հիմնական մասը: void loop () {// Կարգավորում է intergers 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 ("Light Value:"); 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 ("Light Value:"); 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); } else 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 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Light Value:"); 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 տանկի առջևում, բայց դրանք կարող են ամենուրեք տեղադրել, եթե ունեք ազատ տարածք:

Համոզվեք, որ մոդելի մարմնում փոս եք կտրում, որպեսզի կարողանաք ձեր arduino- ն միացնել մալուխի հետ:

Ես խորհուրդ կտայի բարձրախոսին դնել պտուտահաստոցում: քանի որ այնտեղ պետք է շատ տեղ մնա:

Վերևի ձախ պատկերն այն է, թե ինչպես ես տեղադրեցի arduino- ն և տպած տպիչը, որը ես զոդեցի Leopard 2 մոդելի ներսում: Աջ պատկերն այն է, որտեղ տեղադրված են էլեկտրագծերի մեծ մասը:

Այն, ինչ դուք կարող եք անել, մոդելի ներքևում փոքր անցքեր են հորատում ՝ Arduino- ն մալուխային կապերով ամրացնելու համար:

Բայց եթե չեմ սխալվում, դուք այժմ պետք է ավարտված լինեք:

Խորհուրդ ենք տալիս: