Raspberry Pi и Arduino са двете най-популярни платки с отворен код в Electronics Community. Те са популярни не само сред инженерите по електроника, но и сред учениците и любителите, поради тяхната лекота и простота. Дори някои хора току-що започнаха да харесват електрониката заради Raspberry Pi и Arduino. Тези платки имат големи правомощия и човек може да изгради много сложен и Hi-Fi проект с няколко прости стъпки и малко програмиране.
Създадохме множество проекти и уроци за Arduino, от много прости до сложни. Създадохме и серия уроци за Raspberry Pi, откъдето всеки може да започне да се учи от „нулата“. Това е малък принос към общността на електрониката от наша страна и този портал се доказа като страхотен учебен ресурс за електроника. Така че днес обединяваме тези две страхотни дъски заедно, като свързваме Arduino с Raspberry Pi.
В този урок ще установим последователна комуникация между Raspberry Pi и Arduino Uno. PI има само 26 GPIO пина и нула ADC канали, така че когато правим проекти като 3D принтер, PI не може да извършва всички взаимодействия сам. Така че се нуждаем от повече изходни щифтове и допълнителни функции, за да добавим повече функции към PI, ние установяваме комуникация между PI и UNO. С това можем да използваме всички функции на UNO, както бяха функциите на PI.
Arduino е голяма платформа за разработване на проекти, като има много платки като Arduino Uno, Arduino Pro mini, Arduino Due и др. Те са базирани на ATMEGA контролери, предназначени за електронни инженери и любители. Въпреки че има много платки на платформата Arduino, но Arduino Uno получи много благодарности за лекотата на правене на проекти. Средата за разработка на програми, базирана на Arduino, е лесен начин за писане на програмата в сравнение с други.
Необходими компоненти:
Тук използваме Raspberry Pi 2 Model B с OS Raspbian Jessie и Arduino Uno. Всички основни хардуерни и софтуерни изисквания, по отношение на Raspberry Pi, са обсъдени преди това, можете да ги потърсите във въведението на Raspberry Pi, различно от това, от което се нуждаем:
- Свързващи щифтове
- 220Ω или 1KΩ резистор (2 броя)
- LED
- Бутон
Обяснение на веригата:
Както е показано в схемата по-горе, ние ще свържем UNO към PI USB порта с помощта на USB кабел. Има четири USB порта за PI; можете да го свържете с някой от тях. Свързан е бутон за инициализиране на серийната комуникация и светодиод (мига), който показва, че данните се изпращат.
Обяснение на работата и програмирането:
Част от Arduino Uno:
Първо нека да програмираме UNO, Първо свържете UNO към компютъра и след това напишете програмата (раздел Check Code по-долу) в софтуера Arduino IDE и качете програмата в UNO. След това изключете UNO от компютър. Прикрепете UNO към PI след програмиране и свържете LED и бутон към UNO, както е показано на електрическата схема.
Сега програмата тук инициализира серийната комуникация на UNO. Когато натиснем бутона, прикрепен към UNO, UNO изпраща последователно няколко знака към PI през USB порт. Светодиодът, прикрепен към PI, мига, за да посочи изпращаните знаци.
Raspberry Pi Част:
След това трябва да напишем програма за PI (раздел за проверка на кода по-долу), за да получим тези данни, изпратени от UNO. За това трябва да разберем няколко команди, посочени по-долу.
Ще импортираме сериен файл от библиотеката, тази функция ни позволява да изпращаме или получаваме данни последователно или чрез USB порт.
внос сериен
Сега трябва да посочим порта на устройството и скоростта на предаване за PI да получава данните от UNO без грешки. Командата по-долу гласи, че ние даваме възможност за последователна комуникация от 9600 бита в секунда на порт ACM0.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
За да разберете порта, към който е прикачен ООН, отидете до терминала на PI и влезте
ls / dev / tty *
Ще имате списък на всички свързани устройства на PI. Сега свържете Arduino Uno към Raspberry Pi с USB кабел и въведете командата отново. Можете лесно да идентифицирате прикрепения порт на UNO от показания списък.
Командата отдолу се използва като цикъл завинаги, с тази команда операторите вътре в този цикъл ще се изпълняват непрекъснато.
Докато 1:
След като получаваме данните последователно, ще показваме символите на екрана на PI.
print (ser.readline ())
Така че след натискане на бутона, прикрепен към UNO, ще видим отпечатване на символи на PI екрана. Следователно установихме Основно комуникационно ръкостискане между Raspberry Pi и Arduino.