Taula de continguts:

Joker Tank: 5 passos
Joker Tank: 5 passos

Vídeo: Joker Tank: 5 passos

Vídeo: Joker Tank: 5 passos
Vídeo: How to turn yourself into the Joker! (photoshop) 2024, De novembre
Anonim
Tank Broma
Tank Broma

Aquest és un projecte que vaig fer a la meva escola HKU, que requeria que féssim alguna cosa amb un Arduino Uno. Volia fer alguna cosa que fes el que preferia, que fes riure a la gent. Així que vaig decidir fer una caixa d’acudits que us brindés una broma, però quina broma us donaria dependria del que mesuressin un parell de mòduls de sensor en aquell moment determinat. Per fer-lo més personal, vaig decidir fer-ne un tanc.

Pas 1: Obtenir les peces

Les parts necessàries per recrear aquest projecte serien

  • 1x ordinador capaç d'executar Arduino IDE
  • 1x Arduino Uno
  • 1x cable USB per Arduino Uno
  • 1x sensor de sonar
  • 1 x Altaveu (preferible de qualitat decent (, he utilitzat un que he tret d'un altaveu bluetooth)).
  • 1x mòdul amplificador LM386 (és possible fer-ho vosaltres mateixos, però he utilitzat un mòdul).
  • 1x micròfon LM393
  • 1x LDR
  • 1x LED (qualsevol color farà, però he utilitzat el blau).
  • 4x resistència de 1kΩ
  • Resistència 1x 2, 7kΩ
  • 1x tauler de pa
  • 1 targeta micro SD (preferiblement petita (1 o 2 gb)).
  • 1x trepant elèctric.
  • 1x capçal de 16 mm (preferiblement per perforar metall).
  • 1x cap de broca de 9 mm (també fabricat preferentment per perforar metall).
  • 1x cap de broca d'1mm (de nou preferiblement per perforar metall).
  • 1x Model de tanc (he utilitzat un lleopard 2 a escala 1:35, però altres casos també haurien d’estar bé).
  • Superglue / hotglue
  • i bastants cables preferiblement de diferents colors.
  • brides de cable (opcional).

Pas 2: cablejat

Cablejat
Cablejat

Hem de començar amb el cablejat, la imatge és un dibuix tècnic de com s’ha de connectar tot plegat. Això us ha de servir com a pla principal. Nota: Tots els ports Arduino s’anomenen AP # per a cada port. Arduino és AP4, el port A0 és APA0 i el port 6 ~ és AP6 ~, etc. Tots els altres ports es denominen tal com apareixen als mòduls.

Pas 3: Pre Codi de coses

Abans de començar a utilitzar el codi, necessitem alguns stuf. Us recomano que seguiu aquest tutorial per a mans del pas 2 al 4

www.electronoobs.com/eng_arduino_tut8.php

Tanmateix, no utilitzarem el seu codi, ja que farem servir el nostre. Tingueu en compte que alguns altaveus utilitzen diferents freqüències. El meu altaveu utilitza fitxers d'àudio de 16 bits de 32 kHz. Per tant, si el que parleu fa algun tipus de soroll però no reprodueix els fitxers, proveu de jugar amb la vostra freqüència.

Pas 4: Codi

Ara carregarem el codi a l’arduino. Copieu-ho tot i passeu-lo a l’IDE Arduino i pengeu-lo al vostre Arduino.

// inclou la biblioteca per al lector de targetes SD. # include "Wtv020sd16p.h" // inclou la biblioteca necessària per al sensor de sonar. #include // Estableix els pins de l'Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Estableix els pins de la biblioteca de la targeta SD. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Estableix els pins de la biblioteca de sensors Sonar. NewPing sonar (11, 10); // Configura les altres entrades i estableix la velocitat de bits del programa. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Part principal del programa. void loop () {// Estableix els intergers int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Retardar perquè el projecte el projecte no continuï utilitzant l’altaveu infinitament. retard (30000); // Impressió en sèrie i línies d'impressió perquè pugueu veure fàcilment quins valors prenen els mòduls del sensor. Serial.print ("Valor del so:"); // Múltiples sentències if perquè el programa reprodueixi diferents fitxers d'àudio en funció dels valors que mesuren els mòduls del sensor. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Distància"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Valor de llum:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Una altra impressió en sèrie perquè pugueu veure quin fitxer d’àudio es va reproduir exactament. Serial.println ("1 --------"); // Un altre retard perquè la reproducció del fitxer d'àudio sigui completa. retard (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); retard (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); retard (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); retard (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); retard (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Valor de llum:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); retard (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); retard (8000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); retard (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); retard (8000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); retard (6000); } else if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); retard (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); retard (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); retard (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); retard (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); retard (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Valor de llum:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); retard (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); retard (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); retard (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); retard (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); retard (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); retard (5000); }}}}

Pas 5: el cas

El cas
El cas
El cas
El cas

Ara arriba la part complicada real.

Arreglar-ho tot a la caixa pot ser una mica complicat, això depèn de com ho hàgiu ajustat tot a la taula de treball o de com es venguin les coses juntes. Però haureu de fer un parell de forats perquè els sensors s’enganxin. Vaig posar el micròfon (es necessita un trepant de 9 mm) i el mòdul de sonar (es necessita un trepant de 6 mm) a la part posterior i el LDR a la part davantera del tanc, però els podeu posar efectivament si teniu espai.

Assegureu-vos de tallar un forat al cos del model per poder connectar el vostre arduino amb el cable del connector.

Recomanaria posar l’altaveu a la torreta. ja que hi hauria d’haver molt d’espai.

A la imatge de l’esquerra que es mostra a continuació s’explica com he ajustat l’arduino i la impressió que heu soldat dins del model Leopard 2. La imatge de la dreta és una amb la majoria del cablejat instal·lat.

El que podeu fer és perforar petits forats a la part inferior del model per assegurar l’Arduino amb brides de cable.

Però si no m’equivoco, ara hauríeu d’acabar.

Recomanat: