Одноплатні комп’ютери Raspberry Pi Pico W

01.10.2024 |

У статті наведена коротка інформація про модуль Raspberry Pi Pico W призначений для використання у вбудованих системах Інтернету речей. Наведені основні характери­стики модуля та наведені рекомендації з його програмування.

В. Макаренко

Одноплатні комп’ютери все частіше використо­вуються в промислових проектах і в Інтернеті речей [1]. Як показують звіти дистриб’юторів, половина опитаних професійних інженерів використовують одноплатні комп’ютери (SBC, Single-Board Compu­ter) в промислових виробах і пристроях Інтернету речей (ІоТ). Найпопулярнішою платою є Raspberry Pi, якій віддають перевагу 44% професійних кори­стувачів. Друге місце зайняв Arduino (28 відсотків), а на третьому місці з 6 відсотками знаходиться плата Beagleboard, підтримувана Texas Instru­ments.

SBC використовуються на всіх етапах розробки і виробництва продукції, причому, як і слід було очі­кувати, 23% респондентів використовують їх для підтвердження концепції, а 35% — для створення прототипів. Хоча плати також використовувалися в дрібносерійному виробництві, опитування показа­ло, що 22% встановлюють недорогі SBC у вироб­ничому обладнанні; при цьому близько 20% такої продукції випускається в обсягах від 5 тис. або більше на рік, а 20% використовується для розроб­ки випробувального обладнання та тестування.

Глобальне опитування проводилося з березня по травень 2021 року і зібрало майже 1500 відпові­дей від професійних інженерів, розробників і ви­робників, які працюють над рішеннями в області SBC. Три чверті респондентів були професійними користувачами, а лише чверть-любителями. Пи­тання формулювалися таким чином, щоб зрозумі­ти, як популярні SBC від деяких провідних світових виробників використовуються в професійних про­дуктах і проектах.

Близько 24% професіоналів створюють власні плати для використання з SBC, демонструючи пе­реваги стандартної обчислювальної платформи з користувацькими інтерфейсами вводу-виводу у багатьох додатках.

Однак лише 20% інженерів зараз використовують штучний інтелект (AI) та машинне навчання у своїх додатках на SBC, що може бути пов’язано з обмеженою продуктивністю плат. Найбільш поши­реними побажаннями розробників до виробників SBC є підвищення продуктивності при вирішенні завдань AI і збільшення обсягу пам’яті.

Найпопулярнішим аксесуаром на сьогоднішній день, безумовно, є сенсорні екрани, проте також користуються попитом камери і комплекти для до­даткового живлення від акумуляторів або сонячних батарей.

Використовувати плати, адаптовані до конкрет­ного додатка, з більшою ймовірністю будуть про­фесійні користувачі, ніж любителі. «Це дослідження чітко демонструє широке поширення SBC серед ін­женерів, які створюють комерційні, loT та проми­слові програми. Успіх Raspberry Pi та Arduino зу­мовлений потужним поєднанням високої продук­тивності, універсальності, функцій та аксесуарів, низької вартості та великої активної спільноти ко­ристувачів, що робить ці платформи дуже приваб­ливими для інженерів, які прагнуть швидко розроб­ляти та впроваджувати у виробництво широкий спектр додатків. Використання SBC в прототипах надає інженерам можливості значного зниження витрат і набагато більш швидкого виведення нових продуктів на ринок», — сказав Ромен Соро (Romain Soreau), керівник відділу одноплатних обчислю­вальних пристроїв компанії Farnell.

На сьогоднішній день Farnell продала понад 15 мільйонів одиниць і пропонує повний асортимент одноплатних комп’ютерів Raspberry Pi, включаючи випущений у 2020 році Raspberry Pi Pico на базі процесора RP2040 (рис. 1), а також аксесуари, включаючи чохли, блоки живлення, кабелі micro­HDMI та камери високої чіткості Raspberry Pi.

Рис. 1. Одноплатний компютер Raspberry Pi Pico

Компанія Raspberry Pi активізувала розробку своїх чіпів, випустивши чотирьохядерний мікро- контролер з двома ядрами ARM Cortex-M33 і двома власними ядрами RISC-V. Планується до випуску плата Raspberry Pi Pico 2, що використовує мікро- контролер RISC-V RP2350, а безпроводову версію Pico 2 W з модемом від Infineon Technologies.

Процесор RP2350 вдвічі більший за розміром, має більш високу тактову частоту ядра (150 МГц), вдвічі більший обсяг пам’яті (520 кбайт SRAM в де­сяти банках) і нові функції безпеки в порівнянні з RP2040, випущеним більше трьох років тому, з дво­ма ядрами M0+. Розмір матриці становить 5.3 мм2 проти 2 мм2 у RP2040, але найкомпактніша версія RP2350A буде всього на десять центів дорожче і буде коштувати 0.80 долара за 3400 одиниць або 1.1 долара за одиницю продукції.

Крім ядер M33, в RP2350 додані два ядра RISC- V, які можуть бути виділені під час завантаження. Завантажувальний ПЗП автоматично визначає ар­хітектуру для двійкового файлу другого рівня та пе- резавантажує чіп у відповідний режим.

На відміну від одного варіанту корпусу QFN56 розміром 7×7 мм для RP2040, RP2350 випускаєть­ся у корпусі QFN60 розміром 7×7 мм (RP2350A) з роздільною здатністю 30 точок на дюйм або корпу­сі QFN80 розміром 10×10 мм (RP2350B) з розділь­ною здатністю 48 точок на дюйм, а також варіанти з 2 МБ вбудованою захищеною flash-пам’яттю QSPI (RP2354A і RP2354B).

Pico 2 і RP2350 підтримуються оновленою вер­сією Pico SDK, а також новими образами MicroPy­thon і CircuitPython. Метою проекту Trusted Firmware є створення RP2350 як еталонної апарат­ної платформи для випуску довгострокової підт­римки Trusted Firmware-M 2.1.0, а TF-M надає ета­лонну реалізацію для сертифікованих чіпів Arm V8-M, надаючи розробникам простий спосіб захисти­ти пристрої від поширених атак.

Розглянемо основні особливості Raspberry Pi Pico W [2] з вбудованим модулем Wi-Fi (рис. 2). На рис. 3 наведено розташування виводів плати Rasp­berry Pi Pico W [3].

Основні характеристики Raspberry Pi Pico W:

  • 32-розрядний двоядерний процесор Rp2040 Cortex-M0 + з частотою 133 МГц
  • 2 МБ флеш-пам’яті Q-SPI
  • 264КБ SRAM-пам’яті
  • 26 GPIO (сумісність з +3.3 В)
  • вбудований 12-розрядний АЦП
  • прискорені вбудовані бібліотеки обчислень з плаваючою комою
  • вбудований односмуговий чіп InfineonCYW43439 (безпроводовий інтерфейс 2,4 ГГц (802.11 b/g/n) та Bluetooth® 4
  • послідовний порт налагодження (SWD)
  • порт Micro-USB (USB1) для живлення (+5 В) і даних
  • 2 х UART, 2 х I2C, 2 х інтерфейс шини SPI
  • 16 каналів ШІМ
  • 1х таймер (з 4 будильниками), 1х лічильник реального часу
  • бортовий датчик температури
  • вбудований світлодіод на GPIO, керований модулем 43439
  • зазубрений модуль, що дозволяє припаювати безпосередньо до плат
  • 8 програмованих кінцевих автоматів вводу- виводу (PIO)
  • програмування на MicroPython, C, C++
  • швидке програмування через USB
  • номінальна напруга VBUS +5 В ±10 %
  • діапзон напруги VSYSвід +1.8 В до +5.5 В
  • діапазон робочих температур від -20 до + 85 °C.

Вбудовану 2 Мбайт Q-SPI-флеш-пам’ять можна перепрограмувати або за допомогою послідовного порту налагодження, або за допомогою спеці­ального USB-порту.

Рис. 2. Одноплатний компютер Raspberry Pi Pico W

Найпростіший спосіб перепрограмувати флеш- пам’ять Pico — це використовувати USB. Для цього потрібно вимкнути живлення плати і потім, утри­муючи кнопку BOOTSEL (біла кнопка на рис. 2) включити живлення плати. Після цього Pico буде ві­дображатися як USB-накопичувач. Перетягування спеціального файлу ‘.uf2’ на диск призведе до за­пису цього файлу на флешку та перезапуску Pico. Завантажувальний код USB зберігається в ПЗП (ROM) RP2040, тому його неможливо випадково перезаписати.

Плата сумісна з макетною платою (тобто від­стань між контактами 0,1 дюйма), і після пайки кон­тактів плату можна підключити до макетній платі для простого підключення до контактів GPIO за до­помогою перемичок.

На одному краю плати знаходиться порт microUSB для подачі живлення на плату і для програму­вання плати. Поруч з USB-портом знаходиться вбу­дований спеціальний світлодіод, який можна вико­ристовувати під час розробки програм. Поруч із цим світлодіодом знаходиться кнопка BOOTSEL (рис. 2), яка використовується під час програму­вання мікроконтролера. Поруч з чіпом процесора є 3 отвори, до яких можна зробити зовнішні підклю­чення. Вони використовуються для налагодження програм за допомогою Serial Wire Debug (SWD). На іншому краю плати знаходиться однодіапазонний модуль Wi-Fi 2,4 ГГц (802.11n). Поруч з модулем Wi-Fi розташована бортова антена.

На рис. 2 наведено вид ззаду апаратного моду­ля Pico. На рис. 2 і 3 всі контакти GPI позначені бук­вами і цифрами:

  • GND- загальний джерела живлення (цифро­вий загальний)
  • AGND- загальний джерела живлення (анало­говий загальний)
  • 3V3 — живлення +3,3 В (вихід)
  • GP0 — GP22 — цифрові виводи GPIO
  • GP26_A0 — GP28_A2 — аналогові входи
  • ADC_VREF — опорна напруга АЦП
  • TP1 — TP6 — контрольні точки
  • SWDIO, GND, SWCLK — інтерфейс налагод­ження
  • RUN- вивід RUNза замовчуванням, низький рівень для скидання
  • 3V3_EN- за замовчуванням включає живлен­ня +3,3 В (живлення можна відключити, підключив­ши цей контакт до загального)
  • VSYS- вхідна напруга системи (від 1.8 В до 5.5 В), для створення живлення +3.3 В для плати
  • VBUS- вхідна напруга micro-USB(+5 В).

Деякі контакти GPIO використовуються для внутрішніх функцій плати:

  • GP29 (input) — використовується в режимі АЦП (ADC3) для вимірювання VSYS/ 3
  • GP24 (input) — вхід) якщо рівень VBUSsenseвисокий, якщо VBUSприсутній, інакше низький
  • GP23 (output) — управляє виводом енергозбе­реження SMPS.

Рис. 3. Розташування виводів плати Raspberry Pi Pico

Вбудований імпульсний DC/DC-перетворювач +3.3 В використовується для живлення RP2040 в діапазоні вхідної напруги від 1.8 В до +5.5 В. На­приклад, 3 лужні батареї типу АА можуть викори­стовуватися для забезпечення +4,5 В для живлен­ня Pico.

Піко може живитися кількома способами. Най­простіший спосіб-використовувати USB-порт комп’ютера або адаптер живлення + 5 В. Треба по­дати живлення на вхід VSYS (рис. 4) через діод Шотткі. Напруга на вході VSYS буде дорівнювати напрузі VBUS за вирахуванням падіння напруги на діоді Шотткі (близько 0.7 В). Виводи VBUS і VSYS можуть бути замкнені, якщо плата живиться від зовнішнього USB-порту +5 В. Напруга VSYS пода­ється на SMPS через DC/DC-перетворювач RT6150, який формує фіксовану напругу +3.3 В для живлення процесора та інших частин плати. Напру­га VSYS ділиться на три і доступна через аналого­вий вхідний порт GPIO29 (ADC3), який легко конт­ролювати. GPIO24 перевіряє наявність напруги VBUS і має високий логічний рівень, якщо напруга VBUS присутня.

Рис. 4. Підключення зовнішнього джерела живлення

 

На рис. 5 наведена принципова схема кола жив­лення модуля.

Рис. 5. Принципова схема кола живлення модуля Raspberry Pi Pico

На рис. 6 наведена спрощена структура апарат­ного модуля Pico. Треба звернути увагу, що контак­ти GPIO безпосередньо підключені від мікросхеми процесора до роз’єму GPIO. GPIO26-28 можна ви­користовувати або як цифровий GPIO, або як вхід АЦП. Входи АЦП GPIO26-29 мають зворотні діоди на 3 В, тому вхідна напруга не повинна перевищу­вати 3.6 В.

Рис. 6. Спрощена структура апаратного модуля Raspberry Pi Pico

 

Програмування Raspberry Pi Pico W

Хоча Raspberry Pi Pico за замовчуванням на­лаштований для використання з потужними і по­пулярними мовами C / C++, багатьом новачкам простіше використовувати MicroPython-версіюмови програмування Python, розроблену спеці­ально для мікроконтролерів.

Перед використанням плати потрібно встано­вити MicroPython на Raspberry Pi Pico W. Після встановлення MicroPython залишається на Pico, поки він не буде перезаписаний чимось іншим [4, 5]. Для встановлення MicroPython потрібне підклю­чення до Інтернету, і це потрібно лише один раз. Це можна зробити або за допомогою Raspberry Pi (на­приклад, Raspberry Pi 4), або за допомогою ПК. За­вантажити MicroPython можна за посиланням [6].

Для встановлення MicroPython потрібно:

  • натиснути і утримувати кнопку BOOTSELна платі Pico
  • підключити Picoдо порту USBПК за допомо­гою кабелю micro-USB, утримуючи кнопку натисну- тою
  • зачекати кілька секунд і відпустити кнопку BOOTSEL(ви повинні побачити, що Picoвідобра­жається як знімний диск з ім’ям RPI-RP2)
  • перетягнути завантажений файл MicroPythonUF2 на дискг RPI-RP2 (RaspberryPiPicoперезаван- тажиться, і після цього можна використовувати Mi­croPythonна Pico.

Після вимикання програма залишається у флеш-пам’яті. У джерелах [4.6] рекомендується встановити текстовий редактор Thonny з вбудова­ним інтерпретатором Python на ПК [7]. Завантажи­ти останню портативну версію редактора можна за посиланням [8].

Після розпакування і запуску програми виво­диться вікно (рис. 7) у якому можна обрати мову ін­терфейсу.

Рис. 7. Вибір мови інтерфейсу при першому запуску редактора Thonny

Після вибору мови відкривається робоче вікно програми (рис. 8).

Рис. 8. Робоче вікно редактора Thonny

Для прикладу розглянемо просту програму об­числення середнього значення двох чисел (Average), що вводяться з клавіатури [10]. Результат ви­конання наведено на рис. 9.

Рис. 9. Результат виконання програми Average

Рис. 10. Результат виконання програми Average

 

Приклад 2: середнє значення 10 чисел, прочи­таних з клавіатури У цьому прикладі з клавіатури зчитуються 10 чисел і відображається їх середнє значення. Мета цього прикладу-показати, як мож­на побудувати цикл у Python.

Програма називається Average 10 [10], а лістинг програми і приклад запуску програми показані на рис. 10. У цій програмі будується цикл, який вико­нується від 0 до 9 (тобто 10 разів). Усередині цього циклу числа зчитуються з клавіатури, складаються один з одним і зберігаються в змінній sum. Потім обчислюється середнє значення і відображається шляхом ділення sum на 10. Зверніть увагу, що но­вий рядок не друкується після операторів друку, оскільки всередині оператора друку використову­ється опція end=».

В [10, 11] наведена велика кількість прикладів для першого знайомства з MicroPython.

Рис. 11. Схема підключення світлодіода до Raspberry Pi Pico

Розглянемо ще один приклад що демонструє як зовнішній світлодіод можна підключити до Pico.

Схема підключення світлодіода наведена на рис. 11.

На початку програми GP1 налаштований як вихід. Потім формується цикл while, який виконується до тих пір, поки користувач не зупинить його. Все­редині цього циклу світлодіод включається і вими­кається з затримкою в одну секунду (рис. 12).

Рис. 12. Лістинг програми та результат її виконання на ПЕ без підключеного модуля Raspberry Pi Pico

При відсутності зв’язку з Raspberry Pi Pico у вікні Асистент виводиться повідомлення про похибку. Тому при програмуванні потрібно мати підключений модуль для перевірки програми. Звісно, у рам­ках однієї статті розглянути всі аспекти роботи з модулем Raspberry Pi Pico неможливо. Більш де­тально з програмуванням на MicroPython з вели­кою кількістю прикладів можна ознайомитись у [10, 11].

ЛІТЕРАТУРА