Мобильная версия Форум Arduino Документация Гарантийные условия 0 0
UA RU
График работы магазина:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Вс: выходной
Каталог
Напиши статью и получи скидку!

Знайомство з Raspberry Pi Pico

2021-03-14

Все статьи →

Вступ

В цьому уроці ми підключимо Raspberry Pi Pico до вашого компьютера та дізнаємось як запрограмувати його за допомогою MicroPython.

Raspberry Pi Pico це бюджетна плата з потужним мікроконтролером на борту, вона значно перевищє по потужності звичайні плати Ардуіно, але майже наближається до них по вартості. Мікроконтролер це маленький комп'ютер, але з невеликою кількістю пам’яті та обмеженими можливостями підключення периферії (наприклад клавіатури або монітора).

Raspberry Pi Pico має GPIO виводи, так само як і інші Raspberry Pi комп’ютери, що дає можливість використовувати його для управління іншими пристроями та отримання даних від датчиків.

Мета

Почнемо з простого - підключимо Raspberry Pi Pico до компьютера, встановимо середовище розробки Thonny Python IDE та напишемо просту програмку на мові MicroPython, яка буде блимати світлодіодом, який встановлений на платі. Після цього розглянемо ще декілька простих прикладів по роботі з ШІМ та аналоговими входами. Після цьго уроку у вас буде все готово для подальшого заглиблення в роботу з Raspberry Pi Pico та створення більш складних проектів.

Що нам знадобиться:

Чому ми навчимося:

  • як завантажити прошивку MicroPython в Raspberry Pi Pico
  • яз запрограмувати Raspberry Pi Pico за допомогою MicroPython
  • як підключити додаткові компоненти до Raspberry Pi Pico та написати програму на MicroPython для взаємодії з ними

Зустрчайте Raspberry Pi Pico

Отже почнемо. Якщо ваша плата Raspberry Pi Pico ще немає запаяних конекторів саме час їх запаяти. Після цього встановіть вашу Raspberry Pi Pico на макетну плату, так, щоб два ряди конекторів були по різні сторони від центральної канавки макетної плати:

встановлення Raspberry Pi Pico

Тепер підключіть кабель мікро-USB до Raspberry Pi Pico

підключення Raspberry Pi Pico до компьютера

А ось ознайомча діаграма усіх виводів Raspberry Pi Pico.

виводи Raspberry Pi Pico

Встановлення Thonny

На цьому кроці ми встановимо Thonny, або, якщо він вже встановлений впевнимось, що ви маєте останню версію. Після цього ми підключимо Raspberry Pi Pico та запустимо простий коді на Python за допомогою командного рядка.

Thonny на Raspberry Pi

Якщо в якості компьютера ви використовуєте Raspberry Pi, то Thonny вже встановлений на Raspberry Pi OS, але можливо вам знадобиться оновитися до останньої версії. Відкрийте термінал (або натиснувши на відповідну іконку у верхньому лівому кутку екрану, або натиснувши Ctrl+Alt+T на клавіатурі). В терміналі введіть наступну команду для оновлення вашої операційної системи та Thonny

sudo apt update && sudo apt upgrade -y

Thonny на інших операційних системах

Для інших операційних систем (Windows, macOS та Linux) відкрийте ваш улюблений браузер та перейдіть за адресою thonny.org. В правому верхньому кутку ви побачите посилання для скачування, виберіть посилання для вашої операційної системи, скачайте та запустіть інсталяційний файл Thonny.

як завантажити Thonny

Після встановлення запустіть редактор Thonny, він має виглядати приблизно так:

редактор Thonny

Тепер можна спробувати написати стандартний код на Python. Вбийте в головному вікні наступну команду і натисніть кнопку Run (Thonny запропонує зберегти файл).

print('Hello World!')

Тепер ми готові перейти до наступного кроку і підключитись до нашої Raspberry Pi Pico

Встановимо прошивку MicroPython в Raspberry Pi Pico

Якщо раніше ви ніколи не використовували MicroPython на вашій Raspberry Pi Pico вам знадобиться встановити в неї прошивку MicroPython.

Знайдіть кнопку BOOTSEL на вашій Raspberry Pi Pico

кнопку BOOTSEL на Raspberry Pi Pico

Натисніть кнопку BOOTSEL та утримуйте її доки підключаєте інший кінець кабелю мікро-USB до вашого компьютера. На картинці знизу зображено як підключатись до Raspberry Pi, якщо у вас звичайний комп'ютер просто встроміть кабель у вільний USB роз'єм.

У такий спосіб ви переведете ваш Raspberry Pi Pico у режим флешки.

В нижньому правому кутку вікна Thonny ви можете бачити версію Python, яка наразі використовується.

версія Пайтону

Натисніть на неї і виберіть MicroPython (Raspberry Pi Pico):

вибір версії MicroPython Raspberry Pi Pico

Якщо ви не бачите цієї опції перевірте чи підключили ви вашу Raspberry Pi Pico до цього компьютера.

Після вибору версії MicroPython ви побачите діалогове вікно, яке запропонує вам встановити останню версію прошивки MicroPython на вашу Raspberry Pi Pico.

встановлення MicroPython на Raspberry Pi Пико

Натисніть кнопку Install після чого почнеться встановлення прошивки на вашу Raspberry Pi Pico.

В подальшому відкрити це діалогове вікно можливо, якщо натиснути на MicroPython (Raspberry Pi Pico) в рядку статусу і обрати 'Configure interpreter …'.

відкриття діалогового вікна Распбері Пі Піко

Відкриється вікно з налаштуваннями інтерпретатора:

налаштування MicroPython

Натисніть на Install or update firmware
Вам буде запропоновано підключити вашу Raspberry Pi Pico з натиснутою кнопкою BOOTSEL

завантаження Raspberry Pi Pico в режимы Bootsel

Натисніть Install

інсталяція MicroPython на Raspberri Pi Pico

Дочекайтеся доки встановлення завершиться і натисніть Close.

Вам не потрібно встановлювати прошивку при кожному використанні Raspberry Pi Pico. Наступного разу просто підключіть її до вашого комп'ютера без необхідності затискання BOOTSEL.

Використання оболонки

На цьому кроці ми будемо використовувати командний рядок Thonny для запуску простого коду написанному на мові Python на нашій Raspberry Pi Pico.
Впевніться що ваша Raspberry Pi Pico підключена до комп'ютера і ви обрали MicroPython (Raspberry Pi Pico) в якості інтерпретатора.
Подивіться на Shell-панель у нижній частині редактора Thonny, ви маєте бачити щось на зразок цього:

Shell панель Thonny

Наразі Thonny готовий для комунікації з вашою Raspberry Pi Pico за допомогою REPL (read–eval–print loop), який дозволяє друкувати команди Python в командному рядку і бачити результат

Спробуйте ввести наступну команду:

print("Hello")

і натисніть Enter, ви побачите результат роботи команди:

MicroPython Hello world

MicroPython має апаратно-залежні модулі, такі як machine, які можуть бути використані для програмування вашої Raspberry Pi Pico.
Давайте зробимо machine.Pin об'єкт, який буде відповідати за доступ до виводу GPIO 25, на якому розташований вбудований світлодіод.

Якщо встановити значення цього виводу в 1, то світлодіод загориться.

Спробуйте набрати наступний код, не забувайте натискати Enter після кожного рядка

from machine import Pin

led = Pin(25, Pin.OUT)

led.value(1)

Ви побачите, що світлодіод загорівся

світлодіод Raspberry Pi Pico

Встановіть значення у 0 і світлодіод погасне:

led.value(0)

Спробуйте самостійно ще раз увімкнути, а потім вимкнути його. Порада: ви можете використовувати стрілки на клавіатурі для швидкого доступу до попередніх команд

Блимання світлодіодом

Командний рядок зручний для перевірки або тестування нових команд, але для більш складних програм краще зберігати програму у файлі. Thonny дозволяє зберігати і запускати програми MicroPython напряму з Raspberry Pi Pico.
На цьому кроці ми напишемо просту програму, яка буде блимати світлодіодом у нескінченному циклі.

Перейдіть у головну панель редактора Thonny та вбийте наступний код, який буде переключати світлодіод:

from machine import Pin

led = Pin(25, Pin.OUT)

led.toggle()

Натисніть кнопку Run для запуску вашого коду. Thonny запитає вас чи хочете ви зберегти файл на ваш комп'ютер, або на MicroPython пристрій. Виберіть пристрій MicroPython.

куди зберігати програму

Введіть blink.py в якості імені файлу.

Порада: вам необхідно вказувати .py в якості розширення файлу, щоб Thonny розумів, що це програма на мові Python.

Thonny збереже вашу програму на Raspberry Pi Pico і запустить її. Тепер ви можете бачити, що світлодіод вмикається і вимикається кожного разу, як ви натискаєте кнопку Run.

Підемо далі - будемо використовувати модуль Timer для запуску таймеру, який буде запускати функцію через рівні інтервали.

Обновіть код вашої програми наступним чином:

from machine import Pin, Timer

led = Pin(25, Pin.OUT)

timer = Timer()

def blink(timer):

led.toggle()

timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)

Натисніть Run і ваша програма буде по черзі вмикати і вимикати світлодіод аж доки ви не натиснете кнопку Stop

Використання цифрових входів та виходів

Тепер, коли ми вивчили базові речи, давайте спробуємо контролювати зовнішній світлодіод вашою Raspberry Pi Pico та отримувати вхідні дані від кнопки.

Використовуйте резистор спротивом від 50 до 330 Ом, світлодіод та пару перемичок мама-мама для підключення до вашої Raspberry Pi Pico, як показано на малюнку:

підключення зовнішнього світлодіоду

На цьому прикладі світлодіод підключений до виводу 15. Якщо ви хочете використати інший вивід подивіться його номер на малюнку з діаграмою всіх виводів Raspberry Pi Pico на початку цієї статті.

Використаємо той самий код, який блимав світлодіодом розташованим на платі, але змінимо номер виводу на 15:

from machine import Pin, Timer

led = Pin(15, Pin.OUT)

timer = Timer()

def blink(timer):

led.toggle()

timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)

Запустіть вашу програму і світлодіод почне блимати. Якщо ні - перевірте схему підключення, щоб впевнитись, що все правильно.
Тепер давайте спробуємо контролювати світлодіод кнопкою.

Встановіть кнопку на вашу макетну плату як зазначено на схемі:

підключення кнопки до Raspberry Pi Pico

Кнопка підключена до виводу 14 і до напруги 3.3В на вашій Raspberry Pi Pico. Це означає, що коли ми будемо налаштовувати цей вивід, нам необхідно сказати MicroPython, що він буде працювати на вхід і буде притягнутий до землі (pull down).

Створіть новий файл і додайте в нього наступний код:

from machine import Pin

import time

led = Pin(15, Pin.OUT)

button = Pin(14, Pin.IN, Pin.PULL_DOWN)

while True:

if button.value():

led.toggle()

time.sleep(0.5)

Запустіть свій код кнопокю Run, і тепер, якщо ви натиснете на кнопку стан світлодіоду зміниться, а якщо ви затиснете кнопку світлодіод почне блимати.

Управління яскравістю світлодіоду за допомогою ШІМ

ШІМ або широтно-імпульсна модуляція це спосіб емулювати аналогову поведінку на цифрових пристроях, якими є світлодіоди. Це означає, що замість простого вмикання і вимикання світлодіоду ми можемо управляти його яскравістю.

Для цього прикладу ми будемо використовувати схему з попереднього кроку.

Відкрийте новий файл в Thonny і додайте в нього наступний код:

from machine import Pin, PWM

from time import sleep

pwm = PWM(Pin(15))

pwm.freq(1000)

while True:

for duty in range(65025):

pwm.duty_u16(duty)

sleep(0.0001)

for duty in range(65025, 0, -1):

pwm.duty_u16(duty)

sleep(0.0001)

Збережіть та запустіть файл. Ви побачите, що світлодіод плавно розгоряється, а потім гасне і так по колу.

Частота (pwm.freq) вказує Raspberry Pi Pico як часто треба вмикати і вимикати живлення на світлодіоді, а робочий цикл вказує, як довго світлодіод має бути в тому чи іншому стані. Для Raspberry Pi Pico MicroPython, це значення може коливатись від 0 до 65025. 65025 означає 100% часу, таким чином світлодіод буде горіти. Значення 32512 означає, що живлення буде подаватись приблизно половину цього часу. Ви можете погратися зі значеннями pwm.freq() та pwm.duty_u16, щоб міняти яскравість і темп горіння світлодіоду.

Управління світлодіодом за допомогою аналогового вводу

Ваша Raspberry Pi Pico має вхідні виводи, які можуть сприймати аналогові сигнали. Це означає, що замість отримання на вході просто 0 або 1 ви можете зчитувати значення між ними. Потенціометр добре підійде в якості аналогового пристрою.

Замість кнопки підключіть потенціометр як показано на діаграмі:

підключення потенціометру до Raspberry Pi Pico

Спочатку ми прочитаємо значення потенціометру. Додайте цей код в новий файл Thonny і запустіть його:

from machine import ADC, Pin

import time

adc = ADC(Pin(26))

while True:

print(adc.read_u16())

time.sleep(1)

Покрутіть ручкою потенціометра, щоб побачити його мінімальні та максимальні показники. Вони мають бути приблизно біля 0 та 65025 відповідно.

Тепер ми можем використовувати ці значення щоб міняти робочий цикл ШІМ для нашого світлодіоду. Змініть програму як зазначено нижче. Коли ви запустите її покрутіть потенціометр, щоб змінити яскравість світлодіоду.

from machine import Pin, PWM, ADC

pwm = PWM(Pin(15))

adc = ADC(Pin(26))

pwm.freq(1000)

while True:

duty = adc.read_u16()

pwm.duty_u16(duty)

Підключимо живлення до нашого Raspberry Pi Pico

Якщо ви хочете запускати ваш Raspberry Pi Pico без підключення до комп'ютеру необхідно використовувати блок живлення USB. Безпечна напруга становить від 1.8 до 5.5В. Щоб автоматично запустити програму на MicroPython збережіть її на вашій Raspberry Pi Pico у файл з ім'ям main.py

В редакторі Thonny натисніть меню File та Save. У вікні, яке з'явиться виберіть 'MicroPython device'. Введіть ім'я main.py
Тепер ви можете від'єднати вашу Raspberry Pi Pico від комп'ютера і використати кабель мікро USB, щоб підключитись до блока живлення. Після того, як джерело живлення буде підключено автоматично почне виконуватись программа з файлу main.py.

Що далі?

Спробуйте підключити інші компоненти до вашої Raspberry Pi Pico, такі як динамік, датчик світла або контролер мотору.

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Общая оценка:

Оценка "Знайомство з Raspberry Pi Pico"
5 из 5
сделана на основе 10 оценок 10 клиентских отзывов.

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Тарас
13.10.2022 16:25:57
Драйвер под COM port в W7 волучилось поставить, но Tonny не видит Pico
Taras
16.09.2022 18:59:17
Драйвер под COM port в W7 получилось поставить с прошивкой под Micro Python - в системе обнаружилось устройство CDC и zabig поставил дрова под Pico
Вадим
10.02.2022 09:10:05
Исправлюсь,все же смогут владельцы новой винды пользоватся,надо(кто бы мог подумать) установить драйвер с помощью zadig и после,в ней же,установить из списка драйвер board cdc
Ivan
30.12.2021 15:33:52
Вы с начало скажите что нужно подключить библиотеку
Вадим
25.05.2021 23:10:00
автор забыл добавить что владельцы win7 и win8(на 10 не проверял) не смогут юзать микропитон,только circuit и то после установки адафрюитовских драйверов ,я так понял полноценно пользоватся могут только линуксоиды
Андрей
28.03.2021 22:44:04
Проверил осциллографом скважность ШИМ сигнала. При значении 65025 ШИМ не достигает 100% заполненности.При приближении значения к 65535, скважность увеличивается, а при достижении - ШИМ превращается в постоянное напряжение (скважность - 100%).Так что, у Pico полноценное 16 битное разрешение ШИМ сигнала.Другое дело, что яркость светодиода, что при 65025, что при 65535 на глаз незаметна.
admin
23.03.2021 18:53:09
65025 тому що рахується і 0. Тобто не 256*256, а 255*255
Андрей
20.03.2021 01:43:33
Уже не на первом ресурсе натыкаюсь, но объяснения так и не нашел. Почему 65025? Откуда взялось это число?16 бит = 65535.15 бит = 32767.
Константин
17.03.2021 10:55:22
Гарна стаття
Сергей
16.03.2021 14:57:19
Статья очень полезная для знакомства с Raspberry Pi Pico. Можно точно также оформить статью для Visual Studio для языка Си?
оплата картами Visa и MasterCard