Kazalo:

Mini svetlobni sledilnik ATTiny-RAT, ATTINY: 3 koraki
Mini svetlobni sledilnik ATTiny-RAT, ATTINY: 3 koraki

Video: Mini svetlobni sledilnik ATTiny-RAT, ATTINY: 3 koraki

Video: Mini svetlobni sledilnik ATTiny-RAT, ATTINY: 3 koraki
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Mini svetlobni sledilnik ATTiny-RAT, ATTINY
Mini svetlobni sledilnik ATTiny-RAT, ATTINY
Mini svetlobni sledilnik ATTiny-RAT, ATTINY
Mini svetlobni sledilnik ATTiny-RAT, ATTINY
Mini svetlobni sledilnik ATTiny-RAT, ATTINY
Mini svetlobni sledilnik ATTiny-RAT, ATTINY
Mini svetlobni sledilnik ATTiny-RAT, ATTINY
Mini svetlobni sledilnik ATTiny-RAT, ATTINY

Živijo družba, minilo je že kar nekaj časa, odkar sem objavil zadnjo navodilo. No, v moji glavi se trenutno dogaja marsikaj, vendar sem uspel dokumentirati svoje "prve korake" s čipi serije ATTiny v tem kratkem navodilu za vas.

Naročil sem nekaj vzorcev ATTINY85 samo zato, ker sem jih želel preizkusiti:-) (vsi radi preizkušajo stvari, kajne?) Nato sem začel risati nekaj idej v svoj prenosnik. Če sem iskren, sem najprej utripal LED, ki je kot vedno dober začetek za preverjanje, ali vaša nastavitev/veriga orodij deluje. Poskusil sem tudi zapisovalnik temperature in vlažnosti z DHT22 in SoftwareSerial. To je bilo težavno, saj so knjižnice DHT namenjene predvsem 16 -urni uri (če nameravate narediti kaj takega, preverite, kako prednastavite notranjo uro). Odločil sem se, da vam pokažem nekaj, kar je prav smešnejše. BTW: Za vas sem naložil eno od svojih risb, ki ni Rembrandtova, ampak vam bo pokazalo, kako sem to (res) neumno idejo dobil na kos papirja: -P.

Uporabljal sem samo stvari, ki sem jih imel naokoli, da bi bil projekt čim cenejši (zame). Rezultat te male pustolovščine je lep mali "svetlobni robot" za približno 10-15 $ (3 $ zame:-P)

Če vas torej zanima ATTINY, samo preberite več.

BTW: oprosti za mojo slabo angleščino (nisem materni govornik)

1. korak: Začnite z ATTiny & Tools & Materials

Začnite z ATTiny & Tools & Materials
Začnite z ATTiny & Tools & Materials
Začnite z ATTiny & Tools & Materials
Začnite z ATTiny & Tools & Materials
Začnite z ATTiny & Tools & Materials
Začnite z ATTiny & Tools & Materials
Začnite z ATTiny & Tools & Materials
Začnite z ATTiny & Tools & Materials

Kaj boste potrebovali za začetek:

- čip ATTiny85

- Arduino UNO ali podobno

-potegnite desko z nekaj skakalnice ali programerja ATTINY ali pa sami naredite ščitnik za Arduino (preverite priložene slike, shema je na avdweb.nl). Tudi jaz sem naredil to in sem zelo zadovoljen z njo, edina sprememba, ki sem jo naredil, je bila ta, da sem dodal vtičnico za serijo ATTinyx4 (glej sliko in diagrame pinout).

- Arduino IDE (dobite ga tukaj)

- datoteke strojne opreme za ArduinoIDE (prenesite in namestite)

Info-Link do playgrounddirect Link do datotek github, ki sem jih uporabil

- naložite skico Arduino kot ISP na UNO (to bo vaš programer)

- sledite tem navodilom (https://highlowtech.org/) ali tem navodilom (avtor ardutronix) in poskusite skico "utripajoče" (spremenite številko PIN. Uporabite sliko ATTINY kot referenco! potrebovali boste vnaprej utripano lučko ATTINY LED in upor ~ 220Ohm za to)

Naredite majhno ploščico, da preverite vse. Če ste vse naredili pravilno, bo LED utripala in pripravljeni ste

ORODJA

- spajkalnik- nekaj spajkanja- majhen kosač- dremel ali drugo vrtljivo orodje (samo za rezanje tiskanega vezja!)- nekaj vročega lepila- pinceta- žice

MATERIALI

- izdelava prototipov tiskanega vezja (~ 4cmx6cm bo to naredilo)- 2x LDR- 5x 10k upor (2x za LDR in 2x za tranzistorje BE, 1x LED)- 1x 330Ohm upor (1x NEOPIXELS)- 2x LDR- 1x LED (barva vaše izbira, namesto kolesca)- 3x NEOPIXEL WS2812- 2x tranzistor (BD137 ali podobno)- 2x dioda (1N4001 ali podobno)- 2x mikromotor (npr. iz mikro kvadrokopterja Hubsan)- 1x ATTINY85 + neobvezno (priporočeno) 8PIN IC vtičnica- 1x 1s LIPO (uporabil sem 140Ah iz starega RC-helikopterja)- nekaj zatičev/vtičnic- skrčna cev (ohišje LDR)

Nadaljujmo z izdelavo strojne opreme …

2. korak: Strojna oprema

Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema

Če pogledate priložene sheme, je nastavitev strojne opreme precej preprosta. Če torej znate brati sheme in uporabljati spajkalnik, je to polovica trika. Oglejte si tudi fotografije, za vas sem dodal nekaj zapiskov.

Ne podajam načrta za rezanje tiskanega vezja, imate svobodo pri oblikovanju lastne zasnove (bodite ustvarjalni in nam pokažite svoje drobne robote). Od vas je odvisna tudi postavitev vseh elektronskih komponent. Nekaj namigov z moje strani:

Poskusite natančno poravnati motorje (pazite na kot!) Uporabljamo samo gred motorja namesto koles. (to bo porabilo manj energije) Priporočam, da motorje postavite pod baterijo (teža) in uporabite LDR spredaj (pod kotom 45 °) v paru z LED diodo (to kombinacijo poskušam uporabiti za izogibanje oviram, nadalje potrebni so testi).

Poleg tega priporočam, da naredite majhen vklop/izklop, da se baterija ne bo tako enostavno izgubila.

Če je kaj nejasnega ali če imate vprašanja, me vprašajte. Ne bo veliko senesov, ampak naredi tezo iz tega malega projekta.

3. korak: Programska oprema

Programska oprema
Programska oprema
Programska oprema
Programska oprema

Najprej prenesite in namestite knjižnico ADAFRUIT Neopixel

Tukaj je moja koda z nekaj glavnimi opisi (dodal sem tudi datoteko skice). Nisem komentiral vsakega koraka, ker mislim, da to ni potrebno.

Skico naložite na svoj ATTiny85 in se zabavajte s svojo novo igračo

Ideje za funkcijo "osebnosti" + morda so primeri kod zelo dobrodošli:-)

Če imate kakršna koli vprašanja, vas prosimo, da vprašate.

Upam, da ste uživali v mojem kratkem pouku in malem potovanju v svet ATTINY.

/* ATTINY85-Rata preprost robot, ki ga poganja ATTINY85. Različica 2.0, avtor Auer Markus */

#vključi

#vključi

// motorji

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

// otherint emo = 0; plavajoča kalibracija; boolean emostate; dolgi oldmillis; // določimo NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

void setup ()

{// upscale clock drugače boste naleteli na nekaj časovnih težav (neopixel lib je zapisan za 16MHz) #če je definirano (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, IZHOD); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // inicializiramo slikovne pike PIXEL.begin (); PIXEL.show (); zamuda (500); // začetno zaporedje za (int i = 0; i

void loop ()

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

int lightfollow () {

int treshold = 14; int rezultat = 0; lebdi levo = 0; lebdi desno = 0; int vzorci = 1; // beremo LDR za (int j = 0; j <vzorci; j ++) {

levo = levo + analogno branje (LLDR); desno = desno + (analogRead (RLDR)*calib);

}

// izračunamo rezultat (iz katere smeri prihaja svetloba?)

če ((levo/vzorci)> ((desno/vzorci)+prag)) {rezultat = 2;}

else if ((left/vzorci) <((desno/vzorci) -treshold)) {rezultat = 1;}

drugače {rezultat = 0;}

povratni rezultat; } void forward () {// Posreduj analogWrite (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 () {

// LEVI 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 (); }

void right () {

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

// to je za nadaljnje poskuse, ki temu poskušam dati malo osebnosti:-) preizkušam, kaj bi lahko naredil, a dobrih idej še ni.

void emotion () {int emotimer = 2500; int trajanje = naključno (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = naključno (1, 4); } if (millis () - oldmillis> trajanje) {emostate =! emostate; } if (emostate == true) {switch (emo) {primer 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); prekiniti; primer 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); prekiniti; primer 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); prekiniti; privzeto: PIXEL.setPixelColor (1, PIXEL. Color (naključno (0, 255), naključno (0, 255), naključno (0, 255))); PIXEL.show (); prekiniti; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Priporočena: