Купить можно тут: http://alii.pub/5kmf6o
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Данный микроконтроллер имеет: двухъядерный чип Arm Cortex M0+, с частотой работы ядра в 133 МГц. У платы — 264 КБ ОЗУ и 2 МБ флеш-памяти. 26 каналов ввода/вывода. Есть возможность задействовать интерфейсы 2 × UART, 2 × I2C, 2 × SPI (всего до 16 Мбайт QSPI Flash с XIP), а также 16 PWM-каналов. Также в наличии температурный датчик и 4 ADC-канала.
Данная плата поддерживает языки программирования как Mycropython так и C/C++. В данной статье приведем несколько примеров работы с Mycropython.
Установка и настройка программы Thonny
Чтоб начать программировать на Mycropython, нужно скачать программу Thonny с официального сайта: https://thonny.org/ . Данная программа может работать как под Linux, так и под Windows и Mac. В моем случае будем устанавливать версию под Windows. Процедура установки простая. Далее->Далее->Готово.
После установки зажимаем единственную кнопку BOOTSEL и подключаем плату к компьютеру с зажатой кнопкой. После подключения кнопку можно отпустить.
Далее запускаем программу Thonny.
В программе выбираем Инструменты->Параметры и там выбираем вкладку Интерпретатор
Здесь выбираем MicroPython (Raspberry Pi Pico) и устанавливаем драйвер “install or update firmware”
После этого отключаем Pico от ПК и подключаем его снова. И у нас в графе “Порт” должен появиться номер ком порта к который присвоился Raspberry pi pico.
Программа Blink.
После того как настроили среду разработки Thonny давайте напишем первую программу. По традиции помигаем светодиодом.
Из схемы приведенной в начале статьи видно, что светодиод подключен к 25 пину микроконтроллера. Зная эту информацию напишем программу:
from machine import Pin, Timer led = Pin(25, Pin.OUT) LED_state = True tim = Timer() def tick(timer): global led, LED_state LED_state = not LED_state led.value(LED_state) tim.init(freq=1, mode=Timer.PERIODIC, callback=tick)
Скачать программу можно тут: https://disk.yandex.ru/d/C1ruOKmKBXWXvA
Загрузка программы в Raspberry pi pico
Нажав кнопку в Thonny “Запустить текущий скрипт” ( если она не активна, то нажмите на кнопку “Остановить и запустить бэкенд”) у нас начнет выполняться программа и светодиод начнет мигать 1 раз в секунду.
Но если мы отключим Raspberry pi pico от сети и включим снова. Скрипт у нас не запустится, так как он у нас был запущен только с компьютера, в саму Pico он небыл загружен.
Чтоб загрузить программу в саму малинку. Нам необходимо в программе Thonny выбрать Файл->Сохранить копию->”Выбрать Raspberry pi pico” и сохранить в нее скрипт под именем main.py
И вот теперь после перезапуска Pico программа начнет работать не зависимо от подключения к компьютеру.
Программа измерения температуры с встроенного датчика температуры.
После того как помигали светодиодом, давайте теперь измеряем температуру со встроенного датчика температуры.
Скрипт выглядит следующим образом:
import machine import utime sensor_temp = machine.ADC(4) conversion_factor = 3.3 / (65535) while True: reading = sensor_temp.read_u16() * conversion_factor temperature = round(27 - (reading - 0.706)/0.001721,2) print("Temperature: ",temperature) utime.sleep(0.1)
Скачать программу можно по ссылке: https://disk.yandex.ru/d/0ssIUNo_aUPZEQ
Данная программа показывает температуру с встроенного датчика температуры. И выводит показания в консоль. Выглядит это следующим образом:
Программа сканирования шины i2c.
Теперь давайте просканируем шину i2c. Для этого напишем следующую программу.
from machine import Pin, I2C i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=200000) print("I2C Address : " + hex(i2c.scan()[0]).upper())
Скачать i2c сканнер можно тут: https://disk.yandex.ru/d/MeNGMgjgHTn81A
Здесь объявляем пины scl=9 пин sda=8 пин. Ну и следовательно SDA и SCL устройства нужно подключать к этим пинам.
Важно! Чтоб программа заработала корректно и не выдавала ошибок. К Raspberry pi pico должно быть подключено устройство i2c. Если ничего не подключено то выдаст ошибку.
Ну и адрес выведется в hex формате в консоль.
Программа вывода изображения на oled дисплей.
Дисплей можно приобрести тут: http://ali.pub/5h3qke
Ну после того как мы научились сканировать шину i2c давайте подключим oled дисплей i2c. И выведем на него надписи и небольшой логотип малинки.
Здесь для работы нам понадобится библиотека SSD1306.
Устанавливается библиотека следующим образом.
Скопируем код со страницы проекта библиотеки ssd1306: https://github.com/micropython/micropython/blob/master/drivers/display/ssd1306.py
Вставим его в программу Thonny. И сохраним в pico под именем ssd1306.py
После сохранения библиотеки. Можно написать программу. Она выглядит следующим образом:
# Display Image & text on I2C driven ssd1306 OLED display from machine import Pin, I2C from ssd1306 import SSD1306_I2C import framebuf import utime WIDTH = 128 # oled display width HEIGHT = 64 # oled display height i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=200000) # Init I2C using pins GP8 & GP9 (default I2C0 pins) print("I2C Address : "+hex(i2c.scan()[0]).upper()) # Display device address print("I2C Configuration: "+str(i2c)) # Display I2C config oled = SSD1306_I2C(WIDTH, HEIGHT, i2c) # Init oled display # Raspberry Pi logo as 32x32 bytearray buffer = bytearray(b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|?\x00\x01\x86@\x80\x01\x01\x80\x80\x01\x11\x88\x80\x01\x05\xa0\x80\x00\x83\xc1\x00\x00C\xe3\x00\x00~\xfc\x00\x00L'\x00\x00\x9c\x11\x00\x00\xbf\xfd\x00\x00\xe1\x87\x00\x01\xc1\x83\x80\x02A\x82@\x02A\x82@\x02\xc1\xc2@\x02\xf6>\xc0\x01\xfc=\x80\x01\x18\x18\x80\x01\x88\x10\x80\x00\x8c!\x00\x00\x87\xf1\x00\x00\x7f\xf6\x00\x008\x1c\x00\x00\x0c \x00\x00\x03\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00") # Load the raspberry pi logo into the framebuffer (the image is 32x32) fb = framebuf.FrameBuffer(buffer, 32, 32, framebuf.MONO_HLSB) while True: # Clear the oled display in case it has junk on it. oled.fill(0) # Blit the image from the framebuffer to the oled display oled.blit(fb, 96, 0) # Add some text oled.text(upavla,5,8) oled.text("Raspberry pi",5,18) oled.text("pico",5,40) # Finally update the oled display so the image & text is displayed oled.show() utime.sleep(1)
Скачать программу можно по ссылке: https://disk.yandex.ru/d/V-qmgjZYuLGKOw
Данная программа выводит Текст и логотип Raspberry pi на Oled дисплей.
Также данные действия я все повторил в видео: