====== 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]]