Lav en Attiny13 Baseret IR Proximity Sensor til $ 2,42: 7 trin (med billeder)

Lav en Attiny13 Baseret IR Proximity Sensor til $ 2,42: 7 trin (med billeder)

Indholdsfortegnelse:

Anonim

BEMÆRK: Diagrammet er forkert. Sansestiftet går på pin 6 (en til venstre), ikke pin 5. Jeg opdaterer diagrammerne snart.Takket være brmccollum til korrektionen. (Diagrammer nu rettet)

Dette er en ekstremt billig IR-nærhedsføler, du kan lave med et par billige dele og en AVR-programmerer. Jeg bruger en Arduino som min programmør i denne instruktør.

Denne sensor har kun en rækkevidde på ca. 3 tommer. Du kan nemt tilføje flere lysdioder eller lysere til at udvide området. Du kan også nemt omorganisere LED'erne for at detektere, når en stråle er brudt.

Designet udnytter en billig AVR (computer på en chip). Computeren pulserer IR-LED'erne fra og til og sammenligner de analoge aflæsninger fra sensoren i hver tilstand. Når læsningen med lysene på er over læsningen med lysene slukket, slukkes følespidsen højt, hvilket viser, at sensoren ser sit eget (reflekteret) lys. Der er en LED på følelsesindikatoren i dette design, så du kan se, hvornår sensoren går i indgreb. Du kan forbinde signalet direkte til en mikrocontroller som en Arduino eller Picaxe.

Dette design bevæger nogle behandling ud af din hovedrobot hjerne og ind i sin egen knude. Du ønsker måske at debounce signalet, men du behøver ikke at blinke lysdioderne og tage aflæsningerne. Du kan også bruge kun en digital pin til at tage læsningen. Skissen er omkring 700K ud af 1024 til rådighed.

Hvorfor jeg byggede dette

Jeg er ude af gymnasiet, men det er en del af en række designs, der er relateret til at bringe robotterne fra spillet Robot Oddysey ind i den virkelige verden. Jeg vil gerne tillade klasselærere samme chance for at lære robotik, jeg havde. Så jeg arbejder på at bygge rigtig billige robotter, der kan bevæge sig i 8 retninger uden at dreje. "Bumpers" er færdige nu.

Følg @ dustin1970

forsyninger:

Trin 1: Indsamle materialer

Elektronikken du skal bruge er som følger. Digikey del numre og priser er fra 4/18/2012.

Antal

Digikey varenummer Beskrivelse Koste
1 475-1439-ND475-1439-ND FOTOTRANSISTOR NPN W / FILTER 5MM $0.53
1 ATTINY13A-PU-ND IC MCU AVR 1K FLASH 20MHZ 8PDIP $0.95
3 CF14JT220RCT-ND RES 220 OHM 1 / 4W 5% CARBON FILM $0.24
1 CF14JT1M00CT-ND RES 1M OHM 1 / 4W 5% CARBON FILM $0.08
1 2N3904FS-ND IC TRANS NPN SS GP 200MA TO-92 $0.18
2 754-1241-ND EMITTER IR 3MM 940NM WATER CLEAR $0.44
I ALT $2.42

Du skal også bruge

  • Elektrisk tape
  • plastikstrømpe
  • saks
  • Wire snippers
  • brødbræt og / eller loddejern
  • Jumper ledninger
  • En AVR-programmerer (enhver Ardunio-kompatibel vil gøre)
  • Ardunio 1.0 software med ændringer til programmet Attiny og Atiny13 kernen

Trin 2: Opret en Sensor Shroud

Du ønsker ikke, at IR-lys lækker ind fra sensorens sider. Vi vil lave en lille tunnel fra elektrisk tape og et halm. Mit bånd er uigennemsigtigt til IR. Det er formentlig også, men du kan linse det med aluminunfolie, hvis du vil være sikker. Sørg for at metal ikke er udsat, da det ødelægger kredsløbet.

Afskåret ca. 1,5 "(4cm) af halmen. Sæt det i elektrisk tape. Trim enderne og gør den pæn.

Klippe ca. 1/2 "(8 mm) bit tape og rul det op fra kanten. Fold rullen i halvt. Den vil ikke blive, men lægge en god krølle i den. Dette vil sætte bunden af ​​sensoren fast og holde stray lyser ud på den måde.

Trin 3: Forbered sensoren

Skær mellembenet ud af din fototransistor, hvis det har en. Det er ikke nødvendigt i dette design og kan faktisk forårsage problemer, hvis du forlader det. Du behøver ikke at klippe det hele vejen tilbage, men gå ikke meget.

Vip forsigtigt sensoren ind i halmen, indtil bunden er 1/4 "(5 mm) i eller så. Skub den foldede rullebånd bagved og lukk ryggen med lidt tape.

Trin 4: Wire It Up

Du kan gøre dette på brødbrættet eller loddet det hele sammen "dead bug" stil. Gør brødbrættet først, så du nemt kan programmere Attiny13. Når det virker, kan du lodde det sammen.

Følg ledningsdiagrammet og hold nogle noter i tankerne.

  • Chippen, lysdioder og transistorer arbejder kun én vej rundt.
  • LED'ets korte ben er forbundet med 220 ohm modstandene.
  • Det lang Fototransistorens ben er forbundet til 1meg modstanden.
  • Du kan tilføje flere IR emitter / modstand par parallelt med det eksisterende par. Få det grundlæggende kredsløb til at fungere først. Du kunne også bare bruge en IR-emitter, men 2 syntes at gøre aflæsningerne meget mere stabile.
Bemærk: Efter at jeg gjorde dette diagram opdagede jeg en 0.1uf kondensator over Attiny-chip fra VCC til GND hjælper med stabilitet. Det anbefales at sætte en på tværs af alle mikrochip i et design. Det fungerede rimeligt i brødbrættet uden det, men kredsløbene blev virkelig forbedret med tilføjelsen.

Trin 5: Wire Up AVR (Arduino) og program chip

Hvis du brænder ArduinoISP-skitsen til en hvilken som helst AtmegaX28-baseret Ardunio, kan den brænde Attiny chips-programmet. Diagrammet viser en pro-mini for at spare plads. Brug kun de samme pinnumre til det bord, du bruger. Hvis du har en anden AVR-programmør, antager du, hvordan du bruger den.

Installer Attiny13 Core13 fra sourceforge. Her er en instruktion af diy_bloke med retninger og endda en zip-fil, der skal downloades.

Her er MITs instruktioner til at ændre dit miljø for at brænde Attiny.

Denne side kan hjælpe, hvis du har problemer. Tjek kommentarerne.

Tråd i Arduino. Du kan unwire det, når programmeringen er færdig.

Indlæs INO filen og brænd den til Attiny13 chip.

Alternativt kan du bare bruge en AVR-programmør til at brænde hex-filen eller Instruerbar forfatter nikkipugh har et super-strip-skjolddesign til programmering af attiny13 chips.

Du kan få brug for en 10uf kondensator eller 120 ohm modstand fra Arduino reset til jorden.

kode:

/ * Attiny13 nærhedsføler af Dustin Andrews 2012 Licens: Creative Commons Unported http://creativecommons.org/licenses/by/3.0/ * / // Gør nogle lavniveau AVR-stifter til at gemme instruktioner. 1010 af 1024. Luk! #define SetPin (Bit) PORTB | = (1 << Bit) #define ClearPin (Bit) PORTB & = ~ (1 << Bit) // Led din IR ført til denne pin. (chip pin 5?); #define irOutPin 3 // Denne pin går højt, når sensoren registrerer og forhindrer. (chip pin 6) #define outPin 1 // wire denne pin til dine fototransfer vcc -> phototrans -> pin4 -> 1M res -> gnd (chip pin3) #define sensorInPin 2 void setup () {pinMode irOutPin, OUTPUT); pinMode (outPin, OUTPUT); // pinMode (2, OUTPUT); analogReference (0); // analogread fungerer ikke på Atiny13 uden denne linje. Vil ikke arbejde på andre med det prob'ly. } tomrumssløjfe () {statisk lang forskel = 0; usigneret statisk long lastime = 0; SetPin (irOutPin); Delay1 (); usigneret int r1 = analogRead (sensorInPin); ClearPin (irOutPin); Delay1 (); usigneret int r2 = analogRead (sensorInPin); forskel + = r1 - r2; hvis (millis () - lastTime> 5) // kan få et glattere svar med større forsinkelser {hvis (forskel> 0) {SetPin (outPin); } ellers {ClearPin (outPin); } forskel = 0; lastTime = millis (); }} void delay1 () {// delay (1) er for dyrt i hukommelsen. Hvorfor er det så meget billigere?: D lang start = millis (); mens (true) {if (millis () - start> 1) {break;}}}

Trin 6: Byg nogle fantastiske robotter med sensoren

På dette tidspunkt skal du have en fungerende sensor på breadboard. Lod det sammen for en billig sensor, du kan føje til en robot. Sensoren vil ende med at have 3 eksterne ledninger. VCC (5v), GND og Sense. Se kredsløbsdiagrammet for hvor man kan koble til "sense". Det er den samme ledning som det lange ben på indikatorlampen.

Fejlfinding:

  • Tjek alle ledninger.
  • Vip LED'erne og sørg for, at de passer godt sammen med tønderen.
  • Tjek ledningerne igen.
  • Få nogen til at kigge over din skulder, mens du forklarer, hvor hver ledning går. (Dette hjælper så ofte, det er ikke engang sjovt)
  • Kontroller polariteten af ​​lysdioderne og sensoren og transistoren.
  • Kontroller Attiny's polaritet. Hvis det er varmt, sætter du i baglæns.
  • Brug en telefon eller et andet digitalkamera til at kontrollere, at lysdioderne lyser.
  • Sluk for noget blomstrende lys og prøv sensoren væk fra sollys.
  • Tag en lysdioden og fastgør den til lange ledninger, og læg den lige ned i følerens tønde for at se, om den overhovedet kan se.
  • Udskift 1M modstanden for mindre værdier for at få mindre følsomhed.
  • Tweak koden.

Trin 7: Valgfrit - Kretskortet

Dette trin har et PDF-dokument, du kan bruge på en laserprinter med toneroverførings- eller fotometoderne til at lave brædder. Der er masser af instruktioner over for, hvordan du gør dette. Jeg besluttede at tilføje en.1uf cap på tværs af VCC og GND på chippen hjælper med at gøre bestyrelsen arbejde mere pålideligt.

Udskriv mønsteret på, hvad der vil være bunden af ​​brættet. Sæt komponenterne ind fra den tomme side af pladen i henhold til diagrammet og lod dem solde. Jeg bøjede LED'en og sensoren fører 90 grader, så sensoren ville se "fremad".

PDF og layout er lidt anderledes end billedet. Jeg tilføjede den eksplosive 0.1uf cap og lavede basebenet på transistorens løb væk fra sensorlinjen.