Датчиците на Хол са сензори, които произвеждат електрически сигнал на изхода си, когато влезе в контакт с магнитно поле. Аналоговата стойност на електрическия сигнал на изхода на сензора е функция от силата на магнитното поле. Датчиците на Hall са навсякъде в наши дни, те се използват по различни причини и във всякакви устройства от мобилни телефони до суичове, за измерване на скоростта, положението и разстоянието в автомобилите и в други продукти, базирани в автомобилната индустрия. Тази гъвкавост на датчика на Hall ги прави задължителни за производителите и електроинженерите, затова днес ще ви покажем как да използваме Hall Sensor в проект, базиран на Raspberry Pi.
Можете по всяко време да проверите нашите други проекти, базирани на датчици на Hall, включително свързване на сензор на Hall с Arduino.
Необходими компоненти
Следните компоненти / части са необходими за изграждането на този проект;
- Raspberry pi 2 или 3
- SD карта (минимум 8gb)
- Сензор за ефект на Хол
- Джъмперни проводници
- Макети
- LAN кабел
- Източник на захранване
Някои незадължителни части, които могат да се използват, включват:
- Монитор
- Клавиатура и мишка
- HDMI кабел
- Wi-Fi Dongle
Този урок ще се основава на OS Raspbian stretch, така че за да продължите както обикновено, ще предположа, че сте запознати с настройката на Raspberry Pi с Raspbian stretch OS и знаете как да SSH в Raspberry Pi с помощта на терминален софтуер като шпакловка. Ако имате проблеми с нещо от това, на този уебсайт има тонове уроци за Raspberry Pi, които могат да ви помогнат.
За тези, които ще инсталират Raspbian stretch OS за първи път, един проблем, който открих, повечето хора имат, е влизането в Raspberry Pi чрез ssh. Трябва да се отбележи, че ssh първоначално е деактивиран в операционната система и ще ви е необходим или монитор, за да го активирате, или под конфигурационните опции на Raspberry pi, или създавате празен файл с име ssh с помощта на вашия Windows или Linux компютър и копирате празния файл в основната директория на SD картата. Ще трябва да поставите SD количката в слота за SDd карта на вашия компютър, за да копирате в нея.
Използването на втория метод е по-подходящо за тези, които изпълняват пи в режим без глава. След като всички части са готови, можем да пристъпим към изграждане.
Електрическа схема:
За да използвате сензор за ефект на Хол с Raspberry Pi, свържете компонентите съгласно схемата по-долу.
Сензорът на Hall, използван за този урок, може да осигури както аналогови, така и цифрови стойности на изхода. Но за да опростя урока, реших да използвам цифровата стойност, защото използването на аналоговия изход ще изисква свързването на ADC с Raspberry Pi.
Код на Python и работно обяснение:
Кодът на Python за този проект на датчика на Hall е много прост, всичко, което трябва да направим, е да прочетем изхода от сензора на Hall и съответно да включим или изключим светодиода. Светодиодът трябва да бъде включен, ако магнитът бъде открит и той трябва да бъде изключен в противен случай.
Включете вашия Raspberry Pi и SSH в него с помощта на шпакловка (ако сте свързани в безглав режим като мен). Както обикновено при повечето от моите проекти, аз създавам директория в домашната директория, където се съхранява всичко за всеки проект, така че за този проект ще създадем директория, наречена Hall . Моля, имайте предвид, че това е само лично предпочитание да поддържате нещата организирани.
Създайте директорията с помощта на;
mkdir Hallsensor
Променете директорията в току-що създадената нова директория и отворете редактор, за да създадете python скрипта, използвайки;
cd Hallsensor
следван от;
nano hallsensorcode.py
След като редакторът се отвори, ние въвеждаме кода за проект. Ще направя кратка разбивка на кода, за да покажа ключови концепции и след това ще бъде предоставен пълният код на python.
Започваме кода чрез импортиране на библиотеката RPI.GPIO, която ни позволява да пишем python скриптове, за да взаимодействаме с малиновите пи GPIO пинове.
импортиране на RPi.GPIO като gpio
След това задаваме конфигурацията за номериране за GPIO на Rpi, която бихме искали да използваме и деактивираме предупрежденията GPIO, за да позволим изпълнението на кода в свободен поток.
gpio.setmode (gpio.BCM) gpio.setwarnings (False)
След това задаваме деклариране на GPIO щифтовете, към които са свързани LED и цифровият изход на сензора на Hall в съответствие с избраната BCM номерация.
фиксатор = 2 ledpin = 3
След това настройваме GPIO щифтовете като вход или изход. Пинът, с който е свързан светодиодът, е зададен като изход, а този, към който е свързан сензорът на Hall, е зададен като вход.
gpio.setup (закрепване, gpio.IN) gpio.setup (ledpin, gpio.OUT)
С това приключваме, ние пишем основната част от кода, която представлява цикъл while, който постоянно оценява изхода от сензора на Hall и включва светодиода, ако е открит магнит, и изключва светодиода, когато магнитът не бъде открит.
while True: if (gpio.input (hallpin) == False): gpio.output (ledpin, True) print ("магнит е открит") else: gpio.output (ledpin, False) print ("магнитното поле не е открито")
Най- пълен питон кода с демо видео е дадена в края на проекта.
Копирайте и запазете кода и излезте от редактора, след като го въведете;
CTRL + X, последвано от y .
След като запазите, прегледайте връзките си още веднъж и стартирайте python скрипта, като използвате;
sudo python hallsensorcode.py
Когато сценарият работи, когато магнит или нещо магнитно се доближи до сензора на залата, светодиодът светва, както е показано на изображението по-долу.
От тръстикови превключватели за интелигентен дом до скоростомери за велосипед, има няколко супер страхотни неща, които могат да бъдат изградени с този урок в основата. Чувствайте се свободни да споделите всеки проект, който планирате да изградите, в раздела за коментари по-долу.
Всички проверете нашите предишни проекти, базирани на сензор за зала:
- Направи си сам скоростомер, използвайки Arduino и приложението за обработка на Android
- Цифрова верига на скоростомера и одометъра с помощта на PIC микроконтролер
- Виртуална реалност, използваща Arduino и обработка
- Измерване на силата на магнитното поле с помощта на Arduino