Sisällysluettelo:

ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 vaihetta
ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 vaihetta

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 vaihetta

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 vaihetta
Video: Series Balanced Lithium ion (Li-Ion) charger 1 / 2 / 3 cells in series as Battery pack 2024, Marraskuu
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

Hei ihmiset, on kulunut jonkin aikaa siitä, kun olen lähettänyt viimeisen ohjeen. No, päässäni pyörii nyt monia asioita, mutta onnistuin dokumentoimaan "ensimmäiset askeleeni" ATTiny-sarjan pelimerkillä tässä lyhyessä ohjeessa.

Tilasin ATTINY85-näytteitä vain siksi, että halusin testata niitä:-) (kaikki rakastavat testata asioita, eikö?). Sen jälkeen aloin piirtää ideoita muistikirjaani. Ollakseni rehellinen, ensimmäinen asia, jonka tein, oli LED -valon vilkkuminen, joka on aina hyvä alku tarkistaa, toimiiko asetuksesi/työkaluketju. Kokeilin myös lämpötila- ja kosteuslukijaa DHT22: n ja SoftwareSerialin kanssa. Se oli hankalaa, koska DHT -kirjastot ovat pääasiassa 16 Mhz: n kelloa varten (jos aiot tehdä jotain sellaista, tarkista sisäisen kellon esivalinta). Mutta päätin näyttää teille jotain, joka on vain hauskempaa. BTW: Latasin yhden piirustuksistani teille, se ei ole Rembrandt, mutta se näyttää, miten sain tämän (todella) tyhmän idean paperille: -P.

Käytin vain makaavia asioita pitääkseni tämän projektin mahdollisimman halpana (minulle). Tämän pienen seikkailun tulos on mukava pieni "valonseuraajarobotti" noin 10-15 dollaria (3 dollaria minulle:-P)

Joten jos olet kiinnostunut ATTINY: sta, lue lisää.

BTW: anteeksi huonosta englannista (en ole äidinkielenään puhuja)

Vaihe 1: ATTiny & Tools & Materials -ohjelman käytön aloittaminen

ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen
ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen
ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen
ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen
ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen
ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen
ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen
ATTiny -työkalujen ja työkalujen ja materiaalien käytön aloittaminen

Mitä tarvitset päästäksesi alkuun:

- ATTiny85 -siru

- Arduino UNO tai vastaava

-abreadboard jollakin hyppyjohdolla tai ATTINY-ohjelmoijalla tai tee ohjelmointisuoja Arduinolle itse (tarkista liitteenä olevat kuvat, on kaavio avdweb.nl). Tein myös tämän ja olen todella tyytyväinen siihen. Ainoa muutos, jonka tein, oli, että lisäsin pistorasian ATTinyx4-sarjaan (katso kuva ja pinout-kaaviot).

- Arduino IDE (hanki se täältä)

- ArduinoIDE -laitteistotiedostot (lataa ja asenna ne)

Info-Link to leikkikenttäsuora linkki käyttämiisi github-tiedostoihin

- lataa Arduino ISP -luonnoksena UNO: lle (tämä on ohjelmoijasi)

- Noudata tätä ohjetta (https://highlowtech.org/) tai tätä ohjetta (ardutronix) ja kokeile "vilkkua" -luonnosta (muuta PIN -koodi. käytä ATTINY -kuvaa viitteenä! tarvitset esisyttynyt ATTINY a LED ja ~ 220 ohmin vastus sitä varten)

Tarkista pieni leipälauta-asetus, jos olet tehnyt kaiken oikein, LED-valo vilkkuu ja olet valmis lähtemään

TYÖKALUT

- Juotosrauta- jokin juote- pieni langankatkaisija- dremel tai muu pyörivä työkalu (vain piirilevyn leikkaamiseen!)- jotkut kuumaliimat- pinsetit- johdot

MATERIAALIT

- piirilevyn prototyyppien valmistus (~ 4cmx6cm tekee sen)- 2x LDR- 5x 10k vastus (2x LDR-laitteille ja 2x transistoreille BE, 1x LED)- 1x 330Ohm vastus (1x NEOPIXELS)- 2x LDR- 1x LED (värisi valintapyörän sijasta)- 3x NEOPIXEL WS2812- 2x transistori (BD137 tai vastaava)- 2x diodi (1N4001 tai vastaava)- 2x mikromoottori (esim. Hubsan-mikrokopterista)- 1x ATTINY85 + valinnainen (suositus) 8PIN IC-pistorasia- 1x 1s LIPO (käytin 140Ah vanhasta RC-helikopterista)- jotkut nastapäät/pistorasiat- kutisteputki (LDR-kotelo)

Jatketaan rakentamalla laitteisto…

Vaihe 2: Laitteisto

Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto

Jos tarkastelet liitteenä olevia kaavioita, laitteiston asennus on melko yksinkertaista. Joten jos osaat lukea kaavioita ja käyttää juotosrautaa, se on puoli temppua. Katso myös kuvia, lisäsin sinulle muistiinpanoja.

En tarjoa suunnitelmaa piirilevyn leikkaamiseen, sinulla on vapaus tehdä oma suunnittelu (ole luova ja näytä meille pienet botit). Kaikkien elektronisten komponenttien sijoittaminen on myös sinun tehtäväsi. Muutama vinkki minun puolelta:

Yritä kohdistaa moottorit tarkasti (katso kulma!) Käytämme vain moottorin akselia pyörien sijasta. (tämä kuluttaa vähemmän energiaa) Suosittelen asettamaan moottorit akun alle (paino) ja käyttämään LDR: itä etupuolella (45 ° kulmassa) yhdessä LED -valon kanssa (yritän käyttää tätä yhdistelmää esteiden välttämiseen. testejä tarvitaan).

Lisäksi suosittelen tekemään pienen päälle/pois -puseron, jotta akku ei katoa niin helposti.

Jos sinulla on jotain epäselvää tai jos sinulla on kysyttävää, kysy minulta. Siitä ei tule paljon senesejä tekemään opinnäytetyötä tästä pienestä projektista.

Vaihe 3: Ohjelmisto

Ohjelmisto
Ohjelmisto
Ohjelmisto
Ohjelmisto

1. lataa ja asenna ADAFRUIT Neopixel Library

Tässä on koodini muutamilla tärkeillä kuvauksilla (lisäsin myös luonnostiedoston). En kommentoinut jokaista vaihetta, koska mielestäni se ei ole tarpeellista.

Lataa luonnos ATTiny85 -laitteellesi ja pidä hauskaa uuden lelun kanssa

Ideoita "persoonallisuus" -toimintoon + ehkä koodiesimerkit ovat erittäin tervetulleita:-)

Jos sinulla on kysyttävää, kysy rohkeasti.

Toivottavasti pidit lyhyestä opettavaisesta ja pienestä matkastani ATTINYn maailmaan.

/* ATTINY85-Rata yksinkertainen ATTINY85-käyttöinen valoseuraava robotti. Versio 2.0, kirjoittanut Auer Markus */

#sisältää

#sisältää

// moottorit

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

// otherint emo = 0; kellukalibri; boolean emostaatti; pitkä oldmillis; // define NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

mitätön asennus ()

{// hyväpalkkainen kello muuten kohtaat joitain ajoitusongelmia (neopikseli lib on kirjoitettu 16 MHz: lle) #if määritelty (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #loppu Jos

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // alustaa pikselit PIXEL.begin (); PIXEL.show (); viive (500); // startsequence for (int i = 0; i

tyhjä silmukka ()

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

int lightfollow () {

int kynnys = 14; int tulos = 0; kellua vasemmalle = 0; kellua oikealle = 0; int näytteet = 1; // lukea LDR: t (int j = 0; j <näytteet; j ++) {

vasen = vasen + analoginen luku (LLDR); oikea = oikea + (analoginen luku (RLDR)*kalibrointi);

}

// laske tulos (mistä suunnasta valo tulee?)

jos ((vasen/näytteet)> ((oikea/näytteet)+kynnys)) {result = 2;}

else if ((vasen/näytteet) <((oikea/näytteet) -kynnys)) {result = 1;}

muu {tulos = 0;}

palautustulos; } void forward () {// Välitä 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 () {

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

mitätön oikeus () {

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

// tämä on lisäkokeita varten, yrittäen antaa tälle pienen persoonallisuuden:-) Kokeilen mitä voisin tehdä, mutta hyviä ideoita ei vielä ole.

tyhjä tunne () {int emotimer = 2500; int kesto = satunnainen (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = satunnainen (1, 4); } if (millis () - oldmillis> kesto) {emostate =! emostate; } jos (emostaatti == tosi) {kytkin (emo) {tapaus 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); tauko; tapaus 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); tauko; tapaus 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); tauko; oletus: PIXEL.setPixelColor (1, PIXEL. Color (satunnainen (0, 255), satunnainen (0, 255), satunnainen (0, 255))); PIXEL.show (); tauko; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Suositeltava: