ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 lépés
ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 lépés
Anonim
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower

Szevasztok srácok, már egy ideje, hogy közzétettem az utolsó utasítást. Nos, most sok minden kavarog a fejemben, de sikerült dokumentálnom az "első lépéseimet" az ATTiny-sorozatú chipekkel ebben a rövid útmutatóban.

Rendeltem néhány ATTINY85 mintát csak azért, mert tesztelni akartam őket:-) (mindenki szeret tesztelni, ugye?). Ezután elkezdtem rajzolni néhány ötletet a füzetembe. Őszintén szólva az első dolgom az volt, hogy villogtam egy LED -et, ami mint mindig jó kezdet annak ellenőrzésére, hogy a beállítások/szerszámlánc működik -e. Kipróbáltam egy hőmérséklet és páratartalom naplózót is DHT22 és SoftwareSerial segítségével. Ez trükkös volt, mert a DHT -könyvtárak főleg 16 MHz -es órajelekhez készülnek (ha ilyesmit tervez, ellenőrizze a belső óra előbeállítását). De úgy döntöttem, hogy megmutatok valamit, ami sokkal viccesebb. BTW: Feltöltöttem az egyik rajzomat, nem Rembrandt, de megmutatja, hogyan kaptam ezt a (valóban) hülye ötletet egy papírra: -P.

Csak olyan dolgokat használtam, amiket feküdtem, hogy ezt a projektet a lehető legolcsóbban tartsam (számomra). Ennek a kis kalandnak az eredménye egy szép kis "fénykövető robot", körülbelül 10-15 dollárért (3 dollár nekem:-P)

Tehát, ha érdekel ATTINY, olvasd tovább.

BTW: elnézést a rossz angolomért (nem vagyok anyanyelvű)

1. lépés: Első lépések az ATTiny & Tools & Materials termékkel

Első lépések az ATTiny & Tools & Materials termékkel
Első lépések az ATTiny & Tools & Materials termékkel
Első lépések az ATTiny & Tools & Materials termékkel
Első lépések az ATTiny & Tools & Materials termékkel
Első lépések az ATTiny & Tools & Materials termékkel
Első lépések az ATTiny & Tools & Materials termékkel
Első lépések az ATTiny & Tools & Materials termékkel
Első lépések az ATTiny & Tools & Materials termékkel

Amire szüksége lesz az induláshoz:

- ATTiny85 chip

- Arduino UNO vagy hasonló

-abreadboard valamilyen jumper-dróttal vagy ATTINY programozóval, vagy készítsen programozópajzsot az Arduino számára (ellenőrizze a mellékelt képeket, van egy vázlat az avdweb.nl-ről). Ezt én is elkészítettem, és nagyon elégedett vagyok vele. Az egyetlen módosítás, amit tettem, az volt, hogy hozzáadtam egy foglalatot az ATTinyx4 sorozathoz (lásd a képet és a pinout diagramokat).

- az Arduino IDE (szerezze be itt)

- az ArduinoIDE hardverfájljai (töltse le és telepítse)

Info-Link a játszótérhez Közvetlen link az általam használt github fájlokhoz

- töltse be az Arduino -t ISP -vázlatként az UNO -hoz (ez lesz a programozója)

- kövesse ezt az utasítást (https://highlowtech.org/) vagy ezt az utasítást (az ardutronix által), és próbálja meg a "villog" vázlatot (módosítsa a PIN -kódot. használja az ATTINY képet referenciaként! szüksége lesz az elővillantott ATTINY a LED -re és ehhez ~ 220 Ohm ellenállás)

Végezzen el egy kis kenyérsütő-beállítást, hogy mindent ellenőrizhessen. Ha mindent jól csinált, a LED villogni kezd, és készen áll az indulásra

ESZKÖZÖK

- Forrasztópáka- néhány forrasztó- egy kis drótvágó- dremel vagy más forgószerszám (csak a NYÁK vágásához!)- néhány forró ragasztó- csipesz- vezetékek

ANYAGOK

- prototípus NYÁK (~ 4cmx6cm megteszi)- 2x LDR- 5x 10k ellenállás (2x az LDR-ekhez és 2x a tranzisztorokhoz BE, 1x LED)- 1x 330ohm ellenállás (1x NEOPIXELS)- 2x LDR- 1x LED (az Ön színe választható, a görgő helyett)- 3x NEOPIXEL WS2812- 2x tranzisztor (BD137 vagy hasonló)- 2x dióda (1N4001 vagy hasonló)- 2x mikromotor (pl. Hubsan mikro-quadcopterből)- 1x ATTINY85 + opcionális (ajánlott) 8PIN IC aljzat- 1x 1s LIPO (140Ah-t használtam egy régi RC-helikopterből)- néhány tűfej/foglalat- zsugorcső (LDR ház)

Folytassuk a hardver építésével…

2. lépés: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

Ha megnézi a csatolt sémákat, a hardver beállítása nagyon egyszerű. Tehát, ha képes elolvasni a rajzokat és használni a forrasztópáka, ez a fél trükk. Nézze meg a képeket is, néhány megjegyzést fűztem hozzá.

Nem készítek tervet a NYÁK vágására, szabadon készíthet saját tervezést (legyen kreatív, és mutassa meg nekünk apró botjait). Az összes elektronikus alkatrész elhelyezése is Öntől függ. Néhány tipp az oldalamról:

Próbálja pontosan beállítani a motorokat (figyelje a szöget!), Kerekek helyett csak a motor tengelyt használjuk. (ez kevesebb energiát fogyaszt) Javaslom, hogy a motorokat helyezze az akkumulátor (súly) alá, és használja az LDR -eket elöl (45 ° -os szögben), párosítva a LED -del (ezt a kombinációt az akadályok elkerülésére próbálom használni, tovább) vizsgálatok szükségesek).

Továbbá azt javaslom, hogy készítsen egy kis be- és kikapcsolót, hogy az akkumulátor ne vesszen el ilyen könnyen.

Ha valami nem világos, vagy kérdései vannak, kérdezzen tőlem. Ebből a kis projektből sok szenes nem fog dolgozatot készíteni.

3. lépés: Szoftver

Szoftver
Szoftver
Szoftver
Szoftver

Először töltse le és telepítse az ADAFRUIT Neopixel Library programot

Itt van a kódom néhány fontosabb leírással (hozzáadtam a vázlatfájlt is). Nem kommentáltam minden lépést, mert úgy gondolom, hogy nem szükséges.

Töltse fel a vázlatot az ATTiny85 készülékére, és érezze jól magát új játékával

Ötletek a "személyiség" funkcióhoz + talán a kódpéldák nagyon szívesen:-)

Ha bármilyen kérdése van, kérdezzen bátran.

Remélem, tetszett a rövid tanulságos és a kis utazásom az ATTINY világába.

/* ATTINY85-Rata egyszerű ATTINY85 hajtású fénykövető robot. 2.0 verzió, Auer Markus */

#befoglalni

#befoglalni

// motorok

#define LMOTOR 0 #define RMOTOR 1 // LED -ek #define PIXELPIN 2 #define NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR A3

// otherint emo = 0; float calib; boolean emostate; hosszú oldmillis; // define NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

üres beállítás ()

{// előkelő óra, különben időzítési problémákkal fog találkozni (a neopixel lib 16 MHz -re van írva) #if meghatározott (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // pixelek inicializálása PIXEL.begin (); PIXEL.show (); késleltetés (500); // startsequence for (int i = 0; i

üres hurok ()

{if (lightfollow () == 1) {left (); } else if (lightfollow () == 2) {right (); } else if (lightfollow () == 0) {forward (); } érzelem (); }

int lightfollow () {

int küszöb = 14; int eredmény = 0; úszó balra = 0; úszó jobbra = 0; int minták = 1; // LDR -ek olvasása (int j = 0; j <minták; j ++) {

bal = bal + analóg olvasat (LLDR); jobb = jobb + (analóg olvasás (RLDR)*kalibrálás);

}

// kiszámítja az eredményt (melyik irányból érkezik a fény?)

if ((bal/minták)> ((jobb/minták)+küszöbérték)) {eredmény = 2;}

else if ((bal/minták) <((jobb/minták) -küszöb)) {eredmény = 1;}

else {eredmény = 0;}

visszatérési eredmény; } void forward () {// Továbbítsa az analóg írást (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

void left () {

// LEFT analogWrite (LMOTOR, 150); analogWrite (RMOTOR, 255); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); //PIXEL.setPixelColor(1, PIXEL. Color (75, 0, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 100, 0)); PIXEL.show (); }

érvénytelen jog () {

// RIGHT analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

// ez a további kísérletekhez szól, megpróbálok egy kis személyiséget adni ennek a személynek:-) kipróbálom, mire lenne képes, de még nincsenek jó ötletek.

üres érzelem () {int emotimer = 2500; int időtartam = véletlenszerű (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = véletlenszerű (1, 4); } if (millis () - oldmillis> időtartam) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); szünet; 2. eset: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); szünet; 3. eset: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); szünet; alapértelmezett: PIXEL.setPixelColor (1, PIXEL. Color (random (0, 255), random (0, 255), random (0, 255))); PIXEL.show (); szünet; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Ajánlott: