Სარჩევი:

ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 ნაბიჯი
ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 ნაბიჯი

ვიდეო: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 ნაბიჯი

ვიდეო: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 ნაბიჯი
ვიდეო: How to use the Atmel ATTINY10 Microcontroller 2024, ნოემბერი
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

გამარჯობა ხალხო, უკვე დიდი ხანია რაც გამოვაქვეყნე ჩემი უკანასკნელი ინსტრუქცია. ახლა ბევრი რამ ხდება ჩემს თავში, მაგრამ მე შევძელი ჩემი პირველი ნაბიჯების დოკუმენტირება ATTiny-Series ჩიპებით ამ მოკლე ინსტრუქციით თქვენთვის.

მე შევუკვეთე რამდენიმე ATTINY85 ნიმუში მხოლოდ იმიტომ, რომ მინდოდა მათი გამოცდა:-) (ყველას უყვარს საგნების გამოცდა, არა?). ამის შემდეგ დავიწყე რამოდენიმე იდეის დახატვა ჩემს რვეულში. სიმართლე გითხრათ პირველი რაც გავაკეთე იყო მოციმციმე LED, რომელიც ყოველთვის კარგი დასაწყისია იმის შესამოწმებლად მუშაობს თუ არა თქვენი კონფიგურაცია/ინსტრუმენტთა ქსელი. მე ასევე შევეცადე ტემპერატურისა და ტენიანობის ლოგერი DHT22 და SoftwareSerial– ით. ეს იყო სახიფათო, რადგან DHT ბიბლიოთეკები ძირითადად განკუთვნილია 16 მჰც საათისათვის (თუ თქვენ აპირებთ მსგავსი რამის გაკეთებას, შეამოწმეთ როგორ უნდა მოხდეს შიდა საათის წინასწარი გაფართოება). მაგრამ მე გადავწყვიტე მეჩვენებინა ის, რაც, რა თქმა უნდა, უფრო სახალისოა. BTW: მე ავტვირთე თქვენთვის ჩემი ერთი ნახატი, ის არ არის რემბრანდტი, მაგრამ ის გაჩვენებთ როგორ მივიღე ეს (მართლაც) სულელური იდეა ფურცელზე: -პ.

მე ვიყენებდი მხოლოდ იმას, რაც მე იწვა იმისთვის, რომ ეს პროექტი მაქსიმალურად იაფი ყოფილიყო (ჩემთვის). ამ პატარა თავგადასავლის შედეგი არის ლამაზი პატარა "მსუბუქი მიმდევარი რობოტი" დაახლოებით 10-15 დოლარად (ჩემთვის 3 $:-P)

ასე რომ, თუ თქვენ დაინტერესებული ხართ ATTINY– ით, უბრალოდ წაიკითხეთ.

BTW: ბოდიში ჩემი ცუდი ინგლისურისთვის (მე არ ვარ მშობლიურ ენაზე)

ნაბიჯი 1: დაიწყეთ ATTiny– ით და ინსტრუმენტებითა და მასალებით

დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
დავიწყოთ ATTiny– ით და ინსტრუმენტებითა და მასალებით

რა დაგჭირდებათ დასაწყებად:

- ATTiny85 ჩიპი

- Arduino UNO ან მსგავსი

-abreadboard რომელიღაც მხტუნავ მავთულხლართთან ან ATTINY პროგრამისტთან ერთად ან თავად შექმენით პროგრამისტ-ფარი არდუინოსთვის (შეამოწმეთ თანდართული სურათები, არის სქემატურად avdweb.nl). მე ასევე გავაკეთე ეს და მე ნამდვილად კმაყოფილი ვარ იმით, რომ ერთადერთი მოდიფიკაცია, რაც შევიტანე, იყო ის, რომ დავამატე სოკეტი ATTinyx4 სერიისთვის (იხ. სურათზე და პინუს დიაგრამებზე).

- Arduino IDE (მიიღეთ აქ)

- ტექნიკური ფაილები ArduinoIDE– სთვის (გადმოწერეთ და დააინსტალირეთ)

საინფორმაციო ბმული სათამაშო მოედნამდე პირდაპირი ბმული github ფაილებთან, რომლებიც მე გამოვიყენე

- ჩატვირთეთ Arduino როგორც ISP ესკიზი UNO– ში (ეს იქნება თქვენი პროგრამისტი)

- მიჰყევით ამ ინსტრუქციას (https://highlowtech.org/) ან ეს ინსტრუქცია (ardutronix- ის მიერ) და სცადეთ "დახუჭე" ესკიზი (შეცვალეთ PIN Nr. გამოიყენეთ ATTINY სურათი როგორც მითითება! თქვენ დაგჭირდებათ წინასწარ განათებული შუქნიშანი ATTINY და ~ 220Ohm რეზისტორი ამისთვის)

გააკეთეთ პატარა პურის დაფა ყველაფრის შესამოწმებლად. თუ ყველაფერი სწორად გააკეთეთ, LED აციმციმდება და მზად ხართ წასასვლელად

ინსტრუმენტები

- შედუღების რკინა- ზოგიერთი შედუღება- პატარა მავთულხლართები- დრემელი ან სხვა მბრუნავი ინსტრუმენტი (მხოლოდ PCB- ის მოსაჭრელად!)- ზოგიერთი ცხელი წებო- პინცეტი- მავთულები

მასალები

- PCB პროტოტიპი (~ 4cmx6cm ამას გააკეთებს)- 2x LDR- 5x 10k რეზისტორი (2x LDR– ებისთვის და 2x ტრანზისტორებისთვის BE, 1x LED)- 1x 330Ohm რეზისტორი (1x NEOPIXELS)- 2x LDR- 1x LED (თქვენი ფერი არჩევანი, სამაგრის მაგივრად)- 3x NEOPIXEL WS2812- 2x ტრანზისტორი (BD137 ან მსგავსი)- 2x დიოდი (1N4001 ან მსგავსი)- 2x მიკროძრავა (მაგ. Hubsan მიკრო-კვადროკოპტერიდან)- 1x ATTINY85 + სურვილისამებრ (რეკომენდებულია) 8PIN IC სოკეტი- 1x 1s LIPO (მე გამოვიყენე 140Ah ძველი RC- ვერტმფრენიდან)- ზოგიერთი pinheaders/სოკეტი- shrinktube (LDR საცხოვრებელი)

მოდით გავაგრძელოთ ტექნიკის შექმნა …

ნაბიჯი 2: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

თუ გადახედეთ ჩემს მიერ მიმაგრებულ სქემებს, აპარატურის დაყენება საკმაოდ მარტივია. ასე რომ, თუ თქვენ შეგიძლიათ წაიკითხოთ სქემები და გამოიყენოთ გამაგრილებელი რკინა, ეს არის ნახევარი ხრიკი. ასევე გადახედეთ ფოტოებს, მე დავამატე რამდენიმე შენიშვნა თქვენთვის.

მე არ ვაძლევ გეგმას PCB- ის მოჭრისთვის, თქვენ გაქვთ თავისუფლება გააკეთოთ თქვენი საკუთარი დიზაინი (იყავით შემოქმედებითი და გვაჩვენეთ თქვენი პატარა ბოტები). ყველა ელექტრონული კომპონენტის განთავსება ასევე თქვენზეა დამოკიდებული. რამდენიმე მინიშნება ჩემი მხრიდან:

შეეცადეთ ზუსტად დააკავშიროთ ძრავები (დააკვირდით კუთხეს!) ჩვენ მხოლოდ ძრავის ბორბლების ნაცვლად ვიყენებთ. (ეს მოიხმარს ნაკლებ ენერგიას) მე გირჩევთ მოათავსოთ ძრავები ბატარეის ქვეშ (წონა) და გამოიყენოთ LDR წინა მხარეს (45 ° -იანი კუთხით) დაწყვილებული LED (მე ვცდილობ გამოვიყენო ეს კომბინაცია დაბრკოლებების თავიდან აცილების მიზნით, შემდგომი საჭიროა ტესტები).

გარდა ამისა, მე გირჩევთ გააკეთოთ ცოტა ჩართვა/გამორთვა, რათა ბატარეა ასე ადვილად არ დაიკარგოს.

თუ რაიმე გაურკვეველია ან გაქვთ შეკითხვები, უბრალოდ მკითხეთ. ეს არ გააკეთებს ბევრ სენს, რომ გააკეთონ თეზისი ამ პატარა პროექტისგან.

ნაბიჯი 3: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

პირველ რიგში ჩამოტვირთეთ და დააინსტალირეთ ADAFRUIT Neopixel Library

აქ არის ჩემი კოდი რამდენიმე ძირითადი აღწერით (მე ასევე დავამატე ესკიზის ფაილი). მე არ გავაკეთე კომენტარი ყოველ ნაბიჯზე, რადგან ვფიქრობ, რომ ეს არ არის აუცილებელი.

ატვირთეთ ესკიზი თქვენს ATTiny85– ზე და გაერთეთ თქვენი ახალი სათამაშოებით

იდეები "პიროვნების" ფუნქციისთვის + იქნებ კოდის მაგალითები ძალიან მისასალმებელია:-)

თუ რაიმე შეკითხვაა, მოგერიდებათ.

ვიმედოვნებ, რომ მოგეწონათ ჩემი მოკლე სასწავლო და პატარა მოგზაურობა ATTINY– ების სამყაროში.

/* ATTINY85-რატა მარტივი ATTINY85 იკვებება მსუბუქი შემდგომი რობოტით. ვერსია 2.0, ავერ მარკუს */

#ჩართეთ

#ჩართეთ

// ძრავები

#განსაზღვრეთ LMOTOR 0 #განსაზღვრეთ RMOTOR 1 // ები #განსაზღვრეთ PIXELPIN 2 #განსაზღვრეთ NUMPIXEL 3 // LDRs #განსაზღვრეთ LLDR A2 #განსაზღვრეთ RLDR A3

// otherint emo = 0; float calib; ბულის emostate; ხანგრძლივი oldmillis; // განსაზღვრეთ NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

ბათილად დაყენება ()

{// ძვირადღირებული საათი სხვა შემთხვევაში თქვენ შეხვდებით დროის გარკვეულ პრობლემებს (ნეოპიქსელის ლიბერალი დაწერილია 16 MHz) #თუ განსაზღვრულია (_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; // წაიკითხეთ LDRs (int j = 0; j <ნიმუშები; j ++) {

მარცხენა = მარცხენა + analogRead (LLDR); მარჯვნივ = მარჯვნივ + (analogRead (RLDR)*კალიბრი);

}

// გამოთვალე შედეგი (რომელი მიმართულებით მოდის სინათლე?)

თუ ((მარცხნივ/ნიმუშები)> ((მარჯვნივ/ნიმუშები)+ბარიერი)) {შედეგი = 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); if (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 (); შესვენება; }} სხვა {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

გირჩევთ: