Სარჩევი:
- ნაბიჯი 1: დაიწყეთ ATTiny– ით და ინსტრუმენტებითა და მასალებით
- ნაბიჯი 2: აპარატურა
- ნაბიჯი 3: პროგრამული უზრუნველყოფა
ვიდეო: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
გამარჯობა ხალხო, უკვე დიდი ხანია რაც გამოვაქვეყნე ჩემი უკანასკნელი ინსტრუქცია. ახლა ბევრი რამ ხდება ჩემს თავში, მაგრამ მე შევძელი ჩემი პირველი ნაბიჯების დოკუმენტირება ATTiny-Series ჩიპებით ამ მოკლე ინსტრუქციით თქვენთვის.
მე შევუკვეთე რამდენიმე ATTINY85 ნიმუში მხოლოდ იმიტომ, რომ მინდოდა მათი გამოცდა:-) (ყველას უყვარს საგნების გამოცდა, არა?). ამის შემდეგ დავიწყე რამოდენიმე იდეის დახატვა ჩემს რვეულში. სიმართლე გითხრათ პირველი რაც გავაკეთე იყო მოციმციმე LED, რომელიც ყოველთვის კარგი დასაწყისია იმის შესამოწმებლად მუშაობს თუ არა თქვენი კონფიგურაცია/ინსტრუმენტთა ქსელი. მე ასევე შევეცადე ტემპერატურისა და ტენიანობის ლოგერი DHT22 და SoftwareSerial– ით. ეს იყო სახიფათო, რადგან DHT ბიბლიოთეკები ძირითადად განკუთვნილია 16 მჰც საათისათვის (თუ თქვენ აპირებთ მსგავსი რამის გაკეთებას, შეამოწმეთ როგორ უნდა მოხდეს შიდა საათის წინასწარი გაფართოება). მაგრამ მე გადავწყვიტე მეჩვენებინა ის, რაც, რა თქმა უნდა, უფრო სახალისოა. BTW: მე ავტვირთე თქვენთვის ჩემი ერთი ნახატი, ის არ არის რემბრანდტი, მაგრამ ის გაჩვენებთ როგორ მივიღე ეს (მართლაც) სულელური იდეა ფურცელზე: -პ.
მე ვიყენებდი მხოლოდ იმას, რაც მე იწვა იმისთვის, რომ ეს პროექტი მაქსიმალურად იაფი ყოფილიყო (ჩემთვის). ამ პატარა თავგადასავლის შედეგი არის ლამაზი პატარა "მსუბუქი მიმდევარი რობოტი" დაახლოებით 10-15 დოლარად (ჩემთვის 3 $:-P)
ასე რომ, თუ თქვენ დაინტერესებული ხართ ATTINY– ით, უბრალოდ წაიკითხეთ.
BTW: ბოდიში ჩემი ცუდი ინგლისურისთვის (მე არ ვარ მშობლიურ ენაზე)
ნაბიჯი 1: დაიწყეთ 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 (); }}
გირჩევთ:
Super Capacitor Powered Raspberry Pi ლეპტოპი: 5 ნაბიჯი
Super Capacitor Powered Raspberry Pi ლეპტოპი: ამ პროექტისადმი ზოგადი ინტერესიდან გამომდინარე, შემიძლია დავამატო მეტი ნაბიჯი და ა.შ. თუ ეს ხელს უწყობს რაიმე დამაბნეველი კომპონენტის გამარტივებას. მე ყოველთვის დაინტერესებული ვიყავი ახალი კონდენსატორის ტექნოლოგიით, რომელიც წლების განმავლობაში ჩნდებოდა და ვფიქრობდი, რომ ეს იქნებოდა სახალისოა
რეტრო არკადული - (სრული ზომა Powered by Raspberry Pi): 8 ნაბიჯი
Retro Arcade - (სრული ზომა Powered by Raspberry Pi): პირველ რიგში მინდოდა მადლობა გადაგიხადოთ ამ რეტრო არკადული სისტემის მშენებლობის სახელმძღვანელოს გადახედვისათვის. მე ვიღებ ძველ არკადულ ყუთს და ვდებ ცალკეულ კაბინეტში 24 დიუმიანი ფართო ეკრანის მონიტორით. ამ სახელმძღვანელოზე გაზომვები უხეშია
ხის LED სათამაშო ჩვენება Powered by Raspberry Pi Zero: 11 ნაბიჯი (სურათებით)
ხის LED სათამაშო ჩვენება Powered by Raspberry Pi Zero: ეს პროექტი აცნობიერებს 20x10 პიქსელიანი WS2812 დაფუძნებულ LED ეკრანს 78x35 სმ ზომის, რომელიც ადვილად შეიძლება დამონტაჟდეს მისაღებ ოთახში რეტრო თამაშების სათამაშოდ. ამ მატრიცის პირველი ვერსია აშენდა 2016 წელს და აღადგინეს ბევრმა ადამიანმა. ეს გამოცდილი
Ultracapacitor Powered Robot: 15 ნაბიჯი (სურათებით)
Ultracapacitor Powered Robot: Little Flash არის 3D დაბეჭდილი რობოტი, რომელიც იკვებება ულტრა კონდენსატორებით. გაჭედვის თავიდან ასაცილებლად ის იყენებს ამომრთველ გადამრთველს და შემთხვევითი ბილიკის კორექტირებას. ის მუშაობს 25 წუთის განმავლობაში და მისი დატენვა შესაძლებელია დაახლოებით 40 წამში, 10 ამპერიანი მუდმივი დენის წყაროს გამოყენებით
მეტყველების ტექსტი დააწკაპუნეთ ARMBasic Powered UChip– ზე და ARMBasic Powered SBC– ზე: 3 ნაბიჯი
ტექსტი მეტყველებისთვის დააწკაპუნეთ ARMbasic Powered UChip– ზე და ARMbasic Powered SBC– ებზე: შესავალი: კარგი დღე. მე მქვია ტოდი. მე ვარ საჰაერო კოსმოსური და თავდაცვის პროფესიონალი, რომელიც ასევე ცოტათი გიკია გულში. შთაგონება: მივესალმები dial-up BBS- ის ეპოქიდან, 8 ბიტიანი მიკროკონტროლერები, პერსონალური კომპიუტერები Kaypro/Commodore/Tandy/TI-994A, როდესაც R