- Необходими материали
- Какво е магнитометър и как работи?
- Как работи сензорният модул HMC5883L
- Електрическа схема
- Изработване на печатни платки за цифровия компас
- Сглобяване на печатната платка
- Програмиране на Arduino
Човешкият мозък е изграден от сложен слой структури, който ни помага да бъдем доминиращ вид на земята. Например енторхиналната кора в мозъка ви може да ви даде усещане за посока, помагайки ви да се придвижвате лесно през места, които не сте запознати. Но за разлика от нас, роботите и безпилотните превозни средства Ariel се нуждаят от нещо, за да получат това усещане за посока, за да могат да маневрират автономно в нови терени и пейзажи. Различните роботи използват различни видове сензори, за да постигнат това, но често използваният е магнитометър, който може да информира робота, в коя географска посока е изправен в момента. Това не само ще помогне на робота да усети посоката, но и да се редува в предварително определена посока и ангел.
Тъй като сензорът може да показва географската графика Север, Юг, Изток и Запад, ние, хората, бихме могли да го използваме и в моменти, когато това се изисква. Така че в тази статия нека се опитаме да разберем как работи сензорът на магнитометъра и как да го свържем с микроконтролер като Arduino. Тук ще изградим страхотен цифров компас, който ще ни помогне при намирането на посоките, като свети светодиод, сочещ посоката на север. Този цифров компас е изрядно изработен на печатни платки от PCBGOGO, за да мога да го нося следващия път, когато изляза в дивата природа и да си пожелая да се изгубя само, за да използвам това нещо, за да си намеря пътя към дома. Да започваме.
Необходими материали
- Arduino Pro mini
- HMC5883L Сензор за магнитометър
- LED светлини - 8Nos
- 470Ohm резистор - 8Nos
- Барел Джак
- Надежден производител на печатни платки като PCBgogo
- FTDI програмист за мини
- Компютър / лаптоп
Какво е магнитометър и как работи?
Преди да се потопим във веригата, нека разберем малко за магнитометъра и как работят. Както подсказва името, терминът Magneto не се отнася до онзи луд мутант в чудо, който можеше да контролира металите, просто свирейки на пиано във въздуха. Ооо! Но аз харесвам този човек, той е готин.
Магнитометърът всъщност е оборудване, което може да усети магнитните полюси на земята и да посочи посоката според това. Всички знаем, че Земята е огромно кълбо сферичен магнит със Северния и Южния полюс. И поради това има магнитно поле. Магнитометър усеща това магнитно поле и въз основа на посоката на магнитното поле може да открие посоката, в която сме изправени.
Как работи сензорният модул HMC5883L
В HMC5883L бъдеш сензор магнитометър прави същото нещо. На нея има интегрална схема HMC5883L, която е от Honeywell. Този IC има 3 магнитоустойчиви материала, които са разположени по осите x, y и z. Количеството ток, протичащо през тези материали, е чувствително към земното магнитно поле. Така че чрез измерване на промяната в тока, протичащ през тези материали, можем да открием промяната в магнитното поле на Земята. След като промяната е погълната от магнитното поле, стойностите могат да бъдат изпратени до всеки вграден контролер като микроконтролер или процесор чрез протокола I2C.
Тъй като сензорът работи чрез усещане на магнитното поле, изходните стойности ще бъдат силно засегнати, ако наблизо е поставен метал. Това поведение може да се използва, за да се използват и тези сензори като металотърсачи. Трябва да се внимава да не се приближават магнити близо до този сензор, тъй като силното магнитно поле от магнит може да предизвика фалшиви стойности на сензора.
Разлика между HMC5883L и QMC5883L
Общо объркване се върти около тези сензори за много начинаещи. Това е така, защото някои доставчици (всъщност повечето) продават сензорите QMC5883L вместо оригиналния HMC5883L от Honeywell. Това е най-вече защото QMC5883L е много по-евтин от модула HMC5883L. Тъжната част е, че работата на тези два сензора е малко по-различна и един и същ код не може да се използва и за двата. Това е така, защото I2C адресът на двата сензора не е еднакъв. Кодът, даден в този урок, ще работи само за QMC5883L, общодостъпния сензорен модул.
За да знаете кой модел сензор имате, просто трябва да погледнете отблизо самата интегрална схема, за да прочетете написаното отгоре. Ако е написано нещо като L883, това е HMC58836L, а ако е написано нещо като DA5883, то това е IC QMC5883L. И двата модула са показани на снимката по-долу за лесно подценяване.
Електрическа схема
Схемата за този цифров компас, базиран на Arduino, е доста проста, просто трябва да свържем сензора HMC5883L с Arduino и да свържем 8 светодиода към GPIO щифтовете на Arduino Pro mini. Пълната електрическа схема е показана по-долу
В модула на сензора има 5 пина навън, на която DRDY (Data Готов), не се използват в нашия проект, тъй като ние работим сензора в непрекъснат режим. Vcc и заземяващият щифт се използват за захранване на модула с 5V от платката Arduino. SCL и SDA са линиите за комуникационна шина I2C, които са свързани съответно към щифтовете A4 и A5 I2C на Arduino Pro mini. Тъй като самият модул има издърпващ висок резистор по линиите, няма нужда да ги добавяте външно.
За да посочим посоката, използвахме 8 светодиода, всички от които са свързани към GPIO щифтовете на Arduino чрез текущ ограничителен резистор от 470 ома. Пълната верига се захранва от 9V батерия през цевта Jack. Този 9V се подава директно към щифта Vin на Arduino, където се регулира до 5V с помощта на вградения регулатор на Arduino. След това тези 5V се използват за захранване на сензора и Arduino.
Изработване на печатни платки за цифровия компас
Идеята на схемата е да постави 8-те светодиода по кръг, така че всеки светодиод да посочва съответно всичките 8 посоки, а именно Север, Североизток, Изток, Югоизток, Юг, Югозапад, Запад и Северозапад. Така че не е лесно да ги подредите спретнато на макет или дори на перфектна дъска. Разработването на печатни платки за тази схема ще я направи по-изчистена и лесна за използване. Затова отворих моя софтуер за проектиране на печатни платки и поставих светодиодите и резистора в чист кръгъл модел и свързах пистите, за да оформя връзките. Моят дизайн изглеждаше по подобен начин по-долу, когато беше завършен. Можете също да изтеглите файла Gerber от връзката, дадена по-долу.
- Изтеглете Gerber файл за печатни платки Digital Compass
Проектирах го да бъде двойна странична платка, тъй като искам Arduino да бъде в долната страна на моята печатна платка, така че да не разваля външния вид на моята печатна платка. Ако се притеснявате, че трябва да платите високо за двустранна печатна платка, тогава задръжте, имам добро ново пристигане.
Сега, когато нашият дизайн е готов, е време да ги изфабрикуваме. За да направите печатната платка е доста лесно, просто следвайте стъпките по-долу
Стъпка 1: Влезте в www.pcbgogo.com, регистрирайте се, ако за първи път. След това в раздела PCB Prototype въведете размерите на вашата PCB, броя на слоевете и броя на PCB, който ви е необходим. Моята PCB е 80cm × 80cm, така че раздела изглежда по-долу
Стъпка 2: Продължете, като кликнете върху бутона Quote Now . Ще бъдете отведени на страница, където да зададете няколко допълнителни параметъра, ако е необходимо, като използвания материал на разстоянието между песните и т.н. Но най-вече стойностите по подразбиране ще работят добре. Единственото нещо, което трябва да имаме предвид тук, е цената и времето. Както можете да видите Времето за изграждане е само 2-3 дни и струва само $ 5 за нашия PSB. След това можете да изберете предпочитан метод за доставка въз основа на вашите изисквания.
Стъпка 3: Последната стъпка е да качите файла Gerber и да продължите с плащането. За да се увери, че процесът протича гладко, PCBGOGO проверява дали вашият файл Gerber е валиден, преди да продължи с плащането. По този начин можете да сте сигурни, че вашата PCB е удобна за изработка и ще се свърже с вас като ангажирана.
Сглобяване на печатната платка
След като платката беше поръчана, тя стигна до мен след няколко дни, въпреки че куриер в добре етикетирана добре опакована кутия и както винаги качеството на печатната платка беше страхотно. Споделям няколко снимки на дъските по-долу, за да прецените.
Включих поялника си и започнах да сглобявам дъската. Тъй като отпечатъците, подложките, виасите и коприненият екран са идеално с правилната форма и размер, нямах проблем при сглобяването на дъската. Дъската беше готова само за 10 минути от момента на разопаковане на кутията.
Малко снимки на дъската след запояване са показани по-долу.
Програмиране на Arduino
Сега, когато нашият хардуер е готов, нека разгледаме програмата, която трябва да бъде качена в нашата дъска Arduino. Целта на кода е да прочете данните от сензора за магнитометър QMC5883L и да ги преобразува в градуси (0 до 360). След като разберем степента, трябва да включим светодиод, сочещ определена посока. Посоката, която съм използвал в тази програма, е север. Така че, независимо къде се намирате, на дъската ви ще свети само един светодиод и посоката на светодиода ще показва посоката СЕВЕР. След като може по-късно да се изчисли другата посока е една посока е известна.
Пълният код на този проект за цифров компас може да бъде намерен в края на тази страница. Можете директно да го качите на дъската си, след като включите библиотеката и сте готови за работа. Но ако искате да знаете