цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Подключаем акселерометр/гироскоп MPU6050 к Raspberry Pi Pico и программируем его на MicroPython



Подключаем акселерометр/гироскоп MPU6050 к Raspberry Pi Pico и программируем его на MicroPython

Автор: Mike(admin) от 5-02-2023, 23:55

MPU6050, пожалуй, является самым популярным МЭМС-датчиком, используемым для проектов на основе Raspberry Pi и Arduino. Он имеет в своем составе 6-осевой инерциальный датчик (3-осевой акселерометр и 3-осевой гироскоп) с датчиком температуры. Его ценят за малую мощность, простоту и удивительную для такого недорогого датчика точность. Если вы хотите узнать, как эта штука работает с Raspberry Pi Pico, то читайте дальше.


Подключаем акселерометр/гироскоп MPU6050 к Raspberry Pi Pico и программируем его на MicroPython

Схема подключения датчика MPU6050 к Raspberry Pi Pico довольно проста и представлена далее. Красный провод подключается к VSYS на Pico для питания MPU6050, черный к земле (GND), а желтый и белый мы подключаем к контактам GPIO на Pico, чтобы установить связь по протоколу I2C.


Подключаем акселерометр/гироскоп MPU6050 к Raspberry Pi Pico и программируем его на MicroPython

I2C (Inter-Integrated Circuit) представляет собой протокол связи, который позволяет нескольким устройствам взаимодействовать друг с другом по двухпроводной шине. Он обычно используется в электронных устройствах для связи между интегральными схемами (ИС) на одной плате. Два провода на шине I2C – это линии SDA (последовательные данные) и SCL (последовательные тактовые импульсы). Линия SDA передает данные, а линия SCL используется для синхронизации передачи данных. В I2C одно устройство действует как ведущее и управляет тактированием, а другие устройства действуют как ведомые. Ведущее устройство инициирует связь и генерирует тактовый сигнал, а ведомые устройства отвечают на запросы ведущего. I2C широко используется из-за его простоты, малого количества выводов и возможности работы с несколькими мастерами. Он используется во многих приложениях, таких как датчики температуры, RTC, EEPROM, АЦП и ЖК-дисплеи. I2C – это широко используемый протокол связи, поддерживаемый большинством микроконтроллеров и микропроцессоров, включая Raspberry Pi Pico.


Теперь перейдем к программированию. Сохраните следующие библиотеки в каталоге lib на pico: https://github.com/shillehbean/youtube-channel/blob/main/vector3d.py и https://github.com/shillehbean/youtube-channel/blob/main/imu.py. Далее загрузите следующий код:



LED = machine.Pin("LED", machine.Pin.OUT)
	LED.on()


	from imu import MPU6050
	from time import sleep
	from machine import Pin, I2C


	i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
	imu = MPU6050(i2c)


	while True:
	    ax=round(imu.accel.x,2)
	    ay=round(imu.accel.y,2)
	    az=round(imu.accel.z,2)
	    gx=round(imu.gyro.x)
	    gy=round(imu.gyro.y)
	    gz=round(imu.gyro.z)
	    tem=round(imu.temperature,2)
	    print("ax",ax,"\t","ay",ay,"\t","az",az,"\t","gx",gx,"\t","gy",gy,"\t","gz",gz,"\t","Temperature",tem,"        ",end="\r")
	    sleep(0.2)

Данный скрипт устанавливает объект i2c, используемый в библиотеке MPU6050, и это то, что вам нужно, чтобы установить соединение. Далее скрипт извлекает значения с датчика в цикле while. Вам нужно будет вручную нажать «Stop» в программе, чтобы этот код завершился. В нашем случае мы также используем паузу длиной 0,2 секунды, чтобы не перегружать пользователя просмотром слишком большого количества значений, вы можете изменить это значение в большую или меньшую сторону.




© digitrode.ru


Теги: Raspberry Pi Pico, MPU6050




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий