- Необходим материал:
- Модул на IR сензора:
- Електрическа схема и обяснение:
- Програмиране на вашия Raspberry Pi:
- Работа:
Както всички знаем, Raspberry Pi е прекрасна платформа за развитие, базирана на ARM микропроцесор. С високата си изчислителна мощност той може да направи чудеса в ръцете на любителите на електрониката или студентите. Всичко това може да бъде възможно само ако знаем как да го накараме да взаимодейства с реалния свят. Има много сензори, които могат да открият определени параметри от света в реално време и да го прехвърлят в цифров свят. Ние покрихме много проекти на Raspberry Pi с много сензори. Raspberry Pi също е благодат за IoT проекти, тъй като е джобен компютър с вграден Wi-Fi, с възможности на микроконтролер.
В този урок ще научим как можем да свържем IR сензор с Raspberry pi. Тези сензори се използват най-често при малки роботи като робот с последовател на линии, робот, който избягва ръба и т.н. Просто казано, той може да открие присъствието на предмети пред себе си и също така да прави разлика между бял и черен цвят. Звучи готино нали?
Така че нека се научим как да свързваме този сензор с Raspberry Pi. В този проект, когато няма обект пред IR сензора, тогава червеният светодиод остава включен и веднага щом поставим нещо пред IR сензора, червеният светодиод се изключва и зеленият светодиод се включва. Тази верига може да служи и като верига за алармена система за сигурност.
Необходим материал:
- Raspberry Pi 3 (всеки модел)
- Модул на IR сензора
- Зелени и червени LED светлини
- Макет
- Свързващи проводници
Модул на IR сензора:
IR сензорите (инфрачервен сензор) са модули, които откриват присъствието на предмети пред тях. Ако обектът присъства, той дава 3.3V като изход, а ако не присъства, дава 0 волта. Това е възможно чрез използване на двойка IR двойка (предавател и приемник), предавателят (IR LED) ще излъчи IR лъч, който ще се отрази, ако пред него има обект. Този IR лъч ще бъде приет обратно от приемника (Фотодиод) и изходът ще бъде направен висок след усилване с помощта на оп-усилвателна връзка LM358. Можете да научите повече за схемата на модула за IR сензор тук.
IR сензорът, използван в този проект, е показан по-горе. Както всички IR сензори, той има три щифта, които са съответно 5V, Gnd и Out. Модулът се захранва от 5V щифт от Raspberry Pi, а изходният щифт е свързан с GPIO14 на Raspberry Pi. Потенциометърът в горната част на модула може да се използва за регулиране на обхвата на IR сензора.
Електрическа схема и обяснение:
Схемата на свързване на Raspberry Pi с IR сензор е показана по-долу. Както можете да видите схемата е много проста. Директно захранваме IR модула от 5V и Ground Pin на Raspberry Pi. Изходният щифт на IR модула е свързан към GPIO14. Използвали сме и два светодиода (зелен и червен), за да индикираме състоянието на обекта. Тези два светодиода са свързани съответно към GPIO3 и GPIO2.
Тъй като GPIO пиновете на Raspberry Pi са 3.3V, резисторът за ограничаване на тока не е задължителен. Въпреки това при желание може да се добави резистор на стойност 470 ома между заземяващия щифт на светодиодите и Raspberry Pi. Цялата верига се захранва от 5V мобилно зарядно чрез микро USB порта на Raspberry pi.
Забележка: Когато свързвате който и да е сензор, уверете се, че земята на сензора е свързана със земята на MCU или MPU (тук Raspberry Pi). Само тогава те ще могат да общуват.
Програмиране на вашия Raspberry Pi:
Тук използваме езика за програмиране Python за програмиране на RPi. Има много начини да програмирате вашия Raspberry Pi. В този урок ние използваме Python 3 IDE, тъй като той е най-използваният. Най- пълната програма на Python е дадена в края на този урок. Научете повече за Програмиране и стартиране на код в Raspberry Pi тук.
Ще говорим за няколко команди, които ще използваме в програмата PYHTON,
Ще импортираме GPIO файл от библиотеката, функцията по-долу ни позволява да програмираме GPIO пинове на PI. Преименуваме също „GPIO“ на „IO“, така че в програмата, когато искаме да се позовем на GPIO щифтове, ще използваме думата „IO“.
импортирайте RPi.GPIO като IO
Понякога, когато GPIO щифтовете, които се опитваме да използваме, може да изпълняват някои други функции. В този случай ще получим предупреждения, докато изпълняваме програмата. Командата по-долу казва на PI да игнорира предупрежденията и да продължи с програмата.
IO.setwarnings (False)
Можем да отнесем GPIO пиновете на PI, или чрез пинов номер на борда, или чрез номера на тяхната функция. Подобно на „ПИН 29“ на платката е „GPIO5“. Така че ние казваме тук, или ще представим щифта тук с '29' или '5'.
IO.setmode (IO.BCM)
Задаваме 3 щифта като входни / изходни щифтове. Двата изходни щифта ще управляват светодиода, а входният щифт ще чете сигнал от IR сензора.
IO.setup (2, IO.OUT) #GPIO 2 -> Червен светодиод като изход IO.setup (3, IO.OUT) #GPIO 3 -> Зелен LED като изход IO.setup (14, IO.IN) #GPIO 14 -> IR сензор като вход
Сега трябва да изключим зеления светодиод и да включим червения светодиод, когато обектът е далеч. Това може да стане чрез проверка на щифта GPIO14.
if (IO.input (14) == True): #object is away away IO.output (2, True) #Red led ON IO.output (3, False) # Зелен led OFF
По същия начин трябва да включим зеления светодиод и да изключим червения светодиод, когато обектът е близо.
ако (IO.input (14) == False): #object е близо до IO.output (3, True) #Green led ON IO.output (2, False) # Red led OFF
Командата отдолу се използва като цикъл завинаги, с тази команда операторите вътре в този цикъл ще се изпълняват непрекъснато.
Докато 1:
Работа:
След като създадете своя python код, изпълнете го с помощта на командата за изпълнение. Ако програмата се изпълнява без никакви грешки, трябва да получите следния екран.
Трябва също така да видите, че червеният светодиод отива високо, когато няма обект пред сензора, както е показано по-долу.
Сега донесете нещо близо до инфрачервения светодиод и ще забележите, че червеният светодиод се изключва и зеленият се включва. Пълна работа можете да намерите на видеото, дадено по-долу.
Надявам се, че сте разбрали проекта и сте успели да изградите нещо полезно с него. Ако има някакви запитвания, публикувайте тези в раздела за коментари по-долу или във форума.