Мазмуну:

Arduino негизделген Servo Servo Controller: 6 кадам
Arduino негизделген Servo Servo Controller: 6 кадам

Video: Arduino негизделген Servo Servo Controller: 6 кадам

Video: Arduino негизделген Servo Servo Controller: 6 кадам
Video: Управление 16 серводвигателями с использованием модуля PCA9685 и Arduino V2 2024, Ноябрь
Anonim
Arduino негизделген Servo Servo Controller
Arduino негизделген Servo Servo Controller
Arduino негизделген Servo Servo Controller
Arduino негизделген Servo Servo Controller

Бул Arduino негизинде бир нече servo үчүн жөнөкөй сериялык контролеру. (Менин да биринчи көрсөтмөм:))

Бул иштин көбү программалык камсыздоону arduino менен сүйлөшүүгө алуудан жана берилиштер үчүн протокол түзүүдөн келип чыккан. Аппараттык аспектиге келсек, мен колдонгон эки сервос (Parallax стандарттуу сервосу бул жерде.) Sparkfun Arduino ProtoShield жана ATMEGA328 менен Arduino Duemilanove болгон, бирок бул бөлүктөрдүн көбү окшош нерселер менен алмаштырылышы мүмкүн. Мен бул долбоорду RC системасынын бир бөлүгү катары ойлодум, бирок байланышты орнотуу көп убакытты талап кылды. Кимде кандайдыр бир жакшыртуулар, идеялар же мүчүлүштүктөр болсо, комментарий жазуудан тартынба. ТҮЗӨТҮҮ: Мен муну бир аз мурун жазгам, жакында эле жарыялоого туура келди.

1 -кадам: Сизге керектүү нерселер…

Сизге керектүү нерселер…
Сизге керектүү нерселер…
Сизге керектүү нерселер…
Сизге керектүү нерселер…

Муну куруу үчүн сизге кээ бир нерселер керек болот. 1. Arduino тактасы (сиз тандайсыз) 2. эки (же бир) сервос 3. секирүүчү зымдар 4. Visual Studio 2008 Express - шилтеме (милдеттүү эмес) 5. Arduino IDE - шилтеме Кечиресиз Linux жана Apple күйөрмандары, менин программам гана иштейт азырынча терезелер, бирок сиз кодду өзгөртпөстөн дагы эле ардуиного сериялык буйруктарды жөнөтө аласыз.

2 -кадам: Аппаратты туташтыруу

Аппаратты туташтыруу
Аппаратты туташтыруу

Бул кадамга өтө татаал эч нерсе жок. Бир сервону 9 -пинге, экинчисин 10 -пинге туташтырыңыз.

3 -кадам: Arduino программасы

Arduino программасы
Arduino программасы

Эми сиз эскизди arduinoго жүктөй аласыз.

Бул жерде коддун жөнөкөй бөлүнүшү: #include Servo myservo; // сервоприёмникти башкаруу үчүн servo объектти түзүү Servo myservo1; int incomingByte = 0, datacount = 0, counter = 0, даяр = 0; // кирүүчү сериялык маалыматтардын char маалыматтары үчүн [10]; const char verify [8] = "ma11hew"; char буйругу [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // сериялык портту ачат, Serial.println маалымат ылдамдыгын коет ("Hi Arduino Here!"); // сериялык портту аныктоого жардам берүү үчүн кошулду Бул жөн гана сериялык портту жана серверлерди орнотот. int i; for (i = 0; i <180; i ++) {myservo.write (i); кечиктирүү (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); кечиктирүү (15); } myservo1.write (5); } Серволордун туура иштегенин текшерүү үчүн жөнөкөй шыпыруу кыймылы. void loop () {ready = 0; counter = 0; while (1 == 1) {if (Serial.read ()! = verify [counter]) {break; } if (counter == 6) {delay (20); команда [0] = Serial.read (); команда [1] = Serial.read (); // if (Serial.read () == ((command [1] * 12) % 8)) // {даяр = 1; //} Serial.println ("сакталган буйрук"); } counter ++; кечигүү (2); } бул сериялык буфердин туура авторизация сабын текшерет, андан кийин команда үчүн эки байтты кармайт. комментарийленди, эгерде билдирүү убактылуу текшерүүгө мүмкүндүк берсе, бирок кол менен интерфейсти кыйындатат. даярды 0 деп койсо болот, андыктан буйруктар талданбайт, мисалы, бузулган маалыматтар сыяктуу. // командалар аркылуу издөө if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("дроссель контролу 9 -пин:"); Serial.println (карта (буйрук [1], 32, 126, 2, 180), DEC); myservo.write (карта (буйрук [1], 32, 126, 2, 180)); } if (command [0] == 'S') {command [0] = 0; Serial.print ("дроссель контролу 10 -пинге:"); Serial.println (карта (буйрук [1], 32, 126, 2, 180), DEC); myservo1.write (карта (буйрук [1], 32, 126, 2, 180)); }}} коддун калган бөлүгү жарактуу буйруктарды издөө үчүн болуп саналат (T же S), эгерде дал келүү кийинки байтты алат жана аны сервого жөнөтөт. картада дагы (буйрук [1], 32, 126, 2, 180) кийинчерээк … бул жердеги код сизге керектүү нерселердин баарына кеңейтилет (мисалы, жарыктар, моторлор, ИК ж. б.) өзгөртүүлөр.

4 -кадам: Программаны орнотуңуз

Программаны орнотуу
Программаны орнотуу

Менде муну орнотуунун эки жолу бар … nsis орноткучу: Төмөндөгү өзүнөн өзү ачылуучу орнотуучуну жүктөп алып, иштетиңиз. Сиз орнотуу учурунда булактарды орнотуу мүмкүнчүлүгүнө ээ болосуз. орнотуучу бинардык пакет негизги c ++ dllsин орнотот, андыктан ал көргөзмө c ++ жок эле компьютерде иштетилиши мүмкүн. Орнотуучу аяктагандан кийин, аны рабочий столунан же баштоо менюсунан иштете аласыз. zip жолу (текшерилбеген): Жүктөө жана иштетүү, ал иштеши керек. болушу мүмкүн. (ZIP архивинде булактары жок эле орнотуучу түзгөн папка структурасы бар. Менде аны текшерүү үчүн визуалдык студиясы жок машина жок. Ал иштебеши мүмкүн.)

5 -кадам: Interface программасын колдонуу

Interface программасын колдонуңуз
Interface программасын колдонуңуз
Interface программасын колдонуңуз
Interface программасын колдонуңуз

Программаны колдонуу үчүн адегенде arduino эскизинде аныкталган ылдамдыкты тандаңыз. Өзгөртүлбөгөн эскиз демейки боюнча 38400 bod, бирок жайыраак радио шилтемеси сыяктуу нерселерге болгон муктаждыгыңызга жараша өзгөртүлүшү мүмкүн. Эскертүү: 38400дөн жогору болгон baud ставкалары анча туруктуу болгон жок, менимче, бул маалымат иштетиле электе UART толуп кетет. Андан кийин, колдонуу үчүн COM портун тандаңыз. программа демейки COM4 үчүн аны өзгөртүүнү унутпаңыз, болбосо программа бузулат. Акырында, ачууну басыңыз. Эгерде баары ойдогудай болсо, программа тандалган сериялык портту тандалган ылдамдыкта ачат. Болбосо, программа иштетилбеген өзгөчө учурлар менен бузулат. порт туура экенин текшерип, кайра аракет кылыңыз. Arduino түз буйруктарды жөнөтүү үчүн текст кутучаларын колдонуңуз. "Карта (буйрук [1], 32, 126, 2, 180)" ASCIIдеги arduino тарабынан окула турган 94 мүмкүн болгон бардык буйруктарды, * боштукту * ~ чейин масштабдайт. кандайдыр бир байт ASCII 32ден (боштуктан) же 126дан жогору (~) 63кө чейин (?) Трек тилкелери түз буйруктар үчүн eaiser интерфейсин камсыз кылат. ар бир кадам ардуиного ырааттуу буйрук жөнөтөт.

6 -кадам: Чыгармачыл болуңуз

Чыгармачылыкка ээ болуңуз!
Чыгармачылыкка ээ болуңуз!
Чыгармачылыкка ээ болуңуз!
Чыгармачылыкка ээ болуңуз!

Муну менен сонун нерселерди ойлонуп көрүңүз. Кээ бир ойлор: 1. Машинанын дистанциялык дроссели. 2. 3D камерага орнотуу 3. суу астындагы ровер Көңүл ачыңыз !!

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