====== Raspberry Pi Zero USB Stem: подключение, настройка и начало работы ======
Используйте [[amp>product/raspberry-pi-zero-usb-stem?utm_source=man&utm_campaign=raspberry-pi-zero-usb-stem&utm_medium=wiki|Zero USB Stem]] для превращения самых маленьких Raspberry Pi, а точнее [[amp>product/raspberry-pi-zero?utm_source=man&utm_campaign=raspberry-pi-zero&utm_medium=wiki|Zero]] и [[amp>product/raspberry-pi-zero-w?utm_source=man&utm_campaign=raspberry-pi-zero&utm_medium=wiki|Zero W]] в компактный USB-стик.
{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem.1.jpg?nolink&600 |}}
Полноценный USB-порт позволит подключать малинку к ПК аналогично USB-флешке без единого провода. А программное обеспечение подарит возможность коммуницировать с Zero по USB как OTG-устройство, например притворится виртуальным COM-портом или полноценным Ethernet устройством. А в завершении USB Stem позволяет запустить малинку без SD-карты.
===== Сборка устройства =====
Raspberry Pi Zero Stem поставляется в разобранном виде. После покупки вам нужно пройти небольшой квест и спаять модуль. Следуйте нашей инструкции, и вы получите готовое к работе устройство!
==== Что понадобится ====
{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem.7.jpg?nolink |}}
- 1× Raspberry Pi [[amp>product/raspberry-pi-zero?utm_source=man&utm_campaign=raspberry-pi-zero&utm_medium=wiki|Zero]] или [[amp>product/raspberry-pi-zero-w?utm_source=man&utm_campaign=raspberry-pi-zero&utm_medium=wiki|Zero W]]
- 1× Плата Pi Zero Stem
- 1× Разъём USB Type-A
- 2× Гайка М3
- 2× Винт М3
==== Как спаять ====
- Установите разъем USB на лицевую сторону платы Zero Stem.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-hardware.1.css.png?nolink&200 |}}
- Припаяйте два крепления порта USB на обратной стороне платы.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-hardware.2.jpg?nolink&600 |}}
- Припаяйте USB-разъём к контактным площадкам SMD на лицевой стороне платы.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-hardware.3.jpg?nolink&600 |}}
- Скрепите Zero Stem с платой Raspberry Pi через винты и гайки.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-hardware.4.jpg?nolink&600 |}}
- Спаяйте между Raspberry Pi и Zero Stem контактные площадки питания VBUS и земли GND.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-hardware.5.jpg?nolink&600 |}}
- Спаяйте между Raspberry Pi и Zero Stem контактные площадки D+ и D−.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-hardware.6.jpg?nolink&600 |}}
- Ура, устройство готово. Теперь можно переходить к [[#примеры_для_usb-стика|примерам использования малины в виде USB-стика]].{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-hardware.7.jpg?nolink |}}
===== Примеры для USB-стика =====
На большинстве плат Raspberry Pi, USB-порты подключены к центральному процессору через USB-концентратор и настроены как хост-устройства. Т.е. порты ожидают подключения только периферийных устройств, например USB-Flash накопителя, клавиатуры, мышки и т.д.
Но на Raspberry Pi Zero и Zero W контакты USB-порта подключены непосредственно к самому процессору малины.
Это даёт возможность использовать младшую версию Raspberry Pi не только как хост-устройство, но и выступать самой в виде периферийного девайса, например при подключении к ПК по USB стать Flash-накопителем, MIDI-устройством, виртуальным COM-портом «Serial Gadget», Ethernet-соединением «Ethernet Gadget» и т.д.
==== Serial Gadget ====
Драйвер Serial Gadget позволяет Raspberry Pi Zero при подключении к ПК по USB, определятся как последовательный COM-порт. Простота коммуникации заключается в том, что вы можете использовать малину с любым компьютером без дополнительных драйверов и танца с бубном.
=== Настройка Serial Gadget ===
- [[articles:rpi-guide|Подготовте Raspberry Pi]].
- Отредактируйте файл
config.txt.
Добавьте в конец файла строчку:dtoverlay=dwc2
- Отредактируйте файл
cmdline.txt.
Найдите в файле строку rootwait
и добавьте после неё строку modules-load=dwc2,g_serial
- Подключитесь к Raspberry Pi через рабочий стол по HDMI или SSH.
- Проверьте установку драйвера g_serial, вбейте в терминал команду:sudo dmesg
Найдите в отображенном списке, драйвер g_serial среди других устройств.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.1.css.png?nolink |}}
- Далее привяжите консоль Raspberry Pi к новоиспеченном последовательному порту. Вбейте в терминале команду:sudo systemctl enable getty@ttyGS0.service
- Перезагрузите малину:sudo reboot
- Проверьте привязку консоли к COM-порту. Вбейте в терминал команду:sudo systemctl is-active getty@ttyGS0.service
В ответ вы увидите одно из двух сообщений системы:
- active: всё получилось и можно переходить к следующему шагу.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.2a.css.png?nolink |}}
- inactive: что то пошло не так, повторите предыдущие шаги.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.2b.css.png?nolink |}}
- Выключите Raspberry Pisudo shutdown -r now
- Отключите все устройства и провода от малины, кроме SD-карты.
=== Запуск ===
- Подключите Raspberry Pi к USB-порту компьютера через Zero Stem без единого провода.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.3.png?nolink |}}
- Запустите диспетчер устройств Windows и раскройте вкладку Порты (COM и LPT). Вы должны увидеть COM-порт с именем ELMO GMAS (COMx), где x — номер последовательного порта, запомните его.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.4.css.png?nolink |}}
- Запустите любой клиент с поддержкой Serial-соединения, например [[https://www.putty.org/|Putty]]. Вбейте номер COM-порта из предыдущего пункта, выставите скорость 115200 бод и нажмите на кнопку Open.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.5.css.png?nolink |}}
- Введите логин и пароль от малины, по умолчанию логин — pi, пароль — raspberry. {{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.6.png?nolink |}}{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.7.png?nolink |}}В случае успешного ввода данных, увидите приветственное окно консоли.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.8.png?nolink |}}
- Для теста подключения, вбейте в консоль команду отображения даты и времени:date
{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.9.png?nolink |}}
- Putty не единственная программа, который может осуществлять Serial-комуникацию. Для связи можно использовать любой софт, например встроенный терминал из Arduino IDE.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-serial-gadget.10.css.png?nolink |}}
==== Ethernet Gadget ====
Драйвер Ethernet Gadget позволяет Raspberry Pi Zero при подключении к ПК через USB-стик, определятся как виртуальное сетевое подключение Ethernet. Это даёт возможность общаться с малинкой по протоколам SSH, SCP, VNC без дополнительных Ethernet-соединений и Wi-Fi. Ethernet Gadget также позволяет поделится настройками сети, что бы Raspberry Pi мог получить доступ к интернету через внешний компьютер по USB-подключению.
При подключении к Raspberry Pi через USB-стик в режиме «Ethernet Gadget», IP-адрес назначается системой динамически, т.е. малинке будет присваиваться новый IP-адрес при каждом включении питания. А это означает, что заранее нельзя узнать к какому IP-адресу подключатся для коммуникации. Решение проблемы — Zeroconf, технология которая позволяет подключатся к локальным устройствам по имени.
* OS Mac: настроен по умолчанию
* OS Linux: установите утилиту [[https://www.avahi.org/|Avahi]]
* OS Windows: установите утилиту [[https://support.apple.com/kb/DL999|Bonjour]]
=== Настройка Ethernet Gadget ===
- [[articles:rpi-guide|Подготовте Raspberry Pi]]
- Отредактируйте файл
config.txt.
Добавьте в конец файла строчку:dtoverlay=dwc2
- Отредактируйте файл
cmdline.txt.
Найдите в файле строку rootwait
и добавьте после неё строку modules-load=dwc2,g_ether
- Подключитесь к Raspberry Pi через рабочий стол по HDMI или SSH.
- Проверьте установку драйвера g_ether, вбейте в терминал команду:sudo dmesg
Найдите в отображенном списке, драйвер g_ether среди других устройств.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.1.css.png?nolink |}}
- Выключите Raspberry Pisudo shutdown -r now
- Отключите все устройства и провода от малины, кроме SD-карты.
=== Запуск ===
- Подключите Raspberry Pi к USB-порту компьютера через Zero Stem без единого провода.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.2.png?nolink |}}
- Запустите диспетчер устройств Windows:
- Если во вкладке Сетевые адаптеры вы видите Ethernet-соединение с именем USB Ethernet/RNDIS Gadget. Это значит всё получилось и можно переходить к следующему шагу.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.3.css.png?nolink |}}
- Если во вкладке Сетевые адаптеры Ethernet-соединение с именем USB Ethernet/RNDIS Gadget нет, тогда скорей всего система Windows назначила девайсу неправильный драйвер. Для проверки откройте вкладу Порты (COM и LPT) и если обнаружите девайс с именем Устройство с последовательным интерфейсом USB (COMx), тогда {{ :products:raspberry-pi-zero-usb-stem:driver-usb-ethernet-rndis.zip |обновите драйвер вручную}}.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.4.css.png?nolink |}}
- Запустите любой SSH-клиент, например [[https://www.putty.org/|Putty]]. Вбейте в поле хост строку raspberrypi.local, порт оставьте по умолчанию 22 и нажмите на кнопку Open.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.5.css.png?nolink |}}
- Введите логин и пароль от малины, по умолчанию логин — pi, пароль — raspberry. {{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.6.png?nolink |}}{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.7.png?nolink |}}В случае успешного ввода данных, увидите приветственное окно консоли.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.8.png?nolink |}}
- Для теста подключения, вбейте в консоль команду отображения даты и времени:date
{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.9.png?nolink |}}
- Проверьте текущий IP-адрес назначенной системой по USB через виртуальное Ethernet-соединение. Вбейте в консоль команду: ifconfig
В ответ вы получите список сетевых подключений, где нас интересует тип соединения usb0. Обратите внимания, что при каждом новом включении малины, IP-адрес будет меняться.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.10.css.png?nolink |}}
=== Доступ к интернету ===
Режим Ethernet Gadget также позволяет дать доступ Raspberry Pi к интернету через внешний компьютер по USB-подключению.
- Откройте страницу сетевых подключений.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.11.png?nolink |}}
- Выберите текущее подключение по которому осуществляется выход в интернет и в настройках подключения предоставьте общий доступ.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.12a.css.png?nolink |}}{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.12b.css.png?nolink |}}
- Проверьте доступ в мировую сеть. Вбейте в консоль команду:sudo ping www.google.com
В ответ вы увидите процесс обмена данными между клиентом и сервером.{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-ethernet-gadget.13.png?nolink |}} Это значит всё получилось и можно переходить к дальнейшим экспериментам и урокам.
===== Элементы платы =====
{{ :products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-annotation.png?nolink |}}
==== USB-порт ====
На торце платы расположен USB-порт Type-A, который позволяет подключить малину непосредственно в USB-порт компьютера без дополнительных кабелей аналогично обычной флешке.
==== Контакты питания ====
^ Имя контакта ^ Назначение ^
| VBUS | Входной пин для подключения источника напряжения малины|
| GND | Вывод земли|
==== Контакты данных ====
^ Имя контакта ^ Назначение ^
| D− | Сигнальный пин для обмена данными по USB|
| D+ | Сигнальный пин для обмена данными по USB|
===== Габаритный чертёж =====
[[this>_media/products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-dimensions.pdf|{{:products:raspberry-pi-zero-usb-stem:raspberry-pi-zero-usb-stem-dimensions.png}}]]
===== Характеристики =====
* Модель: Raspberry Pi Zero USB Stem
* Совместимость: платы Raspberry Pi Zero и Zero W
* Размеры: 49,7×30×5 мм
===== Ресурсы =====
* [[amp>product/raspberry-pi-zero-usb-stem?utm_source=man&utm_campaign=raspberry-pi-zero-usb-stem&utm_medium=wiki|Raspberry Pi Zero USB Stem]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/raspberry-pi-zero-usb-stem.svg|Векторное изображение модуля]]
* {{ :products:raspberry-pi-zero-usb-stem:driver-usb-ethernet-rndis.zip |Драйвер USB Ethernet RNDIS}}
* [[https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/serial-gadget|Настройка Serial Gadget от Adafruit]]
* [[https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/ethernet-gadget|Настройка Ethernet Gadget от Adafruit]]