ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 Քայլ
ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 Քայլ
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

Բարև ժողովուրդ, Որոշ ժամանակ անց ես տեղադրեցի իմ վերջին հրահանգը: Դե, հիմա շատ բաներ են պտտվում իմ գլխում, բայց ես կարողացա փաստաթղթավորել իմ «առաջին քայլերը» ATP- ի շարքի չիպերի հետ այս կարճ ուսանելի ձեզ համար:

Ես պատվիրեցի ATTINY85- ի որոշ նմուշներ միայն այն պատճառով, որ ուզում էի դրանք փորձարկել:-) (բոլորը սիրում են իրերը փորձարկել, այնպես չէ՞): Դրանից հետո ես սկսեցի որոշ գաղափարներ գծել իմ տետրում: Անկեղծ ասած, առաջին բանը, որ ես արեցի, թարթելն էր LED- ի, որը, ինչպես միշտ, լավ սկիզբ էր `ստուգելու, թե արդյոք ձեր տեղադրումը/գործիքաշղթան աշխատում է: Ես նաև փորձեցի ջերմաստիճանի և խոնավության անտառահատ DHT22- ի և SoftwareSerial- ի միջոցով: Դա բարդ էր, քանի որ DHT գրադարանները հիմնականում 16 ՄՀց ժամացույցի համար են (եթե մտադիր եք նման բան անել, ստուգեք, թե ինչպես նախնական չափել ներքին ժամացույցը): Բայց ես որոշեցի ձեզ ցույց տալ մի բան, որն ավելի լավ է, ավելի ծիծաղելի: -Պ.

Ես օգտագործում էի միայն այն, ինչ ունեի պառկած ՝ այս նախագիծը հնարավորինս էժան պահելու համար (ինձ համար): Այս փոքրիկ արկածախնդրության արդյունքը մի գեղեցիկ փոքրիկ «հետևորդ ռոբոտ» է ՝ մոտ 10-15 դոլարով (ինձ համար 3 դոլար:-P)

Այսպիսով, եթե ձեզ հետաքրքրում է ATTINY- ը, պարզապես կարդացեք ավելին:

BTW. Կներեք իմ վատ անգլերենի համար (ես բնիկ խոսող չեմ)

Քայլ 1: Սկսենք աշխատել ATTiny- ի և գործիքների և նյութերի հետ

Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր
Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր
Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր
Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր
Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր
Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր
Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր
Սկսելով աշխատել ATTiny- ով և գործիքներ և նյութեր

Այն, ինչ ձեզ հարկավոր կլինի սկսելու համար

- ATTiny85 չիպ

- Arduino UNO կամ նմանատիպ

-abreadboard որոշ jumper-wire կամ ATTINY ծրագրավորողով կամ Arduino- ի համար ինքներդ ծրագրավորող-վահան պատրաստեք (ստուգեք կից նկարները, avdweb.nl- ից կա սխեմատիկ): Ես նաև պատրաստեցի այս մեկը և ես իսկապես գոհ եմ դրանից, միակ փոփոխությունը, որ կատարեցի, այն էր, որ ես ավելացրի մի վարդակ ATTinyx4 շարքի համար (տե՛ս նկարի և գծապատկերների դիագրամները):

- Arduino IDE (ստացեք այստեղ)

- ArduinoIDE- ի սարքավորումների ֆայլեր (ներբեռնեք և տեղադրեք դրանք)

Տեղեկատվական հղում դեպի խաղահրապարակ ուղղակի հղում դեպի օգտագործված github ֆայլերը

- բեռնեք Arduino- ն որպես ISP ուրվագիծ ՄԱԿ -ում (սա կլինի ձեր ծրագրավորողը)

- հետևեք այս հրահանգին (https://highlowtech.org/) կամ այս հրահանգին (ardutronix- ի կողմից) և փորձեք «թարթել» ուրվագիծը (փոփոխեք PIN- ի համարը. որպես հղում օգտագործեք ATTINY պատկերը: Ձեզ անհրաժեշտ կլինի նախապես փայլեցված ATTINY LED և դրա համար 220 hm Օմ դիմադրություն)

Ստեղծեք մի փոքրիկ տախտակ `ամեն ինչ ստուգելու համար: Եթե ամեն ինչ ճիշտ եք արել, LED- ը կթարթվի, և դուք պատրաստ եք գնալ

ԳՈՐOOLԻՔՆԵՐ

- oldոդման երկաթ- ինչ-որ զոդում- մի փոքր մետաղալար- դրեմել կամ այլ պտտվող գործիք (պարզապես PCB- ն կտրելու համար)- որոշ տաք սոսինձ- պինցետ- լարեր

ՆՅՈԹԵՐ

- PCB- ի նախատիպավորում (~ 4cmx6cm դա անելու է)- 2x LDR- 5x 10k Resistor (2x LDR- երի համար և 2x տրանզիստորների համար BE, 1x LED)- 1x 330 Օմ դիմադրություն (1x NEOPIXELS)- 2x LDR- 1x LED (ձեր գույնը ընտրություն ՝ պտուտակավոր անիվի փոխարեն)- 3x NEOPIXEL WS2812- 2x տրանզիստոր (BD137 կամ նմանատիպ)- 2x դիոդ (1N4001 կամ նմանատիպ)- 2x միկրո շարժիչ (օրինակ ՝ Hubsan միկրոկառավարիչից)- 1x ATTINY85 + ըստ ցանկության (խորհուրդ է տրվում) 8PIN IC վարդակից- 1x 1s LIPO (ես օգտագործել եմ 140Ah հին RC- ուղղաթիռից)- որոշ սափրագլուխներ/վարդակներ- shrinktube (LDR բնակարան)

Եկեք շարունակենք սարքավորումների կառուցումը …

Քայլ 2: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

Եթե դուք նայեք իմ կողմից կցված սխեմաներին, ապարատային տեղադրումը բավականին պարզ է: Այսպիսով, եթե դուք կարողանում եք կարդալ սխեմաներ և օգտագործել եռակցման երկաթ, ապա դա հնարքի կեսն է: Նաև նայեք լուսանկարներին, ես ձեզ համար որոշ նշումներ ավելացրեցի:

Ես PCB- ն կտրելու ծրագիր չեմ տրամադրում, դուք ունեք ձեր սեփական դիզայնը պատրաստելու ազատություն (եղեք ստեղծագործական և ցույց տվեք ձեր Փոքրիկ բոտերը): Բոլոր էլեկտրոնային բաղադրիչների տեղադրումը նույնպես ձերն է: Որոշ հուշումներ իմ կողմից.

Փորձեք ճշգրտորեն դասավորել շարժիչները (դիտեք անկյունը): մենք անիվների փոխարեն օգտագործում ենք միայն շարժիչի լիսեռը: (սա ավելի քիչ էներգիա կծախսի) խորհուրդ եմ տալիս շարժիչները տեղադրել մարտկոցի տակ (քաշ) և օգտագործել LDR- ները առջևում (45 ° անկյան տակ), որոնք զուգակցված են LED- ի հետ (ես փորձում եմ օգտագործել այս համադրությունը խոչընդոտներից խուսափելու համար): անհրաժեշտ են թեստեր)

Ավելին, ես խորհուրդ եմ տալիս մի փոքր միացնել/անջատելու թռիչք, որպեսզի մարտկոցը այդքան հեշտ չկորչի:

Եթե որևէ անհասկանալի բան կա կամ եթե հարցեր ունեք, պարզապես հարցրեք ինձ: Շատ ծերեր չեն ստիպի այս փոքրիկ նախագծից թեզ անել:

Քայլ 3: Softwareրագրակազմ

Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում

Ներբեռնեք և տեղադրեք ADAFRUIT Neopixel գրադարանը

Ահա իմ ծածկագիրը ՝ որոշ հիմնական նկարագրություններով (ես ավելացրել եմ նաև էսքիզների ֆայլը): Ես չեմ մեկնաբանել յուրաքանչյուր քայլ, քանի որ կարծում եմ, որ դա անհրաժեշտ չէ:

Վերբեռնեք ուրվագիծը ձեր ATTiny85- ում և զվարճացեք ձեր նոր խաղալիքով

«Անձ» գործառույթի գաղափարներ + գուցե ծածկագրային օրինակները շատ ողջունելի են:-)

Եթե կան հարցեր, ազատ զգացեք:

Հուսով եմ, որ ձեզ դուր եկավ իմ կարճ ուսանելի և փոքրիկ ուղևորությունը ATTINY- ների աշխարհ:

/* ATTINY85-Rata պարզ ATTINY85 սնուցող թեթև հետևող ռոբոտ: Տարբերակ 2.0, Auer Markus */

#ներառում

#ներառում

// շարժիչներ

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

// otherint emo = 0; բոց տրամաչափ; բուլյան emostate; երկար ծերուկ; // սահմանել NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

դատարկ կարգավորում ()

{// բարձրակարգ ժամացույց այլ դեպքում կհանդիպեք որոշ ժամանակային խնդիրների (նորագոյն պիքսելը գրված է 16 ՄՀց հաճախականությամբ) #եթե սահմանված է (_AVR_ATtiny85_) եթե (F_CPU == 16000000) clock_prescale_set (clock_div_1); #էնդիֆ

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // սկզբնականացնել պիքսելները PIXEL.begin (); PIXEL.show (); ուշացում (500); // startsequence for (int i = 0; i

դատարկ շրջան ()

{if (lightfollow () == 1) {ձախ (); } else if (lightfollow () == 2) {աջ (); } else if (lightfollow () == 0) {առաջ (); } զգացմունք (); }

int lightfollow () {

int շեմ = 14; int արդյունք = 0; բոց ձախ = 0; բոց աջ = 0; int նմուշներ = 1; // կարդալ LDR- ներ (int j = 0; j <նմուշների; j ++) {

ձախ = ձախ + analogRead (LLDR); աջ = աջ + (analogRead (RLDR)*calib);

}

// հաշվարկել արդյունքը (ո՞ր ուղղությունից է լույսը գալիս)

եթե ((ձախ/նմուշներ)> ((աջ/նմուշներ)+շեմ)) {արդյունք = 2;}

այլապես, եթե ((ձախ/նմուշներ) <((աջ/նմուշներ) -շեմ)) {արդյունք = 1;}

այլ {արդյունք = 0;}

վերադարձի արդյունք; } void forward () {// Փոխանցել analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

դատարկ ձախ () {

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

դատարկ իրավունք () {

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

// սա հետագա փորձերի համար է ՝ փորձելով այս մարդուն տալ մի փոքր անհատականություն.-) Ես փորձարկում եմ այն, ինչ կարող էր անել, բայց դեռ լավ գաղափարներ չկան:

դատարկ հույզ () {int emotimer = 2500; int տևողություն = պատահական (250, 750); եթե (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = պատահական (1, 4); } if (millis () - oldmillis> տևողություն) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); ընդմիջում; գործ 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); ընդմիջում; գործ 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); ընդմիջում; կանխադրված ՝ PIXEL.setPixelColor (1, PIXEL. Color (պատահական (0, 255), պատահական (0, 255), պատահական (0, 255))); PIXEL.show (); ընդմիջում; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Խորհուրդ ենք տալիս: