Креирање система праћења објеката Дио 2: Контрола серво-а

JFK Assassination Conspiracy Theories: John F. Kennedy Facts, Photos, Timeline, Books, Articles (Март 2019).

Anonim

Креирање система праћења објеката Дио 2: Контрола серво-а


Научите основни рад серво мотора и како се суочити са њима користећи Ардуино Уно.

Други део ове серије пројеката гледа на сервере и примењује код за померање серво на случајне позиције сваке секунде у припреми за интеграцију са ултразвучним сензорима из наредне фазе ове серије пројеката.

Део 1 овог пројекта може се наћи овде: Креирање система за праћење предмета: Коришћење уграђених библиотека Ардуино

Обавезни делови:

  • Ардуино Уно
  • 5В толерантно 180 ° серво

Дијаграм ожичавања је испод и прилично једноставан: само 3 везе. На дијаграму, црвена је 5В, црна је ГНД, а жута је контролна жица.

Слика 1: Диаграм Ардуино / серво ожичења

Серво се контролише слањем ПВМ (импулса ширења модулације) сигнала на контролни пин. Ширина импулса ПВМ сигнала ће командовати позицијом серво-уређаја. Испод је пример серво контролне шеме ширине импулса. Као што видите, при минималној ширини импулса (0, 5мс) серво је у најслабијем крајњем дијелу своје артикулације и са максималном ширином импулса (2, 5мс) серво је у најтачем крајњем дијелу своје артикулације.

Слика 2: Шема управљања серво

Ардуино ИДЕ долази са библиотеком (Серво.х) за повезивање са сервосима. Имплементација ове библиотеке у великој мери ће поједноставити код који је потребан за погон Серво-а. Библиотека рукује успостављањем ПВМ фреквенција и даје једноставну команду за контролну позицију: СервоНаме.врите (Кс) где је "СервоНаме" корисник изабран, јединствено име за тај излаз, "(Кс)" је жељена позиција у степенима и " .врите "је потребна синтакса. Следеци кодови су пример који це генерисати насумицну позицију сваке секунде и померити серво у ту позицију. Током фазе интеграције, генерисање случајних бројева биће замењено излазом из алгоритма за праћење.

Препоручује се да ако искључите Ардуино из УСБ порта, пре укључивања серво-уређаја морате укључити ДЦ напајање. Тренутни извлачење из сервомотора може довести до опадања 5В шине и може довести до ресетовања плоче и нестабилности.

 #include "Servo.h" // Implements easy to use servo controls Servo ServoOne; // Generates an instance of a servo object int ServoPosition = 0; // Variable to be used to assign position of servo void setup() // Initialize { ServoOne.attach(9); // Assigns pin 9 as a servo } void loop() // Main loop { ServoPosition = random(0, 180); // Generates a random number and stores it in ServoPosition ServoOne.write(ServoPosition); // Commands servo to spin to position delay(1000); // Delays for 1000 ms } 

Овај пројекат користи матичну библиотеку да поједностави интерфејс са периферним. У следећем пројекту ћемо написати своје властите функције да креирамо алгоритам праћења објеката.

Следећи чланак у серији: Интеграција серво контроле са детекцијом предмета

Дајте овом пројекту покушај за себе! Узми БОМ.