сборник. Ledpixel Связанные знания Светодиодный модуль Freenove 8 rgb
Скачать 5.77 Mb.
|
Знание компонентовсвязь I2C I2C (Inter-Integrated Circuit) — это режим двухпроводной последовательной связи, который можно использовать для подключения микроконтроллера и его периферийного оборудования. Устройства, использующие связь I2C, должны быть подключены к линии последовательных данных (SDA) и линии последовательных часов (SCL) (называемой шиной I2C). Каждое устройство имеет уникальный адрес и может использоваться как передатчик или приемник для связи с устройствами, подключенными к шине. МПУ6050 Сенсорный модуль MPU6050 представляет собой полноценное 6-осевое устройство отслеживания движения. Он сочетает в себе 3-осевой гироскоп, 3-осевой акселерометр и DMP (цифровой процессор движения) в небольшом корпусе. Настройки акселерометра и гироскопа MPU6050 можно изменить. Также встроен прецизионный цифровой датчик температуры с широким диапазоном для компенсации показаний данных в зависимости от изменений температуры, а также могут быть считаны значения температуры. Модуль MPU6050 следует протоколу связи I2C, а адрес по умолчанию — 0x68. Описание порта модуля MPU6050 выглядит следующим образом:
Для более подробной информации, пожалуйста, обратитесь к техническому описанию. MPU6050 широко используется для балансировки транспортных средств, роботов и самолетов, мобильных телефонов и других продуктов, которые требуют стабильности для контроля стабильности и ориентации или которые должны ощущать то же самое. Схема Используйте контакт A4/SDA, порт A5/SCL на плате управления для связи с модулем MPU6050. Эскиз Acceleration_Detection Библиотека — это набор кода. Мы можем использовать код, предоставляемый библиотеками, чтобы упростить программирование. Нажмите «Добавить библиотеку .ZIP...», а затем найдитеI2Cdev.zipа такжеMPU6050.zipв папке с библиотеками (эта папка находится в папке, разархивированной из предоставленного нами ZIP-файла). Эти библиотеки упрощают использование модуля MPU6050. Когда эти библиотеки добавлены, вы можете найти их в библиотеках в папке Sketchbook в окне File-Preferences. Вы можете просмотреть исходный код этих библиотечных файлов, чтобы понять особенности их использования. Теперь напишите скетч для связи с модулем MPU6050 и отправьте захваченные данные в окно последовательного монитора. 10 логическиймиганиезнак равноЛОЖЬ; // Определяем переменную для сохранения состояния светодиода 11 пустотанастраивать() { Серийный.начинать(9600); // инициализируем последовательный порт, а скорость передачи устанавливается на 9600 Серийный.печать("Инициализация устройств I2C..."); Проволока. начинать(); ускоритель.инициализиро//виатньи(ц);иализируем I2C // инициализируем MPU6050 Серийный.печать("Проверка подключений устройств..."); // проверяем соединение если(ускоритель.testConnection()) { Серийный.печать("Успешное подключение к MPU6050"); 21 } еще{ Серийный.печать("Ошибка соединения с MPU6050" 24 ); пока(1); 25 } // когда вам нужно откалибровать гравитационное ускорение, вы можете установить здесь смещение и убрать примечание // accelgyro.setXAccelOffset(-1200); // accelgyro.setYAccelOffset(-2500); // accelgyro.setZAccelOffset(1988); Серийный. Распечатать("Смещение XYZ :\t"); Серийный.Распечатать(ускоритель.получитьXAccelOffset());Серийный.Распечатать("\т"); Серийный.Распечатать(ускоритель.getYAccelOffset());Серийный.Распечатать("\т"); Серийный.Распечатать(ускоритель.getZAccelOffset());Серийный.Распечатать("\п"); // инициализируем порт светодиода контактный режим(LED_PIN,ВЫХОД); 36 } 37 пустотапетля() { // считываем необработанные измерения ускорения/гироскопа с устройства ускоритель.получить движение6(&топор, &да, &аз, &gx, &гы, &гз); // отображение значений ускорения/гироскопа x/y/z, разделенных табуляцией Серийный.Распечатать("а/г:\т"); Серийный.Распечатать(топор);Серийный.Распечатать("\т"); Серийный.Распечатать(да);Серийный.Распечатать("\т"); Серийный.Распечатать(аз);Серийный.Распечатать("\т"); Серийный.Распечатать(gx);Серийный.Распечатать("\т\т"); Серийный.Распечатать(гы);Серийный.Распечатать("\т\т"); Серийный.печать(гз); // преобразование единицы ускорения в g и единицу измерения гироскопа в dps (градусы в секунду) в соответствии с чувствительностью Серийный.Распечатать("а/г:\т"); Серийный.Распечатать((плавать)топор/16384);Серийный.Распечатать("г\т"); Мы ссылаемся на библиотеки, разработанные для шины I2C и MPU6050, для управления MPU6050. Библиотека MPU6050 предоставляет класс MPU6050 для управления MPU6050, и перед его использованием необходимо создать экземпляр объекта класса. Сначала инициализируйте шину I2C, а затем инициализируйте MPU6050. Затем выполните тест, чтобы убедиться, что MPU6050 подключен к шине I2C, и распечатайте соответствующую информацию в последовательном порту. Если вы хотите сделать результаты более близкими к реальной ситуации, вы можете настроить смещение MPU6050 перед его использованием. Вы можете обратиться к файлам библиотеки MPU6050 для получения более подробной информации о настройке смещения. Если нет жестких требований, этот шаг также можно пропустить. Мы также можем прочитать значение смещения, которое уже установлено, с помощью следующего кода: Считайте значения 3-х ускорений и 3-х угловых ускорений в функции loop(), Затем преобразуйте данные и отправьте их на последовательный порт. Для преобразования единицы необработанных данных MPU6050 в стандартную единицу см. техническое описание.
Проверьте и загрузите код, откройте последовательный монитор, и вы увидите значение MPU6050 как в исходном, так и в преобразованном состоянии, которое отправляется с платы управления. Поверните и переместите модуль MPU6050, после чего вы увидите изменение значений. Данные, отправляемые этим кодом, могут быть слишком большими для пользователей, не знакомых с ускорением. Вы можете загрузить Acceleration_Detection, которые отправляют только значения ускорения в трех направлениях на последовательный порт, поэтому будет относительно легче наблюдать за изменением чисел при вращении и перемещении этого модуля. Глава 15 Светодиодная панель В предыдущей главе мы узнали, как использовать некоторые модули и датчики и отображать некоторую информацию на компьютере через последовательный порт. Теперь давайте изучим некоторые модули, которые могут выводить изображения и текст. В этой главе мы научимся управлять светодиодной панелью с микросхемой 74HC595. Во-первых, давайте узнаем, как использовать микросхему 74HC595, которая нам очень помогает для управления светодиодной матрицей. Список компонентов
Знание кода шестнадцатеричный Преобразование между двоичной и десятичной системой было упомянуто ранее. Когда вы пишете код, число по умолчанию десятичное. В код нужно добавить префикс 0x для шестнадцатеричных чисел, например 0x01. Один шестнадцатеричный бит может представлять одно число от 0 до 15. Для облегчения записи числа больше 9 записываются буквами AF (без учета регистра), например 0x2A. Соответствующее соотношение выглядит следующим образом:
Преобразование между шестнадцатеричной и десятичной системами аналогично преобразованию между шестнадцатеричной и двоичной, например, шестнадцать цифр 0x12:
При преобразовании шестнадцатеричного числа в десятичное сначала умножьте его n-е число на n степень 16, а затем просуммируйте все результаты умножения. Возьмем 0x12 в качестве примера: 1 *16̂ 1+2*16̂ 0=18 Когда десятичное число преобразуется в шестнадцатеричное, десятичное число делится на 16, поэтому мы получаем частное и остаток, а затем полученное частное будет непрерывно делиться на 16, пока частное не станет равным нулю. Расположите все остатки справа налево в ряд и завершите преобразование. Например: Результат преобразования 0x12. 16 18 16 1 0 Остаток ………… 2 ………… 1 Последовательность 0 1 Когда вы пишете код, иногда удобно использовать шестнадцатеричный формат, особенно при работе с битами, потому что 1 шестнадцатеричное число может быть выражено 4 двоичными числами (2̂ 4 = 16). Соответствующая связь между 4- битными двоичными числами и 1 шестнадцатеричным числом показана следующим образом:
Например, двоичному коду 00010010 соответствует шестнадцатеричный код 0x12. |