- Необхідні матеріали
- Що таке магнітометр і як він працює?
- Як працює модуль датчика HMC5883L
- Кругова діаграма
- Виготовлення друкованих плат для цифрового компаса
- Складання друкованої плати
- Програмування Arduino
Мозок людини побудований із складного шару структур, що допомагає нам бути домінуючим видом на землі. Наприклад, кора внутрішнього мозку у вашому мозку може дати вам відчуття напрямку, допомагаючи вам легко орієнтуватися в місцях, які вам не знайомі. Але на відміну від нас, роботам і безпілотним автомобілям Ariel потрібно щось, щоб отримати таке відчуття напрямку, щоб вони могли автономно маневрувати на нових місцевостях і ландшафтах. Різні роботи використовують для цього різні типи датчиків, але загальновживаним є магнітометр, який може інформувати робота, в якому географічному напрямку він зараз перебуває. Це не тільки допоможе роботові відчути напрямок, але і по черзі в заздалегідь визначеному напрямку та ангелу.
Оскільки датчик міг вказувати географічний графік Півночі, Півдня, Сходу та Заходу, ми, люди, могли також використовувати його часом, коли це потрібно. Тож у цій статті спробуємо зрозуміти, як працює датчик магнітометра і як взаємодіяти його з мікроконтролером, таким як Arduino. Тут ми побудуємо крутий цифровий компас, який допоможе нам знайти напрямки, світячи світлодіодом, що вказує на північний напрямок. Цей Цифровий компас акуратно виготовлений на друкованій платі від PCBGOGO, щоб я міг нести його наступного разу, коли вийду в дику природу і побажаю, що загублюся, просто використовуючи цю річ для пошуку дороги додому. Давайте розпочнемо.
Необхідні матеріали
- Arduino Pro mini
- Датчик магнітометра HMC5883L
- Світлодіодні ліхтарі - 8Ні
- Резистор 470 Ом - 8 Ні
- Барель Джек
- Надійний виробник друкованих плат, такий як PCBgogo
- Програміст FTDI для міні
- ПК / ноутбук
Що таке магнітометр і як він працює?
Перш ніж зануритися в схему, давайте трохи розберемося з магнітометром та як вони працюють. Як випливає з назви, термін "Магнето" не стосується того божевільного мутанта в диві, який міг керувати металами, просто граючи на піаніно в повітрі. Ох! Але мені подобається той хлопець, який він крутий.
Магнітометр насправді є частиною обладнання, яке може відчувати магнітні полюси землі і вказувати напрямок відповідно до цього. Ми всі знаємо, що Земля - це величезний шматок сферичного магніту з Північним та Південним полюсами. І через це існує магнітне поле. Магнітометр відчуває це магнітне поле і виходячи з напрямку магнітного поля він може виявити напрямок, в який ми стикаємось.
Як працює модуль датчика HMC5883L
HMC5883L бути датчик магнітометра робить те ж саме. На ньому є мікросхема HMC5883L, яка від Honeywell. Цей ІС має всередині 3 магніторезистивних матеріалу, які розташовані по осях x, y та z. Величина струму, що протікає через ці матеріали, чутлива до магнітного поля Землі. Отже, вимірюючи зміну струму, що протікає через ці матеріали, ми можемо виявити зміну магнітного поля Землі. Після поглинання магнітного поля значення можуть надсилатися на будь-який вбудований контролер, такий як мікроконтролер або процесор, через протокол I2C.
Оскільки датчик працює, відчуваючи магнітне поле, вихідні значення будуть сильно впливати, якщо поруч розмістити метал. Цю поведінку можна використати для використання цих датчиків як металодетекторів. Слід бути обережним, щоб не наближати магніти до цього датчика, оскільки сильне магнітне поле від магніту може спричинити помилкові значення на датчику.
Різниця між HMC5883L та QMC5883L
У багатьох початківців навколо цих датчиків існує загальна плутанина. Це пов’язано з тим, що деякі постачальники (насправді більшість) продають датчики QMC5883L замість оригінальних HMC5883L від Honeywell. Це здебільшого тому, що QMC5883L набагато дешевший, ніж модуль HMC5883L. Сумна частина полягає в тому, що робота цих двох датчиків дещо відрізняється, і один і той же код не можна використовувати для обох. Це пояснюється тим, що адреса I2C обох датчиків неоднакова. Код, наведений у цьому посібнику , працюватиме лише для QMC5883L, загальнодоступного модуля датчика.
Щоб знати, яка модель датчика у вас є, вам просто потрібно уважно придивитися до самої мікросхеми, щоб прочитати те, що написано поверх неї. Якщо на ньому написано щось на зразок L883, то це HMC58836L, а якщо написано щось на зразок DA5883, то це QMC5883L IC. Обидва модулі показані на малюнку нижче для зручності заниження.
Кругова діаграма
Схема цього цифрового компаса на базі Arduino досить проста, нам просто потрібно підключити датчик HMC5883L до Arduino і підключити 8 світлодіодів до штифтів GPIO на Arduino Pro mini. Повна електрична схема показана нижче
Модуль датчика має 5 контактів, з яких DRDY (Data Ready) не використовується в нашому проекті, оскільки ми працюємо з датчиком у безперервному режимі. Штифт Vcc і заземлення використовується для живлення модуля на 5 В від плати Arduino. SCL і SDA - це лінії шини зв'язку I2C, які підключені до штифтів A4 і A5 I2C Arduino Pro mini відповідно. Оскільки сам модуль має витягуючий високий резистор на лініях, немає необхідності додавати їх зовні.
Для позначення напрямку ми використали 8 світлодіодів, які всі підключені до штифтів GPIO Arduino через обмежувач струму 470 Ом. Повна схема живиться від батареї 9 В через гніздо ствола. Цей 9 В подається безпосередньо на висновок Vin на Arduino, де регулюється до 5 В за допомогою вбудованого регулятора на Arduino. Потім цей 5 В використовується для живлення датчика та Arduino.
Виготовлення друкованих плат для цифрового компаса
Ідея схеми полягає в тому, щоб розмістити 8 світлодіодів круговим способом, щоб кожен світлодіод вказував усі 8 напрямків, а саме Північ, Північний Схід, Схід, Південний Схід, Південь, Південний Захід, Захід та Північний Захід відповідно. Тож нелегко їх акуратно розташувати на макетній дошці або навіть на дошці для парфумів. Розробка друкованої плати для цієї схеми зробить її більш акуратною та простою у використанні. Тож я відкрив своє програмне забезпечення для проектування друкованих плат і розмістив світлодіоди та резистор у акуратному круговому візерунку та з’єднав доріжки, щоб утворити з’єднання. Після завершення мій дизайн виглядав приблизно так, як показано нижче. Ви також можете завантажити файл Gerber за посиланням, наведеним нижче.
- Завантажте файл Gerber для друкованої плати Digital Compass
Я розробив це як подвійну бічну дошку, оскільки хочу, щоб Arduino знаходився в нижній частині моєї друкованої плати, щоб вона не псувала зовнішній вигляд моєї друкованої плати. Якщо ви переживаєте, що вам доведеться платити високо за двосторонню друковану плату, тоді зачекайте, я отримав хороший новий прихід.
Тепер, коли наш Дизайн готовий, настав час придумати їх. Зробити друковану плату досить просто, просто виконайте наведені нижче дії
Крок 1: Зайдіть на www.pcbgogo.com, підпишіться, якщо це ваш перший раз. Потім на вкладці «Прототип друкованої плати» введіть розміри вашої друкованої плати, кількість шарів та кількість необхідної вам друкованої плати. Моя друкована плата становить 80 см × 80 см, тому вкладка виглядає так, як показано нижче
Крок 2: Продовжуйте, натискаючи кнопку Quote Now . Ви потрапите на сторінку, де за необхідності можна встановити кілька додаткових параметрів, наприклад, використовуваний інтервал доріжок тощо. Але в основному значення за замовчуванням будуть працювати нормально. Єдине, що ми маємо тут врахувати, це ціна та час. Як бачите, час побудови складає всього 2-3 дні, а коштує лише 5 доларів для нашого PSB. Потім ви можете вибрати бажаний спосіб доставки відповідно до ваших вимог.
Крок 3: Останнім кроком є завантаження файлу Gerber і продовження платежу. Щоб переконатися, що процес безперебійний, PCBGOGO перевіряє, чи справжній ваш файл Gerber, перш ніж продовжувати оплату. Таким чином ви можете бути впевнені, що ваша друкована плата є зручною для виготовлення і зв’яжеться з вами як докладена.
Складання друкованої плати
Після того, як плату замовили, вона дійшла до мене через кілька днів, хоча кур’єр у акуратно поміченій добре упакованій коробці, як і завжди, якість друкованої плати була надзвичайною. Я ділюсь кількома фотографіями дощок нижче, щоб ви могли їх судити.
Я включив паяльний стрижень і почав збирати дошку. Оскільки сліди ніг, прокладки, шовковий екран абсолютно правильної форми та розміру, у мене не було проблем зі складанням дошки. Дошка була готова всього за 10 хвилин з моменту розпакування коробки.
Нижче показано кілька фотографій дошки після пайки.
Програмування Arduino
Тепер, коли наше обладнання готове, давайте розглянемо програму, яку потрібно завантажити на нашу плату Arduino. Призначення коду - зчитування даних з датчика магнітометра QMC5883L та перетворення їх у градуси (від 0 до 360). Як тільки ми дізнаємося ступінь, ми повинні включити світлодіод, що вказує на певний напрямок. Напрямок, який я використав у цій програмі, - північ. Отже, незалежно від того, де ви знаходитесь, на вашій дошці буде світитися лише один світлодіод, а напрямок світлодіода буде вказувати на північний напрямок. Одного разу можна було пізніше розрахувати інший напрямок - це один напрямок відомий.
Повний код цього проекту Digital Compass можна знайти в кінці цієї сторінки. Ви можете завантажити його безпосередньо на свою дошку після включення бібліотеки, і ви готові до роботи. Але, якщо ви хочете знати