Raspberry Pi Pico-Микроконтроллер с чипом RP2040 , Flash 1мб и с отсутствием EEPROM
Как загрузить MicroPython/CircuitPython на нее:
1.Зажмите кнопку BOOTSEL на Pico
2.Вставьте провод в ПК
3.Вставьте провод в плату
4.Отпустите кнопку
Pico откроется как диск и будет ждать пока вы скинете на нее .uf2 файл
cсылки для скачивания интерпретаторов .uf2
MicroPython (легок в использовании , отсутвуют библиотеки для работы с встроенным USB):
CircuitPython(чуть труднее, написан известным AdaFruit)
Cкачиваете .uf2 (любой)
После просто перекидываете его в диск RPI-PICO или как он там у вас высветился 🙂
Pico готова , а теперь установим IDE Thonny для работы с платой
Думаю вы справитесь с установкой программы ,там ничего сложного
Теперь нужно настроить IDE для работы с платой
Заходим в Инструменты>Параметры
Выбирайте плату и .uf2 который вы устновили
Если у вас MicroPython то выбирайте 6-й пункт (снизу вверх)
Все готово! Создаем свою первую программу «Blink»
MicroPython:
from machine import Pin
import time
led = Pin(25, Pin.OUT)
while True:
led.toggle()
time.sleep(1)
СircuitPython:
import time
import board
import digitalio
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)
Cветодиод на плате должен заморгать
Если что-то не работает , пишите коды ошибок в комментарии 🙂
Теперь чуть более сложный проект (Работает только с CircuitPython)
«Управление треком через внешнюю кнопку»
Для начала скачайте библиотеки
Кликаете и скачиваете ее
После переходите к папке
C:\Users\{Пользователь}\AppData\Roaming\Thonny\plugins\Python310\site-packages
Ищете тут adafruit_hid
и скопируйте ее в Pico
asyncio в частности уже есть в папке site-packages
но если ее нет то вот ссылка
А также нужен adafruit_ticks
он тоже есть
Скачиваем и кидаем их в папку lib платы
самое сложное завершено вот код:
import usb_hid
from adafruit_hid.consumer_control import ConsumerControl
from adafruit_hid.consumer_control_code import ConsumerControlCode
import board
from digitalio import DigitalInOut, Direction, Pull
import digitalio
import asyncio
b1 = DigitalInOut(board.GP5) #любой пин кнопки к GP5 другой к ближайшему GND
b1.direction = Direction.INPUT
b1.pull = Pull.UP
cc = ConsumerControl(usb_hid.devices)
async def main():
while True:
if not b1.value:
print(«Следующий трек!!»)
cc.send(ConsumerControlCode.SCAN_NEXT_TRACK)
await asyncio.sleep(0.29) #Ждем когда кнопка разожмется
await asyncio.sleep(0.05)
asyncio.run(main())
Припаиваем кнопку к GP5 и к ближайшему GND
Работа кода:
Все работает
Готовый «Проект» cо всеми библиотеками и кодом :
Надеюсь мой гайд кому-то помог , если есть желание плюсните статью 🙂
Ссылки
Файлы:
GitHub: (там пока-что ничего дельного нет)



