Satura rādītājs:

ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs: 3 soļi
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs: 3 soļi

Video: ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs: 3 soļi

Video: ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs: 3 soļi
Video: Programming the new ATtiny from Arduino using UPDI [Beginner Tutorial] 2024, Novembris
Anonim
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs
ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs

Sveiki draugi, ir pagājis kāds laiks, kopš es ievietoju savu pēdējo pamācību. Nu, manā galvā šobrīd notiek daudzas lietas, bet man izdevās dokumentēt savus "pirmos soļus" ar ATTiny sērijas mikroshēmām šajā īsajā pamācībā, kas jums ir pieejama.

Es pasūtīju dažus ATTINY85 paraugus tikai tāpēc, ka gribēju tos pārbaudīt:-) (visiem patīk pārbaudīt lietas, vai ne?). Pēc tam es sāku zīmēt dažas idejas savā piezīmju grāmatiņā. Godīgi sakot, pirmā lieta, ko es izdarīju, bija mirgojoša gaismas diode, kas, kā vienmēr, ir labs sākums, lai pārbaudītu, vai jūsu iestatījumi/rīku ķēde darbojas. Es arī izmēģināju temperatūras un mitruma reģistrētāju ar DHT22 un SoftwareSerial. Tas bija grūts, jo DHT bibliotēkas galvenokārt paredzētas 16Mhz pulkstenim (ja plānojat kaut ko tādu darīt, pārbaudiet, kā iepriekš iestatīt iekšējo pulksteni). Bet es nolēmu jums parādīt kaut ko smieklīgāku. BTW: Es augšupielādēju jums vienu no saviem zīmējumiem, tas nav Rembrants, bet tas parādīs, kā es ieguvu šo (patiešām) stulbo ideju uz papīra lapas: -P.

Es izmantoju tikai lietas, kas man bija gulēt, lai šis projekts būtu pēc iespējas lētāks (man). Šī mazā piedzīvojuma rezultāts ir jauks, mazs "gaismas sekotāju robots" par aptuveni 10-15 USD (3 USD man:-P)

Tātad, ja jūs interesē ATTINY, izlasiet tālāk.

BTW: atvainojos par slikto angļu valodu (es neesmu dzimtā valoda)

1. darbība. Darba sākšana ar ATTiny un rīkiem un materiāliem

Darba sākšana ar ATTiny un rīkiem un materiāliem
Darba sākšana ar ATTiny un rīkiem un materiāliem
Darba sākšana ar ATTiny un rīkiem un materiāliem
Darba sākšana ar ATTiny un rīkiem un materiāliem
Darba sākšana ar ATTiny un rīkiem un materiāliem
Darba sākšana ar ATTiny un rīkiem un materiāliem
Darba sākšana ar ATTiny un rīkiem un materiāliem
Darba sākšana ar ATTiny un rīkiem un materiāliem

Kas jums būs nepieciešams, lai sāktu:

- mikroshēma ATTiny85

- Arduino UNO vai līdzīgs

-abreadboard ar kādu jumper-wire vai ATTINY programmētāju vai pats izveidojiet programmētāja vairogu Arduino (pārbaudiet pievienotos attēlus, ir shematisks no avdweb.nl). Es arī to uztaisīju, un esmu ļoti apmierināts ar to. Vienīgā modifikācija, ko veicu, bija tā, ka es pievienoju ligzdu ATTinyx4 sērijai (skatiet attēlu un pinout diagrammas).

- Arduino IDE (iegūstiet to šeit)

- ArduinoIDE aparatūras faili (lejupielādējiet un instalējiet)

Informācijas saite uz rotaļu laukumu tieša saite uz izmantotajiem github failiem

- ielādējiet Arduino kā ISP skici UNO (tas būs jūsu programmētājs)

- izpildiet šo instrukciju (https://highlowtech.org/) vai šo pamācību (ardutronix) un izmēģiniet "mirgojošu" skici (mainiet PIN kodu. izmantojiet ATTINY attēlu kā atsauci! jums būs nepieciešams iepriekš uzliesmots ATTINY a LED un ~ 220Ohm rezistors tam)

Veiciet nelielu maizes dēļa iestatīšanu, lai visu pārbaudītu. Ja esat izdarījis visu pareizi, gaismas diode mirgos un esat gatavs doties

RĪKI

- Lodāmurs- daži lodmetāli- mazs stieples griezējs- dremel vai cits rotējošs instruments (tikai PCB griešanai!)- daži karstās līmes- pincetes- vadi

MATERIĀLI

- prototipa PCB (~ 4cmx6cm to darīs)- 2x LDR- 5x 10k rezistors (2x LDR un 2x tranzistoriem BE, 1x LED)- 1x 330Ohm rezistors (1x NEOPIXELS)- 2x LDR- 1x LED (jūsu krāsa izvēle, ritenīša riteņa vietā)- 3x NEOPIXEL WS2812- 2x tranzistors (BD137 vai līdzīgs)- 2x diode (1N4001 vai līdzīgs)- 2x mikromotors (piem., no Hubsan mikrokoptera)- 1x ATTINY85 + pēc izvēles (ieteicams) 8PIN IC ligzda- 1x 1s LIPO (es izmantoju 140Ah no vecā RC helikoptera)- daži pinheaders/rozetes- saraušanās caurule (LDR korpuss)

Turpināsim, veidojot aparatūru …

2. darbība. Aparatūra

Aparatūra
Aparatūra
Aparatūra
Aparatūra
Aparatūra
Aparatūra

Ja paskatāties uz pievienotajām shēmām, aparatūras iestatīšana ir diezgan vienkārša. Tātad, ja jūs varat lasīt shēmas un izmantot lodāmuru, tā ir puse no trika. Apskatiet arī fotoattēlus, es jums pievienoju dažas piezīmes.

Es nesniedzu plānu PCB griešanai, jums ir brīva iespēja izveidot savu dizainu (esiet radošs un parādiet mums savus sīkos robotus). Visu elektronisko komponentu izvietojums ir atkarīgs arī no jums. Daži padomi no manas puses:

Mēģiniet precīzi noregulēt motorus (skatieties leņķi!), Riteņu vietā mēs izmantojam tikai motora vārpstu. (tas patērēs mazāk enerģijas) Es iesaku novietot motorus zem akumulatora (svars) un izmantot LDR priekšpusē (45 ° leņķī) pārī ar LED (es mēģinu izmantot šo kombināciju, lai izvairītos no šķēršļiem, tālāk) ir nepieciešami testi).

Turklāt es iesaku izveidot nelielu ieslēgšanas/izslēgšanas džemperi, lai akumulators nepazustu tik viegli.

Ja kaut kas nav skaidrs vai ja jums ir jautājumi, jautājiet man. Tas neradīs daudzus vecākus no šī mazā projekta izveidot disertāciju.

3. darbība: programmatūra

Programmatūra
Programmatūra
Programmatūra
Programmatūra

1. lejupielādējiet un instalējiet ADAFRUIT Neopixel Library

Šeit ir mans kods ar dažiem galvenajiem aprakstiem (es pievienoju arī skices failu). Es nekomentēju katru soli, jo domāju, ka tas nav nepieciešams.

Augšupielādējiet skici savā ATTiny85 un izklaidējieties ar savu jauno rotaļlietu

Idejas funkcijai "personība" + varbūt koda piemēri ir ļoti apsveicami:-)

Ja ir kādi jautājumi, droši jautājiet.

Es ceru, ka jums patika mans īsais pamācības un mazais ceļojums ATTINY pasaulē.

/* ATTINY85-Rata vienkāršs ATTINY85 darbināms gaismas sekotājs robots. Versija 2.0, Auer Markus */

#iekļaut

#iekļaut

// motori

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

// otherint emo = 0; pludiņa kalibrs; Būla emostāts; garais oldmillis; // definēt NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

anulēts iestatījums ()

{// augstākā līmeņa pulkstenis, pretējā gadījumā jūs saskarsities ar dažām laika problēmām (neopikselis lib ir rakstīts 16 MHz) #ja definēts (_AVR_ATtiny85_), ja (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // inicializēt pikseļus PIXEL.begin (); PIXEL.show (); kavēšanās (500); // startsequence for (int i = 0; i

tukša cilpa ()

{if (lightfollow () == 1) {left (); } cits if (lightfollow () == 2) {right (); } cits if (lightfollow () == 0) {forward (); } emocijas (); }

int lightfollow () {

int slieksnis = 14; int rezultāts = 0; pludiņš pa kreisi = 0; peldēt pa labi = 0; int paraugi = 1; // lasīt LDR par (int j = 0; j <paraugi; j ++) {

pa kreisi = pa kreisi + analogRead (LLDR); pa labi = pa labi + (analogRead (RLDR)*kalibrs);

}

// aprēķināt rezultātu (no kura virziena nāk gaisma?)

ja ((pa kreisi/paraugi)> ((pa labi/paraugi)+slieksnis)) {rezultāts = 2;}

citādi, ja ((pa kreisi/paraugi) <((pa labi/paraugi)-slieksnis)) {rezultāts = 1;}

cits {rezultāts = 0;}

atgriešanās rezultāts; } void forward () {// Pārsūtīt 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 (); }

spēkā neesošas tiesības () {

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

// tas ir paredzēts turpmākiem eksperimentiem, mēģinot piešķirt šim cilvēkam nedaudz personības:-) es testēju, ko varētu paveikt, bet vēl nav labu ideju.

tukša emocija () {int emoimer = 2500; int ilgums = nejaušs (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = nejaušs (1, 4); } if (millis () - oldmillis> ilgums) {emostate =! emostate; } ja (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); pārtraukums; 2. gadījums: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); pārtraukums; 3. gadījums: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); pārtraukums; noklusējums: PIXEL.setPixelColor (1, PIXEL. Color (nejauša (0, 255), nejauša (0, 255), nejauša (0, 255))); PIXEL.show (); pārtraukums; }} cits {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Ieteicams: