Orange Pi zero 512Mb




Куплен за 828 руб, дошел по почте за 3 недели, в целости и сохранности, упакован «коробка в коробке». Коробочка от Pi One/Lite, странно. Плата просто малютка, по фотографиям хоть и подумаешь, но не поверишь на сколько, пока не возьмешь в руки. Сделана очень качественно, из отличных компонентов, расположение которых проработано отлично, монтаж очень плотный.
Это мой первый «малино-подобный» компьютер, поэтому включать и знакомится с ним будем по порядку, в этой статье:
- Распиновка 3 pin, 13 pin, 26 pin GPIO хеадеров . . .
- Запуск Armbian.
- Подключение к десктопу.
- Подключение по Wi-Fi .
Распиновка 3 pin, 13 pin, 26 pin GPIO хеадеров .

Охлаждение процессора.
Первое, что нужно сделать для стабильной работы — это обеспечить процессору охлаждение, значит нужно изготовить радиатор .
Подключение по debug serial port.
О моем первом опыте подключения Orange Pi Zero по UART (COM порту) с помощью USB адаптера CP2102, я сделал небольшую памятку .
Запуск Armbian.
Armbian_5.24 — родной для Orange Pi Zero.
Вторым шагом можно уже включить устройство и загрузить на нем ОС. Впрочем Armbian можно запускать и без радиатора, нагрузка на процессор с ним крайне мала. Как это сделать? Не имея опыта работы с линуксом и Orange Pi, а тут еще и придется всё делать «в слепую» без монитора, я решил идти сложным путем, хотя как сказать, ведь просто так монитор нам не подключить, и пытаться подружить «апельсинку» с видео входом телевизора не хотелось. Так вот, я был не мало озадачен, пришлось помучить поисковики, и вот то что я нашел и сделал постараюсь разложить по пунктикам в понятной форме, для тех, кто собирается делать это в первый раз, как и я.
1. Нам нужно найти образ ОС, мой выбор, по рекомендациям «интернета», пал на Armbian. На сайте armbian.com нужно найти наш мини компик и скачать для него любой архив с образом системы, на выбор их два : Debian_jessie_3.4.113 и Ubuntu_xenial_3.4.113.
2. Подготовить SD флешку объемом минимум 4 Гб, и полностью ее отформатировать. Если форматирования будет не достаточно, значит нужно будет использовать программу SDFormatter с выбором опций как на скрине.

3. Распаковать архив в папку, куда угодно, только не на флешку — понадобится один фаил образа системы (Armbian_5.24_Orangepizero_Ubuntu_xenial_3.4.113.img). С помощью программы Win32DiskImager записать этот образ на флешку.
4. Вставляем флешку в слот Orange Pi Zero. Подключаем питание к порту MicroUSB, в моем случае, хватило даже питания от USB 3.0 порта ноутбука. Ждем когда закончится первая загрузка, она немного дольше, чем последующие, во время загрузки должны поморгать светодиоды, и в итоге загореться зеленый.
4. Подключаться к «апельсинке» будем по проводной сети, через программу PuTTY (SSH-клиент). В разделе «сеанс» нужно указать IP-адрес и порт «оранжевого», порт останется 22, а вот IP-адресс нужно будет узнать, в случае подключения к сети через роутер, адресс будет виден в его «админке». Вводим адрес, тип соединения оставляем SSH, порт 22 и жмем соединится. Если все идет по плану, то в открывшемся терминале, ОС миникомпа попросит ввести логин и пароль, по умолчанию, у скачанных ранее образов логин — root , пароль — 1234. Далее нужно создать новые пароли, и после этого станет доступен ввод команд.

Armbian_5.25 — предназначается для Orange Pi One.
Мне удобнее использовать «апельсин» с десктопом, но Armbian_5.24 — серверный, и мне надоело устанавливать на него XFCE и тому подобное, от нехватки опыта, ни чего по нормальному у меня не работает, поэтому я рискнул запустить Armbian_5.25, и часть моих проблем с этим быстро улетучилась!
Всё делается аналогично предыдущему мануалу. И вот что получается:

Добираемся до заветного десктопа.
Для этого понадобится vncserver, его нужно установить, если вы залогинились как root пользователь, то введите в терминале:
| apt-get install tightvncserver |
И запустите сервер:
| vncserver |
| You will require a password to access your desktops. . Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /root/.Xauthority does not exist . New ‘X’ desktop is orangepione:1 . Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/orangepione:1.log |
Так как это первый запуск, нужно задать пароль.
Десктоп 1 — создан.
Из под виндовс подключится можно через программу UltraVNC Viewer.

IP адрес тот же, с которым вы подключились к терминалу.
Порт 5901 (1 — это номер запущенного десктопа)

Введите созданный ранее пароль.
Все должно заработать, но учитывайте, что я описал лишь самый базовый способ подключится, возможно он не полностью безопасен, а так же имеет много настроек, например автозапуск vncserver-а, об этом вам придется поискать информацию самостоятельно.
Простой способ включить Wi-Fi на Armbian.
В терминале вводим:
| nmtui-connect |
Далее все очень просто, выбираем SSID — имя вашей сети
Вводим пароль, чтобы подключится.
Далее после новой загрузки «апельсина» Wi-Fi соединение установится автоматически, и можно будет подключаться к Armbian с помощью SSH терминала, без проводов. Только не забудьте узнать новый IP адрес беспроводного подключения, выданный «апельсину» вашим роутером.
Информация с сайта docs.armbian.com.
Загрузочная SPI-Флешка и SSD Для Orange Pi Zero.
Апельсин можно загружать и более интересным способом, загружать любую ОС (Armbian, Ubuntu и тому подобные) с USB mSATA диска, да так, чтобы SD флешка не использовалась вообще — SD (MMC) слот оставался пустым. По умолчанию, апельсин устроен так, что его самый «низкоуровневый» загрузчик обращается к SD (MMC) слоту или к SPI0 (spidev0.0). На плате есть контактные площадки под SPI микросхему в корпусе SOIC-8, например W25Q128FVSG
А еще на основе Oranga Pi можно сделать программатор для копирования/записи SPI-чипов.
Подключение USB аудио устройств и микрофона к Raspberry Pi Zero W
Плата Raspberry Pi Zero W, также как и другие платы семейства Raspberry Pi, испытывает недостаток разъёма аудио, поэтому для добавления ей функционала аудио может быть использована USB звуковая карта и микрофон. Как известно, плата Raspberry Pi Zero W не имеет аппаратного обеспечения для работы с аудио сигналами, поэтому целесообразно использовать USB звуковую карту (или ее аналог) вместе с аналого-цифровым-преобразователем (АЦП) для придания ей этого функционала.

В данной статье мы рассмотрим подключение к плате Raspberry Pi Zero W USB звуковой карты и микрофона и будем использовать программные средства ALSA для тестирования работы аудио устройств, подключенных к плате.
Необходимые компоненты
- Плата Raspberry Pi Zero W (купить на AliExpress).
- USB звуковая карта (купить на AliExpress).
- Монитор.
- USB хаб.
- OTG кабель.
- Micro HDMI кабель.
- Micro SD карта.
- Громкоговоритель (Speaker).
- Микрофон.
Прежде чем приступать к реализации данного проекта, убедитесь в том, что на плату Raspberry Pi Zero W установлена операционная система и у вас есть возможность удаленного управления платой по протоколу SSH – для работы с данным протоколом мы будем использовать приложение MobXterm, однако вы можете использовать для этой цели любую другую аналогичную программу (например, putty).
USB звуковая карта
USB звуковая карта (USB Sound Card, также известна как USB-аудиоадаптер) осуществляет конвертацию интерфейса USB в разъем 3.5 мм для микрофона и в разъем для подключения наушников (громкоговорителя). Ее внешний вид показан на следующем рисунке.

Мы будем использовать USB звуковую карту (USB-аудиоадаптер) для подключения к плате Raspberry Pi Zero W микрофона и громкоговорителя. Адаптер головных телефонов (Earphone Splitter Adapter) 3.5mm будет преобразовывать один USB разъем в 2 разъема типа female jacks (мама), и, таким образом, давая возможность использовать USB для добавления входа моно микрофона и стерео выхода на компьютер.
Особенности USB звуковой карты:
- один USB разъем типа «папа»;
- два разъема 3.5mm (на 3 позиции) типа Female Jacks (1 – для микрофона, 1 – для головных телефонов);
- подходит для головных телефонов с микрофоном;
- устраняет ограничение некоторых портативных USB портов, превращая USB порт в 2 раздельных аудио разъема 3.5mm, что позволяет подключать одновременно и микрофон, и внешние громкоговорители;
- позволяет использовать старые аудио устройства совместно с современными компьютерами;
- может использоваться с любыми устройствами, которые поддерживают работу с USB разъемами.
Подключение USB звуковой карты к плате Raspberry Pi Zero W
Подключите монитор к вашей плате Pi Zero W, используя кабель micro-HDMI, и подключите к плате OTG кабель. После этого подключите к плате Raspberry Pi Zero W USB звуковую карту с помощью USB хаба. Подключите к USB звуковой карте громкоговоритель и микрофон используя разъемы 3.5 mm. На следующем рисунке показана полная схема соединений нашего проекта.

После этого подайте питание на плату Raspberry Pi Zero W с помощью кабеля micro-USB.
Теперь вам нужно сконфигурировать чипсет (chipset) вашего устройства. Доступно 4 возможных типа данного чипсета (ваше устройство должно поддерживать один из них):
1 — CM108 Type
2 — CM-Headphone Type
3 — CM109 Type
4 — GeneralPlus
Подключите USB звуковую карту к вашей плате Raspberry Pi Zero W с помощью USB кабеля и OTG кабеля. После этого произведите загрузку операционной системы платы обычным способом. Затем измените настройки аудио с разъема 3.5 mm jack на USB в настройках платы.


Далее напечатайте в командной строке команду dmesg | grep cm109 и если у вас чипсет CM109, то вы увидите ряд строк, извещающих об этом. Если это не сработало, то попробуйте команду dmesg | grep Headphone . Если после этого появится драйвер «The C-Media USB Headphone Set», то у вас чипсет CM-headphone. Если и в этот раз ничего не появилось, то попробуйте команду dmesg | grep C-Media . Появится несколько строк в терминале о C-Media, но среди них не будет упоминания о драйвере cm109 – это будет указывать на то, что у вас чипсет CM108. Если снова ничего не появилось, то напишите в окне терминала команду dmesg | grep General и вы увидите несколько строк с упоминанием в них «GeneralPlus» – это будет указывать на то, что у вас чипсет GeneralPlus. На представленном ниже рисунке можно увидеть, что у автора данного проекта заработала только одна команда из перечисленных, а остальные не заработали. Таким образом он определил что у него чипсет C-Media (C-108) . Поэтому далее он делал настройки для этого чипсета.

Введите в окне терминала команду lsusb . После этого на экране вы должны увидеть следующую картину:

После этого введите в окне терминала команду aplay –l , в результате ее выполнения вы должны увидеть список устройств, способных воспроизводить звук.
OrangePi Zero, start!

Когда все настроено надо нажать Start и дождаться конца работы программы.
После этого вставляем Microsd в гнездо на OrangePi.
Включить Orangepi, настроить и подключиться к ней
Подсоединяем OrangePi к роутеру кабелем

и включаем питание Orangepi, советую проводить дейтивия строго по порядку.
Пока OrangePi включается, заходим на роутер и открыавем список клиентов в сети роутера

Пока мы занимались роутером, OrangePi должна засветиться красным, так же порт Ethernet должен заморгать(индикация траффика)

Обновляем список клиентов на роутере и ищем новых клиентов

Находим клиента OrangePiZero и смотрим его Ip (192.168.1.111)

Если все сделали правильно, в окне терминала появится запрос логина и пароля

Логин и пароль orangepi

Все! можем работать:)
3. Настроить автоматическое подключение к сети через роутер
Путем гугления я нашел простую команду, которая подсоединяет Orangepi к сети Wifi
sudo nmcli d wifi connect название_сети password пароль_к_WIFi
скорее всего эта команда будет работать только на Ubuntu версии!
Вписываем ето в терминал и нажимаем ентер, терминал попросит нас ввести пароль и выполнит команду.
После этого в терминале должны выписаться все подключения, если этого не произошло, просто вводим в коноль ifconfig и нажимаем ентер

Нас интересует секция WLAN3, она может называться по разному но всегда должна состоять из префикса WLAN(, я думаю это значит что данная сеть есть wifi сетью)
Ищем там адрес IP и запоминаем его.
После этого отсоединяем Orangepi от роутера и подключаемся к ней используя новый адрес Ip, при каждом включении Orangepi сама должна подсоединиться к сети.
От себя хочу сказать что мне очень помогли эти гайды и если данная тема будет востребована, я сделаю еще постов о том как запустить удаленный рабочий стол с графическим интерфейсом на orangepi, как управлять пинами GPIO и работать с разными датчиками и как запустить простой вебсайт с графиком температуры.

1.2K пост 20K подписчиков
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Выкладывать код прямо в посте — используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)
• Рассуждать на темы политики
Раз заходим в панель управления роутера, советую выдать для orange pi (подключенной по wifi, не ethernet) статический ip и запоминать его.
Поясните вкратце для чего эта штука?
меня интересует данная вещь как замена домашнему серваку(P4 3.2gGz 1.5gB DDR1 ), можно ли к сему девайсу подсобачить винт 3,5″ sata через USB там или ещё как? у меня есть usb — sata, если взять блок питания от компа и сей переходник, можно ли будет подружить их вместе? (про то, что нужно питание 12в я в курсе поэтому и будет блок от компа)
Подписался, пиши еще) Хотелось бы побольше материала про практическое применение.
нахрена там файловая fat32, если стоит линух?

Старо как мир или "трекбол мне в кибердеку"
Если самоделки и колхоз вызывают у вас приступы кринжа — лучше пропустить этот пост😅
Дисклеймер: я не программист и электроникой тоже занимаюсь очень любительски в свободное время. Все это для я делаю как хобби для фана и отдыха.
К нашим баранам. Как это выглядит, трекбол на фото светится фиолетовым. А сейчас подробнее.

Начнем с того, что есть устройство на линуксе raspberry pi4. И очень хотелось бы сделать его переносным. С клавой все решается достаточно просто — монтированием в корпус к самому устройству или подключив через usb/bt и кладешь куда угодно.
Однако с мышкой все сложнее, нужна ровная, незеркальная, чистая поверхность. Тачпады это слишком просто, ну, мы же не ищем легких путей! В крайнем случае у меня есть такая хрень.

Но и печатать и пользоваться мышкой на ней неудобно это скорее костыль.
Так вот о чем это я? Мне для «кибердеки» нужна была мышь.
Исключая тачпад, есть два три стула:

Джойстик (различных видов)
Трекпоинт (такие стоят на линейке Thinkpad от Lenovo)
С джойстиками я попробовал и, в принципе, это работает. Немного не хватает резкости, из-за недостатка опыта в коде не могу это поправить нормально.
Трекбол изначально мне импонировал, так как тема киберпанка берет свое начало когда такие штуки уже были и хотелось опробовать. Годных вариантов за недорого не так много.
Трекпоинты интересная вещь, тоже считаю нужным опробовать, как будет возможность или желание. Работает он в отличие от обычного джойстика на тензометрических датчиках.
Я выбрал трекбол из-за экзотики, размера и цены.
На алишке можно найти по запросу ICSH044A или Blackberry Trackball, так как такие стояли на телефонах Blackberry.

Также мне понадобилась Ардуинка, так как моя UNO не поддерживает работу USB HID, так что пришлось взять Pro Micro на чипе ATmega32U4 (который и позволяет в hid)

Ладно, я слегка затянул с прелюдией.
Было много гуглирования, чтобы найти хоть что-то по модулю, а также, чтобы его поменять под свои нужды, но в основном спасибо этому посту на github, в котором чувак еще и добавил ускорение курсора при увеличении кратковременного ускорения скорости шарика.
Подсветку можно запитать на свой вкус, подав на подписанные контакты «+», выбирая или миксуя синий, красный, зеленый и белый. Здесь запитаны красный и синий, что дает фиолетовое свечение.

Подключение к пинам ардуино:
Правая кнопка 8
При отпаивании ножек отпаялась площадка, а также кнопки приклеил сюда же — так что сейчас будет мясо. Но учитывая небольшой брак модуля он точно не останется в финальной сборке. На кнопки накинуты резисторы 10 кОм во избежание дребезга сигнала.


Если кому-то будет интересно могу снять видео, но демо-видео трекбола можно найти по ссылке на github, которую указывал выше.
Расположение подобрано для большого пальца правой руки.

Удивительно, но к этому действительно легко привыкнуть.
Подключается по USB и начинает работать сразу и в WIndows и в Linux.
Достаточно хорошая точность и отклик.
Можно отметить небольшой брак(заводской), это остатки клея, которые мешали работе одной из осей и встроенной кнопки.
Отсутствие скролла в собранной конструкции.
Двигать курсором по диагонали не очень удобно.
Кибердека или свой миникомп (во временном корпусе)




Xfce 4.18 — превращается в KDE ? Удивил! Новое в elementaryOS (В текстовом формате)
Обновление elementaryOS 6.1

Основная работа компании направлена на разработку EOS версии 7.0, но при этом они умудряются производить обновления текущих версий, хоть и очень медленно и долго.
Немного про дистрибутив
Изначально дистрибутив был основан на всеми известном Ubuntu, использует её пакетную базу, и при этом развивает свое собственное рабочее окружение Pantheon, напомним что в Ubuntu на данный момент, по умолчанию используется GNOME, не считая отводки от канонов по типу xfce, kde, lxqt и т.д.

Особое внимание в Pantheon уделяется внешнему виду и минимализму. Для данного дистрибутива пишут свои программы. Из особенностей EOS так-же отмечается магазин приложений, где многие продукты скачиваются по принципу: «Плати сколько хочешь или не плати», правда работает это не на все приложения, на некоторых стоит зафиксированная цена. Кстати говоря, при скачивании образа дистрибутива с официального сайта, так-же настойчиво просят заплатить за него, что можно так-же благополучно не делать, но факт есть факт. Автор видеоролика «Pingvinus», опасается что дистрибутив и вовсе станет платный.
Обновление «Проводника»

Теперь в EOS 6.1 можно вызвав контекстное меню, выбрать режим при котором клики по папкам, будут выделять их, что несомненно удобно для тех, кто работает с папками или файловыми системами.
Так-же присутствует изменение в горячих клавишах и ряд исправленных проблем, что не может ни радовать.
Представлена новая программа
В EOS 6.1 была представлена новая программа для разработчиков, название ей: «Icon Browser» — данная утилита позволяет интегрировать системные иконки в свои программы, позволяя совершать поиск по иконкам и выдавая пример кода, который можно легко скопировать и вставить в нужном месте.

Как выглядит программа:

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

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

Обновление терминала
В EOS 6.1 была обновлена система оформления терминала, как пишут разработчики, это хорошо сказалось на производительности.

Теперь в меню приложения можно выбрать использование системной темы или настроить оформления самим, так-же появилась новая бежевая тема.
Синхронизация списка дел
В утилите для создания списков дел, появились улучшения синхронизации, добавлена автоматическая синхронизация при выборе списков — а так-же поддержка автономного режима.

Обновление «CODE»
В их собственном текстовом редакторе кода для разработчиков, добавлена поддержка регулярных выражений при поиске текста, а в боковой панели теперь показываются скрытые папки. Теперь можно переключать ветки GIT, если есть неотслеживаемые файлы.

Улучшенная поддержка принтеров
В EOS 6.1 появилась улучшенная поддержка принтеров, так-же возможность очистки очереди печати для каждого принтера по отдельности. Был обновлен интерфейс диалога дял работы с принтерами.

Переработка некоторых настроек
Были переработаны некоторые настройки рабочего стола, а так-же многозадочности. Теперь можно настроить каждый угол и даже задать свою собственную комманду при касании курсора угла, что несомненно плюс.

Долгожданный резил XFCE 4.18
Теперь речь пойдет об рабочем окружении XFCE, коротко о нем:
Xfce — это облегченная среда рабочего стола для UNIX-подобных операционных систем. Она стремится быть быстрой и потреблять мало системных ресурсов, при этом оставаясь визуально привлекательной и удобной для пользователя.

Что нового?
Обновление основной библиотеки.
Зависимости Xfce 4.18 изменены и скомпилированы с использованием следующих версий.
Так-же теперь настройки апплета «clock», является не только настройкой времени но теперь и даты, что очень и удобно, ведь они теперь одно целое, а не два отдельных компонента.
Ещё было исправлено масштабирование интерфейса, а так-же размытие иконок из-за него.
Обновление «Проводника» XFCE 4.18
Одним из самых заметных изменений, это внешний вид проводника, теперь его можно разделить на две части.

В режиме просмотра таблицы теперь можно вывести количество директорий и добавлена новая колонка: «Дата создания файла».

Добавлена новое отдельное место в боковой панели, для предпросмотра изображений. Так-же её можно разместить справа как отдельную панель.

Цвета файлов
Ещё из нововведений это подсветка файлов с помощью настраиваемого цвета, причем для каждого файла можно установить как цвет фона, так и шрифта.

Очень интересная функция, странно что она впервые не вышла в KDE:

Не отходя от проводника, можно так-же отметить что теперь, появилась редактирование панели инструментов в верхнем меню:

Поиск файлов
Теперь поиск файлов доступен прямо в проводнике, что несомненно удобно!

Заключение
Изменения были глобальные, многие интересные и очень полезные. ElementaryOS в этом плане порадовал меньше всего, но и там были полезные фишки. Данная статья является переводом в текст видеоролика: https://www.youtube.com/watch?v=YmGlQq3H-o4; По просьбе пользователя из Pikabu. Спасибо что остаетесь со мной, всем хорошего вчера!

Как я полтора года танк на Arduino (и не только) пилил
Привет, уважаемые пользователи Пикабу! Здравствуйте, любители таких тем как DIY ( ‘do it yourself’ — сделай сам), IoT (‘Internet of things’ — интернет вещей) и так далее.
Пару лет назад я обзавелся новым хобби, точнее, воскресил старое — микроэлектроника и
радиотехника. Что и как из этого получилось я опишу далее, а пока вот фото для затравки.

Сейчас, конечно, с паяльником сидеть гораздо приятней и проще чем 20+ лет назад. Все радиодетали в доступности, интернет просто кишит различной информацией, необходимой для того, чтобы начать что-то изучать на эту тему. Кроме того, стали доступны всякие вещи для создания конструкций, корпусов. Я уже молчу об огромном количестве готовых наборов для начинающих, которые могут заинтересовать этой увлекательной и полезной темой подрастающее поколение. Интерес к робототехнике также подогревается и тем, что она тесно связана с программированием, что как никогда актуально. Начинать обучение программированию, когда имеешь дело не с абстрактными данными а с чем-то, что можно пощупать, запустить или отправить в плавание — на мой взгляд хорошая идея. Это была минутка агитации и если вам стало интересно, какие вещи, например, можно сделать в наше время домашних условиях своими руками, пожалуйста, продолжайте чтение.
Прежде чем продолжить, хочу сказать, что не считаю, что тема легкая и что это для всех, ведь каждый человек уникальный со своими особенностями. Ведь нужно обладать определенными качествами и образованием, чтобы делать определенные вещи. Но есть один важный момент: никогда не поздно чему-то учиться, и при правильном подходе, если какая-то тема стала вам интересна можно чего-то в ней добиться. Не каждый станет музыкантом, но если музыка нравится, можно для начала хотя бы научиться в ней разбираться.
В марте 2021 года я начал проявлять интерес к Arduino. До этого я всегда считал это чем-то недостижимо сложным, чем-то на грани физического и цифрового миров. Я программист и имею небольшие навыки в радиотехнике, чтобы, собрать, например усилитель ШИМ-сигнала, или подружить 3.3v логику с пятивольтовой, или сделать гирлянду на елку, или свет для своих перцев, которые выращиваю дома. То есть имею базовые представления о работе полупроводников и имею навыки обращения с паяльником. Радиотехнику я забросил давно, но еще раз скажу, что за 20 с лишним лет многое изменилось, стало значительно легче и доступней, поэтому вернуться в этот удивительный мир транзисторов, резисторов, конденсаторов, микросхем и катушек мне было не сложно. Arduino, как я писал, мне казалось сложным, поэтому для начала мне пришлось купить стартовый набор, как например вот этот:

И. сделать конечно, же «мигалку». Моему восторгу от наблюдения за мигающим светодиодом не было предела и меня затянуло, ведь до этого частоту мигания на К155ЛА3 в юности я мог регулировать только конденсатором и резистором, а теперь я мог сделать это программно, и это казалось нереально крутым. Часть того, что из этого вышла, я и опишу далее.
Чтобы не потерять интерес к новой теме мне надо было поставить перед собой цель. Что-то, что я мог бы использовать с пользой или для игры. Что-то, что сочетало бы в себе сразу несколько технологий и подходов. Вероятно я где-то увидел, какие прикольные танки делает народ и тоже решил сделать нечто подобное. В интернете много статей и роликов на тему создания подобных вещей. Кто-то использует Arduino, кто-то другие платформы вроде Raspberry Pi (и подобных Orange/Banana/Rock). Кто-то использует и то и другое и можно без хлеба. Все зависит от цели. Моя изначальная цель была создание танка, которым можно было бы управлять по BLE с айфона или андроида, используя свое приложение. Под управлением я понимал движение вперед, назад, в стороны и разворот. Для гусеничного хода это регулируется скоростью и направлением вращения моторов, расположенным по сторонам. В этот момент я наконец-то узнал что такое ШИМ и как его применять. И для меня вдруг стало понятно, почему почти вся эта техника с приводами на заводах так пищит :). Кроме того, требовалось как-то взаимодействовать по Bluetooth, но тут особой проблемы не было, поскольку по работе я работал с iBeacon и имел какие-то представления о том, что и как делать. Танк должен был быть автономным, ведь глупо было бы в наше время управлять чем-то по воздуху, если это что-то ограничено длиной провода до источника питания :). Поэтому также пришлось изучить и правила работы со сборками Li-Ion батарей.
Итоговая сборка первой версии танка, над которой я работал пару недель состояла из:
— Три Li-Ion аккумулятора, собранные в батарею 3S с платой BMS для защиты и балансировки заряда.
— Один драйвер мотора на L298N
— Одна Arduino UNO из стартового набора
— Bluetooth модуль HM-10 (поскольку он был для меня доступен и умел в BLE, что для меня было критичным)
— Шасси танка с AliExpress. Там 2 мотора, гусеничные полотна, шестерни и крепеж для соединения конструкции. Классная вещь!
— Индикатор уровня заряда Li-Ion 3S батареи.
К сожалению, чтобы найти фотки той версии танка надо перерыть сотни гигабайт неупорядоченных картинок, но зато у меня сохранилось видео, где я сконцентрировал все свои умопомрачительные навыки в видеомонтаже (осторожно, ирония).
Управлял я этим делом пользуясь акселерометром, держа телефон как геймпад в руке и наклоняя его в сторону, куда танку надо было повернуть. Было прикольно. Пришлось решить несколько интересных задач, вроде принудительного останова механизма при потере сигнала, продумать легкий протокол данных для отправки команд и как-то попытаться синхронизовать поток этих самих данных в условиях отправки нескольких десятков команд в секунду (я стремился к максимальной отзывчивости).
Программа (или скетч, как говорят ардуинщики) потребовала воскресить навыки написания на C/C++, и я даже собрал некое подобие библиотеки для того, чтобы быть ближе к плюсам. Назвал ее эту штуку BoardKit, положил к себе в Bitbucket и никому не показывал, потому что чувствовал, что ходу этой теме не будет. Итоговая программа в .ino файле выглядела примерно вот так (заранее прошу прощения за выкладывание кода в скринах из VS Code, но там нет ничего, что было бы неудержимо хотелось скопировать 🙂 )

Ах, да, изначально я отрицал такие IDE как VS Code и писал в Xcode, а компилил и заливал через Arduino IDE, что добавило мне определенных сложностей, но помогло хотя бы работать в более-менее нормальном (а главное привычном) IDE, но на таких извращениях мы не будем заострять слишком много внимания.
MasterScheme тут — это модель платы. Она должна была описывать составляющие ее компоненты и логику взаимодействия между ними. Ашник соответствующего класса выглядел примерно вот так:

При чем тут Habanero? Я люблю острые перцы и решил, что интересные модули буду называть именем сорта перцев. Просто ради прикола и какого-то порядка в именовании. Саму логику (*.cpp) я прикладывать не буду, потому что пост и так обещает быть довольно большим, но если тема станет интересна аудитории, то я запилю отдельный пост, приложив исходники на гитхабе не обещая что они соберутся, так как я больше их не использую, и потому что изврат с Xcode, помните? 🙂 Хотя что-то подсмотреть в них наверное можно.
Так или иначе, мой танк поехал. Правда ездил он наверное пару дней, потому что окрыленный своим успехом я начал исследовать другие, связанные с робототехникой моменты, такие как серво-приводы, датчики приближения, датчики расстояния и многое другое. Я аугментировал танк пока было время, даже как-то приделывал к нему управляемую руку — хваталку и в конце концов переложил его на Arduino Mega, чтобы можно было независимо использовать ШИМ для моторов и сервоприводов. Обвесил ультразвуковыми датчиками расстояния и попытался научить его объезжать препятствия, но потом в итоге, вдоволь наигравшись поставил его на полку до лучших времен. Вот такой он был на тот момент.
Где-то год я в свободное время активно занимался Raspberry/Orange/Rock PI, Full-Stack разработкой собственной системы умного дома в квартире в симбиозе с HomeKit и управлением полива и мониторингом погоды на дачном участке с видео-наблюдением. Сейчас у меня довольно внушительная система, которую я постараюсь описать отдельным постом, если это будет кому-то интересно. Если коротко, то это бекенд на основном хосте под Docker на Raspberry Pi, который по MQTT управляет переферийными устройствами на ESP32-WROOM (например включение света в спальне), пишет в MongoDB, расположенную на RockPI 4 статистику по температуре и влажности в комнатах и на улице, а также по количеству людей в комнате. Распознает людей система на том же хосте Raspberry Pi при помощи Intel Neural Stick 2 и OpenVINO. Почти всем этим делом можно управлять с веба под тем же докером. Веб доступен в локальной сети. Бек на Express, фронт на React. И все это дело скрепляется несчетным количеством bash-скриптов. Тема, в общем-то тоже очень интересная, хотелось бы, чтобы читателям стало интересно и про это почитать 🙂
Вернемся к главной теме: роботанку. C завершением дачного сезона я решил его воскресить, но уже с учетом технологий, которые я освоил за тот год, пока он пылился на полке.
Во первых, я окончательно ушел от Arduino, и от Esp8266, коих за год имел неосторожность накупить на алике за дешево по акциям приличное количество. ESP32 значительно лучше и современней. Прошивки для ESP32 я делаю на основе Mongoose OS — великолепная вещь, которая позволяет во первых, писать на MJS, что мне было приятней, чем C или MicroPython, а также уже имеет в себе интерфейсы для работы с множеством IoT штук на более-менее высоком уровне, чтобы не тратить время на то, что я назвал BoardKit’ом :). Также я решил встроить танк в свой умный дом, пожертвовав тем самым отзывчивостью. А именно управлять им, как я управляю светом в какой-либо комнате: какой-то клиент шлет HTTP запрос с неким параметром на бекенд, он по MQTT отправляет сообщение с обновленным конфигом в брокер (кстати, Mosquitto наызвается), тот рассылает по устройствам, которые подписаны на нужный топик, устройство получает обновленный конфиг и переходит в новый стейт. Опять же, если будет интерес, я обязательно опишу более детально и пошарю исходники. Схема довольно громоздкая, но универсальная, стабильная и расширяемая. Также у меня давно скучала одна плата ESP32-CAM и я решил всунуть в танк и ее, чтобы видеть куда тот едет (используя подсветку, если темно), управляя без необходимости его видеть. Плюс надо было уйти от необходимости установки мобильного приложения в сторону возможности управления с веба, тем более опыт создания WEB-приложений накопился довольно значительный. А еще надо было поработать над аварийной остановкой механизма в случае упора в препятствие или переворота. Ну и еще я хотел видеть уровень заряда батареи в вольтах а не в полосочках, как было раньше. Также я пробрел дешевый лазерный модуль и решил его тоже использовать для ‘пиу-пиу бластера’ для котиков. Вот двое из трех:

По мере создания переферийных устройств для умного дома я насобачился делать всякие коробочки из вспененного ПВХ на любой вкус и цвет. У меня есть 2 листа: черный и белый, толщиной 3 мм. Клею я их клеем Cosmofen SL-660. Записывайте лайфхак: клей белый и чтобы склеивать черный лист ПВХ так, чтобы не было белых полос на месте склейки я добавляю порошок для лазерного принтера прямо в клей, который выдавливаю порционно в шприц, а уже из шприца выдавливаю когда мне нужно. Эти нехитрые манипуляции позволяют создавать коробочки почти любой сложности на приличном уровне. Вот например я делал ‘умный’ диммер на 2 канала в довольно простом, но аккуратном корпусе:


Поэтому, вдохновившись Cybertruck’ом от Tesla (шутка, конечно) я запили в итоге это.

Моторами, вспышкой для камеры, лазером и сбором данных с ИК-датчиков препятствий и коммуникацией с остальной частью умного дома занимается прошивка для ESP32-WROOM DevKitC. Вот такая:

Потоковый сервер с камеры — на ESP32-CAM. Вот такая:

Исходник прошивки для нее прям один-в-один с примеров, которые предлагает Arduino IDE для AI Thinker. Единственное что я сделал — это исправил качество видео по умолчанию и добавил дополнительные попытки подключения к вайфаю, если тот не может подключиться в течение некоторого времени. Я не уверен, что это работает, потому что подебажить не хватило времени, но вроде хуже не стало 😀
Остальная начинка, это все те же 3 Li-Ion батареи, BMS, L298N, датчик тока INA219, парочка полевиков для мощного светодиода вспышки и включения ESP-CAM и 3 ИК-датчика препятствий: спереди, сзади и снизу, чтобы остановить моторы при перевороте или подъеме.
Часть WEB-страницы для управления танком в итоге выглядит вот так:

В центре — кнопка останова. Стрелочки — думаю понятно. Каждое нажатие на стрелочку добавляет или отнимает X% мощности на нужной гусенице. В верхнем левом углу — включение лазерной указки, в верхнем правом — переключение между обычным и ‘спортивным’ режимом

По сути, спортивный режим — это просто бОльшие значения X на которые мы изменяем мощность двигателей при каждом нажатии на кнопку управления. Предназначен для езды в зале, где места много и не требуется точность прохождения ‘узких’ участков. Если нужна точность, тогда включаем обычный режим и на самой низкой мощности черепашьим ходом ювелирно заворачиваем куда надо.
Конечно, над внешним видом еще можно поработать. Убрать сопли клея со стыков, сгладить углы. Вид сзади.

На ИК датчики надеть колпачки — экраны (если кто знает как они называются, скажите, пожалуйста 🙏 ), что должно исключить ряд моментов, когда датчик не срабатывает когда нужно.
Короче, нет предела совершенству, но в таком виде его уже не стыдно показать обществу 🙂
Бесспорным и сильным недостатком этого девайса является его жесткая привязка к моей домашней сети. Но при желании можно и от этого избавиться. Пока меня это не беспокоит. Серийное производство я налаживать не собираюсь и делаю чисто для себя в качестве хобби и самообучения в свободное от работы время.
Прошу прощения за большое количество текста, ошибки и мизерную часть технической информации, но, повторюсь — если будет заинтересованность, я обязательно опишу на более детальном уровне ту или иную часть системы, о которой вел речь. Кроме того, если будут какие-то вопросы в комментариях, то я по мере сил и знаний постараюсь ответить. А напоследок еще немного видео с моментами управления танком.
Дорогие друзья, для чего я сделал этот пост? Тема кажется мне интересной и я уверен, что многим тоже зайдет. Кроме того, у меня накопился некоторый опыт в вопросах DiY, IoT и при необходимости если будут какие-то вопросы, я могу попробовать ответить, или подсказать… Поскольку знаю, каково это искать решение какой-то дурацкой проблемы на форумах 10-ти летней давности на условном китайском языке. Кроме того, лично мне очень понравилась та связка технологий, которую я использую в своём умном доме, возможно она поможет кому-нибудь решить какие-то технические вопросы. Ну и конечно же, послушать дельные советы ребят, которым есть что сказать и направить на путь истинный.
Спасибо за внимание, будьте здоровы!

Сканер Epson perfection 3590 photo и Ubuntu 22.04
Значительное время возился пытаясь подружить сканер Epson perfection 3590 photo с Ubuntu 22.04 . Перечитаны форумы, применены всевозможные руководства и лайфхаки, под конец обновил ядро до 5.19 в надежде на добавленный список драйверов для поддержки старого оборудования. Ну ничего не помогает.

Сегодня воткнул в соседнюю машину с Kubuntu 22.04 и.. о чудо, сканер работает. Тыааак… ОС ни при чём.
Идём в BIOS пациента (материнка AsRock fm2a68m dg3+) /расширенная/ Контроллер USB3/ переключаем «авто» на «используется». Всё. Моментально подхватился аппарат. Заодно пропала козявка с самоотключением компа при выходе из спящего режима.
BIOS всегда использовал по умолчанию а тут оказалось что и от него могут быть проблемы.
Знакомство с одноплатным миникомпьютером Orange Pi Zero
В настоящее время в продаже появилось большое разнообразие одноплатных миникомпьютеров на базе ARM-процессоров различных производителей, которые вызывают большой интерес у embedded-программистов и просто любителей. Среди них достаточно известными являются Raspberry Pi, Orange Pi, Banana Pi и др. Это достаточно хорошая альтернатива обычным микроконтроллерам, т.к. миникомпьютер (или, если точнее сравнивать, ARM-процессор архитектуры Application) обладает достаточно высокой вычислительной мощностью по сравнению с обычным микроконтроллером, при наличии привычных всем стандартных интерфейсов SPI, USART, I2C и т.д. А так же главным достоинством является то, что работают они под управлением ОС Linux или Android, что избавляет разработчиков от низкоуровневого программирования и позволяет сразу сфокусироваться на поставленной задаче. Можно с легкостью, к примеру, запустить веб-сервер не вдаваясь в тонкости работы с PHY и MAC-уровнем Ethernet, легко поработать с USB-устройством, при написании программы не нужно постоянно помнить об ограниченном количестве памяти и быстродействии процессора, как это часто бывает при работе с обычными микроконтроллерами. И при всех названных достоинствах, одноплатный миникомпьютер можно купить за гораздо меньшие деньги, чем, к примеру, отладочные платы на микроконтроллерах.
В своих статьях я хочу поделиться с читателями сайта своим опытом работы с миникомпьютером Orange Pi Zero. Надо сказать, что познакомился с ним впервые я еще пару лет назад, когда мне нужно было разработать устройство контроля доступа на его базе с возможностью удаленного администрирования по веб-интерфейсу, но написать статью решил только сейчас. За это время многое уже забылось, так что я постараюсь вместе с читателями заново пройти путь от первого включения, до разработки какого-либо полезного приложения. Надеюсь, что читатели поддержат меня в комментариях и эта статья не будет первой и последней на эту тему:-)

Почему выбрал именно эту плату? В основном из-за низкой цены при широких возможностях. Ну, и просто как первое устройство из этой группы, на которое не жалко потратить деньги не зная на сколько оно будет полезным в дальнейшем. Данные миникомпьютеры стоят порядка 10$. Хотя в последнее время появились также доработанные версии Zero Plus и Zero Plus 2 с интерфейсом CSI для подключения камеры и hdmi-интерфейсом для подключения монитора, которые стоят уже дороже. В стандартной же версии из набора периферии: Ethernet, Wi-Fi, два USB-порта на плате и два дополнительных подключаемых, видеовыход TV OUT (крайне бесполезный по-моему), интерфейсы для подключения микрофона, наушников, ИК-приемника и названные выше стандартные интерфейсы SPI, I2C, USART. Впечатляет при стоимости в 10$, не правда ли? Также при покупке необходимо обратить внимание на то, что выпускают данные компьютеры с объемом ОЗУ 256 и 512 МБ. Первый дешевле. Именно такой вариант и у меня. Но я бы рекомендовал покупать вариант с 512 МБ ОЗУ, если планируется запускать тяжелые приложения и сервисы, как например MySQL-сервер (от которого я отказался из-за того, что он пожирает много памяти ОЗУ, причем с постоянно нарастающим аппетитом :-). Кстати, бывает, что еще производители устанавливают SPI Flash микросхему, которая мне кажется вообще бессмысленной в этом устройстве, ведь вся информация хранится на SD-карточке. Пусть читателя также не пугает отсутствие стандартных видео-интерфейсов для подключения монитора. Он и не понадобится, так как работать можно через терминал сначала подключаясь по стандартному последовательному интерфейсу, а затем поcле настройки Ethernet по протоколу SSH. А еще скажу по секрету, что графику можно пробрасывать по протоколу SSH и запускать графические приложения уже на ПК под управлением ОС Windows (хотя это больше баловство, чем необходимость).

Подробнее о миникомпьютере Orange Pi Zero можно почитать на сайте http://www.orangepi.org/orangepizero/
Так же на сайте имеется информация о других моделях и дистрибутивы Linux и Android под конкретные целевые устройства, а также схемы и другая техническая документация http://www.orangepi.org/downloadresources/
Итак, поехали. Первое, что нужно сделать, это записать дистрибутив Linux на SD-карту. SD-карта подойдет любая, главное чтобы она была объемом больше образа дистрибутива и меньше 32 ГБ. У меня установлена сейчас карточка на 16 ГБ, но я пробовал сначала работать с карточкой 2 ГБ. В дальнейшем придется устанавливать различные приложения, поэтому здесь лучше не экономить. Дистрибутив можно скачать с сайта orangepi.org, но я начинал свое первое знакомство с дистрибутива Armbian_5.30_Orangepizero_Ubuntu_xenial_default_3.4.113, который скачивал на сайте armbian.com. Сейчас доступна более новая версия Armbian_5.65_Orangepizero_Ubuntu_bionic_next_4.14.78 https://www.armbian.com/orange-pi-zero/ Ее и будем устанавливать.
Выбрал именно версию bionic, потому что она построена на основе Linux Ubuntu, который мне ближе. Рекомендую читателям поступить так же, чтобы не было в дальнейшем различий между тем, что я пишу здесь, и что происходит у вас на компьютерах.
Залить образ на SD-карту можно с помощью программы Win32DiskImager. Ее легко найти на просторах интернета.

Распаковываем скачанный дистрибутив и указываем путь к img-файлу. Дальше просто нажимаем кнопку Write, соглашаемся с предупреждением о перезаписи данных на карточке и ждем порядка нескольких минут до завершения записи.
После этого вставляем карточку в Orange Pi и подключаем плату к компьютеру через micro USB кабеля. Спустя какое-то время (время загрузки системы) ОС Windows обнаружит новое устройство. Это последовательный виртуальный COM-порт. Драйвер для него можно скачать здесь. Он нам понадобится для того, чтобы подключиться к терминалу Armbian.
Дальше нам понадобится широко известное среди программистов приложение Putty, которое также легко можно найти в интернете. В нем нам необходимо настроить сессию для подключения по последовательному порту к Orange. В настройках указываем порт, который можно посмотреть в диспетчере устройств. Скорость обмена устанавливаем 115200 бит/с. Настройки лучше сохранить, чтобы в дальнейшем не вводить их заново при каждом запуске программы. Важное замечание! В более старых версиях дистрибутива при подключении устройства к USB-порту компьютера виртуального COM-порта не было (его можно было настроить уже самостоятельно) и достучаться до терминала Armbian можно было только с помощью переходника USB/COM (или еще называют USB/TTL), подключенного к 3-м пинам на плате, называемым Debug Serial Port (на картинке выше видны). Крайний пин – это земля GND, остальные — RX и TX. Кто из них кто никогда не мог запомнить, а на плате это не помечено, поэтому всегда подключал наугад)) Если не работает терминал, то просто менял местами провода. Главное питание не подать от переходника на эти пины и подключить землю правильно.
Нажимаем кнопку Open. Если увидите только черный экран, попробуйте нажать клавишу Enter пару раз (либо поменять местами провода rx, tx в случае установки старой версии дистрибутива и использования USB/COM переходника).
При первом входе в терминал необходимо ввести логин root и пароль 1234.Далее будет предложено изменить пароль суперпользователя root. Если все сделаете правильно, то увидите приветствие Orange Pi Zero и некоторые показатели: занятая память ОЗУ, температуру процессора, IP-адрес устройства и т.д.
После этого необходимо еще будет создать учетную запись пользователя, под которым мы будем дальше постоянно работать, задать пароль для учетной записи и контактную информацию (по желанию).
Все, первая настройка окончена. При последующих запусках терминала нужно будет вводить логин созданного пользователя и его пароль. Операции, требующие привилегий супепользователя, запускаются с командой sudo под паролем root-пользователя, который задавался вначале. Дальше можете поиграться с терминалом, вводить какие-либо команды, например ls –la, pwd, top. Если введете команду sudo reboot или sudo poweroff, то терминал придется перезапускать спустя какое-то время, так как виртуальный COM-порт перезапустится. В этом не будет необходимости, если подключаться через USB/COM переходник. В последнем случае можно еще видеть лог загрузки или выгрузки, что иногда полезно, когда устройство имеет какие-либо аппаратные проблемы.
На этом завершаю первую статью на тему Orange Pi. В следующей статье расскажу как настроить сеть и подключиться к терминалу по протоколу SSH.