Съдържание:
- Стъпка 1: Неща, от които може да се нуждаете …
- Стъпка 2: Свържете хардуера
- Стъпка 3: Програмирайте Arduino
- Стъпка 4: Инсталирайте софтуер
- Стъпка 5: Използвайте интерфейсната програма
- Стъпка 6: Бъдете креативни
Видео: Arduino базиран сериен серво контролер: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
Това е прост сериен контролер за множество серво базирани на Arduino. (и моят първи инструктаж:))
По -голямата част от работата в това идва от това да накараме софтуера да разговаря с arduino и да направи протокол за прехвърляне на данните. Що се отнася до хардуерния аспект, използвах само два сервомотора (стандартно серво за Parallax.) Sparkfun Arduino ProtoShield и Arduino Duemilanove с ATMEGA328, но повечето от тези части могат да бъдат заменени с подобни елементи. Измислих този проект като част от RC система, но настройката на комуникацията отне много време. Ако някой има подобрения, идеи или грешки, моля не се колебайте да коментирате. РЕДАКТИРАНЕ: Написах това преди малко, наскоро го публикувах.
Стъпка 1: Неща, от които може да се нуждаете …
Някои неща ще ви трябват, за да изградите това. 1. Arduino платка (вие избирате) 2. две (или едно) сервоустройства 3. кабели за джъмпер 4. Visual Studio 2008 Express - връзка (по избор) 5. Arduino IDE - връзка За съжаление феновете на Linux и Apple, моята програма работи само на windows за сега, но все още можете да изпращате ръчно серийни команди до arduino, без да променяте кода.
Стъпка 2: Свържете хардуера
Няма нищо сложно в тази стъпка. Просто свържете едно серво към щифт 9, а другото към щифт 10.
Стъпка 3: Програмирайте Arduino
сега можете да качите скицата в arduino.
Ето една проста разбивка на кода: #include Servo myservo; // създаване на серво обект за управление на серво Серво myservo1; int incomingByte = 0, datacount = 0, брояч = 0, готов = 0; // за входящи серийни данни char данни [10]; const char verify [8] = "ma11hew"; команда char [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // отваря сериен порт, задава скорост на предаване на данни Serial.println ("Здравей, Arduino тук!"); // добавено, за да се идентифицира серийният порт. Това просто настройва серийния порт и сервомоторите. int i; за (i = 0; i <180; i ++) {myservo.write (i); забавяне (15); } myservo.write (5); за (i = 0; i <180; i ++) {myservo1.write (i); забавяне (15); } myservo1.write (5); } Просто движение, за да проверите дали сервомоторите работят правилно. void loop () {готов = 0; брояч = 0; while (1 == 1) {if (Serial.read ()! = verify [counter]) {break; } if (брояч == 6) {забавяне (20); команда [0] = Serial.read (); команда [1] = Serial.read (); // if (Serial.read () == ((команда [1] * 12) % 8)) // {готов = 1; //} Serial.println ("запазена команда"); } брояч ++; забавяне (2); } това проверява серийния буфер за правилния низ за оторизация, след което грабва два байта за командата. коментираното изявление if позволява импровизирана контролна сума, но би затруднило ръчното свързване. ready може да бъде зададено на 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 (команда [0] == 'S') {команда [0] = 0; Serial.print ("управление на дросела на щифт 10 към:"); Serial.println (карта (команда [1], 32, 126, 2, 180), DEC); myservo1.write (map (команда [1], 32, 126, 2, 180)); }}} останалата част от кода е да търси команда за валидни команди (T или S.), ако и двете съвпадат, той взема следващия байт и го изпраща към серво. повече на картата (команда [1], 32, 126, 2, 180) по -късно … кодът тук може да се разширява за всичко друго, от което може да се нуждаете (напр. светлини, двигатели, IR и т.н.), този код трябва да работи добре, без модификации.
Стъпка 4: Инсталирайте софтуер
Имам два начина да инсталирам този … nsis инсталатор: Изтеглете самоизвличащия се инсталатор по -долу и го стартирайте. По време на инсталацията ще имате възможност да инсталирате източници. двоичният пакет за инсталиране инсталира core c ++ dlls, така че да може да се изпълнява на компютър без визуален c ++ вече инсталиран. След като инсталаторът приключи, можете да го стартирате от работния плот или менюто "Старт". zip начин (непроверен): Изтеглете и стартирайте, трябва да работи. може би. (Архивът zip има същата структура на папки, създадена от инсталатора, без източници. Нямам машина без визуално студио, за да го тествам, за да не работи.)
Стъпка 5: Използвайте интерфейсната програма
За да използвате програмата, първо изберете скоростта на предаване, определена в скицата на arduino. Немодифицираната скица по подразбиране е 38400 бод, но може да бъде променена според вашите нужди за неща като по -бавна радиовръзка. забележка: скоростите на предаване по -високи от 38400 не са много стабилни, мисля, че това е така, защото uart се запълва, преди данните да могат да бъдат обработени. След това изберете COM порта, който да използвате. програмата по подразбиране е COM4, не забравяйте да я промените или програмата ще се срине. Накрая щракнете върху отвори. Ако всичко е наред, програмата ще отвори избрания сериен порт при избрана скорост на предаване. В противен случай програмата вероятно ще се срине с необработено изключение. уверете се, че портът е правилен и опитайте отново. Използвайте текстовите полета, за да изпратите директни команди към arduino. "Картата (команда [1], 32, 126, 2, 180)" мащабира всички 94 възможни команди, * интервал * до ~, четими от arduino в ASCII до 2 до 180 за серво. всеки байт по -малък от ASCII 32 (интервал) или над 126 (~) по подразбиране е 63 (?) Лентите за проследяване осигуряват интерфейс за директни команди за директни команди. всяка стъпка постепенно изпраща серийна команда към arduino.
Стъпка 6: Бъдете креативни
Помислете за готини неща, които да направите с това. Някои идеи: 1. Дистанционна дроселова клапа за кола. 2. Стойка за 3D камера 3. Подводен роувър Забавлявайте се !!
Препоръчано:
Arduino базиран DIY контролер за игри - Arduino PS2 контролер за игри - Възпроизвеждане на Tekken с DIY Arduino геймпад: 7 стъпки
Arduino базиран DIY контролер за игри | Arduino PS2 контролер за игри | Игра на Tekken с DIY Arduino геймпад: Здравейте момчета, играта на игри винаги е забавна, но играта със собствения си DIY персонализиран контролер на играта е по -забавна. Така че ще направим контролер за игра, използвайки arduino pro micro в тази инструкция
Музикален генератор, базиран на времето (ESP8266 базиран midi генератор): 4 стъпки (със снимки)
Метеорологичен генератор, базиран на времето (ESP8266 базиран Midi генератор): Здравейте, днес ще ви обясня как да направите свой собствен малък музикален генератор, базиран на времето. Той е базиран на ESP8266, който е нещо като Arduino и реагира на температура, дъжд и интензивността на светлината. Не очаквайте това да прави цели песни или акорди
Хуманоиден робот, базиран на Arduino, използващ серво мотори: 7 стъпки (със снимки)
Хуманоиден робот на базата на Arduino, използващ серво мотори: Здравейте всички, Това е първият ми хуманоиден робот, изработен от PVC пяна. Предлага се в различни дебелини. Тук използвах 0,5 мм. В момента този робот може просто да ходи, когато включих. Сега работя по свързването на Arduino и Mobile чрез Bluetooth
Капсулиране на стъпков серво мотор със сериен контрол чрез Arduino с помощта на 3D принтер - Pt4: 8 стъпки
Капсулиране на стъпков серво мотор със сериен контрол чрез Arduino с помощта на 3D принтер - Pt4: В това четвърто видео от поредицата Motor Step ще използваме това, което научихме преди, за да изградим стъпков серво мотор с управление чрез серийна комуникация и реално позиционна обратна връзка с помощта на резистивен енкодер, наблюдаван от Arduino. В
Капацитивно докосване с Evive (базиран на Arduino контролер): 6 стъпки (със снимки)
Капацитивно докосване с Evive (базиран на Arduino контролер): Знаете ли как работи сензорният екран на вашия смартфон? Смартфонът има множество сензори за докосване под стъкления екран. В днешно време тя се основава на капацитивна технология за докосване на докосване и дори леко докосване се открива лесно. Усеща се капацитивно докосване