Turinys:

„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas: 3 žingsniai
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas: 3 žingsniai

Video: „ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas: 3 žingsniai

Video: „ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas: 3 žingsniai
Video: Глава 11 - Том Свифт в стране чудес Виктор Эпплтон 2024, Lapkritis
Anonim
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas
„ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas

Sveiki draugužiai, praėjo nemažai laiko nuo tada, kai paskelbiau savo paskutinį nurodymą. Na, dabar mano galvoje sukasi daugybė dalykų, bet man pavyko dokumentuoti savo „pirmuosius žingsnius“naudojant „ATTiny“serijos lustus šioje trumpoje instrukcijoje, kuri jums tinka.

Aš užsisakiau keletą ATTINY85 pavyzdžių tik todėl, kad norėjau juos išbandyti:-) (visi mėgsta išbandyti dalykus, tiesa?). Po to aš pradėjau piešti keletą idėjų į savo sąsiuvinį. Tiesą sakant, pirmas dalykas, kurį padariau, buvo mirksintis šviesos diodas, kuris, kaip visada, yra gera pradžia patikrinti, ar jūsų sąranka/įrankių grandinė veikia. Taip pat išbandžiau temperatūros ir drėgmės kaupiklį su DHT22 ir „SoftwareSerial“. Tai buvo sudėtinga, nes DHT bibliotekos daugiausia skirtos 16Mhz laikrodžiui (jei planuojate tai padaryti, patikrinkite, kaip iš anksto nustatyti vidinį laikrodį). Bet aš nusprendžiau parodyti jums kažką, kas yra, tiesiog, juokingiau. BTW: Aš įkėliau jums vieną savo piešinį, tai nėra Rembrandtas, bet jis parodys, kaip aš gavau šią (tikrai) kvailą idėją ant popieriaus lapo: -P.

Aš naudoju tik tuos daiktus, kuriuos turėjau gulėti, kad šis projektas būtų kuo pigesnis (man). Šio mažo nuotykio rezultatas yra gražus mažas „šviesos sekėjas robotas“už maždaug 10-15 USD (3 USD man:-P)

Taigi, jei jus domina ATTINY, tiesiog perskaitykite toliau.

BTW: atsiprašau už blogą anglų kalbą (nesu gimtoji)

1 žingsnis: Darbo su ATTiny ir įrankiais bei medžiagomis pradžia

Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Darbo su ATTiny ir įrankiais bei medžiagomis pradžia

Ko jums reikės norint pradėti:

- lustas ATTiny85

- „Arduino UNO“ar pan

-abreadboard su tam tikru trumpikliu arba ATTINY programuotoju arba patys pasidarykite programuotojo skydą „Arduino“(patikrinkite pridėtas nuotraukas, yra schema iš avdweb.nl). Aš taip pat padariau šį produktą ir esu juo labai patenkintas. Vienintelis pakeitimas buvo tas, kad pridėjau lizdą „ATTinyx4“serijai (žr. Paveikslėlį ir kontaktų diagramas).

- „Arduino IDE“(gaukite čia)

- „ArduinoIDE“aparatinės įrangos failus (atsisiųskite ir įdiekite)

Informacijos nuoroda į žaidimų aikštelę Tiesioginė nuoroda į naudojamus „github“failus

- įkelkite „Arduino“kaip ISP eskizą į UNO (tai bus jūsų programuotojas)

- vadovaukitės šia instrukcija (https://highlowtech.org/) arba šia instrukcija („ardutronix“) ir išbandykite „mirksėjimo“eskizą (pakeiskite PIN kodą. kaip nuorodą naudokite ATTINY paveikslėlį! jums reikės iš anksto sumirkyto ATTINY LED ir ~ 220 omų rezistorius)

Atlikite nedidelę duonos lentos sąranką, kad viską patikrintumėte. Jei viską padarėte teisingai, šviesos diodas mirksės ir būsite pasiruošę

ĮRANKIAI

- Lituoklis- kai kurie lydmetaliai- mažas vielos pjoviklis- „dremel“ar kitas sukamasis įrankis (tik PCB pjaustymui!)- kai kurie karšti klijai- pincetai- laidai

MEDŽIAGOS

- prototipas PCB (~ 4cmx6cm tai padarys)- 2x LDR- 5x 10k rezistorius (2x LDR ir 2x tranzistoriams BE, 1x LED)- 1x 330Ohm rezistorius (1x NEOPIXELS)- 2x LDR- 1x LED (jūsų spalva pasirinkimas, vietoj ratuko rato)- 3x NEOPIXEL WS2812- 2x tranzistorius (BD137 ar panašus)- 2x diodas (1N4001 arba panašus)- 2x mikromotorius (pvz., iš Hubsan mikrokopterio)- 1x ATTINY85 + pasirinktinai (rekomenduojama) 8PIN IC lizdas- 1x 1s LIPO (naudojau 140Ah iš seno RC sraigtasparnio)- kai kurios smeigtukai/lizdai- susitraukiantis vamzdis (LDR korpusas)

Tęskime kurdami aparatūrą …

2 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Jei pažvelgsite į pridėtas schemas, aparatūros sąranka yra gana paprasta. Taigi, jei galite skaityti schemas ir naudoti lituoklį, tai yra pusė triuko. Taip pat pažiūrėkite į nuotraukas, pridėjau jums keletą pastabų.

Aš nepateikiu PCB pjovimo plano, jūs turite laisvę kurti savo dizainą (būkite kūrybingi ir parodykite mums savo mažus robotus). Visų elektroninių komponentų išdėstymas taip pat priklauso nuo jūsų. Keletas patarimų iš mano pusės:

Stenkitės tiksliai priskirti variklius (stebėkite kampą!), Mes naudojame tik variklio veleną, o ne ratus. (tai sunaudos mažiau energijos) Rekomenduoju variklius pastatyti po akumuliatoriumi (svoris) ir naudoti LDR priekyje (45 ° kampu) kartu su šviesos diodais (bandau naudoti šį derinį, kad išvengtumėte kliūčių, toliau reikalingi bandymai).

Be to, aš rekomenduoju padaryti nedidelį įjungimo/išjungimo megztinį, kad akumuliatorius nebūtų taip lengvai pamestas.

Jei kas nors neaišku arba turite klausimų, tiesiog paklauskite manęs. Tai nereiks, kad daug senų padarytų disertaciją iš šio mažo projekto.

3 žingsnis: programinė įranga

Programinė įranga
Programinė įranga
Programinė įranga
Programinė įranga

Visų pirma atsisiųskite ir įdiekite „ADAFRUIT Neopixel Library“

Čia yra mano kodas su pagrindiniais aprašymais (taip pat pridėjau eskizo failą). Nekomentavau kiekvieno žingsnio, nes manau, kad tai nėra būtina.

Įkelkite eskizą į savo „ATTiny85“ir linksminkitės su nauju žaislu

Idėjos „asmenybės“funkcijai + galbūt kodo pavyzdžiai yra labai laukiami:-)

Jei kyla klausimų, drąsiai klauskite.

Tikiuosi, kad jums patiko mano trumpas pamokomas pamokas ir maža kelionė į ATTINY pasaulį.

/* ATTINY85-Rata paprastas ATTINY85 varomas šviesos sekimo robotas. 2.0 versija, autorė Auer Markus */

#įtraukti

#įtraukti

// varikliai

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

// otherint emo = 0; plūdės kalibras; loginis emostatas; ilgas oldmillis; // apibrėžti NeopikseliaiAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

negaliojanti sąranka ()

{// prabangus laikrodis, priešingu atveju susidursite su tam tikromis laiko problemomis (neopikselis lib parašytas 16 MHz dažniu) #if apibrėžta (_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); // inicijuoti taškus PIXEL.begin (); PIXEL.show (); vėlavimas (500); // startsequence for (int i = 0; i

tuštumos kilpa ()

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

int lightfollow () {

int slenkstis = 14; int rezultatas = 0; plūdė kairėn = 0; plūdė į dešinę = 0; int mėginiai = 1; // skaityti LDR (int j = 0; j <pavyzdžiai; j ++) {

kairė = kairė + analogRead (LLDR); dešinė = dešinė + (analogRead (RLDR)*kalibras);

}

// apskaičiuoti rezultatą (iš kurios pusės sklinda šviesa?)

if ((kairė/mėginiai)> ((dešinė/mėginiai)+slenkstis)) {rezultatas = 2;}

else if ((kairė/mėginiai) <((dešinė/pavyzdžiai)-slenkstis)) {rezultatas = 1;}

else {rezultatas = 0;}

grąžinimo rezultatas; } void forward () {// Persiųsti 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 () {

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

negalioja teisė () {

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

// tai yra tolesni eksperimentai, bandant suteikti šiam asmeniui šiek tiek asmenybės:-) Aš bandau, ką galėčiau padaryti, bet dar neturiu gerų idėjų.

niekinė emocija () {int emocija = 2500; int trukmė = atsitiktinė (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = atsitiktinis (1, 4); } if (millis () - oldmillis> trukmė) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); pertrauka; 2 atvejis: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); pertrauka; 3 atvejis: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); pertrauka; numatytasis: PIXEL.setPixelColor (1, PIXEL. Color (atsitiktinis (0, 255), atsitiktinis (0, 255), atsitiktinis (0, 255))); PIXEL.show (); pertrauka; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Rekomenduojamas: