Мазмуну:
- 1 -кадам: ATTiny & Tools & Materials менен баштоо
- 2 -кадам: Аппараттык
- 3 -кадам: Программалык камсыздоо
Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Салам достор, Мен акыркы көрсөтмөлөрүмдү жарыялагандан бери бир топ убакыт өттү. Менин башымда азыр көп нерселер болуп жатат, бирок мен ATTiny-Series чиптери менен "алгачкы кадамдарымды" бул кыска нускамалуу түрдө документтештирүүгө жетиштим.
Мен кээ бир ATTINY85 үлгүлөрүн заказ кылдым, анткени мен аларды сынап көргүм келди:-) (баары нерселерди текшерүүнү жакшы көрүшөт, туурабы?) Андан кийин мен блокнотума кээ бир ойлорду тарта баштадым. Чынын айтсам, мен жасаган биринчи нерсе - бул светодиоддун жарыгы. Мен дагы DHT22 жана SoftwareSerial менен температура жана нымдуулукту каттоону сынап көрдүм. DHT китепканалары негизинен 16 МГц саатка ылайыкташкандыктан, бул өтө татаал болгон (эгер сиз ушундай бир нерсе кылууну пландап жатсаңыз, ички саатты кантип өлчөө керек экенин текшериңиз). Бирок мен сизге күлкүлүү болгон нерсени көрсөтүүнү чечтим. BTW: Мен сизге чиймелеримдин бирин жүктөдүм, бул Рембрандт эмес, бирок бул (чынында) келесоо идеяны кантип кагазга түшүргөнүмдү көрсөтөт: -П.
Мен бул долбоорду мүмкүн болушунча арзаныраак кармоо үчүн жатып калган нерселерди гана колдондум (мен үчүн). Бул кичинекей жоруктун натыйжасы 10-15 $ тегерегиндеги сонун кичинекей "лампочка роботу" (мен үчүн 3 $:-P)
Ошентип, эгер сиз өзүңүздү ATTINYге кызыктырсаңыз, андан ары окуңуз.
BTW: начар англисче кечирим сурайм (мен эне тилинде сүйлөгөн эмесмин)
1 -кадам: ATTiny & Tools & Materials менен баштоо
Баштоо үчүн сизге эмне керек:
- ATTiny85 чипи
- Arduino UNO же ушуга окшош
-бир нече секиргич зым же ATTINY программисти бар тактайча же Arduino үчүн өзүңүз үчүн программист-калкан жасаңыз (тиркелген сүрөттөрдү караңыз, avdweb.nlдин схемасы бар). Мен муну дагы жасадым жана мен чындыгында бактылуумун, мен жасаган жалгыз өзгөртүү-бул ATTinyx4 сериясына розетка кошконум (сүрөттү жана пинут диаграммаларын караңыз).
- Arduino IDE (бул жерден алыңыз)
- ArduinoIDE үчүн жабдык файлдары (жүктөп алып, орнотуңуз)
Info-Link to the playgrounddirect Мен колдонгон github файлдарына шилтеме
- Ардуинону ISO эскизи катары UNOго жүктөңүз (бул сиздин программистиңиз болот)
- бул нускаманы аткарыңыз (https://highlowtech.org/) же ушул көрсөтмө (ardutronix тарабынан) жана "ирмөө" эскизин байкап көрүңүз (PIN номерин өзгөртүп, ATTINY сүрөтүн шилтеме катары колдонуңуз! сизге алдын ала жазылган ATTINY LED) жана ~ 220Ohm резистору)
Бардыгын текшерүү үчүн чакан панель орнотууларын жасаңыз. Эгер сиз баарын туура кылсаңыз, LED жаркылдайт жана сиз барууга даярсыз
КУРАЛДАР
- Паяльник- кээ бир ширеткичтер- кичинекей сым кесүүчү- дремел же башка айлануучу курал (ПХБны кесүү үчүн!)- кээ бир ысык клей- пинцет- зымдар
МАТЕРИАЛДАР
- PCB прототиптештирүү (~ 4cmx6cm муну жасайт)- 2x LDR- 5x 10k Resistor (2x LDRs жана 2x BE транзисторлору, 1x LED)- 1x 330Ohm Resistor (1x NEOPIXELS)- 2x LDR- 1x LED (сиздин түсүңүз тандоо, дөңгөлөктүн ордуна)- 3x NEOPIXEL WS2812- 2x Транзистор (BD137 же окшош)- 2x Диод (1N4001 же окшош)- 2x микромотор (мис. Hubsan микро квадрокоптеринен)- 1x ATTINY85 + милдеттүү эмес (сунушталат) 8PIN IC Socket- 1x 1s LIPO (мен эски RC-тик учактан 140Ач колдондум)- кээ бир түйүндөр/розеткалар- shrinktube (LDR корпусу)
Келгиле, аппараттык жабдууларды куруу менен…
2 -кадам: Аппараттык
Эгерде мен тиркелген схемаларга көз чаптырсаңыз, аппараттык жабдыктарды орнотуу абдан жөнөкөй. Ошентип, эгерде сиз схемаларды окуп, ширеткичти колдоно алсаңыз, анда бул трюктун жарымы. Фотолорду карап көрүңүз, мен сизге бир нече жазууларды коштум.
Мен ПХБны кесүү боюнча план бербейм, сиз өзүңүздүн дизайныңызды чыгарууга эркиндигиңиз бар (чыгармачыл болуңуз жана бизге кичинекей ботторуңузду көрсөтүңүз). Бардык электрондук компоненттердин жайгашуусу сизге да байланыштуу. Мен тараптан кээ бир кеңештер:
Моторлорду так тегиздөөгө аракет кылыңыз (бурчту караңыз!) Биз дөңгөлөктүн ордуна мотор валын гана колдонобуз. (бул азыраак энергияны сарптайт) Мен моторлорду батарейканын астына коюуну сунуштайм (салмагы) жана LEDди жупташкан алдыңкы бөлүгүндө (45 ° бурчта) LDRлерди колдонууну сунуштайм (мен бул айкалышты шишикти болтурбоо үчүн колдонууга аракет кылып жатам. тесттер керек).
Дагы мен батарейканы оңой эле жоготуп албаш үчүн бир аз кошуу/өчүрүү секиригин жасоону сунуштайм.
Эгер түшүнүксүз бир нерсе болсо же суроолорунуз болсо, жөн эле менден сураңыз. Бул кичинекей проекттен тезисти жасоого эч кандай мажбурлоо болбойт.
3 -кадам: Программалык камсыздоо
Бардык жүктөө жана орнотуунун 1чи ADAFRUIT Neopixel Library
Бул жерде менин негизги сүрөттөмөлөрү бар кодум (мен эскиз файлын дагы коштум). Мен ар бир кадамга комментарий берген жокмун, анткени бул керек эмес деп ойлойм.
Эскизди ATTiny85ке жүктөңүз жана жаңы оюнчугуңуз менен көңүл ачыңыз
"Инсандык" функциясы үчүн идеялар + балким код-мисалдар абдан жакшы кабыл алынат:-)
Эгерде кандайдыр бир суроолор болсо, тартынбастан сураңыз.
Менин кыска үйрөткүчүм жана ATTINYs дүйнөсүнө болгон кичинекей саякатым сизге жакты деп ишенем.
/* ATTINY85-Rata жөнөкөй ATTINY85 менен иштөөчү lightfollowing роботу. 2.0 версиясы, Авер Маркус */
#кошуу
#кошуу
// моторлор
#define LMOTOR 0 #define RMOTOR 1 // LEDs #dexinePIXELPIN 2 #depine NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR3
// otherint emo = 0; калибрлүү калибр; логикалык эмостат; long oldmillis; // аныктоо 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); // баштоо үчүн (int i = 0; i
боштук цикл ()
{if (lightfollow () == 1) {left (); } else if (lightfollow () == 2) {right (); } if if (lightfollow () == 0) {forward (); } эмоция (); }
int lightfollow () {
int treshold = 14; int result = 0; солго сүзүү = 0; оңго сүзүү = 0; int үлгүлөрү = 1; // үчүн LDRs окуу (int j = 0; j <үлгүлөр; j ++) {
сол = сол + 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> duration) {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 (); }}
Сунушталууда:
Супер Capacitor Powered Raspberry Pi ноутбук: 5 кадам
Супер Capacitor Powered Raspberry Pi ноутбук: Бул долбоорго болгон жалпы кызыкчылыкка жараша, мен дагы башка кадамдарды кошо алам, эгер бул кандайдыр бир түшүнүксүз компоненттерди жөнөкөйлөтүүгө жардам берсе, мен көп жылдар бою жаңы конденсатор технологиясына кызыгып келгем. кызыктуу
Muscle Powered Flappy Bird: 9 кадам (Сүрөттөр менен)
Muscle Powered Flappy Bird: эсиңизде болсун, Flappy Bird дүйнөнү катуу шамал менен басып алып, акыры популярдуу болуп, жаратуучу аны керексиз жарнактан качуу үчүн колдонмо дүкөндөрүнөн алып салган. Бул Flappy Bird болуп көрбөгөндөй; текчеден бир нече компо бириктирүү менен
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
Сөз үчүн текст ARMbasic Powered UChip жана башка ARMbasic Powered SBCлерди чыкылдатыңыз: 3 кадам
Сөз үчүн текст ARMbasic Powered UChip жана башка ARMbasic Powered SBCлерди чыкылдатыңыз: Киришүү: Жакшы күн. Менин атым Тод. Мен аэрокосмостук жана коргонуу тармагындагы профессионалмын, ал дагы жүрөгүндө бир аз геик.Илхам: BBS, 8-биттик микроконтроллерлер, Kaypro/Commodore/Tandy/TI-994A жеке компьютерлер доорунан башталат, качан R
Dc Converter Mini Mini Ac: 7 кадам
Mini Converter to Dc Converter: бул ACдан DC Converter.itке чейин болгону бир нече долларга турду.Төрт диоддун баасы абдан жөнөкөй жана ширетүүдө эч кандай кыйынчылык жок. ошондуктан мен аны баарыңар менен бөлүшкүм келет, ошондуктан баштайлы