Mundarija:

ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower: 3 qadam
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower: 3 qadam

Video: ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower: 3 qadam

Video: ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower: 3 qadam
Video: Прохождение The Last of Us part 2 (Одни из нас 2) # 6 От канализации до больницы один шаг 2024, Noyabr
Anonim
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower
ATTiny-RAT, ATTINY bilan ishlaydigan Mini Lightfollower

Salom odamlar, Men oxirgi ko'rsatmalarni joylashtirganimga biroz vaqt bo'ldi. Hozir ko'p narsalar miyamda bo'lyapti, lekin men ATTiny seriyali chiplar bilan "birinchi qadamlarimni" siz uchun qisqa ko'rsatmali qilib yozishga muvaffaq bo'ldim.

Men ATTINY85 namunalariga buyurtma berdim, chunki men ularni sinab ko'rmoqchi edim:-) (hamma narsalarni sinab ko'rishni yaxshi ko'radi, to'g'rimi?) Shundan so'ng men daftarimga ba'zi fikrlarni yozishni boshladim. Rostini aytsam, men qilgan birinchi narsa - bu LEDni miltillatish edi, bu har doimgidek sizning sozlamalaringiz/asboblar zanjiri ishlayotganini tekshirish uchun yaxshi boshlanishdir. Men DHT22 va SoftwareSerial bilan harorat va namlikni hisobga oluvchini ham sinab ko'rdim. Bu juda qiyin ish edi, chunki DHT kutubxonalari asosan 16 MGts soatga mo'ljallangan (agar siz shunday qilishni rejalashtirmoqchi bo'lsangiz, ichki soatni qanday oldindan o'lchashni tekshiring). Lekin men sizga kulgili narsani ko'rsatishga qaror qildim. BTW: Men siz uchun chizgan rasmlarimni yukladim, bu Rembrandt emas, lekin bu qanday qilib ahmoqona fikrni qog'ozga qanday qilib olganimni ko'rsatib beradi: -P.

Men bu loyihani iloji boricha arzonroq saqlash uchun yolg'on gapirgan narsalarni ishlatardim (men uchun). Bu kichik sarguzashtning natijasi 10-15 dollar (men uchun 3 dollar:-P)

Agar siz ATTINY bilan qiziqsangiz, o'qing.

BTW: yomon ingliz tilim uchun uzr (men ona tili emasman)

1 -qadam: ATTiny va asboblar va materiallar bilan ishlashni boshlash

ATTiny va asboblar va materiallar bilan ishlashni boshlash
ATTiny va asboblar va materiallar bilan ishlashni boshlash
ATTiny va asboblar va materiallar bilan ishlashni boshlash
ATTiny va asboblar va materiallar bilan ishlashni boshlash
ATTiny va asboblar va materiallar bilan ishlashni boshlash
ATTiny va asboblar va materiallar bilan ishlashni boshlash
ATTiny va asboblar va materiallar bilan ishlashni boshlash
ATTiny va asboblar va materiallar bilan ishlashni boshlash

Boshlash uchun sizga nima kerak bo'ladi:

- ATTiny85 chipi

- Arduino UNO yoki shunga o'xshash

-bir nechta jumper-simli yoki ATTINY dasturchi bilan bort taxtasi yoki o'zingiz Arduino uchun dasturchi-qalqon yasang (ilova qilingan rasmlarni tekshiring, avdweb.nl-dan sxemasi bor). Men buni ham qildim va bundan juda xursandman, men qilgan yagona o'zgartirish-ATTinyx4 Series uchun rozetkani qo'shganim (rasmga va pinout diagrammalariga qarang).

- Arduino IDE (bu yerdan oling)

- ArduinoIDE uchun apparat fayllari (ularni yuklab oling va o'rnating)

O'yin maydonchasiga to'g'ridan-to'g'ri ma'lumot ishlatilgan github fayllariga havola

- Arduino -ni Internet -provayder eskizi sifatida UNO -ga yuklang (bu sizning dasturchi bo'ladi)

- ushbu ko'rsatmaga (https://highlowtech.org/) yoki ushbu ko'rsatmaga (ardutronix tomonidan) amal qiling va "miltillash" eskizini sinab ko'ring (PIN kodini o'zgartiring. ATTINY rasmini mos yozuvlar sifatida ishlating! sizga oldindan bosilgan ATTINY LED) kerak bo'ladi. va buning uchun ~ 220 Ohm rezistor)

Hamma narsani tekshirish uchun kichik taxtali o'rnating. Agar siz hamma narsani to'g'ri bajargan bo'lsangiz, LED yonadi va siz borishga tayyormiz.

QUROLLAR

- lehimlantiruvchi temir- bir oz lehim- kichik sim- kesuvchi yoki boshqa aylanadigan asbob (faqat PCBni kesish uchun!)- bir nechta issiq yopishtiruvchi- cımbız- simlar

MATERIALLAR

- PCB prototipini yaratish (~ 4 sm x 6 sm)- 2 marta LDR- 5x 10k rezistor (2 marta LDR va 2x BE, 1x LED)- 1x 330Ohm rezistor (1x NEOPIXELS)- 2x LDR- 1x LED (sizning rangingiz) g'ildirak o'rniga tanlov)- 3x NEOPIXEL WS2812- 2x tranzistor (BD137 yoki shunga o'xshash)- 2x diod (1N4001 yoki shunga o'xshash)- 2x mikromotor (masalan, Hubsan mikro-kvadrokopteridan)- 1x ATTINY85 + ixtiyoriy (tavsiya etiladi) 8PIN IC rozetkasi- 1x 1s LIPO (men eski RC-vertolyotdan 140Ach ishlatganman)- ba'zi pinheads/sockets- shrinktube (LDR korpusi)

Uskunani ishlab chiqarishni davom ettiramiz …

2 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna
Uskuna
Uskuna

Agar men biriktirgan sxemalarga qarasangiz, uskunani sozlash juda oddiy. Agar siz sxemalarni o'qiy olsangiz va lehimli temirni ishlata olsangiz, bu hiylaning yarmi. Fotosuratlarni ham ko'ring, men siz uchun ba'zi eslatmalarni qo'shdim.

Men PCBni kesish rejasini bermayman, siz o'zingizning shaxsiy dizayningizni yaratishingiz mumkin (ijodiy bo'ling va bizga kichik botlaringizni ko'rsating). Barcha elektron komponentlarning joylashuvi ham sizga bog'liq. Men tomondan ba'zi maslahatlar:

Dvigatellarni aniq tekislashga harakat qiling (burchakka qarang!) Biz faqat g'ildiraklar o'rniga motor milidan foydalanamiz. (bu kam energiya sarflaydi) Men dvigatellarni batareyaning ostiga (og'irligi) qo'yishni va old tomondan (45 ° burchak ostida) LED bilan bog'langan LDR -larni ishlatishni tavsiya qilaman (men bu kombinatsiyani o'pkadan saqlanish uchun ishlataman. testlar kerak).

Bundan tashqari, men batareyani osonlikcha yo'qotib yubormaslik uchun ozgina yoqish/o'chirish moslamasini yasashni tavsiya qilaman.

Agar biror narsa aniq bo'lmasa yoki savollaringiz bo'lsa, mendan so'rang. Bu kichik loyihadan tezis chiqishiga ko'pchilikni majburlamaydi.

3 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot

Birinchi navbatda ADAFRUIT Neopixel kutubxonasini yuklab oling va o'rnating

Bu erda mening asosiy tavsiflar bilan kodim (men ham eskiz faylini qo'shdim). Men har bir qadamni sharhlamadim, chunki bu kerak emas deb o'ylayman.

Eskizni ATTiny85 -ga yuklang va yangi o'yinchog'ingizdan zavqlaning

"Shaxsiyat" funktsiyasi uchun g'oyalar + ehtimol kod misollari juda ma'qul:-)

Agar savollar bo'lsa, bemalol so'rang.

Umid qilamanki, mening qisqa ko'rsatmali va ATTINYs olamiga qilgan kichik sayohatim sizga yoqdi.

/* ATTINY85-Rata oddiy ATTINY85 bilan ishlaydigan yorug'likli robot. 2.0 versiyasi, Auer Markus */

#qo'shing

#qo'shing

// motorlar

#define LMOTOR 0 #define RMOTOR 1 // LEDlar #dexinani belgilang PIXELPIN 2 #ni belgilang NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR A3

// boshqa emo = 0; suzuvchi kalibr; boolean emostat; uzun oldmillis; // NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800) ni aniqlang;

bo'sh o'rnatish ()

{// yuqori darajali soat, aks holda siz vaqt muammosiga duch kelasiz (neopixel lib 16 MGts uchun yozilgan) #if belgilangan bo'lsa (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, Kirish); pinMode (LLDR, INPUT); // PIXEL.begin () piksellarini ishga tushirish; PIXEL.show (); kechikish (500); // boshlang'ich tenglamasi (int i = 0; i

bo'sh halqa ()

{if (lightfollow () == 1) {left (); } if if (lightfollow () == 2) {right (); } if if (lightfollow () == 0) {forward (); } tuyg'u (); }

int lightfollow () {

int treshold = 14; int natijasi = 0; chapga siljish = 0; o'ngga suzish = 0; int namunalari = 1; // (int j = 0; j <namunalar; j ++) {uchun LDRlarni o'qish

chap = chap + analogRead (LLDR); o'ng = o'ng + (analogRead (RLDR)*kalibr);

}

// natijani hisoblang (yorug'lik qaysi tomondan keladi?)

agar ((chapda/namunalarda)> ((o'ngda/namunalarda)+tresholdda)) {natija = 2;}

aks holda ((chapda/namunalarda) <((o'ngda/namunalarda) -toshli)) {natija = 1;}

boshqa {natija = 0;}

natijani qaytarish; } void forward () {// 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 (); }

bo'sh joy chap () {

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

o'ng bekor () {

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

// bu keyingi tajribalar uchun, unga ozgina shaxsiyat berishga harakat qiladi:-) Men nima qila olishimni sinab ko'raman, lekin hali yaxshi fikrlar yo'q.

bo'sh tuyg'u () {int emotimer = 2500; int davomiyligi = tasodifiy (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = tasodifiy (1, 4); } agar (millis () - oldmillis> davomiyligi) {emostate =! emostate; } if (emostate == true) {switch (emo) {1 -holat: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255)))); PIXEL.show (); tanaffus; 2 -holat: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0)))); PIXEL.show (); tanaffus; 3 -holat: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0)))); PIXEL.show (); tanaffus; standart: PIXEL.setPixelColor (1, PIXEL. Color (tasodifiy (0, 255), tasodifiy (0, 255), tasodifiy (0, 255)))); PIXEL.show (); tanaffus; }} boshqa {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0))); PIXEL.show (); }}

Tavsiya: