Мазмұны:

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-чиптер сериясымен «алғашқы қадамдарымды» осы қысқа нұсқаулықта құжаттай алдым.

Мен ATTINY85 үлгілерін сынап көргім келгендіктен тапсырыс бердім:-) (бәрі заттарды сынауды жақсы көреді, солай ма?) Осыдан кейін мен дәптеріме бірнеше идеялар сала бастадым. Шынымды айтсам, мен жасаған бірінші нәрсе - бұл светодиодты жыпылықтау, бұл әрқашан сіздің баптау/құралдар тізбегінің жұмыс істеп тұрғанын тексеру үшін жақсы бастама. Мен сондай -ақ DHT22 мен SoftwareSerial көмегімен температура мен ылғалдылықты тіркеушіні сынап көрдім. Бұл өте қиын болды, себебі DHT кітапханалары негізінен 16 МГц сағатты құрайды (егер сіз осындай нәрсені жоспарласаңыз, ішкі сағатты қалай алдын ала өлшеу керектігін тексеріңіз). Бірақ мен сізге күлкілі нәрсені көрсетуге шешім қабылдадым. BTW: Мен сіздерге суреттерімнің бірін жүктедім, бұл рембрандт емес, бірақ бұл (шынымен) ақымақ идеяны қағазға қалай алғанымды көрсетеді: -П.

Мен бұл жобаны мүмкіндігінше арзан ұстау үшін жататын нәрселерімді ғана қолдандым (мен үшін). Бұл кішкентай оқиғаның нәтижесі-шамамен 10-15 доллар тұратын «жарық түсіруші робот» (мен үшін 3 доллар)

Егер сізді ATTINY қызықтырса, әрі қарай оқыңыз.

BTW: менің нашар ағылшын тілім үшін кешіріңіз (мен ана тілінде сөйлейтін адам емеспін)

1 -қадам: ATTiny мен құралдар мен материалдарды бастау

ATTiny & Құралдар мен материалдармен жұмысты бастау
ATTiny & Құралдар мен материалдармен жұмысты бастау
ATTiny & Құралдар мен материалдармен жұмысты бастау
ATTiny & Құралдар мен материалдармен жұмысты бастау
ATTiny & Құралдар мен материалдармен жұмысты бастау
ATTiny & Құралдар мен материалдармен жұмысты бастау
ATTiny & Құралдар мен материалдармен жұмысты бастау
ATTiny & Құралдар мен материалдармен жұмысты бастау

Жұмысты бастау үшін сізге қажет:

- ATTiny85 чипі

- Arduino UNO немесе ұқсас

-бірнеше секіргіш сыммен немесе ATTINY бағдарламашысы бар тақтайша немесе Arduino үшін бағдарламалаушы қалқанды өзіңіз жасаңыз (қоса берілген суреттерді қараңыз, avdweb.nl сайтынан алынған схема бар). Мен мұны да жасадым және мен оған өте ризамын, мен жасаған жалғыз өзгеріс-ATTinyx4 сериясына розетка қосқаным (суретке және түйін диаграммасына қараңыз).

- Arduino IDE (мына жерден алыңыз)

- ArduinoIDE үшін аппараттық файлдар (жүктеу және орнату)

Ойын алаңына тікелей сілтеме Мен қолданған github файлдарына сілтеме

- Arduino -ны провайдердің нобайы ретінде БҰҰ -ға жүктеңіз (бұл сіздің бағдарламашыңыз болады)

- осы нұсқаулықты орындаңыз (https://highlowtech.org/) немесе осы нұсқаулық бойынша (ardutronix бойынша) және «жыпылықтау» эскизін қолданып көріңіз (PIN кодын өзгертіңіз. ATTINY суретін сілтеме ретінде пайдаланыңыз! сізге алдын ала басылған ATTINY светодиоды қажет болады) және бұл үшін ~ 220 Ом резисторы)

Барлығын тексеру үшін шағын тақта орнатыңыз. Егер сіз бәрін дұрыс жасасаңыз, жарық диоды жыпылықтайды және сіз баруға дайынсыз.

ҚҰРАЛДАР

- Пісіру үтігі- кейбір дәнекерлеуші- кішкене сым кескіш- дремель немесе басқа айналмалы құрал (ПХД кесуге арналған!)- кейбір ыстық желім- пинцет- сымдар

МАТЕРИАЛДАР

- ПХД прототипін жасау (~ 4см x 6см)- 2x LDR- 5х 10к резистор (LDR үшін 2x және транзисторлар үшін 2x BE, 1x жарықдиодты)- 1x 330Ohm резисторы (1x NEOPIXELS)- 2x LDR- 1x жарықдиодты (сіздің түсіңіз) таңдау, дөңгелектің орнына)- 3x NEOPIXEL WS2812- 2x транзистор (BD137 немесе соған ұқсас)- 2x диод (1N4001 немесе ұқсас)- 2x мотор (мысалы, Hubsan микро квадрокоптерінен)- 1x ATTINY85 + қосымша (ұсынылады) 8PIN IC розеткасы- 1x 1s LIPO (мен ескі RC тікұшағынан 140Ah қолдандым)- кейбір түйреуіштер/розеткалар- қысқартқыш түтік (LDR корпусы)

Жабдықты құрастыруды жалғастырайық …

2 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал

Егер мен тіркеген схемаларға қарасаңыз, аппараттық құралдарды орнату өте қарапайым. Егер сіз схемаларды оқып, дәнекерлеу үтігін қолдана алатын болсаңыз, бұл амалдың жартысы. Фотосуреттерді қараңыз, мен сізге бірнеше ескертулер қостым.

Мен ПХД кесу жоспарын ұсынбаймын, сізде өзіңіздің жеке дизайныңызды жасауға еркіндік бар (креативті болыңыз және бізге кішкентай боттарды көрсетіңіз). Барлық электронды компоненттерді орналастыру сізге байланысты. Менің тарапымнан бірнеше кеңестер:

Қозғалтқышты дәл туралауға тырысыңыз (бұрышты қараңыз!) Біз дөңгелектердің орнына тек қозғалтқыш білігін қолданамыз. (бұл энергияны аз тұтынады) Мен қозғалтқыштарды аккумулятордың астына (салмаққа) қоюды және алдыңғы жағындағы LDR -ді (45 ° бұрышпен) жарық диодты қосуды қолдануды ұсынамын (мен бұл комбинацияны акушерлікті болдырмау үшін қолданамын, әрі қарай) тесттер қажет).

Мен аккумулятор оңай жоғалмауы үшін сәл қосқышты қосуды ұсынамын.

Егер түсініксіз нәрсе болса немесе сұрақтарыңыз болса, мені сұраңыз. Бұл кішігірім жобадан тезис шығаруға көп күш қажет болмайды.

3 -қадам: Бағдарламалық қамтамасыз ету

Бағдарламалық қамтамасыз ету
Бағдарламалық қамтамасыз ету
Бағдарламалық қамтамасыз ету
Бағдарламалық қамтамасыз ету

Біріншіден, ADAFRUIT Neopixel кітапханасын жүктеу және орнату

Міне, менің негізгі сипаттамалары бар менің кодым (мен эскиздік файлды да қостым). Мен әр қадамға түсініктеме бермедім, себебі бұл қажет емес деп ойлаймын.

Эскизді ATTiny85 -ке жүктеп, жаңа ойыншығыңызбен көңіл көтеріңіз

«Тұлға» функциясы туралы идеялар + мүмкін код-мысалдар өте қолайлы:-)

Егер сұрақтар туындаса, тартынбай қойыңыз.

Сізге менің қысқа нұсқаулығым мен ATTINYs әлеміне саяхатым ұнады деп сенемін.

/* ATTINY85-Rata қарапайым ATTINY85 жұмыс істейтін жеңіл робот. 2.0 нұсқасы, Авер Маркус */

#қосу

#қосу

// қозғалтқыштар

#LMOTOR 0 анықтау #RMOTOR 1 анықтау // жарық диодтары #PIXELPIN 2 анықтау #NUMPIXEL 3 анықтау // LDRs #анықтау LLDR A2 #RLDR A3 анықтау

// басқа emo = 0; қалқымалы калибр; бульдік эмостат; ұзын ескі миллис; // NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel анықтау (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

жарамсыз орнату ()

{// жоғары деңгейлі сағат, әйтпесе сіз кейбір уақыт проблемаларына тап боласыз (неопиксель lib 16 МГц үшін жазылған) #if (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // пикселдерді инициализациялау PIXEL.begin (); PIXEL.show (); кешіктіру (500); // startequence for (int i = 0; i

бос цикл ()

{if (lightfollow () == 1) {left (); } else if (lightfollow () == 2) {right (); } else if (lightfollow () == 0) {алға (); } эмоция (); }

int lightfollow () {

int treshold = 14; int нәтижесі = 0; солға қалқымалы = 0; оңға жүзу = 0; int үлгілері = 1; // үшін LDRs оқу (int j = 0; j <үлгілер; j ++) {

left = left + analogRead (LLDR); оң = оң жақ + (analogRead (RLDR)*калибр);

}

// нәтижені есептеңіз (жарық қай жақтан келеді?)

if ((сол/үлгілер)> ((оң жақ/үлгілер)+үшбұрыш)) {нәтиже = 2;}

әйтпесе ((сол жақта/үлгілерде) <((оң жақта/үлгілерде) -жолды)) {нәтиже = 1;}

басқа {нәтиже = 0;}

нәтижені қайтару; } 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 (); }

сол жақ бос () {

// 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> эмотимер) {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 (); }}

Ұсынылған: