Orange pi для авто
CarPC (Начало)
Часть Один: История, общая концепция, выбор железа и остальной кипиш, связанный с началом проекта
На сегодня кое-что уже написано 🙂
1) Начало
2) Часть Два
3) Часть Три
4) Приложение
Всем привет! Решил поделиться своими результатами по %SUBJ%-у. Давно витала идея строительства CarPC, еще со времен владения Chevrolet Niva The small gray submarine Первоначально планировал строить на Raspberry PI 2, но наткнулся на шедевр наших друзей из Поднебесной, позиционируемый производителем, как конкурент Малины (на первый взгляд так оно и есть), но ценой намного меньше. Долго думал и решал… И вот встречайте, герой того дня, когда я заказал его на али.
Для экспериментов с видео была приобретена за недорого вебкамера Creative live cam sync hd vf0770,
В качестве дисплея планирую AT070TN90 witch touch panel
Тач цепляется по USB. Монитор 7″, цепляется по HDMI, есть аналоговый вход для камеры, легко переделывается под автовключение при наличии сигнала камеры (это я для КЗВ планирую), надо распаять разъем на (товарищ уже сделал). Монитор будет установлен в штатное место, вместо GID (Graphic Information Display), который в свою очередь переедет на потолочную консоль. (авто Opel Astra H)
Также будет установлен модуль точного времени DS3231, OPI имеет свои часы, но их надо каждый раз устанавливать. Подключаются по I2C.
В качестве камеры для регистратора будет родная (Orange PI)
В качестве камеры заднего вида (КЗВ) будет аналоговая. Может быть будут добавлены парктроники (работать вместе с КЗВ) с возможностью их отключения.
В качестве медиаплеера хочу подобрать из уже существующих, самому писать не охота.
Не проработан вопрос по организации питания от бортовой сети. Отложен на потом
Это была программа минимум по железу и функционалу
В планах сделать CAN-BUS сниффер, чтобы читать ошибки и управлять кнопками с руля. Например на базе MCP2515
А также реализовать Hands Free
Выбор ПО
ОС
В качестве ОС выбран Linux, так как гораздо надежнее и стабильнее Android, хоть я и фанат FreeBSD ( начиная с версии 2.2.6 ), но однозначно Linux, ввиду огромного количества софта для конечного пользователя. Вопрос только какой (одна из причин моего скептического отношения к Linux-y, уж очень их много и все разные)? Встал вопрос выбора. Как говорится, не попробуешь — не поймешь.
Пункт 1. Довольно быстрое, автором проделана огромная работа, за что ему огромная благодарность. Но к сожалению похоже он перестал развивать свой проект. Поэтому на основе его наработок развивают другие (Пункт 2.). По обоим пунктам довольно шустрые дистрибутивы, нв первый взгляд все есть, но меня несовсем они устраивают по двум критериям: а) греются (лечится патчем script.bin) б) большая загрузка процессора (от 3.5 до 5 попугаев по показаниям top ), что и предопределило мой выбор в пользу Пункт3, который тоже не без греха, по загрузке и температуре у него гораздо лучшие показатели по сравнению с Пунктом1 и Пункт2, но замечены «тормоза» при обновлении текстового видеобуфера (очень хорошо видно в mc) и при первом чтении каталога. В остальном все меня устраивает. Кстати на нем я спокойно устанавливал и запускал КОДИ (но это отдельная история).
Оболочка CarPC
Собственная разработка. Написана на C под GTK+2.0
Полностью модульная. Все настройки (оформление, подключаемые модули) через конфигурационный файл в формате XML, который соответствует стандарту GLADE, что облегчает задачу малознакомым с XML форматом людям. Поддерживает до 18 пунктов меню.
Модуль AVR (видеорегистратор, Клиент-Серверное приложение)
Собственная разработка. Сервер написан на Shell с использованием пакета gstreamer0.10. Клиент написан на C под GTK+2.0, с использованием библиотек gstreamer0.10.
Возможности приложения:
Отображение в реальном времени с наложением: свободной информации пользователя (например госномер авто), текущей даты/времени и GPS данных (координаты, скорость).
Запись циклического архива в MJPEG (60 файлов продолжительностью 1 минута каждый) за последний час работы.
Предусмотрена утилита просмотра архива.
GPS и навигация
В качестве навигационного ПО выбрана программа навигации «Семь дорог»
Выложу несколько скриншотов результатов своего труда.
Пришел GPS и корпус под него. Так как в корпус будут установлены плата и антенна GPS, пришлось немного порезать корпус, иначе не хватает высоты корпуса. Версия1
Собрал и подключил GPS (распиновку смотри выше, я немного ее изменил, мне так было удобнее, задействовав 3 соседних пина 9, 11 и 13, использовал разъем USB с того же старого системника)
На сегодняшний день добавлено:
1) Написал программу для чтения данных GPS и их отображении в видерегистраторе (AVR)
2) Решил проблему одновременного чтения данных GPS различными программами (службами), в моем случае это AVRServer и 7ways (навигационная программа «Семь дорог»), т.к. у меня AVRServer (если ранее был запущен) пишет в фоне.
Служба(сервис) эмуляции серийного порта GPS данных для 7ways запускается при старте системы через systemd
Для этого требуется установка gpsd, gpsd-clients и socat
apt-get install gpsd
apt-get install gpsd-clients
apt-get install socat
Одним очень хорошим человек был осуществлен «подгон» мне крышки от GPS-антены одного очень известного производителя радиооборудрвания. В результате чего родился корпус для моего GPS-приемника Версия 2. По образцу этой крышки из 3-х мм пластика было вырезано основание, из 1 мм пластика — донышко, при помощи термопистолета, саморезов и дрели был собран GPS-приемник в новом обличии.
Начал работу над мультимедиа
Велосипед изобретать не буду. Будет VLC со своим скином.
Скин в процессе.
ЗЫ: Процесс продолжается. В качестве модуля для работы с CAN-шиной остановился на интересном девайсе
CarPC: Начало.
Долго я шел к этому, много думал, смотрел, читал, спрашивал. И вот, наконец решился начать проект по внедрению полноценного мини-компьютера с блекджеком и бабами навигацией и интернетом.
CarPC будет собран на базе одноплатного ПК Orange PI PC. На данном этапе, дабы дать старт проекту, были заказаны некоторые комплектующие:
Orange PI PC + акриловый корпус + кабель питания от USB:
Сам одноплатный мини-компьютер — сердце моего проекта. Выбрал именно его, т.к. цена его составляла всего 15$, а по характеристикам он превосходит RPI более, чем в 2 раза.
Медиа — пульт ДУ для управления всем этим делом:
Изначально задумывался, как единственное и основное средство управления CarPC, но позднее мне в голову пришла мысль, как внедрить сенсорное управления в сочетании с родным дисплеем.
Конвертер HDMI to 3RCA:
Несмотря на то, что у моего мини-ПК есть аналоговый аудио-видео выход, я решил прикупить этот конвертер. т.к. по отзывам звук и видео с этого аналогового выхода оставляет желать лучшего, да еще и не на всех ОС он работает. Проверил его на старом телевизоре — работает! Отличная штука, рекомендую!
Конвертер/стабилизатор 12V to 5V:
Orange PI PC работает только от 5V, по этому пришлось заказать еще и конвертер.
Ну и плюс ко всему этому был заказан еще набор переходничков RCA и HDMI кабель 1.5 метра.
Подчеркну, что CarPC будет работать в связке с родным монитором, что очень важно, т.к. вмешательств в интерьер салона я не приемлю. Компьютер будет спрятан под панель вместе со всей периферией, коей будет довольно много, а именно:
— TV\FM тюнер;
— GPS адаптер;
— Wi-Fi адаптер;
— активный USB хаб;
В качестве ОС планирую использовать OpenELEC с KODI, но пока не решен вопрос, как на нем наладить GPS-навигацию. Андроид не рассматриваю по объективным причинам, хотя и не откидываю пока этот вариант.
В данный момент готов скин CarPC для KODI, который я нашел в интернете и переделал под себя. Думаю над созданием своего, с нуля, благо знаний и умений хватает. В машину еще не ставил, т.к. пока не решены некоторые важные вопросы, но в ближайшие две недели планирую тестово запустить в машине.
На этом пока все. Работы в этом направлении еще очень много, проект, думаю, растянется надолго, т.к. идей просто немерено.
Следите, по мере продвижения работы результаты буду выкладывать в БЖ!
Проект CarPC в E83. Часть 2 — едем дальше, или основная концепция.
После описанных мною событий по неудачной реализации проекта pibus в связи с кражей контроллера, а также пониманием, что в CarPC нужен именно Android ( для Raspberry Pi 3 не существует сколь-либо адекватной прошивки), я начал поиск альтернативных решений. Что из этого вышло читайте ниже).
В качестве собственно компьютера была выбрана платформа Orange Pi в связи с выпускаемыми Android-ROM’ами от производителя (как впоследствии оказалось — не совсем, пришлось допиливать вручную), а также распространенностью чипсета AllWinner H3 на всякого рода китайских ТВ боксах. На всем известном Aliexpress была заказана модификация Orange Pi Plus 2E, обладающая следующими ТТХ:
Процессор: 4-ядерный Allwinner H3 4×1600 мГц с поддержкой аппаратного декодирования H.264, H265 4K видео;
ОЗУ: 2 ГБ;
Хранилище: 16 ГБ eMMC на борту + слот microSD;
Сеть: 1 х Gigabit Ethernet, встроенный модуль wifi (Realtek RTL8189ETV) с антеннкой;
Порты ввода-вывода: 1 x HDMI, 3 x USB 2.0 Type A, 1x microUSB OTG, инфракрасный порт, комбинированный аналоговый A/V разъем 3.5 мм, стандартный для таких устройств 40-pin GPIO, отдельный разъем debugging uart, штыревой разъем для питания, микрофон, интерфейс подключения камеры CSI.
Железяка в общем достойная, мощности для CarPC хватит за глаза, единственный минус в плане железа — отсутствие встроенного bluetooth, Raspberry Pi3 может похвастаться его наличием. Но это опять же решается установкой USB-свистка, которые сейчас стоят копейки, а по размерам неприлично малы.
Вторым по важности моментом была интеграция в существующую бортовую сеть авто. Основным требованием было управлениеCarPC штатными кнопками на консоли/руле, отсутствие валяющихся мышек, клавиатур, пультов ДУ, т.е. внешне никакого колхоза и ничего лишнего. Для реализации данной задачи пришлось перевернуть тучу форумов об автомобильной электронике и автомобильном компьютеростроении, но решение было найдено. На одном из форумов некогда братской страны местный электронщик предлагал универсальный USB-hid контроллер, возможности которого просто поражают!
Изучив материал добавилась еще одна хотелка — установка контроллера iDrive, который незамедлительно был приобретен. Пока, к сожалению, не могу предоставить фото его установки, поскольку в результате моих экспериментов он приказал долго жить и я теперь в поисках такого же, в любом случае скоро постараюсь эту проблему решить (главное, оно работает!). Кстати, если кто продает такой — маякните в личку, возможно договоримся).
Решив глобальные вопросы, я приступил к обдумыванию функционала и иных мелочей. В первую очередь важнейшей после мультимедийных функций является навигация. На том же Ali продается полно GPS модулей с USB интерфейсом, однако стартующий ценник за неизвестный чип в 35$ не радовал. Как оказалось, все можно сделать гораздо проще — приобретенный для интеграции в бортовую сеть контроллер эмулирует USB GPS модуль, в то время как модуль аппаратно подключается по UART. Таких модулей очень много, причем от именитых фирм. Я приобрел модуль GPS на базе чипа uBlox M6N с распаянной на плате керамической антенной примерно за 650 руб., что в разы ниже.
В дальнейшем хочу заменить его на аналогичный модуль на чипе uBlox NEO M8N с поддержкой ГЛОНАСС и более точным позиционированием. Каково было моё удивление, когда после получения посылки и распайки модуля я обнаружил, что Android его не видит! Это был эпик фейл, однако я начал искать решение проблемы (и нашел, просто еще не решил запостить ли ковыряние с софтом в отдельную запись, либо разместить здесь). Главное, что убедился, что модуль рабочий — подключив его к домашнему ПК посредством опять же контроллера все завелось, с подоконника поймал 14 спутников.
Что же касается мультимедиа — она работает из коробки, звук передается и по 3.5мм штекеру и по HDMI, как впрочем и видео, однако качество звука на такого плана SoC оставляет желать лучшего. В планах подключить внешний USB-ЦАП, который обеспечит значительно лучший звук. Выбора не так много, но есть вполне достойные варианты по приемлемым ценам. В ближайшее время определюсь и закажу. Вопрос поддержки его прошивкой Orange пока остается открытым, но по моим предварительным изысканиям, должен завестись без особых проблем.
Следующей хотелкой стало подключение CarPC к интернету, планирую это осуществить через USB 3g модем, также должен завестись согласно моим предварительным изысканиям по данному вопросу, надеюсь, в ближайшее время проверю.
При проектировании и сборке CarPC немаловажным моментом является размещение его компонентом. Вариантов всего 2 — либо навесной монтаж куда-нибуть в авто с кучей соплей, либо упаковка в корпус и размещение соплей внутри. Естественно, был выбрал 2й вариант. В одном из строительно-хозяйственных супермаркетов была приобретена коробочка из полупрозрачного пластика, изначально задуманная для хранения мелких инструментов или иных мелких вещей, разделенная на 3 отсека. Размеры её составляют примерно 190х130х45 мм, крышка откидная. Определившись с примерным составом необходимых компонентов, я принялся кромсать коробку согласно своей идеи. Учитывая отсутствие мастерской или гаража и сколь-либо нормального набора инструментов, все делалось на коленке подручными средствами и в большинстве из подручных материалов, естествено с точки эстетики получилось мягко говоря не очень, поэтому прошу строго не судить.
Что мы имеем внутри на данный момент:
1. Первая слева собственно Orange Pi Plus 2e – её доработка ограничилась установкой алюминиевого радиатора на термопасту + немного клея. Четко по размерам радиатор найти не удалось, использовал наиболее подходящий распилив его полотном от электролобзика)). Без радиатора данный одноплатник эксплуатировать категорически не рекомендуется. С радиатором греется также ощутимо, палец держать некомфортно. Поэтому, на крышку был приспособлен небольшой кулер, закрытый снаружи декоративной решеткой.
2. Поскольку возникла необходимость подключения внешней периферии — GPS модуля, idrive контроллера, бортовой шины iBus необходимо было установить какую-то многоконтактную колодку или разъем минимум на 7 контактов. Решение максимально простое — гнездо Ethernet RJ-45, которое я подключил припаяв небольшой жгут проводов. В нем 8 контактов, лишний решил запараллелить с контактом ACC разъема питания. Находится справа от Orange.
3. Далее я разместил 4-портовый USB-хаб, точнее его внутренности. Пришлось его немного доработать — входной разъем USB Type A был заменен на microUSB OTG, питание на него решил брать отдельно, поскольку на контроллере взаимодействия с бортовой сетью имеется встроенный стабилизатор на 5В с током до 2А и 2 соответствующих вывода — управляемый и постоянный. Думаю, что 2А должно хватит для bluetooth, 3g модема и USB ЦАП. Естественно красный провод из разъёма OTG (+5В от USB) я не запаивал.
4. Правее от USB-хаба собственно контроллер для взаимодействия с бортовой сетью авто. У него уже распаян microUSB разъем, однако также на плате разведены его контакты. К ним то и был запаян хвостик с разъемом USB Type A чтобы не искать короткий USB → microUSB шнурок и закреплен к плате на термоклей.
5. Ниже находятся компоненты, отвечающие за питание CarPC – круглый 4-контактный разъем для подключения к (+) и (-) аккумулятора и зажиганию. Один вывод остался лишним — запаял на него отдельный проводник, который использую в целях тестирования. После разъема установлен выключатель, разрывающий плюсовой (+) контакт.
6. Далее установлено небольшое реле с ТТХ 12В 5А, обеспечивающее коммутацию питания Orange Pi, управляется контроллером для взаимодействия с бортовой сетью авто.
7. Сразу после реле установлен широко известный линейный стабилизатор DC-DC конвертер на базе чипа LM2596, настроенный выдавать 5В на выходе, если не ошибаюсь, может выдавать до 3А. По информации на форумах, Orange может потреблять в пике до 3А, однако считаю это маловероятным и скорее всего при условии подключения «прожорливой» периферии к её встроенным USB. Тем более, мы запитываем USB-устройства от внешнего источника. Но все же я решил приклеить на микросхему небольшой алюминиевый радиатор (также с термопастой). На входные контакты преобразователя запараллелен вентилятор охлаждения, включаемый соответственно при включении одноплатника. В процессе эксплуатации греется не сильно (думаю, около 2А нагрузка). Изначально питание подводилось к Orange через стандартный штыревой разъем, но это оказалось громоздко и бессмысленно, поэтому запитал её через GPIO.
Пока что планирую это все подключить к штатному бортовому монитору, но в ближайшем будущем хочу его заменить на hdmi lcd панель с тачскрином (надо продумать, либо дорабатывать имеющийся монитор заменой матрицы, что не очень выгодно поскольку все детали авто для уродования доработки предпочитаю покупать отдельно, чтобы в случае необходимости вернуть прежний вид и функционал, а стоит он солидно. Как вариант думаю реализовать собственную конструкцию выдвижного монитора, надо ее только продумать.
Остальные доработки, а также установку и настройку ПО, тестирование в авто опишу в следующих постах. Вопросы, предложения, критика — приветствуются.
Car PC хенд мейд (часть вторая— выбор платформы)
OrangePi
Первое, что мне попалось на глаза — Orange Pi. Вначале купил Orange Pi Pc (долларов 30). Потом увидел чуть (на 5 баксов) дороже Orange Pi PC Plus с Вифи и EMMC и поменял на эту.
Плюсы.
1. Цена — долларов 30-35
2. звук на борту (в моём случае не нужен особо — звук собираюсь выводить через Bluetooth на гарнитуру громкой связи. Но, всё равно, лишним не будет)
3. Вифи на борту (не удалось запустить на Андроиде)
4. EMMC в комплекте (работает быстрее, чем SD карта, правда, ненамного)
5. есть интерфейс для камеры (камер для Оранжа всего пару штук для этого интерфейса и длина шлейфа 20 см максимум)
6. НЧ видео выход (хз куда б его применить — качество там так себе)
7. микрофон (мне не надо, но можно было б замутить громкую связь)
Минусы
1.Поддержка. Это отдельная песня. О чём можно говорить, если даже на оф. сайте упоминаются не все Оранжи, которые выпускаются? На оф. форуме, похоже, производители не пишут ничего. На почту практически не отвечают.
2. Андроид. Вроде, на оф. сайте есть оф. Андроид для Оранжа. Только он не работает практически. Хотя, только на нём заработал онбоард ВиФи. Есть более десятка других прошивок Андроида. Но они собраны на основе каких-то непонятных исходников (от ТВ боксов, например) и работают, мягко говоря, нехорошо (ЮСБ работают не все, реакция на кнопку включения непонятная и т.д.).
3. Нагрев. Потребляя от 5 вольт примерно полампера, Оранж греется не по-детски. Производители почему-то не установили радиатор. Ладно, можно и самому поставить. Но и с радиатором всё плохо. Тепература радиатора при нагрузке «просто посерфить в инете» возрастает до величин, при которых руку держать затруднительно — горячо. И это «в тепличных условиях» — на столе. Что будет, если его поместить в устройство, в котором вентиляция будет хуже? И какой выход? Вентилятор? Большой радиатор?
Как оказалось, в этих сборках Андроид вырезаны некоторые части ядра Линукс, которые мне были нужны. Например, мне так и не удалось запустить GPS не через USB (через USB заработало, но тоже не идеально). Дело в том, что у Оранжа (да и у других компьютеров такого типа) есть порты, выведенные на штырьки. Хотелось подключить GPS датчик непосредственно к ним чтобы сэкономить ЮСБ (которых у Оранжа аж 4, правда, в зависимости от прошивки, могут работать не все) и уменьшить количество устройств (ГПС датчики изначально не имеют ЮСБ интерфейса и подключаются к ЮСБ через преобразователи).
Odroid C2
Через некоторое время попался мне на глаза такой себе Odroid С2.
Минусы
1. Дороговато. Бу плата мне досталась за 50 баксов, а новая стоит все 60 — в два раза дороже Оранжа
2. Дорого. На борту нету ЕММС, но есть разъём, в который её можно воткнуть (понятное дело, только спецовые для Одроид). Стоит она ещё долларов 25 за 8 Гигов (на минутку, за такие деньги можно купить целый микрокомпьютер Оранж). Можно вполне пользоваться и обычной микро СД картой. Говорят, что с ЕММС быстрее. Не пробовал — пока жаба сильнее.
3. Онборд звука нет. Есть I2C разъём для такого дела (опять же — приобретаем спецовый шилд или отдельную плату, или собираем) или пользуемся ЮСБ звуковухой.
4. Нет и микрофона (USB звуковуха решает вопрос).
5. Нет ВиФи онбоард. Хотя, с учётом того, что на Оранже он так и не заработал, непонятно, это минус или нет.
6. Меньше UART интерфейсов. Всего 2, из них один привязан на дебаг. Т.е., если не заморачиваться, в пользовании только один. В моей разработке один и нужен.
Плюсы
1. Штатный Андроид работает без проблем. Периодически обновляется. Скомпилирован специально для Одроида.
2. Поддержка. На форуме разработчик бывает каждый день и реально помогает. Есть ещё люди, которые что-то делают и могут помочь. Хотя, русскоязычного форума нет (у Оранжа есть — и что. Там ничего узнать не получается). К плюсам можно отнести обновления ПО. Например, за время изготовления этого КарПС вышло штук пять обновлений Андроида. Причём, в обновления включают багфиксы, о которых пишут на форуме.
3. ЮСБ на один больше, чем у Оранжа (четыре обычных и один OTG).
4. Греется намного меньше. Странно, ибо потребляет примерно столько же.
5. Есть аналоговые входы АЦП в кол-ве 2 шт. Хз куда их применить.
6. По-моему, есть и ШИМ.
ГПС датчик подключился с полтыка (читайте далее в блоге).
Кстати, датчик у меня такой.
Подключается к плате тремя проводами.
Внимание!
У Одроида линии ввода-вывода не толерантны к 5 вольтам (так говорят разработчики). Для ГПСа это пофиг — он может питаться и от 3.3 вольт. Но надо иметь ввиду. У Оранжа — в этом смысле всё гуд.
Orange Pi PC — полноценный мини-пк за 15 долларов на Linux
Уже не раз замечал интерес к новой плате-клону всем известной Raspberry Pi от китайских энтузиастов из компании Xunlong под звучным названием Orange Pi PC. Прославилась она, в основном, своим неплохим «железом» (4-ядерный процессор Allwinner H3, 1Gb RAM и GPU Mali-400MP2 600MHz), наличием неплохого функционала (HDMI, AV, Ethernet, 3 USB, microUSB-OTG, инфракрасный порт для управления с пульта и GPIO-гребенка, по словам разработчиков, якобы «100% совместимая с Raspberry Pi), а главное — ЦЕНА. Создатели оценили свой девайс всего лишь в $15, ПЯТНАДЦАТЬ долларов, Карл! (скоро мы увидим, что это на самом деле весьма лукавое заявление, и конечный девайс стоит дороже).
Итак, давайте рассмотрим данную плату повнимательнее.
В рунете уже есть на нее обзоры, но все они представляли из себя нечто вида „установил андроид и подключил к телеку на кухне“. Я предлагаю взглянуть на плату с другой стороны, а именно — установить туда линукс, поюзать её как настоящий ПК, и даже немного поиграть.
Для тех, кому лень читать полностью, прорезюмирую:
Интересная штука, на данный момент вполне юзабельная, но имеется огромное количество огрехов и косяков, требующих допиливания напильником. Покупать только на свой страх и риск! Простому пользователю, рассчитывающему иметь готовое решение „из коробки“, я бы посоветовал обратить внимание на ТВ-боксы на базе Android или Windows. Продвинутому пользователю, знакомому с Linux, который не боится неизведанных челенджей в сыром продукте, и которому хотелось бы иметь неттоп для интернет-серфинга, работы с документами, программирования и скромных игр — must have! Особенно с учетом цены.
0. Предыстория. Немного о Raspberry Pi и его клонах
Raspberry Pi Model A, изображение из гугла
Когда в 2011 году создатели Raspberry Pi огласили на весь мир свои планы сделать миниатюрный (площадью примерно с пластиковую карту) и недорогой ($25) компьютер, весь мир компьютерных энтузиастов и гиков был в экстазе. Все только-только отходили от революции в домашней электронике „для Кузьмичей“, которую свершила Arduino со своей концепцией доступных и простых отладочных плат, а тут практически за те же деньги полноценный ПК на Linux!
Конечно, на ARM-процессоре от мобильного телефона с 256Мб оперативки особо не разгуляешься, но даже несмотря на все существовавшие ограничения, любители и гики пытались запускать на „малинке“ игры, серфили интернет, делали из нее всевозможные домашние серверы и, конечно, использовали в качестве „мозга“ во всевозможных DIY-проектах благодаря встроенному GPIO.
Но время шло. Несмотря на то, что первоначально Raspberry Pi задумывался как современный аналог BBC Micro — как простой, недорогой и всеми способами доступный компьютер для обучения школьников программированию и компьютерной науке, „малинка“ все же завоевала сердца простых обывателей, у которых были запросы более требовательные к железу, нежели интерпретатор Python’a и моргание светодиодом через GPIO. Гикам хотелось, чтобы их игрушка могла проигрывать качественные видео, запускать красивые 3D-игрушки и резво отрисовывать „тяжелые“ веб-страницы.
Поэтому в феврале 2015 создатели „малинки“ выпустили новую модель — Raspberry Pi 2. Тут уже был „полный фарш“ — процессор обзавелся 4 ядрами для распараллеливания „тяжелых“ задач и 1 гигабайтом оперативной памяти для облегчения жизни пользователей. Но было уже поздно.
Пока производители Raspberry Pi медлили с выпуском новой версии, у них появилось множество „идейных последователей“, в том числе и из Китая, которые кинулись выпускать клоны Raspberry Pi, в целом преследуя одну и ту же цель — удовлетворить спрос массового пользователя на недорогие и мощные платы.
Так появился целый сонм различных альтернатив „малинке“ — ODROID, Banana Pi, PandaBoard, Сubieboard, BeagleBone и многие другие (более полный список можно увидеть здесь, здесь и здесь ). Одной из этих альтернатив стала плата Orange Pi — мини-пк на базе двухъядерного SoC Allwinner A20. Позднее ее производитель, китайская компания Xunlong, выпустила ее обновленую версию, Orange Pi 2 на базе четырехъядерного SoC Allwinner H3, кастрированной версией которой и является герой нашего обзора — Orange Pi PC.
1. Комплектация и внешний вид
Минимальная комплектация: сама плата, коробка и инструкция
Итак, начнем с комплектации. Её нет. От слова совсем. Ведь я заказывал самую дешевую версию платы, без каких-либо ништяков. У продавца в наличии есть еще различные наборы — сама плата, блок питания, корпус из орг.стекла, радиатор, карточка памяти и т.д.
Я решил пойти самым спартанским путем, поэтому мне в дополнение к плате досталась лишь коробочка с плохенькой полиграфией, склеенная, по ощущениям, вручную, и мятая бумажка с какими-то увещеваниями на тему „не суйте пальцы в розетку“, видимо, необходимая для соответствия различным гос.требованиям США и ЕС.
Рассмотрим плату со всех сторон:
На самой плате отчетливо выделяются:
— чип Allwinner H3 — не самый плохой, но Allwinner — контора все-таки довольно гнилая, уже ставшая печально известной своим нарушением открытых лицензий, а ее чипы — невыносимой прожорливостью слона и тепловыделением, сравнимым с небольшим вулканом. Единственным их преимуществом остается низкая цена, а это порождает вокруг чипов огромное коммьюнити (плодами которого, кстати, мы и будем пользоваться);
— два чипа оперативной памяти DDR3L Samsung K4B4G16460-HYKO по 512Mb каждый, дающие в сумме 1Gb RAM.
С верхней стороны платы мы видим IR-приемник и гребенку GPIO. Кому интересно, вот распиновка:
С правой стороны мы видим 3 USB 2.0 разъема и порт Ethernet 10/100.
Снизу мы видим дурацкий нестандартный разъем питания (сделанный таким, видимо, для того, чтобы увеличить продажи кастомных блоков питания у производителя плат), гребенку для подключения UART (распиновка GND, RX, TX — все штырьки подписаны), полноценный HDMI-разъем, микрофон и разъем 3,5 для вывода на „колокольчики“.
Надо сказать пару слов про питание. В документации сказано, что плата очень прожорливая и требует твердых 5В и 2А от блока питания. Производитель платы продает к ней блоки питания на 5В и аж 3А (!), поэтому советую приобрести именно такой, на случай, если амперы в вашем блоке питания окажутся „китайскими“, иначе возможны „фризы“. С нестандартным разъемом бороться можно просто — плату можно запитать через шину GPIO: +5В подключаем на 2 или 4 пин, „землю“ на 6 пин.
Ну что ж, пока плата выглядит неплохо. Есть свои „специфические моменты“, но пока они выглядят терпимо, скажете вы… Но на самом деле, интересное еще впереди!
Что нужно сделать, прежде чем включать плату. Это важно!
Даже производитель не рекомендует работать с Orange Pi PC без радиатора! Без охлаждения чип греется до адских 70-80 градусов и выше, и в лучшем случае, это закончится троттлингом процессора, поочередным отключением ядер процессора и фризом, в худшем — процессор будет безнадежно сожжен! Конечно, это можно и обойти вас стороной, но я бы все же не стал рисковать.
Я заблаговременно приобрел мини-радиаторы для Raspberry Pi, выглядят они вот так:
Стоят они доллар на алиэкспрессе, имеют самоклеющуюся поверхность и неплохо рассеивают тепло за свои деньги. Некоторые пользователи Orange Pi PC подключают активное охлаждение, кулеры и т.д., но я отказался от этого, ниже объясню почему.
Потом, как пишут на всех форумах, плата очень требовательна к скорости microSD карты! Рекомендуется брать карту со скоростью не ниже Class 10 UHS-1, иначе ни одна ОС приемлемо работать не будет, проверено на себе.
Последнее: если вы хотите использовать Wi-Fi, то учтите, встроенного wi-fi нет! Необходимо приобрести свисток, причем на определенном чипе. Умельцы запилили поддержку свистков на чипах Rtl8188cus, Rtl8192cu, Rtl8188eu/eus/etv, RT5370.
Ну и конечно, перед работой неплохо бы подготовить некоторую периферию: мышь, клавиатуру и так далее.
Помимо указанного свистка и мини-радиатора я использую переходник HDMI-VGA чтобы подключиться к обычному компьютерному монитору, переходник USB-PS/2, чтобы использовать старую компьютерную клавиатуру, USB-геймпад, MicroSD карточку class 10 uhs-1 LD 16Gb, приехавшую по акции с JD и чудо-мышь со встроенным MicroSD-кардридером и колонкой (!), подключенной во встроенную в мышь USB-звуковуху (!). Очень удобно.
2. Устанавливаем ОС
Первым делом, нам понадобится программа Win32DiskImager, скачать ее можно на sourceforge. Потом, нам понадобится образ ОС. Я использую образ Lubuntu от Jacer, в котором полноценно работает GPU Mali-400 и GPIO через библиотеку WiringOP (порт с Banana Pi) — ссылка. После установки Win32DiskImager и загрузки образа ОС, открываем программу, выбираем там нужный файл с образом, удостоверяемся, что пишем его на нужную карту памяти и нажимаем Write:
После успешного завершения записи на карту, у вас от карты в системе будем виден лишь крохотный BOOT раздел FAT32. На него необходимо скинуть правильный script.bin и uImage. Скачиваем этот архив, извлекаем из него файлы script.bin и uImage и скидываем с перезаписью на нашу карту. После этого вставляем ее в наш девайс и подключаем к нему питание. Если вы все сделали правильно, то на плате загорится красный LED и начнет загружаться система.
После включения система потребует ввести имя и пароль.
Имя пользователя — orangepi
Пароль — orangepi
Не забудьте открыть окно терминала (ctrl+alt+T) и ввести sudo fs_resize, чтобы „подогнать“ разметку диска в системе под размер вашей карточки.
3. Фиксим оверкерлокинг
Теперь очередная „особенность“ этой платы, а точнее — свинья, подсунутая производителем. Две основные проблемы, с которыми сталкиваются пользователи — перегрев процессора (а также связанный с ним троттлинг, отключение ядер, зависание плат» и просадки вольтажа (которые тоже вызывают зависания) имеют общие корни:
Для того, чтобы прорекламировать свою плату как «самую мощную, мощнее чем Raspberry Pi», производитель плат Xunlong зарядил дефолтный клокинг ядер ЦПУ на 1536 МГц, что является номинальным «верхним потолком» по документации на чип, но даже сам производитель не рекомендовал использовать его на этой частоте, предупреждая о проблемах с перегревом.
Мне лично вполне хватает плавающего клокинга на 480-1200МГц, в зависимости от задач, поэтому рекомендую накатить следующий скрипт (за него и за всю исследовательскую работу спасибо юзеру bronco с офиц. форума):
MyTmpFile=»$(mktemp /tmp/$<0##*/>.XXXXXX)»
trap «rm \»$
echo «Successfully repaired broken overvolting/overclocking settings. Reboot necessary for changes to take effect»
Скопируйте и сохраните этот скрипт как fix.sh в домашней директории, после чего откройте терминал и выполните:
После перезагрузки у вас окажется стабильная и холодная машинка, которой вполне будет хватать минимального пассивного охлаждения.
4. Тест-драйв
Не знаю, что еще можно дельного сказать на этом этапе. По месячному опыту использования платы с нормальным клокингом и поддержкой GPU, могу сказать, что устройство вполне может заменить неттоп на одно/двухъядерном атоме.
LibreOffice отлично и шустро работает
Chromium работает как полноценный настольный браузер
Youtube-плагин для SMPlayer шустро переваривает и 720р, и 1080р потоковое видео (в предустановленном Chromium поддержки аппаратного декодирования пока нет)
Можно даже попрограммировать в Eclipse или в Code::blocks!
4к видео я тоже проверял, играет вроде нормально, но не без шероховатостей. Смысла пока в нем не вижу, 1080р хватает за глаза.
GPIO вроде как работает, поморгал светодиодом, дальше не стал разбираться, может когда-нибудь руки и дойдут.
Отдельная тема — это игры, как же без них? Предлагаю оценить производительность в классике компьютерных игр, которая имеется под Linux — Quake 3 Arena.
0. (добавлено мной). Делаем симлинк и копируем заголовочные файлы, чтобы не править makefile:
1. Клонируем исходный код:
2. Переходим в папку:
4. Переносим папочку чтоб было аккуратно:
5. Кладем файлики игры pk*.pk3 (можно найти на диске с оригинальной игрой) в папку
6. Запускаем файл ioquake3-smp.arm.
Результат на видео:
От себя: идет идеально, по крайней мере я никаких глюков не заметил. Ребята молодцы, хорошо постарались, когда портировали драйвер GPU Mali под линукс!
Еще немного демонстрации графических/игровых способностей:
В целом я покупкой весьма доволен. За относительно небольшие деньги я вдоволь наигрался с линуксом и получил мини-ПК, способный эмулировать старые консоли, играть игры, серфить интернет с комфортом на 10+ вкладках полноценного браузера и играть видео с ютьюба.Что еще для счастья надо? В будущем планирую задействовать железку в каком-нибудь проекте DIY с использованием библиотеки компьютерного зрения OpenCV, благо в отличие от ардуины у нее хватит ресурсов на обработку видео.
Кому я категорически НЕ порекомендовал бы брать эту железяку:
— тем, кто на «Вы» с линуксом;
— тем, кто хочет готовое решение «из коробки»;
— тем, у кого мало свободного времени и плохо с английским для чтения форумов;
— тем, кому нужна возможность поставить Windows;
— тем, кому нужна хорошая поддержка коммьюнити, уровня Raspberry Pi и Arduino;
— тем, кому надо побольше ядер и оперативки непонятно зачем.
Этим людям я бы посоветовал взять либо более популярное устройство (малину), либо более мощную плату (на подходе уже есть 8-ядерные платы с 2-3Гб оперативки), либо просто свисток для ТВ на Android или Windows. Это будет лучше, чем взять сгоряча «апельсинку» и потом негодовать, потому как этому поделию далеко до идеала.
5. Вместо послесловия
Надеюсь лишь только, что вместе с выпуском плат Xunlong начнет, наконец, оказывать пользователям и сообществу нормальную поддержку в плане допиливания софта.