Raspberry Pi е ARM архитектура базирана на процесор платка, предназначена за електронни инженери и любители. PI е една от най-надеждните платформи за разработване на проекти в момента. С по-висока скорост на процесора и 1 GB RAM, PI може да се използва за много високопрофилни проекти като Обработка на изображения и Интернет на нещата.
За да направите някой от високопрофилните проекти, трябва да разберете основните функции на PI. В тези уроци ще разгледаме всички основни функционалности на Raspberry Pi. Във всеки урок ще обсъдим една от функциите на PI. До края на тази серия с уроци за Raspberry Pi ще можете сами да правите проекти с висок профил. Преминете през уроци по-долу:
- Първи стъпки с Raspberry Pi
- Конфигурация на Raspberry Pi
- LED мигащ
- Интерфейс на бутон Raspberry Pi
- Raspberry Pi PWM поколение
- Управление на DC мотор с помощта на Raspberry Pi
В този урок ще контролираме скоростта на стъпков двигател с помощта на Raspberry Pi. В стъпковия двигател, както самото име казва, въртенето на вала е под формата на стъпка. Има различни видове стъпков двигател; тук ще използваме най-популярния, който е еднополюсен стъпков двигател. За разлика от постояннотоковия двигател, ние можем да завъртим стъпков двигател под някакъв определен ъгъл, като му даваме подходящи инструкции.
За да завъртим този четиристепенен стъпков двигател, ние ще доставяме импулси на захранването, като използваме веригата на драйвер на стъпков двигател. Драйверната схема приема логически задействания от PI. Ако контролираме логическите тригери, ние контролираме импулсите на захранването, а оттам и скоростта на стъпковия двигател.
В Raspberry Pi 2 има 40 изходни щифта GPIO. Но от 40 само 26 GPIO пина (GPIO2 до GPIO27) могат да бъдат програмирани. Някои от тези щифтове изпълняват някои специални функции. Със специалния GPIO настрана, остават ни само 17 GPIO. Всеки от тези 17 GPIO щифта може да достави максимум 15 mA ток. И сумата от токове от всички GPIO пинове не може да надвишава 50mA. За да научите повече за GPIO щифтовете, преминете през: LED мига с Raspberry Pi
На платката има + 5V (Pin 2 & 4) и + 3.3V (Pin 1 & 17) изходни щифтове за захранване за свързване на други модули и сензори. Тези силови релси не могат да се използват за задвижване на стъпковия двигател, защото се нуждаем от повече мощност, за да го завъртим. Така че трябва да доставим мощността на Stepper Motor от друг източник на енергия. Моят стъпков двигател има напрежение от 9V, така че използвам 9v батерия като втори източник на захранване. Потърсете номера на модела на вашия стъпков двигател, за да знаете номиналното напрежение. В зависимост от рейтинга изберете подходящия вторичен източник.
Както беше посочено по-рано, ние се нуждаем от схема на водача, за да задвижваме стъпковия двигател. Тук също ще проектираме проста верига за транзисторен драйвер.
Необходими компоненти:
Тук използваме Raspberry Pi 2 Model B с Raspbian Jessie OS. Всички основни хардуерни и софтуерни изисквания са обсъдени преди това, можете да ги потърсите във въведението на Raspberry Pi, различно от това, от което се нуждаем:
- Свързващи щифтове
- 220Ω или 1KΩ резистор (3)
- Стъпков мотор
- Бутони (2)
- 2N2222 транзистор (4)
- 1N4007 диод (4)
- Кондензатор - 1000uF
- Дъска за хляб
Обяснение на веригата:
Стъпковият двигател използва 200 стъпки за завършване на 360 градусово завъртане, означава неговото завъртане с 1,8 градуса на стъпка. Тъй като задвижваме четиристепенен стъпков двигател, трябва да подадем четири импулса, за да завършим един логически цикъл. Всяка стъпка на този двигател завършва 1,8 градуса на въртене, така че за да завършим цикъл са ни необходими 200 импулса. Така че 200/4 = 50 логически цикъла, необходими за завършване на едно завъртане. Проверете това, за да научите повече за Steppers Motors и неговите режими на шофиране.
Ще задвижваме всяка от тези четири намотки от NPN транзистор (2N2222), този NPN транзистор приема логическия импулс от PI и задвижва съответната намотка. Четири транзистора вземат четири логики от PI за задвижване на четири степени на стъпков двигател.
Веригата на транзисторния драйвер е сложна настройка; тук трябва да обърнем внимание, че неправилно свързване на транзистора може да натовари платката силно и да я повреди. Проверете това, за да разберете правилно веригата на драйвер на стъпков двигател.
Двигателят е индукционен и затова, докато превключваме двигателя, изпитваме индуктивни пикове. Този пик ще нагрее силно транзистора, така че ще използваме диод (1N4007), за да осигурим защита на транзистора срещу индуктивен пик.
За да намалим колебанията на напрежението, ще свържем кондензатор 1000uF през захранването, както е показано в схемата.
Работно обяснение:
След като всичко е свързано според схемата, можем да включим PI, за да напишем програмата в PYHTON.
Ще говорим за няколко команди, които ще използваме в програмата PYHTON, Ще импортираме GPIO файл от библиотеката, функцията по-долу ни позволява да програмираме GPIO пинове на PI. Преименуваме също „GPIO“ на „IO“, така че в програмата, когато искаме да се позовем на GPIO щифтове, ще използваме думата „IO“.
импортирайте RPi.GPIO като IO
Понякога, когато GPIO щифтовете, които се опитваме да използваме, може да изпълняват някои други функции. В този случай ще получим предупреждения, докато изпълняваме програмата. Командата по-долу казва на PI да игнорира предупрежденията и да продължи с програмата.
IO.setwarnings (False)
Можем да отнесем GPIO пиновете на PI, или чрез пинов номер на борда, или чрез номера на тяхната функция. Подобно на „ПИН 35“ на дъската е „GPIO19“. Така че ние казваме тук, или ще представим щифта тук с '35' или '19'.
IO.setmode (IO.BCM)
Задаваме четири GPIO щифта като изход за задвижване на четири намотки на стъпков двигател.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Задаваме GPIO26 и GPIO19 като входни щифтове. Ще открием натискането на бутон от тези щифтове.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
В случай, че условието в скобите е вярно, изразите вътре в цикъла ще бъдат изпълнени веднъж. Така че, ако GPIO пин 26 отива ниско, тогава инструкциите вътре в контура IF ще бъдат изпълнени веднъж. Ако GPIO пин 26 не отиде ниско, тогава операторите вътре в контура IF няма да бъдат изпълнени.
if (IO.input (26) == False):
Тази команда изпълнява цикъла 100 пъти, x се увеличава от 0 до 99.
за х в обхват (100):
Докато 1: се използва за безкрайност. С тази команда операторите в този цикъл ще се изпълняват непрекъснато.
Имаме всички команди, необходими за постигане на контрол на скоростта на стъпков двигател с това.
След като напишете програмата и я изпълните, остава само да управлявате контрола. Имаме два бутона, свързани към PI. Един за увеличаване на закъснението между четирите импулса и друг за намаляване на закъснението между четирите импулса. Самото забавяне говори за скорост; ако закъснението е по-голямо, двигателят задейства спирачки между всяка стъпка и така въртенето е бавно. Ако закъснението е близо до нула, тогава двигателят се върти с максимална скорост.
Тук трябва да се помни, че трябва да има известно забавяне между импулсите. След подаване на импулс, стъпковият двигател отнема няколко милисекунди време, за да достигне финалния си етап. Ако няма закъснение между импулсите, стъпковият двигател изобщо няма да се движи. Обикновено 50ms закъснение е добре между импулсите. За по-точна информация погледнете информационния лист.
Така че с два бутона можем да контролираме закъснението, което от своя страна контролира скоростта на стъпковия двигател.