Wykonaj czujnik zbliżeniowy IR Attiny13 na 2,42 USD: 7 kroków (ze zdjęciami)

Wykonaj czujnik zbliżeniowy IR Attiny13 na 2,42 USD: 7 kroków (ze zdjęciami)

Spisu treści:

Anonim

UWAGA: Diagram jest nieprawidłowy. Pin sensacyjny trafia na pin 6 (jeszcze jeden po lewej), a nie pin 5. Niedługo zaktualizuję diagramy.Dzięki brmccollum za korektę. (Diagramy teraz naprawione)

Jest to niezwykle tani czujnik zbliżeniowy IR, który można wykonać za pomocą kilku tanich części i programatora AVR. Używam Arduino jako mojego programisty w tym Instructable.

Ten czujnik ma zasięg tylko około 3 cali. Możesz łatwo dodać więcej diod LED lub jaśniejszych, aby zwiększyć zasięg. Możesz również łatwo zmienić rozmieszczenie diod LED, aby wykryć również, kiedy wiązka jest uszkodzona.

Konstrukcja wykorzystuje tani AVR (komputer na chipie). Komputer pulsuje i wyłącza diody LED IR i porównuje odczyty analogowe z czujnika w każdym stanie. Gdy odczyt przy włączonych światłach jest powyżej odczytu przy zgaszonych światłach, pin wyczuwa się, wskazując, że czujnik widzi własne (odbite) światło. W tej konstrukcji znajduje się dioda LED na wskaźniku wykrywania, dzięki czemu można zobaczyć, kiedy czujnik się włączy. Możesz podłączyć sygnał bezpośrednio do mikrokontrolera takiego jak Arduino lub Picaxe.

Ten projekt przenosi część przetwarzania z głównego mózgu robota do jego własnego węzła. Możesz odrzucić sygnał, ale nie musisz migać diod i wykonywać odczytów. Możesz również użyć tylko jednego cyfrowego pinu do odczytania. Szkic ma około 700 tysięcy z 1024 dostępnych.

Dlaczego to zbudowałem

Wychodzę ze szkoły średniej, ale jest to część serii projektów związanych z przeniesieniem robotów z gry Robot Oddysey do świata rzeczywistego. Chcę, aby uczniowie klas mieli taką samą szansę na naukę robotyki, jaką miałem. Pracuję więc nad zbudowaniem naprawdę niedrogich robotów, które mogą się poruszać w 8 kierunkach bez obracania. „Zderzaki” są teraz kompletne.

Follow @ dustin1970

Kieszonkowe dzieci:

Krok 1: Zbierz materiały

Elektronika, której potrzebujesz, jest następująca. Numery części Digikey i ceny obowiązują od 18.04.2012.

Ilość

Numer części Digikey Opis Koszt
1 475-1439-ND475-1439-ND PHOTOTRANSISTOR 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 EMITOWANY IR 3MM 940NM WODY CLEAR $0.44
CAŁKOWITY $2.42

Będziesz także potrzebował

  • Taśma elektryczna
  • plastikowa słomka do picia
  • nożyczki
  • Nożyce do drutu
  • deska do krojenia chleba i / lub lutownica
  • Przewody rozruchowe
  • Programator AVR (każdy zgodny z Ardunio zrobi to)
  • Oprogramowanie Ardunio 1.0 z modyfikacjami do programu Attiny i rdzeniem Atiny13

Krok 2: Utwórz osłonę czujnika

Nie chcesz przeciekać światła podczerwonego z boków czujnika. Stworzymy mały tunel z taśmy elektrycznej i słomy. Moja taśma jest nieprzezroczysta dla IR. Twój prawdopodobnie też jest, ale jeśli chcesz być pewny, możesz wyrównać go folią aluminiową. Upewnij się, że żaden metal nie jest odsłonięty, ponieważ zrujnuje obwód.

Odetnij około 4 cm słomy. Owiń ją taśmą elektryczną. Przytnij końce i ułóż je.

Wytnij około 1/2 "(8 mm) kawałka taśmy i zwiń go z krótkiej krawędzi. Złóż rolkę na pół. Nie pozostanie, ale włóż w nią dobre zagniecenie. Spowoduje to zatkanie dolnej części czujnika i utrzymanie zabłąkane światło w ten sposób.

Krok 3: Przygotuj czujnik

Odetnij środkową nogę od fototranzystora, jeśli taki ma. Nie jest potrzebny w tym projekcie i może powodować problemy, jeśli pozostawisz je włączone. Nie musisz go przecinać, ale nie odchodź zbyt wiele.

Delikatnie wsuń czujnik do słomy, aż podstawa znajdzie się w odległości 1/4 cala (5 mm) lub tak. Wepchnij zagiętą rolkę taśmy za nią i uszczelnij plecy odrobiną taśmy.

Krok 4: Zrób to

Możesz to zrobić na płytce kuchennej lub przylutować razem w stylu „martwego błędu”. Najpierw wykonaj breadboard, aby łatwo zaprogramować Attiny13. Gdy to zadziała, możesz lutować je razem.

Postępuj zgodnie ze schematem okablowania i pamiętaj o kilku uwagach.

  • Chip, diody LED i tranzystory działają tylko w jedną stronę.
  • Krótka noga diod LED jest podłączona do rezystorów 220 omów.
  • The długie noga fototranzystora jest podłączona do rezystora 1meg.
  • Możesz dodać więcej par nadajnika / rezystora IR równolegle z istniejącą parą. Najpierw uruchom podstawowy obwód. Można również użyć jednego nadajnika podczerwieni, ale 2 wydawało się, że odczyty są o wiele bardziej stabilne.
Uwaga: Po zrobieniu tego diagramu odkryłem kondensator 0.1uf na chipie Attiny z VCC na GND, który pomaga ze stabilnością. Zaleca się umieszczenie jednego w każdym mikrochipie w projekcie. Bez niego działał rozsądnie w płytce, ale płytka naprawdę poprawiła się wraz z dodatkiem.

Krok 5: Podłącz AVR (Arduino) i zaprogramuj chip

Jeśli wypalisz szkic ArduinoISP do dowolnego Ardunio opartego na AtmegaX28, może on spalić program Attiny chips. Diagram przedstawia pro-mini, aby zaoszczędzić miejsce. Po prostu użyj tych samych numerów pinów dla każdej używanej płyty. Jeśli masz innego programatora AVR, zakładam, że wiesz jak go używać.

Zainstaluj Attiny13 Core13 od sourceforge. Oto Instructable by diy_bloke z instrukcjami i nawet plikiem zip do pobrania.

Oto instrukcje MIT dotyczące modyfikowania środowiska do nagrywania Attiny.

Ta strona może pomóc, jeśli masz problemy. Sprawdź komentarze.

Połącz w Arduino. Możesz go rozwinąć, gdy programowanie zostanie zakończone.

Załaduj plik INO i nagraj go na chipie Attiny13.

Alternatywnie, po prostu użyj programatora AVR do nagrania pliku hex lub Instructable author Nikkipugh ma superpłytkę do projektowania tarcz do programowania chipów attiny13.

Możesz potrzebować kondensatora 10uf lub rezystora 120 omów z resetowania Arduino do masy.

kod:

/ * Czujnik zbliżeniowy Attiny13 autorstwa Dustina Andrewsa 2012 Licencja: Creative Commons Unported http://creativecommons.org/licenses/by/3.0/ * / // Wykonaj jakieś pismo niskiego poziomu AVR, aby zapisać instrukcje. 1010 z 1024. Zamknij! #define SetPin (Bit) PORTB | = (1 << Bit) #define ClearPin (Bit) PORTB & = ~ (1 << Bit) // połącz swój IR doprowadzony do tego pin. (chip pin 5?); #define irOutPin 3 // Ten pin przechodzi w stan wysoki, gdy czujnik wykryje i przeszkodzi. (chip pin 6) #define outPin 1 // podłącz ten pin do fototrans 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 nie działa na Atiny13 bez tej linii. Nie będzie działać na innych Z NIM. } void loop () {statyczna długa różnica = 0; unsigned static long lastTime = 0; SetPin (irOutPin); delay1 (); unsigned int r1 = analogRead (sensorInPin); ClearPin (irOutPin); delay1 (); unsigned int r2 = analogRead (sensorInPin); różnica + = r1 - r2; if (millis () - lastTime> 5) // może uzyskać płynniejszą odpowiedź z większymi opóźnieniami {if (różnica> 0) {SetPin (outPin); } else {ClearPin (outPin); } różnica = 0; lastTime = millis (); }} void delay1 () {// delay (1) jest zbyt kosztowny w pamięci. Dlaczego jest to o wiele tańsze?: D długi start = millis (); while (true) {if (millis () - start> 1) {break;}}}

Krok 6: Zbuduj niesamowitego robota za pomocą czujnika

W tym momencie powinieneś mieć działający czujnik na płycie. Przylutuj je do taniego czujnika, który możesz dodać do robota. Czujnik będzie miał 3 zewnętrzne przewody. VCC (5v), GND i Sense. Zobacz schemat połączeń, gdzie można zaczepić „sens”. To ten sam przewód, co długa noga diody LED.

Rozwiązywanie problemów:

  • Sprawdź wszystkie przewody.
  • Poruszaj diodami LED i upewnij się, że są dobrze dopasowane do lufy.
  • Sprawdź ponownie przewody.
  • Niech ktoś spojrzy ci przez ramię, gdy wyjaśnisz, dokąd idzie każdy drut. (To pomaga tak często, że nawet nie jest śmieszne)
  • Sprawdź polaryzację diod LED oraz czujnika i tranzystora.
  • Sprawdź polaryzację Attiny. Jeśli jest gorąco, włóż do tyłu.
  • Użyj telefonu lub innego aparatu cyfrowego, aby sprawdzić, czy diody LED świecą.
  • Wyłącz wszystkie światła fluorescencyjne i wypróbuj czujnik z dala od światła słonecznego.
  • Weź jedną diodę LED i przymocuj ją do długich przewodów i umieść ją w beczce czujnika, aby zobaczyć, czy w ogóle widzi.
  • Zmień rezystor 1M na mniejsze wartości, aby uzyskać mniejszą czułość.
  • Dostosuj kod.

Krok 7: Opcjonalnie - Płytka drukowana

W tym kroku znajduje się plik PDF, którego można użyć na drukarce laserowej wraz z transferem toneru lub metodami fotograficznymi do produkcji płyt. Istnieje wiele instrukcji, jak to zrobić. Ustaliłem, że dodanie czapeczki.1uf w VCC i GND na chipie pomaga zwiększyć niezawodność pracy płyty.

Wydrukuj wzór na dole planszy. Włóż elementy z pustej strony płyty zgodnie ze schematem i przylutuj je. Zgięłam diodę LED i przewody czujnika o 90 stopni, więc czujnik będzie wyglądał „naprzód”.

PDF i układ są nieco inne niż na zdjęciu. Dodałem wyraźnie czapkę 0.1uf i sprawiłem, że podstawa biegu tranzystora trzymała się z dala od linii czujnika.