Все о Raspberry Pi Pico

учебник по raspberry pi pico

Если вы хотите приобрести свой первый Raspberry Pi, Pico может стать очень привлекательным вариантом.

Но главный вопрос заключается в том, подходит ли вам Raspberry Pi Pico.

Есть много плюсов и минусов в покупке Raspberry Pi Pico, и важно понимать пословицу "лошади для курсов".

Содержание скрыть

Давайте рассмотрим Raspberry Pi Pico

Raspberry Pi Pico открывает новую страницу в линейке Raspberry Pi, поскольку это плата для разработки микроконтроллеров. Этим она отличается от остальных Raspberry Pi, которые являются микрокомпьютерами.

Он оснащен чипом RP2040, который был разработан компанией Raspberry Pi, и имеет следующие характеристики:

  • Двухъядерные процессорные ядра ARM Cortex M0+ (до 133 МГц)
  • 264K SRAM
  • Флэш-память 2 Мб

Raspberry Pi Pico отличается тем, что является высокопроизводительным микроконтроллером и имеет множество интересных применений.

За: Дешево и отлично подходит для начинающих

Мы продаем Raspberry Pi Pico за €4,10 это самый дешевый Raspberry Pi, который вы можете купить. На самом деле, если вы новичок в работе с Raspberry Pi Pico, вы можете получить полный комплект за €24,95 который включает в себя все необходимое для создания простых проектов.

Pro: Отлично подходит для приложений реального времени

Raspberry Pi Pico идеально подходит для проектов, где требуется точное время событий. Например, считывание показаний датчиков, управление двигателями и мониторинг задач.

Pro: аналоговые входы

Raspberry Pi Pico - это первый Raspberry Pi, который с завода оснащен аналоговыми входами.

Он оснащен в общей сложности 5 входами АЦП (аналого-цифровой преобразователь). Два из них используются Pico для внутреннего датчика температуры и для контроля напряжения.

Так как же наличие аналогового входа может принести вам пользу? Например, в одном из моих проектов потенциометр используется для регулирования частоты переключения реле. Таким образом, Raspberry Pi Pico сможет считывать значения с потенциометра и использовать их в программе, которую я загрузил на него.

Raspberry Pi Pico разрешает сигналы АЦП с разрядностью 12 бит, что лучше, чем 10-битный АЦП на Arduino Uno. Другие характеристики включают:

  • SAR АЦП (АЦП последовательного приближения)
  • 500 кС/с (с внешним тактовым генератором 48 МГц)
  • Интерфейс DMA на входах АЦП, который может обращаться к памяти без использования ЦП

Pro: программируемый ввод-вывод (PIO)

Это одна из самых крутых особенностей Raspberry Pi Pico, и именно она придает Pico динамизм, которого нет у некоторых других микроконтроллеров.

PIO - это аппаратный интерфейс, который может быть запрограммирован независимо от основных процессоров. Поэтому он может эмулировать множество различных интерфейсов:

  • Параллельный порт 8080 и 6800
  • I2C
  • 3 контакта I2S
  • SDIO (интерфейс SD-карты)
  • SPI, DSPI, QSPI
  • UART
  • DPI или VGA (через резисторную сеть / ЦАП)

PIO State Machines полностью программируются и предназначены исключительно для ввода-вывода. Особое внимание уделяется точной синхронизации. 

Например, интерфейс PIO можно использовать для стабильной и надежной настройки приложений, критичных ко времени (чувствительных ко времени), таких как управление светодиодными лентами. 

Pro: может выводить видео с модификацией

Вы видели пункт "DPI или VGA" в предыдущем разделе? Вы знаете, что это значит...

Да, Raspberry Pi может выводить видео, о чем большинство микроконтроллеров даже не мечтают.

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

Pro: помещается на макетной плате

raspberry pi pico на макетной плате

На Raspberry Pi Pico контакты находятся на двух противоположных сторонах Pi Pico, поэтому вы можете поместить Pi Pico прямо на макетную плату так, чтобы каждая сторона была включена через разделительный желоб.

Это облегчает создание прототипов, так как вам не нужно будет доставать провода "male-to-female" (или "male-to-male" в случае Arduino Uno) для подключения Pico к макетной плате.

Вы не сможете сделать это с другими Raspberry Pis, поскольку все их контакты сгруппированы вместе.

Pro: Самый маленький Raspberry Pi

сравнение raspberry pi pico
Слева по часовой стрелке: Raspberry Pi Pico, Raspberry Pi Zero 2, Raspberry Pi 4

Маленькая плата хороша тем, что ее легче разместить в ограниченном пространстве и легче монтировать. Допустим, вы хотите закрепить Raspberry Pi Pico на стене или в замкнутом пространстве: роботы, портативные устройства, часы и т.д.

Размеры Raspberry Pi Pico составляют 51 мм x 21 мм /Источник: Raspberry Pi

Плюсы: низкое энергопотребление

Я уже упоминал, что Raspberry Pi Pico имеет небольшие размеры и может поместиться в небольшом пространстве.

Замечательно то, что поскольку Pico потребляет энергию, вам не понадобится большой аккумулятор для его работы.

Я также упомянул, что он принимает широкий диапазон напряжений? Он может работать от 1,8 до 5,5 В, что очень удобно, поскольку вы можете использовать его от одной литиевой батареи (3,7 В) или от никелевых батарей, соединенных последовательно (1,2 В каждая).

Анализ Джои Кастильо показал, что эффективность buck-преобразователя Pico достигает пика при напряжении от 2,54 В до 3,2 В (эквивалентно 2 полностью заряженным аккумуляторам AA/щелочным батареям), если вы потребляете ток <=10 мА.

Однако при более высоких токах лучше использовать 3 батарейки типа АА или одну литиевую батарею.

Эта статистика может не соответствовать действительности для Pico W, поскольку в Pico W используется другой преобразователь. В Pico W используется RT6154 в то время как Pico использует RT6150. Нажмите на ссылки для просмотра соответствующих технических паспортов.

Вот график для конвертера Pico:

Нейтральный: Отсутствие поддержки Linux на Raspberry Pi Pico

Является ли это достоинством или недостатком Raspberry Pi Pico, зависит от вашего проекта. Отсутствие Linux означает, что ваши проекты загружаются быстрее, но в целом вы можете сделать больше, если у вас есть операционная система.

Что я имею в виду под более быстрой загрузкой? Ну, поскольку нет ОС для загрузки, ваш код будет загружаться практически в тот же момент, когда вы подключите питание к Pi Pico.

На любом другом Raspberry Pi пройдет гораздо больше времени, прежде чем вы увидите ответ.

Но, к сожалению, без ОС вы ограничены программированием на MicroPython или C, тогда как с ОС вы можете программировать на многих, многих других языках. Кроме того, вы можете играть в игры, работать в Интернете и пользоваться другими мультимедийными приложениями.

Нейтральный: Нет WiFi

Является ли это недостатком или нет, зависит от вашего проекта, но если вы разрабатываете проект, который требует проверки погоды или загрузки данных в Google Sheets, вы не сможете сделать это на Raspberry Pi Pico.

Справедливости ради следует отметить, что вы можете установить WiFi или Ethernet, используя детали послепродажного обслуживания, такие как приведенные ниже:

Нейтральный: Выходы GPIO 3,3 В

Является ли это плюсом или минусом, зависит от компонентов, к которым вы собираетесь подключать Raspberry Pi Pico.

Один из сценариев, когда я обнаружил, что 3,3 В является помехой, это когда я попытался использовать его с 5 В реле. Упс! Я не смог подать достаточное напряжение, чтобы реле переключилось.

Поэтому я перешел на Arduino Uno, чьи контакты GPIO выдают 5 В.

Альтернативой могло бы быть добавление компонентов к прототипу, чтобы можно было повысить напряжение 3,3 В, но зачем все усложнять, если я могу сделать это с помощью Arduino Uno?

Конечно, это лишь один из сценариев. Ваш пробег может варьироваться в зависимости от того, что вы делаете.

Использование Raspberry Pi Pico

Спектр применения Raspberry Pi Pico безграничен. Вы можете сделать что-то, что улучшит вашу жизнь, или сделать что-то просто для развлечения.

Микроконтроллер, читающий MicroPython (а не только C)

Если вы пользовались Arduino, то знаете, что программировать его нужно на языке C.

Однако, возможно, вам не нравится программировать на C. Возможно, вам больше подходит Python.

И если вы испытывали трудности с написанием кода на C на Arduino, хорошая новость заключается в том, что все, что может делать Arduino, Raspberry Pi Pico, скорее всего, сможет вписаться в ваш сценарий использования.

Так что отбросьте фигурные скобки и начните делать отступы в коде!

Работа от аккумулятора для длительного времени работы

Если вам нужно что-то, что потребляет как можно меньше энергии, то вам определенно лучше выбрать Raspberry Pi Pico, чем что-то более мощное, например, Raspberry Pi Zero.

Вот почему: вы можете использовать гораздо более широкий диапазон входного питания (от 1,8 В до 5,5 В), а поскольку Raspberry Pi Pico настолько эффективен, вы сможете получить гораздо большее время работы, чем если бы вы использовали микрокомпьютер типа Raspberry Pi Zero.

О, я уже упоминал, что Raspberry Pi Zero очень требователен к напряжению, которое вы ему подаете? Он принимает только 4,75 - 5,25 В.*

* По словам Арии, оставившей комментарий ниже, Raspberry Pi Zero может работать от одной литиевой батареи, если у вас нет периферийных устройств USB. Спасибо, Арья.

Макроклавиатуры, вращающиеся тумблеры и другие HID-устройства

Дон Хуи со своей макро-клавиатурой Discord, которая позволяет ему легко переключать регуляторы громкости / Источник: YouTube.

Raspberry Pi Pico можно использовать в качестве устройства взаимодействия с человеком (HID).

Но в отличие от старой скучной мыши или клавиатуры, Raspberry Pi Pico позволяет создать устройство, которое делает что-то нишевое и специфическое для вашего случая использования.

Таким образом, можно создавать макро-клавиатуры, которые набирают длинную строку нажатием одной кнопки. Или вы можете использовать ее для отключения звука в Discord. Или использовать ее для нажатия CTRL + ALT + DEL. Возможности безграничны.

Многофункциональная ручка magi's Multifunctional Knob, которая работает как вращающийся регулятор громкости или скруббер временной шкалы Premiere Pro. Источник: YouTube

сАрКаСм кЕйБоАрД

Как лучше выразить сарказм: показать /s тег в конце вашего текста или tYpInG lIkE tHiS?

Я предпочитаю второй вариант, потому что он сразу передает sArCaSm.

Создатель этого проекта, Бен С, рассказал, что для его реализации он использует два Raspberry Pi Picos. Один Pico выступает в качестве устройства USB HID клавиатуры для компьютера, а другой - в качестве USB-хоста для считывания ввода с клавиатуры. Затем хост передает устройству через UART данные о нажатии клавиши.

Клавиатура сарказма Pico включает и выключает капс лок после каждого нажатия клавиши, тем самым обеспечивая sArCaStIc TeXt.

Чего не может Raspberry Pi Pico?

Давайте поговорим о более типичной конфигурации "прямо из коробки".

Я признаю, что существует множество способов расширить возможности Raspberry Pi Pico. Вы можете выводить видео, настраивать ethernet, выводить аудио...

При достаточном количестве модификаций Raspberry Pi Pico приблизится к возможностям микрокомпьютера.

Тем не менее, никто из разумных не собирается заходить так далеко. После определенного уровня модификации это становится невыполнимым.

Почему это становится невыполнимым?

Ведь лучше купить что-то, где вы получите все эти функции прямо из коробки!

Близким конкурентом, за которым вам следует следить, является Raspberry Pi Zero 2. У нас есть мега-статья, которая ответит на все ваши вопросы здесь.

На фундаментальном уровне Raspberry Pi Pico обладает меньшей вычислительной мощностью. По сравнению с самым дешевым микрокомпьютером, Raspberry Pi Zero, Pi Pico имеет стандартную тактовую частоту 133 МГц и может выполнять 361,76 Dhrystone Million инструкций в секунду (DMIPS), тогда как Raspberry Pi Zero может выполнять 1250 DMIPS.

Raspberry Pi Zero также имеет 512 Мб оперативной памяти, операционную систему, WiFi и слот для SD-карт. Для человека, хорошо владеющего JavaScript, как я, возможность написать код Node для подключения к Google Cloud - это причина, по которой мне нравится использовать микрокомпьютеры Pi.

Микрокомпьютер против микроконтроллера

Иллюстрируя предыдущий сценарий, я использовал термины микрокомпьютер и микроконтроллер. Я приведу несколько вариантов использования, в которых один из них лучше другого.

Микроконтроллер намного проще, чем микрокомпьютер, и поэтому его гораздо легче заставить выполнять простые задачи. Если вам нужно просто мигать светодиодом, вращать сервопривод, измерять температурные данные, микроконтроллер может сделать это очень легко и качественно.

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

С простотой приходят и ограничения. Например, гораздо проще подключить прототип к Интернету с помощью микрокомпьютера. Например, вы можете подключить свой прототип к почтовому сервису, чтобы он отправлял вам пинг при достижении определенных пороговых значений. Я бы сделал эти проекты на Raspberry Pi Zero, а не пытался бы заставить их работать на Raspberry Pi Pico.

СценарийМикроконтроллер (например, Raspberry Pi Pico)Микрокомпьютер (например, Raspberry Pi Zero)
Запустить серверНетДа
Мигание светодиодаНамного быстрее от начала до концаГораздо медленнее; необходимо пройти большее количество процессов
Автоматический перезапуск программы при отключении питания?ДаНе по умолчанию
Играть в видеоигрыНетДа
Работает от аккумулятора?Да, вероятность того, что в среднем прослужит дольшеДа, в среднем недолговечен
Управление теплом?Обычно не требуетсяРадиаторы, вентиляторы, теплопроводящие корпуса
Затраты?НижнийВыше

Штырьки Raspberry Pi

Raspberry Pi Pico имеет 30 выводов GPIO, из которых 26 доступны для использования.

  • 2x SPI
  • 2 x UART
  • 2 x I2C
  • 8 x двухканальный ШИМ

тоже есть:

  • 4 x выход тактового генератора общего назначения
  • 4 x вход АЦП
  • PIO на всех контактах

Вот изображение распиновки Raspberry Pi Pico:

Пины Raspberry Pi Pico / Источник: Raspberry Pi

На самом деле, участник Redditor под ником C_King_Justice также создал инструмент, который поможет вам найти контакты GPIO Raspberry Pi Pico. Вы можете скачать документ здесь.

Бумажная распиновка от C_King_Justice / Источник: Reddit

Технические характеристики Raspberry Pi Pico

Raspberry Pi Pico
Цена€4.10 (доска) €24.95 (комплект Raspberry Pi Pico для начинающих)
ПРОЦЕССОРRP2040 с двухъядерным процессором Cortex M0+ с частотой до 133 МГц
Возможности процессораВстроенный PLL позволяет изменять частоту ядра
Частота процессорадо 133 МГц, с возможностью разгона/неразгона
GPUНет GPU
ОПЕРАТИВНАЯ ПАМЯТЬ264 кБ встроенной SRAM в 6 банках
СетьНе входит в комплект, но вы можете добавить его
BluetoothНе входит
порт HDMIНе входит в комплект, но вы можете добавить его
USB-портMicroUSB для питания и передачи данных
Композитное видеоНе входит в комплект, но вы можете добавить его
Контакт сбросаНе входит в комплект, но его можно припаять
Порт камерыНет
Потребляемая мощность~1,3 мА в режиме SLEEP до 93 мА в тесте "Popcorn"
Электропитание5 В через microUSB или 1,8 - 5,5 В через VSYS
форм-фактор51 x 21 мм

Есть ли у Raspberry Pi Pico HDMI?

Raspberry-Pi-Pico-Video-Output-DVI-Sock

Нет, по умолчанию нет. Но вы можете добавить видео самостоятельно. Смотрите наше руководство здесь.

Обратите внимание, что хотя видеоинтерфейс представляет собой разъем HDMI, на самом деле он выводит сигнал DVI. HDMI является преемником DVI, поэтому сигналы DVI могут передаваться через HDMI.

Кроме того, вы можете приобрести переходник с HDMI на DVI для преобразования разъема HDMI в DVI.

При этом следует учитывать, что данная установка не выводит звук.

Есть ли в Raspberry Pi Pico Ethernet?

Нет, по умолчанию нет. Но вы можете добавить ethernet самостоятельно.

Компания Raspberry Pi официально выпустила руководство, следуя которому вы сможете установите ethernet на ваш Raspberry Pi Pico.

По сути, вам нужен RMII Ethernet PHY, например LAN8720, макетная плата и провода с перемычками. На вашем Raspberry Pi Pico также должны быть припаяны заголовки.

Есть ли у Raspberry Pi Pico WiFi?

Нет, но вы можете установить его, используя детали послепродажного обслуживания. Одним из совместимых чипов, который поможет вам получить возможности WiFi, является Adafruit Airlift WiFi Featherwing Co-Processor.

Есть ли у Raspberry Pi Pico USB?

Да, у Raspberry Pi Pico есть порт microUSB. Его можно использовать для питания Raspberry Pi.

Кроме того, вы можете использовать Raspberry Pi Pico в качестве устройства взаимодействия с человеком. Подключив его к компьютеру с помощью соответствующих компонентов и кода, можно превратить его в джойстик, макро-клавиатуру, переключатель и т.д.

Есть ли в Raspberry Pi Pico Bluetooth?

Нет, но вы можете установить его, используя детали послепродажного обслуживания.

Обычно для интеграции Bluetooth в Raspberry Pi Pico требуется приобрести модуль Bluetooth, например, модуль Bluetooth HC-06.

Существует ли камера Raspberry Pi Pico?

Прототип Ральфа Ямамото с использованием модуля камеры HM01B0. Источник: Ральф Ямамото/Элемент14

Да, вы можете интегрировать Raspberry Pi Pico с модулем камеры.

Камера, которую вы можете использовать, - это камера HM01B0 от Himax Imaging. Преимущество использования этой камеры заключается в том, что она чрезвычайно маломощная, потребляя 1-2 милливатта, согласно Ральфу Ямамото, который писал о своей опыт получения камеры для работы с Raspberry Pi Pico.

Предварительный просмотр камеры с разрешением 96×96 пикселей. Источник: Ральф Ямамото/Элемент14

Его вывод был таков: "Я уверен, что это потребует много доработок", и далее он сказал, что чувствует себя ограниченным в своих способностях в обработке, и что документации на камеру не хватает.

Операционная система Raspberry Pi Pico

Как правило, на Raspberry Pi Pico не будет установлена операционная система.

В большинстве проектов вам, скорее всего, потребуется только загрузить код, а затем запустить только одну программу. В этом случае операционная система не нужна.

Но вы из тех, кто использует несколько вкладок в Chrome? А теперь представьте, если бы вы могли использовать только одну вкладку Chrome.

Хотя "классический" способ программирования Raspberry Pi Pico является наиболее ресурсоэффективным, он также ограничивает ваши возможности по выполнению нескольких задач.

К счастью, существуют операционные системы, которые могут работать на Raspberry Pi Pico.

Официальная RTOS (операционная система реального времени)

Его нет, но Raspberry Pi заявила в своем FAQ (по состоянию на февраль 2022 года), что они "будут работать над переносом RTOS в ближайшее время".

FreeRTOS

На Raspberry Pi Pico может работать FreeRTOS. Вот короткое видео, которое поможет вам перейти от программирования на пустом месте ("типичный" способ мигания светодиодом) к программированию на базе ОС.

В этой серии из пяти частей подробно рассказывается о FreeRTOS, о том, как она работает, как ее можно установить и использовать.

Fuzix

Вы не можете заставить Raspberry Pi Pico работать под управлением Linux с графическим интерфейсом пользователя, но вы можете запустить клон Unix на Raspberry Pi Pico с помощью Fuzix.

Raspberry Pi имеет опубликовал руководство которым вы можете следовать, и что вам нужно:

  • Raspberry Pi без пико для последовательного подключения
  • Raspberry Pi Pico
  • Устройство чтения MicroSD для Raspberry Pi Pico.

PyDOS

Пользователь Github RetiredWizard только что создал DOS-подобную оболочку для плат RP2040/ESP32.

Как вы можете видеть на видео выше, это действительно переносит вас на 30 с лишним лет назад.

Проверьте репозиторий Github здесь.

Начало работы с Raspberry Pi Pico

Мы разработали несколько комплектов, основываясь на том, что, по нашему мнению, поможет вам больше всего насладиться путешествием с Raspberry Pi Pico.

В самом общем случае, вот некоторые рекомендуемые аксессуары для Raspberry Pi Pico.

Диод Шоттки необходим, если вы собираетесь подключить к Pico второй источник питания. Это самый простой способ запустить источник питания в диапазоне напряжений от 2,3 В до 5,5 В, который может представлять собой один литиевый элемент или три батарейки AA.

Добавление этого диода позволит вам "ИЛИ" двух напряжений от VBUS и внешнего напряжения для питания VSYS с диодами, предотвращающими обратное питание одного источника от другого.

Однако, несмотря на то, что это самый простой вариант, существуют потери эффективности. Техническое описание Raspberry Pi подробно рассказывает об этом, а также объясняет, как смягчить последствия в главе 4.5.

Наличие держателя батареи позволяет вам иметь резервное питание (с помощью диода Шоттки) или работать полностью автономно.

Этот кабель не требует пояснений. Этот кабель нужен для подключения Raspberry Pi Pico к компьютеру для загрузки кода. Он также может работать как источник питания.

Два 20-контактных разъема необходимы, поскольку они понадобятся для подключения Raspberry Pi к компонентам или к макетной плате.

Трехконтактный заголовок необходим для отладки.

Не покупайте 40-контактный заголовок, так как он предназначен для других Raspberry Pis.

Если вы не хотите паять разъемы самостоятельно, вы можете рассмотреть возможность приобретения Pico с предварительно распаянными заголовками.

Программирование на Raspberry Pi Pico

На Raspberry Pi Pico можно программировать на MicroPython, C/C++ и CircuitPython. Вот таблица, показывающая усилия, необходимые для мигания внутреннего светодиода.

ЯзыкMicroPythonC/C++CircuitPython
Необходимая установка для первого запускаСреднийСамый высокийСамый низкий
Шаги по созданию новой программыСреднийСамый высокийСамый низкий
Контроль над оборудованиемСреднийСамый высокийСредний

MicroPython на Raspberry Pi Pico

MicroPython - это, по сути, Python lite. Или диетический Python.

Это Python с небольшим подмножеством стандартной библиотеки Python, оптимизированной для работы на микроконтроллерах, таких как Raspberry Pi Pico.

Для того чтобы использовать MicroPython, вам необходимо загрузить Thonny и перейдите в правый нижний угол, где написано "Python 3.7.9" и нажмите на него, выбрав MicroPython (Raspberry Pi Pico).

Скорее всего, вас встретит всплывающее окно с предложением обновиться. Приступайте к обновлению.

Обновление прошло нормально, когда я запустил Thonny на своей Raspberry Pi OS, однако на Windows появилась ошибка "SSL: CERTIFICATE_VERIFY_FAILED".

Вы можете исправить это, загрузив данный сертификат (https://letsencrypt.org/certs/lets-encrypt-r3.der), затем щелкните правой кнопкой мыши на загруженном файле и "Установить сертификат", и вы больше не столкнетесь с этой ошибкой.

Установив MicroPython, вы можете выполнить эквивалент "Hello World" на Raspberry Pi Pico и мигать его внутренним светодиодом с помощью этого кода

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, сохраните его как blink.py и внутренний светодиод вашего Raspberry Pi должен замигать.

Итак, давайте посмотрим на эквивалентный процесс на C.

Дальнейшее чтение

PiCockpit также имеет несколько руководств, которые помогут вам начать работу с MicroPython на Raspberry Pi Pico.

Raspberry Pi Pico и MicroPython под Windows - мы углубляемся в настройку MicroPython в Windows на Raspberry Pi, как установить правильный драйвер на Windows 8.1, подключение к Pico с помощью PuTTY и подробное объяснение Thonny.

Расширение языка C для MicroPython на Raspberry Pi Pico - Что если бы вы могли запускать MicroPython и C одновременно и получать преимущества обоих языков? Си лучше, чем MicroPython, справляется с тяжелыми вычислительными задачами, и иногда вам может понадобиться взаимодействовать с некоторым оборудованием через C API из MicroPython. В этом руководстве рассказывается о том, как это можно сделать.

Мигающий светодиод с помощью C/C++

Если вам нужен гораздо более тонкий контроль, вы, вероятно, захотите писать на C/C++.

Заставить ваш Raspberry Pi Pico работать с языком C - гораздо более сложная задача. Это не так просто, как написать MicroPython с помощью Thonny.

Самый простой способ - использовать микрокомпьютер Raspberry Pi с операционной системой Raspberry Pi OS.

Если вы хотите использовать Mac или Windows, официальное руководство предлагает инструкции в девятой главе.

Выполните эти три команды:

wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh 
$ chmod +x pico_setup.sh
./pico_setup.sh

Для выполнения этой команды вам потребуется около 2 ГБ свободного места. Как только это будет сделано, перезагрузитесь, выполнив команду sudo reboot .

После загрузки откройте Visual Studio Code (в папке Programming в стартовом меню) и откройте папку, расположенную в каталоге /home/pi/pico/pico-examples. Вы должны загрузить именно эту папку, а не вложенную папку.

Затем необходимо настроить VS Code. Ссылаясь на изображение выше, сделайте следующее:

  1. Нажмите на часть, где написано "No Kit";
  2. Появится всплывающее окно. Выберите вариант, где написано "arm-none-eabi";
  3. Нажмите на [all] и выберите проект, который вы хотите скомпилировать. Чтобы заставить внутренний светодиод мигать, я выбрал мигать
  4. Нажмите Построить

Вы сможете найти blink.uf2 файл в /build/blink папка.

Скопируйте файл UF2 на ваш Raspberry Pi Pico, и вы увидите, как внутренний светодиод начнет мигать.

Создание собственного проекта сложнее на C/C++. В официальном руководстве есть глава восьмая в котором рассказывается, как создать свой собственный проект.

CircuitPython

Третьим участником в списке языков программирования, работающих с Raspberry Pi Pico, является CircuitPython.

Для начала, загрузите файл .UF2 здесь.

Кнопка BOOTSEL

Нажмите и удерживайте кнопку BOOTSEL и подключите Pico к компьютеру. Вы должны увидеть новый диск.

Скопируйте загруженный файл .UF2 на этот диск. Ваш Pico отключится и снова подключится к новому диску под названием CIRCUITPY.

В этой папке находится файл под названием code.py, откройте его в удобном для вас редакторе кода (подойдет даже Блокнот).

Вставьте этот код:

import board
import digitalio
import time

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)

После сохранения вы увидите, что внутренний светодиод вашего Pico начнет мигать.

В целом, CircuitPython был самым гладким и прямым способом заставить мигать ваш внутренний светодиод. Два других варианта были более утомительными, особенно выполнение языка C на Pico (особенно, если вы пытаетесь заставить его работать на Mac/Windows).

С учетом сказанного, если вы планируете использовать CircuitPython в долгосрочной перспективе, есть аргументы в пользу использования Thonny в качестве IDE, поскольку он может загружать пакеты за вас, и вы также можете запускать и останавливать программы, нажимая кнопку play/stop на панели команд.

Для получения дополнительной информации о программе CircuitPython см. Документация Adafruit. Чтобы вернуться к MicroPython, загрузите файл .UF2 отсюда и загрузите его на свой диск CIRCUITPY.

Бонус: Ассемблер на Raspberry Pi Pico

Да, вы можете писать на ассемблере, если не хотите программировать Raspberry Pi Pico на C или Python.

В FAQ по Raspberry Pi говорится, что в Pico SDK есть несколько функций, написанных на ассемблере, и что,

"Процессор (двухъядерный ARM Cortex M0+) реализует набор инструкций ARMv6-M Thumb, включая ряд 32-битных инструкций, использующих технологию Thumb-2. Набор инструкций ARMv6-M включает все 16-битные инструкции Thumb из ARMv7-M, за исключением CBZ, CBNZ и IT, и 32-битные инструкции Thumb BL, DMB, DSB, ISB, MRS и MSR".

Бонус: Язык программирования Rust на Raspberry Pi Pico

Если вы чувствуете себя удрученным, потому что вы русич, который не может дождаться возможности писать на предпочитаемом языке, то у меня для вас хорошие новости.

В основе этого лежит уровень аппаратной абстракции RP2040. вы можете получить на GitHub (под названием rp-hal). Он подходит для многих плат, использующих микроконтроллер RP2040, кроме Raspberry Pi Pico.

Вот видео, в котором показано, как его настроить.

Что такое UF2 и почему он так часто используется на Raspberry Pi Pico?

Это волшебство. Вы перетаскиваете файл UF2 на свой Raspberry Pi Pico, и вдруг он перемонтируется с новым именем или внезапно мигает светодиодом.

UF2 (U F в квадрате) означает USB Flashing Format. Когда вы перетаскиваете его на свой Raspberry Pi, вы перетаскиваете свой код в дополнение к инструкциям для загрузчика, чтобы он знал, что делать с тем, что вы загрузили.

Подключение Pico через последовательный терминал

Windows

Подключение к Pico с помощью последовательного терминала является простым и у нас есть руководство.

Подключение к Raspberry Pi 4 (Linux)

Для подключения Raspberry Pi Pico к Raspberry Pi 4 можно использовать контакты USB или UART, миником и несколько проводов-перемычек.

Raspberry Pi Начало работы с Pico есть всю информацию в главе 4, а именно 4.4 и 4.5.

Отладка Raspberry Pi Pico

Для чего нужны эти три штырька внизу?

отладочные контакты raspberry pi pico
Отладочные контакты Raspberry Pi Pico

Эти контакты дадут вам возможность сбросить Pico, загрузить код во флэш-память, запустить код и, самое главное, возможность отладки.

Самым большим преимуществом являются расширенные возможности отладки, которые вы можете получить с помощью этих контактов. Теперь вы можете выполнять гораздо более тонкий анализ кода, потому что вы можете:

  1. Установите точки останова в коде. Точки останова позволяют приостановить дальнейшее выполнение кода, например, на время проверки значений переменных.
  2. Пройдитесь по выполнению кода строка за строкой. Когда все идет не так? Построчное выполнение облегчает отладку.

Они могут быть подключены к микрокомпьютеру Raspberry Pi через свои контакты GPIO. Если вы хотите подключить его к другим машинам, скорее всего, через USB, то вам понадобится отладочный пробник.

Raspberry Pi Pico также может выступать в качестве отладочного зонда, который соединяет ваш компьютер с Pico, на котором вы хотите работать. Подумайте об этом так: у вашего компьютера нет выводов GPIO, необходимых для установления соединения UART/SWD, поэтому вы собираетесь использовать Pico для обеспечения этих соединений вместе с пикозонд прошивку, которая позволит это сделать.

Однако, если вы собираетесь использовать SWD для отладки, вам следует использовать последовательное соединение на базе UART, а не USB. Отладка остановит ядра RP2040, что приведет к разрыву USB-соединения.

Давайте немного поговорим о том, что делает каждый контакт:

SWDIOКонтакт Serial Wire Debug Input/Output обеспечивает передачу отладочного трафика между RP2040 и главным компьютером (полноразмерным компьютером или, например, микрокомпьютером Raspberry Pi).

GND: Заземление. Необходима для поддержания хорошей целостности сигнала между хостом и Pico.

SWCLK: Контакт Serial Wire Clock синхронизирует соединение.

Лучше всего обратиться к Начало работы с Pico даташита от Raspberry Pi, уделяя особое внимание главам 5, 6 и приложению А: использование Picoprobe.

Проекты Raspberry Pi Pico

Вот несколько хороших проектов для начинающих, к которым можно приступить с минимальным количеством необходимых дополнительных деталей.

Простая клавиатура sArCasM и клавиатура макросов

Это забавный проект, который позволит вам создать модификатор, превращающий обычный набор текста в сарказм. Если серьезно, то знание того, как использовать библиотеку HID от Adafruit с переключателем, позволит вам создавать макро-клавиши.

Если вы хотите набрать sArCaSm в масштабе, это довольно утомительно. Есть очень простой способ сделать это с помощью Raspberry Pi Pico.

Для самой простой конструкции вам не нужно ничего, кроме вашего Raspberry Pi Pico. Однако на вашем Raspberry Pi Pico должен быть установлен CircuitPython с библиотекой HID от Adafruit.

В обычном режиме Тонни перейдите в раздел Инструменты -> Управление пакетами и искать adafruit-circuitpython-hid. Установите его.

Также убедитесь, что вы используете интерпретатор CircuitPython, который находится в правом нижнем углу Thonny.

Вставьте этот код,

import time
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

while True:

        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        keyboard.release(Keycode.CAPS_LOCK)

Загрузите код в свой Pico. При необходимости нажмите кнопку RUN в Thonny.

Теперь каждый раз, когда вы подключаете свой Raspberry Pi Pico к компьютеру... ПОСМОТРИТЕ НА МАГИЧЕСКОЕ ЗДАНИЕ ПРЯМО ПЕРЕД ВАШИМИ ГЛАЗАМИ.

Этот сценарий делает то, что он включает и выключает Caps Lock каждые 0,2 секунды, как объявлено в разделе time.sleep(0.2). Если вы измените значение в скобках, вы сможете точно настроить частоту переключения регистров.

Добавление переключателя в этот проект

добавление коммутатора к raspberry pi pico

Эта базовая конструкция имеет тот недостаток, что для прекращения сарказма необходимо выдернуть USB.

Давайте добавим переключатель, который позволит нам включать и выключать эту функцию.

Давайте также сохраним светодиод платы включенным, когда активирован сарказм.

Схема подключения выключателя к Raspberry Pi Pico с помощью Wokwi.

Кнопочный переключатель имеет четыре штырька. Подключите вывод 3,3 В и GPIO 22 (обозначенный как GP 22) на диагонально противоположных сторонах кнопки.

Происходит это так: когда вы нажимаете на переключатель, вы подключаете напряжение 3,3 В к контакту GPIO 22, тем самым, говоря простым языком, активируя его.

Это единственное физическое изменение, которое вам нужно сделать. Это очень просто.

Что касается кода, то он вырос на несколько строк, (жирный = относящийся к кнопке, курсив = относящийся к светодиоду)

import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

<strong>btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT #GP22 is an input
btn1.pull = digitalio.Pull.DOWN #DOWN means it outputs False

</strong>
<em>led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT</em> #powering LED, so give it OUTPUT
 
activated = False #this variable stores if sarcasm is on or off

while True:
    <strong>if btn1.value: #if user presses btn1, start sarcasm
        activated = True</strong>
        
    if activated:
        <em>led.value = True</em> #turn on board LED
        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        keyboard.release(Keycode.CAPS_LOCK)
        if <strong>btn1.value: #if user presses btn1 while activated, cancels sarcasm
            activated = False
            <em>led.value = False</em> #turn off LED
            time.sleep(0.2)</strong> 
            <strong>#pauses while loop to give user time to remove finger from btn1</strong>

Преобразование клавиатуры сарказма в клавиатуру макросов

Вы можете использовать кнопку для активации макросов, таких как ALT + TAB, CTRL + ALT + DEL или любых других, не превышающих шести обычных клавиш.

Вам просто нужно изменить клавиши в этом методе keyboard.press и keyboard.release.

import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT
btn1.pull = digitalio.Pull.DOWN

while True:
    if btn1.value:
        <strong>keyboard.press(Keycode.ALT,Keycode.TAB )</strong>
        time.sleep(0.2)
        <strong>keyboard.release(Keycode.ALT,Keycode.TAB)</strong>

С помощью этого клавиатурного хака можно сделать еще много вещей. Например, с его помощью можно остановить заставку, нажав такую безобидную клавишу, как Page Up. Или вы можете использовать его специально для управления Zoom, Discord, OBS, Meet и т.д.

Данные о температуре/влажности с помощью DHT22

raspberry pi pico dht22

Если у вас есть датчик DHT11, DHT22 или AM2302, вы можете использовать его с Raspberry Pi Pico.

Эти датчики, вероятно, лучше всего использовать в паре с ЖК-дисплеем или способом сохранения данных, но давайте начнем с проекта быстрого запуска.

Вам понадобятся три провода-перемычки, разъемы на Raspberry Pi Pico и резистор 10K. В следующем комплекте есть все необходимое, кроме Raspberry Pi Pico с разъемами.

Это очень просто с помощью Thonny, CircuitPython и библиотеки DHT от Adafruit.

В следующих шагах используется DHT22.

Подключение датчика DHT22 к Raspberry Pi Pico

Подключить DHT22 к Pico очень просто.

raspberry pi pico dht22

На DHT22 имеется четыре штырька. Слева направо, когда зацепленная сторона обращена к вам, контакты следующие VCC, ДАННЫЕ, NC и GND. Вам не потребуется подключать NC.

Подключайтесь VCC к вывод 3,3 В на Pi.

Подключите резистор 10K от 3,3 В к ДАННЫЕ, затем подключить ДАННЫЕ к GP0. Это проще сделать с помощью макетной платы, чтобы можно было разделить 3,3 В. Как видно на фотографии выше, резистор идет от крайнего левого вывода ко второму, также зеленый провод подключен к GPIO 0.

Подключайтесь GND к любому контакту заземления вашего Raspberry Pi Pico.

Вы закончили. Настало время для программного обеспечения.

raspberry pi pico dht22
Диаграмма, составленная из Wokwi.

Кодирование DHT22 в Thonny для Raspberry Pi Pico

Сначала откройте Thonny и убедитесь, что вы находитесь в обычном режиме и CircuitPython (справа внизу). Более подробное руководство по Thonny и CircuitPython доступно выше.

Перейдите в Инструменты -> Управление пакетами -> поиск adafruit-circuitpython-dht.

raspberry pi pico dht22

Затем введите этот код, предоставленный компанией Adafruit.

import time

import adafruit_dht
import board

dht = adafruit_dht.DHT22(board.GP0)

while True:
    try:
        temperature = dht.temperature
        humidity = dht.humidity
        # Print what we got to the REPL
        print("Temp: {:.1f} *C \t Humidity: {}%".format(temperature, humidity))
    except RuntimeError as e:
        # Reading doesn't always work! Just print error and we'll try again
        print("Reading from DHT failure: ", e.args)

    time.sleep(1)

Нажмите Запускайте в Thonny и вы должны увидеть результат:

пи дхт22

Дисплей Raspberry Pi Pico

Raspberry Pi Pico довольно крут, потому что он может выводить изображения.

Недостатком является то, что это требует довольно много работы, определенных технических знаний, и вы будете получать изображения, которые выглядят так, как будто они относятся к эпохе Windows 3.1.

Почему? Из-за ограниченного объема оперативной памяти в 264 КБ. Это ограничивает разрешение дисплея и глубину цвета.

Тем не менее, вот несколько примеров того, что вы можете вывести.

Простой вывод видео с помощью носка DVI

Самый простой способ вывода видео - следовать нашему руководству и использовать носок DVI или плату расширения VGA & Audio. Носок DVI использует кабель HDMI, который, вероятно, является наиболее совместимым портом с современными устройствами.

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

Самодельные способы подключения Pico к дисплею

Существуют и другие способы вывода видео без покупки периферийных устройств.

Мирослав Немечек написал статью о том, как вы можете использовать восемь резисторов и порт VGA для подключения монитора к вашему Raspberry Pi Pico.

А вот способ, как с помощью кабеля HDMI и резисторов подключить Pico к монитору HDMI.

Энергопотребление Raspberry Pi Pico

Технический паспорт Raspberry Pi для Pico дает нам хорошую основу для понимания того, какой уровень потребления энергии вы можете ожидать от Pico при определенных типичных условиях использования.

Эти цифры не являются абсолютным максимумом, который вы можете получить от Raspberry Pi Pico, но являются хорошей отправной точкой.

Их первый тест включал доступ к видео, аудио и SD-карте для демонстрации демо-версии медиаплеера "Popcorn" через VGA, SD-карту и аудиоплату.

Государство
Играя Попкорн (видео, аудио, SD-карта)93.5mA
Режим BOOTSEL, активен9,9 мА
режим бездействия0,8 мА
Спящий режим1.3 мА

Возможно, вы задаетесь вопросом: в чем разница между DORMANT и SLEEP?

Для пробуждения Raspberry Pi Pico в спящем режиме требуется внешний триггер, который управляет выводом GPIO, а в режиме SLEEP можно запустить внутренние часы для пробуждения RP2040, как показано на рисунке Технический паспорт RP2040.

В FAQ по Raspberry Pi Pico они уточняют это,

"Режим SLEEP" - это когда процессоры находятся в режиме wfi/wfe, а DMA неактивен, поэтому вы можете отключить большинство системных часов, включая такие вещи, как шина.
Режим DORMANT - это когда вы отключаете все осцилляторы, и это еще более низкое энергопотребление, но тогда у вас меньше возможностей для пробуждения."

Могу ли я использовать Raspberry Pi Pico в качестве источника питания?

аккумулятор raspberry pi pico power bank

Да, вы можете.

Но Raspberry Pi Pico может потреблять недостаточно энергии от power bank и заставить power bank перейти в режим энергосбережения.

К сожалению, решение состоит в том, чтобы потреблять больше энергии, установив резистор между банком питания и Raspberry Pi Pico. Вот видео, объясняющее все тонкости и нюансы.

Питание Pico (напряжения)

Питание Raspberry Pi Pico может осуществляться через порт microUSB. При этом питание VSYS осуществляется от напряжения 5 В VBUS через D1.

Если вы не используете порт USB для питания Raspberry Pi Pico, то вы можете подключить VSYS к источнику питания в диапазоне от 1,8 В до 5,5 В.

Однако, если вы подключаете оба источника, вам необходимо подать второй источник питания на VSYS через диод Шоттки, который предотвращает обратное питание одного из источников. Диод Шоттки также позволит протекать большему из напряжений VBUS или внешнего напряжения.

Однако на диоде Шоттки имеется падение напряжения, поэтому вам потребуется напряжение от 2,3 В до 5,5 В.

Это означает, что вы можете питать Raspberry Pi Pico с помощью минимум 2х никелевых аккумуляторов (2,4 В) или 1х литиевого аккумулятора (3,7 В).

Чтобы не терять эффективность при использовании диода Шоттки, вместо него можно использовать P-канальный MOSFET с низким сопротивлением.

Для получения дополнительной информации просмотрите Datasheet Raspberry Pi Pico.

Можно ли питать Raspberry Pi Pico от USB телевизора?

Да, вы можете. Вот изображение, на котором мигает внутренний светодиод.

энергопотребление raspberry pi pico (2)

Стандартный порт USB должен обеспечивать ток до 500 мА, что гораздо больше, чем нужно Raspberry Pi Pico. Как видно из тестов энергопотребления, проведенных Raspberry Pi, самый интенсивный тест потреблял только около 90 мА.

Вы можете столкнуться с проблемами, если ваша установка Raspberry Pi Pico потребляет более 500 мА, например, если на Pico установлены периферийные устройства, потребляющие много энергии.

Raspberry Pi Pico в сравнении с другими платами

Raspberry Pi Pico - поздний участник в мире микроконтроллеров, он был выпущен только в 2021 году. В мире микроконтроллеров уже существует острая конкуренция с такими устройствами, как ESP32 и Arduinos, которые имеют множество вариантов, которые могут помочь вам начать свой проект с нужными функциями, такими как WiFi.

Для Raspberry Pi Pico нет никаких вариантов, поэтому для достижения той же цели вам придется покупать HAT и другие дополнительные модули.

Более того, если вы собираетесь добавлять множество компонентов... когда наступит время просто купить микрокомпьютер?

Давайте ответим на этот вопрос, рассмотрев ESP32, Arduino Uno и Raspberry Pi Zero.

Raspberry Pi Pico против Espressif ESP32

ESP32 - это большой шаг вперед по сравнению с Raspberry Pi Pico в плане технологических возможностей. Для сравнения я выбрал вариант PICO-KIT, так как по форм-фактору он наиболее похож на Pico.

Во-первых, наличие WiFi и Bluetooth существенно меняет игру. Например, вы сможете запустить сервер на Espressif ESP32, который будет отображать значения ваших датчиков, в то время как вы не сможете сделать это на Raspberry Pi Pico.

ESP32 также имеет более быстрый процессор, больше оперативной памяти и больше флэш-памяти, но за все это приходится платить более высоким энергопотреблением.

Raspberry Pi Pico немного скромнее по своим характеристикам, но две вещи выделяются. Тот факт, что он может принимать напряжение от 1,8 В до 5,5 В, позволяет использовать одну литиевую батарею, что создает очень компактный корпус. Это было бы невозможно с ESP32, если бы вы не изменили напряжение 3,7 В от одной литиевой батареи.

Raspberry Pi PicoEspressif ESP32-PICO-KIT
Частота процессора133 МГц80/160/240 МГц
МикроконтроллерRP2040Xtensa LX6
Ядра22
Флеш-память2MB4MB
ОПЕРАТИВНАЯ ПАМЯТЬ256 КБ520 КБ
GPIO26 (пригодный для использования)36
Есть ли USB?microUSBmicroUSB
WiFi и/или BT?НетДа, оба
Напряжение1,8 - 5,5 В или 5 В USB3,3 В (через контакты) или 5 В через USB или 5В-12В (через регулятор напряжения)
Потребляемая мощность (с активностью)93 мА (тест на попкорн)100-128 мА1
Размер51x21 мм52x20 мм
ЯзыкиMicroPython / CMicroPython / C

Примечание: показатели энергопотребления на ESP32 - это выполнение программы с пустым циклом.

Raspberry Pi Pico против Arduino Uno Rev3

Arduino создает множество плат, и с точки зрения форм-фактора, Arduino Nano, вероятно, является самой близкой, имея размеры 45 x 18 мм. Arduino также выпускает плату, в которой используется микроконтроллер RP2040.

Однако наиболее распространенной платой является Arduino Uno Rev3, поэтому давайте рассмотрим, чем отличаются эти две платы.

Raspberry Pi PicoArduino Uno Rev3
Частота процессора133 МГц16 МГц
МикроконтроллерRP2040ATmega328P
Флеш-память2MB32 КБ
ОПЕРАТИВНАЯ ПАМЯТЬ256 КБ2KB
GPIO26 (пригодный для использования)14 цифровых, 6 аналоговых
Есть ли USB?microUSBUSB B
WiFi и/или BT?НетДоступен вариант WiFi
Напряжение1,8 - 5,5 В или 5 В USB6-20 В (рекомендуется 7-12 В) или через USB.
Размер51x21 мм68x53 мм
ЯзыкиMicroPython / CC

Для новичков одним из самых больших различий является то, что Arduino Uno работает на 5 В, в то время как Raspberry Pi Pico работает на 3,3 В.

Потенциально 5 В может облегчить жизнь новичкам, поскольку некоторые компоненты требуют входного сигнала 5 В, например, реле. Если у вас есть компонент на 5 В, который вы хотите запустить на Raspberry Pi Pico, вам придется поставить дополнительные компоненты для повышения напряжения с 3,3 В до 5 В.

Другое отличие заключается в том, что Arduino Uno имеет открытый исходный код, а значит, вы можете приобрести более дешевые платы с точно такими же возможностями. При этом Raspberry Pi Pico уже стоит очень дешево - $4 или 4,10 евро.

Arduino Uno также принимает гораздо более широкий диапазон напряжений (рекомендуется 7-12 В), что означает, что вы можете использовать его от многих типов источников питания.

Что касается языков программирования, то преимущество Pico заключается в том, что он позволяет писать на MicroPython, в то время как для Arduino вам придется писать на C. При этом Arduino имеет более обширную библиотеку, что облегчает работу с компонентами.

Raspberry Pi Pico против Raspberry Pi Zero

pi zero pi pico
Фото Харрисон Бродбент.

В некоторой степени возможности Pico и Zero перекрываются. В простых схемах вы можете использовать Pico и Zero для выполнения одних и тех же действий.

Но то, как вы доберетесь до одной и той же точки, будет различаться между Pico и Zero.

Вот логика, которую я использую, чтобы решить, что использовать:

СценарийЧто подарить
Я лучше владею языком, отличным от C/PythonНоль
У меня есть "неограниченная" энергия (т.е. не солнечная энергия или аккумулятор)Ноль
Мне нужен WiFi и/или BluetoothНоль
Мне нужно сохранить данные (например, журнал температуры)Ноль
Мне нужно использовать камеруНоль
Мне нужна самая компактная установкаPico
Мне нужен быстрый перезапуск при аварии/отключении питанияPico
Я не хочу устанавливать ОСPico
Я хочу более дешевый вариантPico

Более подробное описание того, почему стоит выбрать Pico или Zero, выглядит следующим образом описано выше, и эта ссылка приведет вас к нему.

Raspberry Pi Pico против Teensy 4.1

Teensy 4.1 является чрезвычайно мощной платой благодаря чипу ARM Cortex-M7, работающему на частоте 600 МГц.

Выпущенный компанией PJRC в 2021 году, Teensy 4.1 понравится тем, кому нужно что-то с большой вычислительной мощностью, оперативной памятью, флэш-памятью, Ethernet и большим количеством контактов GPIO, чем в Raspberry Pi Pico.

Вы получаете 55 контактов ввода/вывода, но только 42 из них "пригодны для макетной платы". Имеется 35 контактов ШИМ, 18 аналоговых входов, 8 последовательных, 3 SPI и 3 I2C.

Преимущество Raspberry Pi Pico заключается в его простоте. Если вы только учитесь и хотите начать работу над простыми проектами, Raspberry Pi Pico предлагает самый простой способ начать работу.

Например, для Raspberry Pi Pico предпочтительным языком программирования является MicroPython, тогда как Teensy 4.1 программируется преимущественно на C.

Также очень просто использовать CircuitPython на Raspberry Pi Pico, что облегчает создание проектов.

Цена Teensy 4.1, составляющая $26.85, намного больше, чем $4 Raspberry Pi Pico.

Кроме того, Raspberry Pi Pico гораздо проще питать от батареи, поскольку он может принимать широкое напряжение.

Raspberry Pi PicoTeensy 4.1
Частота процессора133 МГц600 МГц
Флеш-память2MB8 МБ
ОПЕРАТИВНАЯ ПАМЯТЬ256 КБ1024 КБ
GPIO26 (пригодный для использования)55 цифровых, 18 аналоговых
Есть ли USB?microUSBmicroUSB
WiFi и/или BT?НетНет, но есть Ethernet
Напряжение1,8 - 5,5 В или 5 В USB5 В через USB или VIN
Размер51x21 мм61x15 мм

Загрузки Raspberry Pi Pico

Я составил список файлов, которые могут помочь вам в ваших проектах. Большинство из них находится на поддомен даташита Raspberry Pi и то, что здесь находится, относится к Raspberry Pi Pico.

Ссылки

Распиновка Raspberry Pi Pico

Схемы Raspberry Pi Pico

Техническое описание Raspberry Pi Pico (о Pico, механические/электрические характеристики, особенности, питание, отладка, схема, расположение компонентов)

Краткое описание продукта Raspberry Pi Pico (маркетинговая колода)

Технический паспорт RP2040

Raspberry Pi Pico Fritzing файл

Вопросы и ответы по Raspberry Pi Pico

10 любопытных фактов о Raspberry Pi Pico

Программирование

Расширение C для MicroPython

Raspberry Pi Pico и MicroPython под Windows

Raspberry Pi Pico Начало работы с Pico (для разработки на C/C++)

Файл CircuitPython для Raspberry Pi Pico UF2

Thonny

Начните работу с MicroPython на Raspberry Pi Pico

Документация Raspberry Pi Pico C SDK (комплект разработки программного обеспечения)

Документация Raspberry Pi Pico MicroPython SDK (комплект разработки программного обеспечения)

CAD

Файл STEP для Raspberry Pi Pico

RP2040 минимальный файл KiCAD

RP2040 VGA KiCAD файл

14 комментариев

  1. Antony Апрель 18, 2022 в 11:54 дп

    Потребляемая мощность не 6 Вт, а 0,5 Вт (100 мА при 5 В).

    • Xuyun Zeng Апрель 20, 2022 в 5:02 дп

      Эй, Антоний, я исправил это. Спасибо за ваш вклад.

    • Rys Ноябрь 13, 2022 в 6:49 дп

      chyba na wyjściach pinów. Tak przynajmniej jest w karcie technologicznej PICO

  2. Andres Nuñez Июль 3, 2022 в 11:54 пп

    Puedo conectar por usb una Raspberry Pi Pico con un Arduino Nano. que la rrasberry envíe por usb datos al arduino?

    Gracias

  3. robert Сентябрь 19, 2022 в 8:47 пп

    pico w теперь имеет wifi

  4. Arya Сентябрь 24, 2022 в 7:17 дп

    > О, я уже упоминал, что Raspberry Pi Zero очень требователен к напряжению, которое вы ему подаете? Он принимает только 4,75 - 5,25 В.

    неверно, это заявленная спецификация, но он принимает более низкие значения и творит чудеса. см. здесь: https://hackaday.io/project/19035/log/69596

  5. FWBlack Октябрь 4, 2022 в 7:12 пп

    Очень хорошо написано! Мне понравилось вот это: "Ну, например, в одном из моих проектов потенциометр использовался для регулировки частоты переключения реле". - Я хотел спросить, не могли бы вы поделиться подробностями этого проекта в качестве примера. Использовали ли вы PIO / PIO State Machine?

    • Xuyun Zeng Октябрь 5, 2022 в 10:01 дп

      Не используется PIO!

      В принципе, при подключении потенциометра к АЦП вы получите значение. При повороте потенциометра значение будет увеличиваться или уменьшаться.

      В основном я использовал эти значения для создания таймера. Например, если значение равно 2000, это будет соответствовать 2 секундам включения и 2 секундам выключения.

  6. Frabci Декабрь 7, 2022 в 2:48 дп

    Buenas, es posible que la raspberry pi pico se queme al recibir de entrada una correinte de 2A pero voltaje de 5V?

    • Xuyun Zeng Декабрь 8, 2022 в 7:09 дп

      Вы пользуетесь автомобильным зарядным устройством, которое имеет напряжение 2A? Несмотря на то, что всегда есть риск, полагаю, что Pico поддерживает только то напряжение, которое необходимо, хотя ваш каргадор может выдавать 2 А (максимум).

  7. Nigel A Gunn Январь 20, 2023 в 9:42 пп

    Вы не ограничены C или microPython для программирования. У меня есть picos с установленными интерпретаторами FORTH и BASIC, и всегда есть CircuitPython.

    • raspi berry Февраль 4, 2023 в 11:49 дп

      Спасибо за отзыв - интересно узнать, что на Pico можно запускать и такие языки, как FORTH!

  8. Antonio Апрель 28, 2023 в 2:01 пп

    Su Raspberry Pi Pico W non riesco ad installare la libreria adafruit-circuitpython-hid.
    Inizia l'installazione e dopo un po mi da errore 28 memoria piena.
    что делать?
    1000 граций

  9. PoyFromFrance Август 28, 2023 в 10:36 дп

    Отличная статья! Я использовал Pico для своей пользовательской клавиатуры с прошивкой kmk (схема на основе python), и она великолепна.
    Недавно я купил несколько клонов pico на aliexpress по цене 2,7 доллара с типом C и 16 Мб... Пока не тестировал.

Комментировать