Мазмуну:

Servo Squirter - USB суу пистолети: 5 кадам
Servo Squirter - USB суу пистолети: 5 кадам

Video: Servo Squirter - USB суу пистолети: 5 кадам

Video: Servo Squirter - USB суу пистолети: 5 кадам
Video: Servo Motor Squirter Project 2024, Ноябрь
Anonim
Servo Squirter - USB суу пистолети
Servo Squirter - USB суу пистолети

USB көзөмөлдөгөн servo суу пистолети. Эч нерседен бейкапар өткөндөрдү атуу же адамдарды тажатма суроолор менен кармоо үчүн эң сонун. Бул долбоор - бул багыттуу атуу үчүн сервонун үстүнө орнотулган кичинекей суу насосу. Мунун баары микроконтроллердин жардамы менен жана USB аркылуу клавиатураңыздан башкарылат. Биздин долбоорлорду жана акысыз видео сабактарыбызды көрүү үчүн биздин веб -сайтты текшериңиз

1 -кадам: материалдарды чогултуу

Материалдарды чогултуу
Материалдарды чогултуу
Материалдарды чогултуу
Материалдарды чогултуу
Материалдарды чогултуу
Материалдарды чогултуу

Бул долбоор микроконтроллерге негизделген. USB NerdKitке кирген ATmega168 микроконтроллеринен башка. Бул долбоор үчүн биз төмөнкүлөрдү колдондук: 1 Hobby Servo, Hitec HS-501 төмөн чыңалуу поршендик суу насосу1 Small n-channel MOSFET, 2N7000

2 -кадам: Районду чогултуңуз

Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу

Биздин райондун биринчи бөлүгү жөн эле сервого туташат. Бул жерде жөнөкөй: микро контроллерден сервого бир зым. Өндүрүүчүгө жараша бир нече ар кандай түстөгү этикеткалар бар, андыктан текшерүүдөн мурун текшериңиз NerdKits панелиндеги ServoSquirter схемасынын схемасы схеманын экинчи бөлүгү микроконтроллерге насостун моторун күйгүзүүгө жана өчүрүүгө мүмкүндүк берет. ATmega168 чипинин өзү 40мА максты каалаган пинге киргизүүгө же чыгарууга мүмкүндүк берет, бирок биздин насос 1000мАга жакыныраак талап кылат! Ошентип, бул чоң жүктү көзөмөлдөө үчүн биз чоңураак 2N7000 транзисторун колдонууну чечтик. Биринчиден, биз MOSFETтерди (Металл оксиди жарым өткөргүч талаа эффекти транзисторлорун) коммутаторлор катары колдонуунун негиздерин түшүндүрөбүз: дарбазанын чыңалуусун булактан өйдө көтөрүп, агымдын дренаждан булакка өтүшүнө уруксат бере алабыз. 2N7000 маалымат барагынан биз ар кандай дарбаза булагынын чыңалуусу үчүн дренаждык ток менен дренаждык булактын чыңалуусунун ортосундагы байланышты көрсөткөн Figure 1ди алдык. Бул графиктен үйрөнө турган бир нече маанилүү нерселер бар: 1. Болжол менен 3,0 вольттон төмөн VGS үчүн эч кандай токтун агышына жол берилбейт. Бул өчүрүү абалы, ошондой эле "кесүү" деп аталат. 2. Кичинекей VDS үчүн ийри келип чыгышы боюнча болжол менен сызыктуу көрүнөт - бул электрдик түрдө резисторго окшош экенин билдирет. Эквиваленттүү каршылык - ийри сызыктын тескери эңиши. MOSFET операциясынын бул аймагы "триод" деп аталат. 3. Чоңураак VDS үчүн токтун кээ бир максималдуу деңгээлине жетет. Бул "каныктыруу" деп аталат. 4. Биз VGSти көбөйткөнүбүздө, триоддо жана каныктыруу режиминде дагы агымга жол берилет. Эми сиз чындыгында MOSFETтин бардык үч режими жөнүндө билдиңиз: кесүү, триод жана каныктыруу. +5 же 0), биз VGS = 5V үчүн сары менен белгиленген ийри сызык жөнүндө гана ойлонобуз. Адатта, MOSFETти коммутатор катары колдонуу жалпысынан иштөөнүн триоддук режимин камтыйт, анткени MOSFET электр энергиясын PD = ID*VDS таратат, ал эми жакшы которгуч өчүргүчтүн ичинде аз кубатты таркатышы керек. Бирок, бул учурда, биз мотор менен алектенип жатабыз жана моторлор көп башталышында көп чыңалууну талап кылат (чыңалуу азаят). Ошентип, биринчи же эки секундада MOSFET жогорку VDS менен иштейт жана анын максималдуу агымы менен чектелет - маалымат барагына тарткан кызыл сызыктан болжол менен 800mA. Биз насосту иштетүү үчүн бул жетишсиз экенин байкадык, андыктан бир аз трюк колдонуп, эки MOSFETти параллелдүү түрдө койдук. Ошентип, алар агымды бөлүшүшөт жана 1600мАны чогуу чөктүрүшөт. Алсо насостун жогорку кубаттуулук талаптарына байланыштуу, биз жогорку ток чыгаруучу дубал трансформаторун колдондук. Эгерде сизде 5Vдан чоң дубал трансформатору бар болсо - балким 9V же 12V - анда сиз

3 -кадам: MCUдагы PWMди орнотуңуз

MCUдагы PWMди орнотуңуз
MCUдагы PWMди орнотуңуз
MCUдагы PWMди орнотуңуз
MCUдагы PWMди орнотуңуз
MCUдагы PWMди орнотуңуз
MCUдагы PWMди орнотуңуз

PWM реестрлери жана эсептөөлөрү Видеодо биз таймер/эсептегич модулу колдонгон эки деңгээл жөнүндө сүйлөшөбүз: эң жогорку баа жана салыштыруу мааниси. Бул экөө тең сиз каалаган PWM сигналын чыгарууда маанилүү, бирок ATmega168дин PWM өндүрүшүн биринчи кезекте активдештирүү үчүн, биз бир нече регистрлерди орнотушубуз керек. Биринчиден, биз OCR1A менен Fast PWM режимин тандап алабыз, бул бизге жаңы импульстун канчалык тез башталышын каалабагандык менен коюуга мүмкүндүк берет. 1 ар бир 8/(14745600 Гц) = 542 наносекунд. Бизде бул таймер үчүн 16 биттик регистрлер болгондуктан, бул жалпы сигнал мезгилибизди 65536*542ns = 36 миллисекундка чейин орното алабыз дегенди билдирет. Эгерде биз чоңураак бөлүмдүн номерин колдонгон болсок, анда биздин импульстарды алысыраак кылып алышыбыз мүмкүн (бул кырдаалда жардам бербейт), жана биз чечимди жоготуп алмакпыз. Эгерде биз кичинекей бөлүм номерин (мисалы, 1) колдонгон болсок, биздин серво күткөндөй импульсубузду жок дегенде 16 миллисекунд бөлө албайбыз. чыгаруу, бул биздин видеодо сүрөттөлгөн. Биз ошондой эле PB2 төөнөгүчүн бул жерде көрсөтүлбөгөн, бирок ал коддо. ATmega168 маалымат барагынын 132-134-беттеринен бул кадрларды чоңойтуу үчүн чыкылдатыңыз.

4 -кадам: Микроконтроллерди программалаңыз

Эми MCUну иш жүзүндө программалоого убакыт келди. Толук булак коду биздин веб -сайтта берилген https://www.nerdkits.com/videos/servosquirterКод алгач PWMди сервону айдоого орнотот. Андан кийин код бир аздан кийин колдонуучунун киришин күтөт. 1 жана 0 символдору насостун транзисторуна туташкан MCU төөнөгүчүн күйгүзүп же өчүрүшөт. Бул насосту күйгүзүп, өчүрүп күйгүзөт, бизге каалоосу боюнча отту берет. Код ошондой эле '[' жана ']' баскычтарына жооп берет, бул баскычтар PWM төөнөгүчүнүн салыштыруу маанисин жогорулатат же төмөндөтөт, бул болсо сервого алып келет. мотор абалын өзгөртүү үчүн. Бул сизге ок атуудан мурун максат коюуга мүмкүнчүлүк берет.

5 -кадам: Сериялык порт байланыштары

Сериялык порт байланыштары
Сериялык порт байланыштары
Сериялык порт байланыштары
Сериялык порт байланыштары
Сериялык порт байланыштары
Сериялык порт байланыштары
Сериялык порт байланыштары
Сериялык порт байланыштары

Акыркы кадам - компьютерди орнотуу, ошондо сиз буйруктарды Микроконтроллерге жөнөтө аласыз. NerdKitте биз компьютерге буйруктарды жана маалыматты жөнөтүү үчүн сериялык кабелди колдонобуз. Сериялык порт аркылуу NerdKit менен байланыша алган программалоо тилдеринин көбүндө жөнөкөй программаларды жазууга болот. Бирок биз үчүн сериялык байланыш үчүн терминалдык программаны колдонуу алда канча жөнөкөй. Бул жол менен сиз жөн гана тергичтен терип, NerdKit. Windowsтен келген жоопту көрө аласыз, эгер сиз Windows XP же андан мурунку версиясын колдонуп жатсаңыз, HyperTerminal камтылган жана Старт менюңузда "Старт -> Программы -> Аксессуары -> Байланыш ". HyperTerminalди биринчи жолу ачканыңызда, ал сизден байланышты орнотууну суранат. Негизги HyperTerminal сценасында болгуча, алардын ичинен жокко чыгарыңыз. Сиз HyperTerminalди орнотуп, туура COM портун тандап жана NerdKit менен иштөө үчүн порт жөндөөлөрүн туура орнотушуңуз керек. Туура HyperTerm орнотууларын алуу үчүн төмөндөгү скриншотторду ээрчиңиз. Эгер сиз Windows Vista'да болсоңуз, HyperTerminal мындан ары киргизилбейт. Бул учурда, PuTTY (Windows орноткучу) жүктөп алыңыз. Туура COM портун колдонуп Putty орнотуу үчүн төмөндөгү туташуу жөндөөлөрүн колдонуңуз Mac OS X Терминал тиркемесине киргенден кийин, "screen /dev/tty. PL* 115200" деп териңиз. minicom "сериялык порт менен сүйлөшүү. Баштоо үчүн, minicomдун орнотуу менюсуна кирүү үчүн консолдогу "minicom -s" иштетиңиз. "Сериялык портту орнотууга" өтүңүз. Параметрлерди төмөнкүдөй орнотуңуз: Linux боюнча Minicom конфигурациясы Андан кийин, escape баскычын басып, орнотууларды демейки катары сактоо үчүн "Орнотууну dfl катары сактоо" колдонуңуз. Эми сиз "Чыгуу" баскычын басып, NerdKit менен сүйлөшүү үчүн minicom колдоно алышыңыз керек.

Сунушталууда: