Автовладельцам на заметку или собираем мультимедиа не центр.

Автор ValeryK, 13 Ноября 2013, 10:00

« предыдущая тема - следующая тема »

0 Пользователей и 4 Гостей просматривают эту тему.

ValeryK

13 Ноября 2013, 10:00 Последнее редактирование: 14 Ноября 2013, 22:42 от ValeryK
1.  Предыстория.
    Как и у всякого владельца личного авто, возникла мысль о необходимости системы навигации.
Устройств -- навигаторов на рынке не счесть, но что меня в них не устраивало, так это: маленький и дерьмовый как правило экран, ограниченная функциоанальность: своя собственная прошивка или  в большинстве случаев устаревший  WinCE.
После недолгих раздумий пришла мысль о приобретении планшета на андроид, тем более что Навител выпустил под него свой софт. ( а на данный момент андроид стоит первым в списке поддерживаемых ОС http://navitel.ru/navigation/navitel-kz/ ). Недолго думая приобрел 10''  китайца за  140 уе с поддержкой GPS через подсоединяемую внешнюю антенну. Выбор оказался неудачным: тусклый резистивный экран, провод зарядки устройства + провод на антенну перед глазами, неудобство крепления.
И тут я наткнулся на каком то из Московских сайтов на такую железку:

1. Отстегивающийся автономный планшет на андроид, который при вставке в штатное место подключается к головному устройству и может работать как андроид планшетом, так и просто экраном для управления плеером. С андроида через кучу контактов внизу транслируется звук в головное устройство, подключается антена GPS, зарядка батареи планшета.
2. Без вставленного планшета 2-х диновое устройство работает как радио , USB и  DVD проигрыватель,  читает с SD карты.
3. Можно подключить камеру заднего вида и ТВ.

Дальнейшие поиски отзывов на форумах привели меня к производителю сего чуда http://www.erisin.com/erisin-es777a-3g-wifi-tablet-midi-pad-hd-car-dvd-player_p253.html , и обошлось все это «великолепие» с учетом доставки DHL в 420 долларов. И это вполне хорошая цена, с учетом того, что те самые Москвичи, где я впервые обнаружил эту железку, продавали его под своим брендом под 1000 $.
Проездил я с ним почти полгода, затем продал за 35 тысяч наших тенге. Все казалось должно быть хорошо, Навител работал, музычки и клипы воспроизводились, Но везде вылазили недоработки. То планшет терял связь с головным устройством, если он оставался выключенным, а ГУ выключилось по команде от ключа зажигания. Опять резистивный экран с недостаточной яркостью днем и неточным управлением. Я хоть и не меломан, но звук был как-бы   неплохой, но не очень.

      Так как это было лето, и предстояла авантюрная поездка в Россию к морю, срочно надо было решать вопрос с навигацией. И тут, к счастью, взгляд пал на относительно недорогой, но весьма достойный аппарат: Google Nexus 7, тогда доступный еще в первой версии.  Брал в алсере примерно за 41 тысячу версию без 3G c 16Gb памяти на борту.
     Не очень много памяти для мулитимедиа, но я расскажу потом как я это обошел. В общем для моих целей он подошел как нельзя лучше - яркий экран с автоматической регулировкой, андроид на который замечательно встал Навител навигатор, и возможность пользоваться гуглевскими картами. Насчет авторегулировки яркости хочу отметить особо: оставил заводские настройки и при этом днем в солнечную погоду в машине на экране все замечательно видно, а вечером и ночью яркость падает настолько, что в Навителе я оставил светлый дневной скин и при этом не чувствовал дискомфорта от засветки.
    Ну и встал вопрос о креплении, начал искать раздвигаемый на 7" планшет с присоской, что оказалось не так просто для этого размера. Нашел в Алматы в бутике в ТРЦ Ритц Палас  похожий на нужный мне, позвонил и после недолгих консультаций поехал смотреть держалку. И там девушка-продавец предложила мне любопытную штуковину: гибкий коврик
который прилипает к поверхности и к нему можно прилепить любую гладкую вещь - хоть телефон, хоть планшет.  При этом он сам не покрыт каким либо клеющим составом, а просто обладает уникальными свойствами: структура его материала при соприкосновении с любой ровной поверхностью создает своеобразный вакуум, тем самым достаточно прочно прилипая к ней , обзорчик   здесь например.
   При всей кажущейся хлипкости такого крепления практика показала обратное - планшет легко продержался 5 суток (и очевидно висел бы еще при необходимости) всю дорогу и бездорожье на нашем пути: тряски на диких гребенках в Поволжье и объезды по временной насыпи вдоль строящихся дорог на Урале и Кубани.
  Нашел Г-образную пластмасску, отрезал по ширине коврика. Нижнюю часть вырезал в виде упоров в центральный воздуховод так, чтобы эта вставка была в одной плоскости с панелью над и под воздуховодом,

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

От проводов сзади прикуривателя вывел в бардачок распаянный к проводам адаптер от прикуривателя 12V->5V для Galaxy. В студенте преобразователь стоил около 700 тенге, ток до 2А (Более дешевые стоят 400-500, но и рассчитаны на нагрузку до 1А).
Вначале использовал какой то левый шнурок для подключения. Потом вылезла проблема, что планшет видел зарядку, и писал что заряжется, медленно при этом разряжаясь при включённом экране. Уже было подумал про неисправность  в планшете, но оказалось что в этом гадком шнурке. Поставил тот, что был в комплекте и проблема исчезла.
Общий вид

    Для замены китайского комбайна была выбрана не дорогая, но достаточно качественная магнитола KENWOOD KDC-8016BT. Основной упор был сделан на две последние буковки в названии модели, что означают поддержку Bluetooth. Магнитола имеет как режим handfree  и выносной микрофон, так может запоминать несколько профилей подключаемого по bluetooth оборудования. То есть на Nexus включаем синезуб, спариваем его с магнитолой и через минуту получаем отличный звук на все колонки в машине. 
    Всё! Практически все опции, использовавшиеся в китайском комбайне, но теперь с гораздо лучшим качеством, я теперь имею.

ValeryK

14 Ноября 2013, 22:41 #1 Последнее редактирование: 15 Ноября 2013, 09:32 от ValeryK
2.   Развитие.
    Если есть планшет, то как же быть без коммуникаций? Решение не заставило себя долго ждать и было легко и довольно дешево найдено в виде...
портативного 3G/4G беспроводного маршрутизатора (WiFi точки доступа с поддержкой USB модемов) от Tp-Link  TL-MR3020

который легко работает как с 3-G модем-роутерами последнего поколения , так и старенькими "заточенными" "свистками". Например обычный "свисток"
от билайн путем изменения в роутере конфигурации (через вэб-интерфейс роутера) чудненько работал в России с картой МТС. Еще один плюс этого маршрутизатора в его питании от USB порта через мини-USB шнур. То есть покупаем еще один адаптер для прикуривателя, втыкаем его в багажном отделении в гнездо прикуривателя, от него запитываем WiFi роутер, подключаем к роутеру модем от Tele2 или Kcell Connect, кому что нравится, и вокруг нас есть доступ в интернет через WiFi.
   Получается, что сэкономив около 10 тысяч на модели Nexus без GSM модуля, за эти же деньги (примерно 5 тысяч роутер и столько же модем с годовой подпиской на интернет от Kcell) я получил более гибкую систему и расшаренный  WiFi для всех моих устройств (телефон мой и жены. с вайберами, скайпами и прочей фигней). Теперь и "Навител" может показывать пробки , погоду и что он там еще онлайн умеет.
   Настало время настроек.
   Ну например не включать же и выключать планшет вручную при повороте ключа в замке зажигания?
Со включением совсем просто, для этого надо  разблокировать меню разработчика: идем в настройки, затем в самый низ "О планшетном ПК", заходим и опять в самый низ "Номер сборки", нажимаем на нее 7раз, получаем предупреждение и соглашаемся.

   В итоге в предыдущем меню, где было  "О планшетном ПК", прямо над ним появится новое меню: "{}Для разработчиков".

заходим в него и ставим галочку "Не выключать экран (Во время зарядки экран будет всегда включен)".

Теперь при включении зажигания экран сразу будет включаться.
   Для того чтобы его выключить (и не только) будем использовать замечательную бесплатную программу  Llama. Суть ее в том , что она позволяет по определенным условиям совершать назначенные действия. Например при обнаружении моей WiFi точки доступа включить bluetooth и отключить таймаут отключения экрана, при пропадании WiFi выключить bluetooth и заблокировать экран.
    Заходим в закладку события, отключаем все ненужные предустановленные (в нашем случае наверно все), и создаем два события, например In car и Out of car.

Для первого условием будет то, что наша авто-WiFi сеть подключена (ее просто нужно выбрать из списка запомненных сетей, т.е мы должны уже были к ней хоть раз подключаться), а действиями: переключить блютуз на "включен" и изменить таймаут выключения экрана на "постоянно".

Для второго условие соответственно WiFi сеть отключена и указать само-собой именно нашу сеть, действия: переключить блютуз в "отключен" и выключить экран.

  Алгоритм получается такой. включаем зажигание и планшет получает заряд от USB, вследствие чего включает экран. Также от зажигания включается WiFi точка доступа и Llama включает bluetooth и запрещает экрану засыпать. Магнитола готова принимать аудио по bluetooth.
   После выключения зажигания выключается WiFi и Llama выключает bluetooth и блокирует экран.
  Основные задачи выполнены, дальше буду добавлять внешнее файловое хранилище. Но это следующим постом  B).
   
Продолжение следует.....

ValeryK

15 Ноября 2013, 10:52 #2 Последнее редактирование: 21 Ноября 2013, 22:42 от ValeryK
3. Расширяемся.
    Само-собой, что в наше время 16Gb для хранения мультимедиа, а если у нас планшет и само-собой подразумевается просмотр видео,  это очень мало. В предыдущем посте была картинка точки доступа  Tp-Link TL-MR3020, где хорошо виден не используемый пока LAN порт. Вот его-то и можно задействовать для наших целей, в чем поможет еще одна чудная железка RaspberryPi http://www.raspberrypi.org/

    Raspberry Pi был куплен еще в октябре прошлого года, посылка пришла за 9 дней, а хорошо  это помню, потому что обсуждалось на форуме  Linuxforum.kz . Использовать предполагалось как XBMC хосты к медиа-серверу для телевизоров с HDMI , но без поддержки сети. Пультов в Алматы я к ним не нашел, но зато он оказался как нельзя кстати для моих целей. А именно как устройство для хранения и передачи данных, раз уж наш Nexuz 7 в этом весьма ограничен.
   Купил новую SD карту на 4GB Ridata 10 класса всего за 1200 тенге. Такими темпами скоро их будут давать на сдачу. P.S. Прошла буквально неделя, не закончил еще опыты и описание, как эта карта благополучно издохла. Теперь купил Transend на те-же 4 гига, тот-же 10 класс, но за 1450 тенгенов.
   Все готово к установке , а так-как Debian мне ближе по привычкам, то качаю  образ  2013-09-25-wheezy-raspbian.zip  http://www.raspberrypi.org/downloads, это оптимизированный образ Debian Wheezy для Raspberry.
Вставляю карту памяти , распаковываю скаченный образ  в /tmp и иду туда терминалом:
cd /tmp
смотрим на подключенные устройства : ls -la /dev/disk/by-id
и видим запись типа  mmc-NCard_0x0000bc71 -> ../../mmcblk0
наша карта памяти mmcblk0 и путь к ней /dev/mmcblk0 , если сомневаетесь, то лучше проверьте, иначе дальнейшими действиями можно затереть рабочий диск .
Дальше совсем просто, используя утилиту dd копируем скаченный и распакованный образ на карту:
sudo dd if=2013-09-25-wheezy-raspbian.img of=/dev/mmcblk0
5785600+0 записей получено
5785600+0 записей отправлено
скопировано 2962227200 байт (3,0 GB), 1344,32 c, 2,2 MB/c  (для Transend показатель оказался получше 1274,49 c, 2,3 MB/c)
   где if=образ_системы    of=SD_карта .
   (Если хочется подробностей, то здесь http://www.armlinux.ru/создание-sd-карты-с-операционной-систем/ описание под разные системы и разными способами. )
В итоге, как видим,  через 23 минуты  карта с установленной системой готова. Вставляем карту в Raspberry , подключаем сеть и питание.
    Что дальше? Хорошо если вы подключили через HDMI монитор, и сразу попадете в консоль, у меня же дома кроме телека (а он обычно по вечерам, когда я пишу, занят) мониторов с HDMI нет. Конечно, наша железка получит IP адрес с DHCP сервера (а если его в сети нет, то  и не получит), в моем случае этим сервером в домашней сети является роутер, к тому-же старый Billion, у которого в вэб-интерфейсе нет информации по получившим адреса клиентам. Если вы в такой-же ситуации, то ставим и открываем nmap (или zenmap с GUI):
valery@valery-HP-ProBook-4740s:~$ nmap -T4 -F 192.168.1.1-254

Starting Nmap 5.21 ( http://nmap.org ) at 2013-10-28 21:01 ALMT

Nmap scan report for 192.168.1.2
Host is up (0.032s latency).
Not shown: 99 closed ports
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for 192.168.1.3
Host is up (0.025s latency).
Not shown: 98 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind

Nmap scan report for 192.168.1.6
Host is up (0.027s latency).
Not shown: 99 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 254 IP addresses (6 hosts up) scanned in 5.19 seconds

Часть результатов я выкинул, оставил только три для примера. С 22 ssh портом устройство только одно, с 6-м адресом, можно предположить что это наш Pi. Можно просто отключть сеть от него и еще раз просканироовать сеть и посмотреть на разницу.

Возвращаем сеть на место и пытаемся соединиться :
valery@valery-HP-ProBook-4740s:~$ ssh pi@192.168.1.6
The authenticity of host '192.168.1.6 (192.168.1.6)' can't be established.
ECDSA key fingerprint is d8:9e:eb:2b:c5:88:84:2c:5f:a3:48:4c:4e:7c:89:7b.
Are you sure you want to continue connecting (yes/no)? yes  # здесь надо подтвердить вписав "yes"
Warning: Permanently added '192.168.1.6' (ECDSA) to the list of known hosts.
pi@192.168.1.6's password:       # здесь вводим пароль по умолчанию "raspberry"
Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

NOTICE: the software on this Raspberry Pi has not been fully configured. Please run 'sudo raspi-config'

pi@raspberrypi ~ $                  # Ура, мы внутри!
Обратим внимание на последнюю строку перед приглашением в командную строку, и выполним эту рекомендацию.
sudo raspi-config


Выбираем первый пункт для расширения root раздела на всю карту,
во втором пункте можно сменить пароль на более простой (в предыдущей версии образа системы для смены пароля на трехсимвольный приходилось вносить изменения , в этой таких ограничений нет), 
а вот в 4-м пункте :
   Internationalisation Options
│  I1 Change Locale             к en-GB локализации отметим для добавления ru-RU UTF-8       
│  I2 Change Timezone        выбираем стрелками вверх Asia и сразу видим Almaty
│  I3 Change Keyboard Layout   выполняем для применения изменений от Change locale
Finish
Проверяем русский шрифт, переключение по Ctrl+Shift.

С основной установкой закончено, следующий этап - установка мультимедийного сервера.
Как самый легкий, был выбран miniDLNA.
Так как он есть у нас в репозитарии, то просто
      sudo apt-get install minidlna

    Свою приготовленную специально для этих целей 64 GB флешку  я отформатировал для всеобщей совместимости в FAT32 и дал метку 64GB_RIDATA,  тем более что файлы размером более 4GB просматривать не предполагается. При выборе флешки главными критериями были цена и объем, а так как скорость записи и чтения в нашем случае не критичны ( у Raspberry USB версии 2.0) то купил самую дешевую для данного объема, ну почти самую дешевую, еще обратил внимание на знакомый бренд. Скопировал на нее несколько видео и аудио файлов для тестов.
Все готово, вставляем флешку в Pi и смотрим как она видна в системе
   sudo blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="2654-BFC0" TYPE="vfat"
/dev/mmcblk0p2: UUID="548da502-ebde-45c0-9ab2-de5e2431ee0b" TYPE="ext4"
/dev/sda1: LABEL="64GB_RIDATA" UUID="3157-8F10" TYPE="vfat"

обращаем внимание на нашу флешку, а точнее на ее UUID, по нему и будем производить монтирование, а то мало ли что еще сможет смонтироваться в sda1, тогда как UUID он и в африке...  Добавим директорию, куда будем монтировать
      sudo mkdir /media/minidlna
   поменяем пользователя для этой директории
      sudo chown minidlna:minidlna /media/minidlna
Теперь будем прописывать флешку для автомонтирования в эту директорию при старте системы, это удобно будет тем более потому, что отключать и подключать ее буду при отключенном Pi.
   Прежде чем править  fstab , узнаем  еще ID minidlna, чтобы дать серверу все права на    нашу медиатеку при монтировании:
   pi@raspberrypi ~ $ id minidlna
   uid=107(minidlna) gid=110(minidlna) groups=110(minidlna)
   
Теперь добавим последнюю строку в fstab:
      sudo nano /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use 
UUID=3157-8F10   /media/minidlna  vfat    rw,noatime,uid=107,gid=110,user,iocharset=utf8          0       0
(монтируем устройство с заданным UUID=3157-8F10;  в директорию /media/minidlna; тип файловой системы vfat; права чтение/запись, установить пользователя с указанными uid:gid, использовать кодировку Utf-8 ; не делать проверку диска 0 0) 
С кодировкой могут быть проблемы, например VLC плеер отображал русские названия директорий и файлов вопросиками, пока не добавил в fstab опцию  iocharset=utf8 . Не знаю правда как это будет выглядеть для директорий, скопированных в Windows. У них своё видение стандартов, а  проверять лень, ибо дома винды нет.
Пробуем  смонтировать:
sudo mount -all

Проверяем, что получилось:
pi@raspberrypi ~ $ ls -la /media/minidlna/
total 52
drwxr-xr-x 4 minidlna minidlna 16384 Jan  1  1970 .
drwxr-xr-x 3 root     root      4096 Oct 29 21:56 ..
drwxr-xr-x 3 minidlna minidlna 16384 Oct 30  2013 Music
drwxr-xr-x 3 minidlna minidlna 16384 Oct 30  2013 Video

Как видим, все как и задумывалось, и директории Music и Video принадлежат пользователю minidlna. Теперь и пришла пора настроить наш уже установленный minidlna. Для этого окрываем для правки его конфигурационный файл:
sudo nano  /etc/minidlna.conf
правим только одну строку (по умолчанию это media_dir=/var/lib/minidlna), указывающую на наш каталог с мультимедиа, то есть на директорию , куда монтируется флешка:
media_dir=/media/minidlna

Перезапустим сервер
sudo service minidlna restart

Можем проверять что получилось например через плеер VLC:
Медиатека видна

Фильм показывает

Что любопытно, в предыдущих версиях minidlna , цитирую с одного из описаний устанвки : "Сервер рассчитан на накопление файлов - новые файлы добавляются, а удаленные не убираются. Решение очень простое - удалять индексный файл /var/lib/minidlna/files.db при остановке сервера. При следующем запуске каталоги будут просканированы и будет создан новый индексный файл. "
Теперь это оказывается не нужно, при перезапуске сервера (сервиса)  удаленные файлы чудесно исчезают.
  P.S. Опыт показал, что не все хорошо все-же с обновлением и удалением файлов из базы. Но я не стал делать удаление индексного файла по запуску сервера, потому-что индексирование большого количества файлов занимает продолжительное время, а так как переиндексация нужна только при добавлении/удалении контента, то я просто вынес индексный файл на ту-же флешку, и явно указал медиа-директории в конфигурационном файле:
      sudo nano /etc/minidlna.conf
             media_dir=A,/media/minidlna/Music
             media_dir=V,/media/minidlna/Video
             media_dir=V,/media/minidlna/Клипы
             db_dir=/media/minidlna
И теперь можно будет просто удалять его при необходимости в то время когда будет изменяться содержимое флешки .
   
      Для воспроизведения из сети я использовал вначале МедиаХауз UPnP / DLNA Browser , для воспроизведения видео он запрашивает использование любого из установленных плееров с возможностью запоминания выбора в дальнейшем. Аудио воспроизводит сам, но какие-то заморочки с плейлистами.  Буквально на днях установил  UPnPlay , для видео так-же просит внешний рендерер, зато для аудио сам сканирует папку и добавляет в плейлист, возможность перемешивания, и , что мне понравилось, так-как есть интернет в машине, то UPnPlay

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

ValeryK

17 Ноября 2013, 15:39 #3 Последнее редактирование: 31 Августа 2017, 09:01 от ValeryK
4. Выключаем питание.
   Вначале Raspberry и Tp-Link были подключены через 12->5vUSB адаптер  в боковом отсека багажника рядом с гнездом прикуривателя, и, естественно, мгновенно выключались при отключении зажигания. Особые неудобства испытывал при кратковременных остановках, когда выключаешь двигатель и затем его снова надо запустить. В момент поворота ключа зажигания на "Старт" отключается питание прикуривателя, и приходится ждать когда заново запустятся оба устройства. У Pi  несколько раз файловая система давала ошибки так, что приходилось вытаскивать SD карту и прогонять системный раздел утилитой fsck.
  Очевидно, нужно как-то резервировать питание. Напрямую к батарее устройства подключать нельзя, хотя у Pi потребляемая мощность 3,5вт, но если его не выключать, то например  несвежую 60А/ч батарею за выходные можно теоретически посадить. Если Pi выключать скриптом то вылазит другая проблема - его невозможно запустить пока не перемкнешь Reset на плате для сброса процессора или не "передернешь" питание. Так как в схеме решил использовать миниатюрные реле, то второй вариант по экономии питания явно предпочтительнее.
  Идея заключалась в использовании таймеров, запускаемых по включению зажигания и удерживающих включенными WiFi на 30 секунд, а Pi на минуту после выключения зажигания. Так-же необходимо реализовать условие на случай, что-бы после выключения зажигания, когда Pi начинает выключаться, а тут вернулось питание от замка зажигания, то таймер после завершения отключения Pi должен опять запуститься.
  В итоге после размышлений, перепаивания различных версий на макете и доводки получилась такая схема:

  При подаче напряжения от ключа зажигания на контакт Х1.1 на выходе инвертора DD1.3 установится низкий уровень, который через конденсатор С1 запустит таймер DT1, но через диод VD1 будет удерживаться времязадающий конденсатор С2 от заряда. В итоге уже запущенный таймер отработает только тогда, когда будет выключено зажигание. Через диод VD2 низкий уровень так-же будет подаваться на "слушающий"вход Raspberry Pi для получения информации о состоянии питания (т.е. низкий уровень на Х2.1 - зажигание включено). Следует заметить, что выключение и возврат зажигания до истечения отрабатывания таймера приведет к разряду конденсатора С2, т.е. к возврату таймера к началу интервала.
  Аналогично построена схема для включения таймера DT2, но здесь добавлено условие - запуск произойдет только в том случае, если таймер DT2 в выключенном состоянии ("И" на элементе DD1.1)  и не ранее чем через пару секунд (задержка R8C8 и инвертор DD1.2), а удержание времязадающего конденсатора С5 будет производится  подачей уровня "1" с выхода Raspberry Pi на транзистор VT1, которым система будет показывать , что она запущена.
  Включение реле любого из таймеров подает напряжение через контакты К1.1 и К1.2 на преобразователь 12v-> 5v , а уже через соответствующие контакты  К2.1 и К2.2  5V напряжение на соответствующие устройства. Время отработки таймеров с указанными в схеме номиналами: от момента снятия зажигания DT1=30s, после снятия "1" от Pi DT2=60s.
Соединяем:

Если для запитывания и подключения Pi использовал разъемы от USB коннектора для подключения к материнской плате, то для питания WiFi просто отрезал кусок miniUSB кабеля и подпаял его. При этом WiFi при необходимости можно отключить и забрать например с собой в гостиницу.
 
     Обобщаем: при включении зажигания включается таймер 1 и включает WiFi и удерживает его включенным 30 сек после выключения. Кратковременные выключения (меньше 30 сек) не влияют на работу WiFi.
Так-же включается таймер 2, подает питание и начинает отсчитывать время, запускается Pi и выставляет "1", чем сбрасывает таймер в начало отсчета и держится в этом состоянии. После выключения зажигания Pi на своем входе получает "0" и получив несколько раз  подтверждение об этом состоянии в течении минуты затем снимает "1" с выхода и выполняет команду выключения. В это время таймер отсчитывает свою разрешенную минуту и выключается. Если зажигание было опять подано в то время. как Pi начала выключаться, то таймер не получит сигнала включения до тех пор, пока сам не отработает до конца и плюс задержка в пару секунд, и только после этого опять подаст питание на Pi.
   Конечно, маленькую батарею в моей схеме не обязательно использовать, если рядом доступно постояннное питание от батареи автомобиля (у меня же эти устройства в боковом отсеке в багажнике и не хотелось тащить туда дополнительный провод). Тогда диод VD5 будет не нужен и вместо батареи на схеме нужно подключиться к батарее в машине. Интегральные таймеры NE555 и логические элементы на CD4001 имеют крайне низкое энергопотребление и не окажут негативного влияния на автомобильный аккумулятор.
  Напаял все на монтажке, и выглядит это в сборе внутри старого корпуста от ADSL модема Dlink вот так:

Если не считать батарею то затрачено на элементы схемы примерно тенге 500.
Ну осталось подружить нашу Pi с получившейся схемой. Есть два решения с одинаковым результатом, одно на C++ (громко сказано) с использованием специальной библиотеки, ну и просто скриптик на баш  :huh: .
sudo nano /opt/power_onoff.sh



#!/bin/bash
PIN_IN=2
PIN_OUT=4
PIN_TIMEOUT=6s

#export needed pins
echo "${PIN_IN}" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio${PIN_IN}/direction

echo "${PIN_OUT}" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio${PIN_OUT}/direction

#set PIN_OUT to high
echo "1" > /sys/class/gpio/gpio${PIN_OUT}/value

let cnt=10
while (( cnt != 0 ))
do
  if (( $(cat /sys/class/gpio/gpio${PIN_IN}/value) == 1 ))
  then
#    echo "waiting ${cnt}"
    sleep ${PIN_TIMEOUT}
    let cnt--
  else
    let cnt=10
  fi
done

#echo "done waiting! shut down!"

#unexport pins
echo "${PIN_IN}" > /sys/class/gpio/unexport
echo "${PIN_OUT}" > /sys/class/gpio/unexport

shutdown -h +0

exit 0


  Где:
PIN_IN=2     - вход подключенный к Х2.1 на котором следим за отключением зажигания
PIN_OUT=4  - выход, подключенный к Х2.2  на который подаем "1" пока система запущена
PIN_TIMEOUT=6s  - время между проверками наличия зажигания

Добавляем скрипт в автозагрузку:
           sudo nano /etc/rc.local
дописываем перед exit:
          /opt/power_onoff.sh &
                   exit 0
 
  Собственно и все. Как писали в старых добрых радиолюбительских журналах "правильно собранная схема в настройке не нуждается".  ^_^
Надеюсь идеи на этом не закончатся и будет чем еще поделиться.

Yuriy_Y

Вот кстати, дано хотел попробовать minidlna. Поставил на свой XBMC сервер. Только запускал его от пользователя, под которым пашет XBMC, что медиатека была доступна.
А вот клиент по андрюшку пришлось выбирать.
Пока остановился VPlayer Video Player. Легкий, локализованный. Пока не нашел файл у себя, который бы этот плеер не схавал.
А я чет нигде не нашел, что он платный. Я не платил ничо. Там еще надо будет плагин добавить к нему для UPnP.
С уважением, Юрий

ValeryK

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

This is a free trial for 7 days with full features. Please buy 'VPlayer Unlocker' to continue use VPlayer.
Далее:
VPlayer Unlocker
YIXIA INC.
- 7 августа 2013 г.
Мультимедиа и видео
Купить: 5,16$

Yuriy_Y

Кстати, прибил minidlna. Век живи - век учись. Оказывается, в установленном XBMC уже есть функция DLNA сервера, ее просто включить надо.
С уважением, Юрий

ValeryK

22 Ноября 2013, 14:02 #7 Последнее редактирование: 22 Ноября 2013, 15:28 от ValeryK
Есть идея подключить к Pi usb-камеру (по задумке это камера заднего вида, которая уже по usb подключена к Pi , но на нее подается питание от фонарей заднего хода). Нужны идеи как послать оповещение что включилась камера головному планшету. Т.е вообще как известить андроид-устройство, что ему нужно например открыть url или файл, или поток по адресу.

Нашел приложение Tablet Talk для сопряжение планшета с телефоном, т.е планшет становится "гарнитурой" и с него можно звонить, принимать звонки и писать и получать сообщения. т.е сделать из него hand-free гарнитуру. Как только придет мой Nexus 5 из штатов, попробую.

НаРазДва

22 Ноября 2013, 23:36 #8 Последнее редактирование: 22 Ноября 2013, 23:39 от НаРазДва
Цитата: ValeryK от 22 Ноября 2013, 14:02
Есть идея подключить к Pi usb-камеру (по задумке это камера заднего вида, которая уже по usb подключена к Pi , но на нее подается питание от фонарей заднего хода). Нужны идеи как послать оповещение что включилась камера головному планшету. Т.е вообще как известить андроид-устройство, что ему нужно например открыть url или файл, или поток по адресу.


Один из вариантов, использовать udev, через его правила, при подключении usb-камеры запускать приложение, использующее камеру по назначению. Минус, наверное нужен root-доступ к андрюше.

Второй вариант, еще менее реалистичен, портировать на андрюшу убунтовый Cuttlefish http://ubuntovod.ru/soft/cuttlefish.html, т.к. он написан на питоне (Хотя может с питоном уже всё нормально в андроиде).

третий вариант, однозначно рут-доступ будет нужен, + установка для android'a аналога crontab и запуск раз в минуту скрипта для проверки вывода lsusb на наличие в нем подключёной usb-камеры. Но раз в минуту, рально будет не "комильфо".

PS: Самый удобный вариант - найти аналог Cuttlefish'а для андроида.

ValeryK

Cuttlefish интересная програмулинка, можно взять на вооружение будет где нибудь.
В нашем случае задача в другом: камера подключена к Raspberry Pi на которой установлен добрый знакомый Debian Wheezy , проблем нету отследить когда подключится камера к Pi, хоть опросом lsusb, добавлением события в udev, можно повесить "прослушку" на еще какой либо из входов gpio на Pi  и добавить условие хотя-бы  в тот же работающий скрипт выключения питания.
   Основная задача - передать какой-либо сигнал с Debian на Raspberry Pi в планшет на Android, чтобы последний открыл видео (файл, поток).
Пока смотрю в сторону варианта с bind устройства на андроиде, но тогда (а похоже в любом случае) придется ковыряться в незнакомом андрюше, а я далеко не програмист.

НаРазДва

23 Ноября 2013, 20:29 #10 Последнее редактирование: 24 Ноября 2013, 19:55 от НаРазДва
Цитата: ValeryK от 23 Ноября 2013, 07:34
   Основная задача - передать какой-либо сигнал с Debian на Raspberry Pi в планшет на Android, чтобы последний открыл видео (файл, поток).
Пока смотрю в сторону варианта с bind устройства на андроиде, но тогда (а похоже в любом случае) придется ковыряться в незнакомом андрюше, а я далеко не програмист.


На андрюше можно поставить ssh сервер, обменяться ключами, и передавать команду в андроид через ssh коннект. Поставить SSH сервер на андроиде вроде не проблема. Команду прописать в скрипте, который указать|прописать вместо "/usr/bin/bash" или что там будет на андроиде после установки "sshd". А в скрипке указать, что запускать и откуда брать видео.

ValeryK

Продолжим? А то тишина... (ахфигеть, больше 4-х лет прошло)
С камерой решил просто, сначала купил камеру в зеркале: но она чаще мешала сдавать задом светя в глаза, а нужна то только когда задом паркуешься к препятствию, в общем выкинул водительское зеркало в козырьке (ну никогда не вспоминал про него что-бы пользоваться) и туда встроил экспроприированный из зеркала экран, зеркало вернул штатное.
Теперь перед вероятным дальним путешествием заморочился автоматическим сбросом видео с регистратора.
Изначально думал подключить два шнурка - один для питания в режиме съемки, второй для снятия данных, но оказалось что:
Регистратор при подключении к компу автоматом соединяется как usb диск,  и, как выяснилось после вскрытия, режим съемки и подключения отличается всего лишь наличием порта передачи данных. То есть в том же usb для съема данным от зарядника регик включается как видеорегистратор.
Тут Остапа понесло....  ^_^

Yuriy_Y

А где окончание? Сломал новый компьютер в машине?
С уважением, Юрий

ValeryK

Да все никак не доедет OrangePI Zero.
Скрипт почти готов, но на другой железяке влом доводить, как придет апельсинка так закончу.
Пока проверил что автоматом переключается режим чтение - запись на регике, скачиваются новые файлы и отправляется в телеграм уведомление об этом. Плюс сразу можно смотреть через MiniDLNA.
Думал уже никто не заглядывает сюда  ^_^

Yuriy_Y

Я бдю. Хотя, чет мало народу, да. Но интересно, да и не часто встретишь человека с прямыми руками. Так шта, ждем. Тоже хочу поиграться с малинкой, только для других целей. Но, пока есть куда потратить эти 35 баксов, все откладываю.
С уважением, Юрий

ValeryK

В данном случае не 35, а меньше 16 с доставкой,  у этой платы отсутствует HDMI, но зато есть WIFI с антенкой, для конкретно моей задачи наиболее подходяще.
https://ru.aliexpress.com/item/New-Orange-Pi-Zero-H2-Quad-Core-Open-source-512MB-development-board-beyond-Raspberry-Pi/32761500374.html?spm=a2g0s.9042311.0.0.rXMJ3L
У всех этих "совместимых" с RPI моделей совместимость на уровне идеи. Распиновка слота расширения завсисит от применяемого процессора, да еще с замудрыми обозначениями.
Как придет и начну паять платку ввода-вывода, выложу детали.
Жду такую штуку:

Yuriy_Y

Я сравнивал. Для моих целей нужна версия малинки с гигом рамы. И проц там x64. Хотя, думаю, подойдет и такая.
С уважением, Юрий

ValeryK


Yuriy_Y

С уважением, Юрий

ValeryK

04 Июля 2018, 11:45 #19 Последнее редактирование: 04 Июля 2018, 12:05 от ValeryK
Наконецто напаял концепт, даст бог без ошибок в самой схеме и в напаянном.  ^_^
справа моя платка естественно, на монтажке

это с другой стороны


это в сборе


для видения габаритов, ключи обычные.