Мазмуну:
Video: Жумушчу RC Car Speedometer: 4 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул мен Lightweight Land Roverдин чоңураак RC түзүмүнүн бир бөлүгү катары түзгөн кыска долбоор. Мен тактада иштеп жаткан спидометрдин болушун кыялданчумун, бирок мен сервонун аны кеспей турганын билчүмүн. Бир гана акылга сыярлык вариант бар болчу: arduino орнотуу!
Баштоо үчүн бир аз маалымат … Мен коддоочу же электроника адамы эмесмин. Мен дагы эле электр энергиясын суунун агымы боюнча ойлоном жана резисторлор бир аз мистикаланат. Айтор, эгер мен бул ишти жасай алсам, анда сен да ошондой кыла аласың!
БӨЛҮКТӨР ТИЗМЕСИ:
Микроконтроллер: Мен ATTiny85 чипин колдондум, анын баасы ар бири 1 фунт.
Микроконтроллер программисти: Чипке кодду алуу үчүн аны программалоонун жолу керек. Кадимки ардуино менен бул жөн гана USB кабели, бирок ATTiny чипи үчүн сизге кошумча нерсе керек. Муну аткаруу үчүн башка ардуинону колдонсоңуз болот же мага окшоп Sparkfunдун кичинекей AVR программистин колдонсоңуз болот.
learn.sparkfun.com/tutorials/tiny-avr-prog…
Мен муну сунуштайт элем, анткени мен аларды ар кандай ыкмалар менен программалоого аракет кылдым жана бул эң оңой. Такта бир аз кымбат, бирок эгер сиз ATTiny долбоорлорун көп жасасаңыз жакшы инвестиция.
8 Pin Chip Socket: Эгерде сиз микросхеманы түздөн -түз туташтыруунун ордуна, розеткага салып койсоңуз, анда монтаждоодо ката кетире аласыз. Тажрыйбадан алынган - эч ким аларды кайра программалоо үчүн чиптерди тазалоону каалабайт.
Конденсатор: 100nF ажыратуучу конденсатор колдонулат (код 104). Эмнеге экенин такыр түшүнбөйм, бирок интернетте ажыратуучу конденсаторлор маанилүү экенин окудум, ошондуктан бул чындык болушу керек …
Резистор: 10kΩ резистор линияны ардуиного түшүрүү үчүн колдонулат. Дагы, электрониканын дагы бир сыры.
Perfboard/Stripboard: Сиздин схемаңызды чогулта турган кээ бир такта.
Орозо зымы: Кадимки капталган зым моторго ширетүү үчүн өтө коюу. Жакшы эмальданган зымды колдонуу мотор терминалдарындагы стрессти азайтып, жашооңузду бир топ жеңилдетет.
Servo Wire: 3 зымдуу JR аялдын сайгычында бүткөн үч зым лента. Мен өзүмдү "өзгөртүп" жаткан күйүп кеткен серводон алдым.
Stepper мотору: Мен 6мм биполярдуу Nidec тепкич моторун колдондум. Ар бир кичинекей тепкич кичине болсо да иштеши керек, анткени тепкич түз Ардуинодон айдалып жатат.
Header Pins: Маанилүү эмес, бирок эгер сиз степпериңизди 4 баш казыкка туташтырсаңыз жана схемаңызга розетка койсоңуз, орнотуу оңой болушу үчүн панелиңизди оңой эле сууруп салсаңыз болот.
Компьютер: Тактаңызды программалоо үчүн сизге компьютер керек. Балким, Arduino IDE менен. Жана, балким, USB кабели. Эгерде анын электр кабели болсо, анда андан да жакшы.
1 -кадам: Система
Мен түзгөн системанын негизги схемасы RC кабылдагычтан келген Pulse Width Modulation (PWM) сигналы ATTiny 85 микроконтроллери (uC) аркылуу тепкичтүү моторго айландырылган ыкма болгон.
Бул жерде PWM сигналдары жана RC боюнча ресурс бар, бирок муну кайталоо үчүн аны такыр түшүнүүнүн кажети жок.
en.wikipedia.org/wiki/Servo_control
ATTiny - бул менин кичинекей моделдерге жана RC долбоорлоруна эң сонун шайкеш келген кичинекей I/O төөнөгүчтөрү менен кичинекей болгондуктан, Arduino менин эң жакшы көргөн даамым. ATTinyдин негизги кемчилиги, аны программалоо үчүн бир аз көбүрөөк орнотууну талап кылат, бирок аны орноткондон кийин алар ушунчалык арзан болгондуктан, сиз аларды ар кандай долбоорлор үчүн сатып ала аласыз.
Спидометр тергичтин өлчөмү өтө кичине, ал эми кайтарымдуу мотору бар, ошондуктан пропорционалдуу жооп алуу үчүн тепкичтүү моторду колдонуу керек болчу. Stepper мотору-бул дискреттик өлчөмдө (же кадамдар менен …!) Жылдырылган мотор, бул аны эч кандай кайтарым байланыш системасы үчүн идеалдуу кылат. Бир гана эскертүү: "кадамдар" натыйжада кыймылдын жылмакай болушуна карама -каршы келет. Эгер сиз бир айлануу үчүн жетиштүү кадамдары бар тепкичке ээ болсоңуз, бул байкалбайт, бирок мен бул долбоордо колдонгон 20 кадамды гана толук айлануу менен алсам, бурчтан секирүү абдан начар.
Күйгүзүү системасы, ийнени нөлгө түшүрүү үчүн, эки айлануу үчүн тепкичти артка иштетет. Спидометрге нөл белгиси болушун каалаган эс алуу түйүнү керек, болбосо ал түбөлүккө айланат. Андан кийин ал PWM сигналдарын кыймылдаткычтын белгиленген санына картага түшүрөт. Оңой, туурабы? …
2 -кадам: Программалык камсыздоо
Disclaimer: Мен программист эмесмин. Бул долбоор үчүн мен доктор Франкенштейндин санарип эквивалентимин, ар кандай табылган коддордон иштеп жаткан нерсени чогултуп жатам.
Ошентип, RC сигналдарын чечмелөө кодун түзгөн Дуане Бга чын дилимден ыраазычылык билдирем:
rcarduino.blogspot.com/
Ал эми аналогдук өлчөөчү катары тепкичти иштетүү кодун жасаган Ардунаутка:
arduining.com/2012/04/22/arduino-driving-a…
Жана экөөнө тең, мен сиздин кодуңуз үчүн эмне кылганым үчүн чын дилимден кечирим сурайм.
Эми бул жок, бул жерде ATTinyге жүктөө керек:
#define THROTTLE_SIGNAL_IN 0 // INTERRUPT 0 = DIGITAL PIN 2 - attachInterrupt #аныктоо THROTTLE_SIGNAL_IN_PIN 2деги үзгүлтүксүз номурду колдонуу // INTERRUPT 0 = DIGITAL PIN 2 - digitalReadдеги #PIN кодун колдонуу бул нейтралдык секундда электр RC Машинасындагы нейтралдуу дроссель #define UPPER_THROTTLE 2000 // бул электр RC Машинасындагы максималдуу дроссельдин микросекундунун узактыгы #define LOWER_THROTTLE 1000 // бул микросекундтардагы минималдуу дроссельдин электрдик RC Машинасындагы #define DEADZONE 50 // бул дроссель өлүү аймагы. Жалпы өлүү аймагы мындан эки эсе көп. #include #define STEPS 21 // революциядагы кадамдар (315 ° менен чектелген) Спидометрдин максималдуу саякатын тууралоо үчүн муну өзгөртүңүз. #define COIL1 3 // Катушкалар. ATTiny степпер үчүн 0, 1, 3, 4 төөнөгүчтөрдү колдонот. 2 -пин - бул үзгүлтүктөрдү башкара турган жалгыз пин, андыктан ал кириш болушу керек. #define COIL2 4 // Эгерде тепкич мотору туура иштебесе, буларды алмаштырып көрүңүз. #define COIL3 0 #define COIL4 1 // stepper классынын экземплярын түзүңүз: Stepper stepper (STEPS, COIL1, COIL2, COIL3, COIL4); int pos = 0; // кадамдардагы позиция (0-630) = (0 ° -315 °) int SPEED = 0; float ThrottleInAvg = 0; int MeasurementsToAverage = 60; float Resetcounter = 10; // бош турган дроссельде турганда баштапкы абалга келтирүү убактысы int Resetval = 0; volatile int ThrottleIn = LOWER_THROTTLE; туруксуз белгисиз узак StartPeriod = 0; // үзгүлтүккө коюлган // биз nThrottleIn = 0 циклинде өзүнчө өзгөрмөнүн ордуна колдоно алмакпыз, бирок bNewThrottleSignalди колдонуу менен бизде жаңы сигнал бар экенин көрсөтүп турат // бул биринчи мисал үчүн түшүнүктүү void setup () {// Arduinoго айт биз calcInput функциясын INT0 (санарип пин 2) HIGHдон LOWга LOW чейин төмөн болгондо чакырууну каалайбыз // бул өзгөрүүлөрдү кармоо бизге импульстун тирешинин канчалык узактыгын эсептөөгө мүмкүндүк берет (THROTTLE_SIGNAL_IN, calcInput, CHANGE); stepper.setSpeed (50); // мотор ылдамдыгын 30 RPM (360 PPS болжол менен) коюңуз. step.step (STEPS * 2); // Ордун баштапкы абалга келтирүү (X кадамы саат жебесине каршы). } void loop () {Resetval = millis; for (int i = 0; i (NEUTRAL_THROTTLE + DEADZONE) && ThrottleInAvg <UPPER_THROTTLE) {SPEED = map (ThrottleInAvg, (NEUTRAL_THROTTLE + DEADZONE), UPPER_THROTTLE, 0, 255); Resetval = 0; } // Кайтарым карта башка, эгерде (ThrottleInAvg LOWER_THROTTLE) {SPEED = map (ThrottleInAvg, LOWER_THROTTLE, (NEUTRAL_THROTTLE - DEADZONE), 255, 0); Resetval = 0; } // Чек арадан жогору, эгерде (ThrottleInAvg> UPPER_THROTTLE) {SPEED = 255; Resetval = 0; } // Чек арадан төмөн, if if (ThrottleInAvg Resetcounter) {stepper.step (4); // Мен тепкичке RC сигналы узак убакытка созулбаса, өзүн кайра калыбына келтирүүсүн айткым келет. Коддун бул бөлүгү чындыгында иштээри белгисиз. }} int val = SPEED; // потенциометрдин маанисин алуу (0-1023 диапазону) val = map (val, 0, 255, 0, STEPS * 0.75); // stepper диапазонунда казан диапазону. if (abs (val - pos)> 2) {// эгер айырма 2 кадамдан чоң болсо. if ((val - pos)> 0) {stepper.step (-1); // бир кадам солго жылуу. pos ++; } if ((val - pos) <0) {stepper.step (1); // бир кадам оңго жылыңыз. pos--; }} // кечигүү (10); } void calcInput () {// эгер пин жогору болсо, анда ал үзгүлтүктүн башталышы if (digitalRead (THROTTLE_SIGNAL_IN_PIN) == HIGH) {// микролорду колдонуу менен убакытты алат - биздин код чындап бошобогондо бул так эмес болуп калат, бирок учурдагы колдонмо үчүн // түшүнүүгө оңой жана абдан жакшы иштейт StartPeriod = micros (); } else {// эгер пин төмөн болсо, анда анын импульсунун чети түшүп жатат, андыктан биз азыр // баштоо убактысын ulStartPeriod micros () менен кайтарылган учурдан алып салуу аркылуу импульстун узактыгын эсептей алабыз () if (StartPeriod) {ThrottleIn = (int) (micros () - StartPeriod); StartPeriod = 0; }}}
ATTiny85ти программалоо боюнча көбүрөөк маалымат алуу үчүн бул жерге кайрылыңыз:
learn.sparkfun.com/tutorials/tiny-avr-prog…
3 -кадам: Аппараттык
Районду куруу үчүн схемага кайрылыңыз. Аны кантип чогултуу өзүңүздүн колуңузда, бирок мен схеманын прототибин түзүү үчүн чипти розеткага орнотуу үчүн колдонулган бир аз стриптиз/перфортонду колдонууну сунуштайм.
C1 = 100nF
R1 = 10kΩ
Конденсатор эң натыйжалуу болушу үчүн чипке мүмкүн болушунча жакын орнотулушу керек.
Эмалданган зымдарды моторго кошуп жатканда, өтө этият болуңуз, анткени моторлордун терминалдары моторго катушка зымын үзүп, үзүп салууну жакшы көрүшөт. Муну оңдоо үчүн, жакшы чечим-бул зымдарды ширетүү, андан кийин муунга 2 бөлүктөн турган чоң эпоксидин коюу, айыктыруу, анан зымдарды бириктирүү. Бул жеке терминалдык муундарга стрессти азайтат жана алардын үзүлүшүн токтотушу керек. Эгерде сиз муну жасабасаңыз, анда алар кепилдикке ылайыктуу убакта жок болуп кетишет.
Эгерде сиз төөнөгүч пин туташтыргычты жасап, төөнөгүчтөрдү мындай орнотсоңуз: [Ca1, Cb1, Ca2, Cb2] Ca1 менен Coil A, зым 1 ж.б.у.с.покусун алмаштыруу аркылуу өлчөгүчтүн айлануу багытын өзгөртүүгө мүмкүндүк берет. тегерегинде.
Нөлдүк позицияны каршы калибрлөө үчүн көрсөткүчкө токтоочу жай керек болот. Мүмкүн болсо ийнени металлдан жасоону сунуштайм. Бул анын аягына чыкканда ийилүүсүн токтотот. Ийнеди жакшы абалга келтирүүнүн бир жолу-бул ийнени убактылуу огуна жабыштыруу, модулду иштетүү, анын эс алуусуна уруксат берүү, андан кийин ийнеге каршы туруп калганда, ийнеге алып салуу жана кайра жабыштыруу. токтотуу. Бул ийнени мотордун магниттик тешүүсүнө тууралайт жана ийнеңиз дайыма токтоочу жерге келип токтошун камсыз кылат.
4 -кадам: Эпилог
Бул кыска нускама сизге жакты деп ишенем жана аны пайдалуу деп таптыңыз. Эгерде сиз булардын бирин курсаңыз, мага кабарлаңыз!
Жакшы ийгилик!
Сунушталууда:
Auduino тактасы менен жумушчу светофорду кантип жасоо керек: 5 кадам
Auduino тактасы менен кантип иштөөчү светофор жасоо керек: Светофорлор - бул жол кыймылынын агымын көзөмөлдөө үчүн көбүнчө жол кесилиштеринде, жөө адамдар өтүүчү жолдордо жана башка жерлерде сигнал берүүчү түзүлүштөр. Кол менен башкарылуучу газ жарыгы бар светофор биринчи жолу болгон жана технология абдан жакшырды
Watch_Dogs 2 жумушчу ачкычынын Cosplay маскасы (bluetooth көзөмөлдөнөт): 10 кадам (сүрөттөр менен)
Watch_Dogs 2 Жумушчу ачкыч Cosplay маскасы (bluetooth Controlled): Көп жылдар бою мен ачкыч маскасын эңсеп келгем, анткени ким жакшы көрбөйт. Ошентип, мен көптөгөн изилдөөлөрдү жүргүзүүнү чечтим, көп нерселерди үйрөндүм, коддоону жана электрониканы, жана башка көптөгөн сонун өндүрүмдүү нерселерди. Ачкычтын маскасында 512 LED бар, алар мен
Үч зымдан жана батареядан жасалган жумушчу электр мотору: 4 кадам (сүрөттөр менен)
Үч зымдан жана батарейкадан жасалган жумушчу электр мотору. Беш мүнөттөн он мүнөткө чейин жасала турган үч зымдан жасалган электр мотору-бул чоң мектеп долбоору же жекшемби күнү түштөн кийин ата-эне менен баланын байланышы долбоору. керек:- 12 вольт Электр энергиясы. Жакшыраак, жогорку камсыз кыла алат
Чыныгы жумушчу IPod костюмдарын түзүңүз: 12 кадам (сүрөттөр менен)
Чыныгы иштөөчү IPod костюмдарын түзүңүз: Келиндердин үйлөнүү тоюнда … баардыгы көйнөк жөнүндө, бирок Хэллоуинде … баары костюм жөнүндө. Ошентип, мен балдарымдын жайына чейин макул боло турган нерсени тапкым келди & атасынын стратегиялык азабы башталды. Баарыңар болдуңар
Чак ТВ кесилиш кубу DIY жумушчу модели: 13 кадам (сүрөттөр менен)
Чак ТВ Intersect Cube DIY жумушчу модели: Негизги маалымат: "Чак &телеканалда" телешоусунда. (NBC Дүйшөмбү 8 PM EST) баатыр, Чак бардык өкмөттөрдү жүктөйт ’ Intersect компьютеринен коддолгон сүрөттөр сериясы катары эң жашыруун сырлар. 2 -сезондо (2009) биз Интерди көрүшүбүз керек болчу