PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Рабочий журнал (http://pccar.ru/forumdisplay.php?f=25)
-   -   Nexus 7 в Montero Sport (http://pccar.ru/showthread.php?t=20427)

kononvaler 16.02.2014 17:39

Nexus 7 в Montero Sport
 
1. Предыстория.
Как и у всякого владельца личного авто, возникла мысль о необходимости системы навигации.
Устройств — навигаторов на рынке не счесть, но что меня в них не устраивало, так это: маленький и дерьмовый как правило экран, ограниченная функциоанальность: своя собственная прошивка или в большинстве случаев устаревший WinCE.
После недолгих раздумий пришла мысль о приобретении планшета на андроид, тем более что Навител выпустил под него свой софт. ( а на данный момент андроид стоит первым в списке поддерживаемых ОС http://navitel.ru/navigation/navitel-kz/ ). Недолго думая приобрел 10'' китайца за 140 уе с поддержкой GPS через подсоединяемую внешнюю антенну. Выбор оказался неудачным: тусклый резистивный экран, провод зарядки устройства + провод на антенну перед глазами, неудобство крепления.
И тут я наткнулся на каком то из Московских сайтов на такую железку:
http://www.erisin.com/images/l/201112/13237425250.jpg
1. Отстегивающийся автономный планшет на андроид, который при вставке в штатное место подключается к головному устройству и может работать как андроид планшетом, так и просто экраном для управления плеером. С андроида через кучу контактов внизу транслируется звук в головное устройство, подключается антена GPS, зарядка батареи планшета.
2. Без вставленного планшета 2-х диновое устройство работает как радио , USB и DVD проигрыватель, читает с SD карты.
3. Можно подключить камеру заднего вида и ТВ.

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

Так как это было лето, и предстояла авантюрная поездка в Россию к морю, срочно надо было решать вопрос с навигацией. И тут, к счастью, взгляд пал на относительно недорогой, но весьма достойный аппарат: Google Nexus 7, тогда доступный еще в первой версии. Брал в Алсере примерно за 41 тысячу (8000 руб.) версию без 3G c 16Gb памяти на борту.
Не очень много памяти для мультимедиа, но я расскажу потом как я это обошел. В общем для моих целей он подошел как нельзя лучше - яркий экран с автоматической регулировкой, андроид на который замечательно встал Навител навигатор, и возможность пользоваться гуглевскими картами. Насчет авторегулировки яркости хочу отметить особо: оставил заводские настройки и при этом днем в солнечную погоду в машине на экране все замечательно видно, а вечером и ночью яркость падает настолько, что в Навителе я оставил светлый дневной скин и при этом не чувствовал дискомфорта от засветки.
Ну и встал вопрос о креплении, начал искать раздвигаемую на 7-и дюймовый планшет крепилку с присоской, что оказалось не так просто для этого размера. Нашел в Алматы в бутике в ТРЦ Ритц Палас похожий на нужный мне, позвонил и после недолгих консультаций поехал смотреть держалку. И там девушка-продавец предложила мне любопытную штуковину: гибкий коврик, http://hi-news.ru/wp-content/uploads...-1-450x188.jpg
который прилипает к поверхности и к нему можно прилепить любую гладкую вещь - хоть телефон, хоть планшет. При этом он сам не покрыт каким либо клеющим составом, а просто обладает уникальными свойствами: структура его материала при соприкосновении с любой ровной поверхностью создает своеобразный вакуум, тем самым достаточно прочно прилипая к ней , обзорчик здесь например.
При всей кажущейся хлипкости такого крепления практика показала обратное - планшет легко продержался 5 суток (и очевидно висел бы еще при необходимости) всю дорогу и бездорожье на нашем пути: тряски на диких гребенках в Поволжье и объезды по временной насыпи вдоль строящихся дорог на Урале и Кубани.
Нашел Г-образную пластмасску, отрезал по ширине коврика. Нижнюю часть вырезал в виде упоров в центральный воздуховод так, чтобы эта вставка была в одной плоскости с панелью над и под воздуховодом,
http://vinstel.kz/vk_pictures/02_l.jpg
к панели этот кронштейн прикрепил банально с помощью двухстороннего скотча, а коврик уже сам приклеился к панели и кронштейну, дополнительно скрепив их. Скотч же при необходимости легко можно будет удалить и не останется никаких следов. Коврик , благо был выбор, купил цвета панели.
В итоге получилось так:
http://vinstel.kz/vk_pictures/01_l.jpg
От проводов сзади прикуривателя вывел в бардачок распаянный к проводам адаптер от прикуривателя 12V->5V для Galaxy. В ТЦ "Студент" преобразователь стоил около 700 тенге (140 руб.) , ток до 2А (Более дешевые стоят 400-500, но и рассчитаны на нагрузку до 1А).
Вначале использовал какой то левый шнурок для подключения. Потом вылезла проблема, что планшет видел зарядку, и писал что заряжется, медленно при этом разряжаясь при включённом экране. Уже было подумал про неисправность в планшете, но оказалось что в этом гадком шнурке. Поставил тот, что был в комплекте и проблема исчезла.
Общий вид
http://vinstel.kz/vk_pictures/03_l.jpg
Для замены китайского комбайна была выбрана не дорогая, но достаточно качественная магнитола KENWOOD KDC-8016BT. Основной упор был сделан на две последние буковки в названии модели, что означают поддержку Bluetooth. Магнитола имеет как режим handfree и выносной микрофон, так может запоминать несколько профилей подключаемого по bluetooth оборудования. То есть на Nexus включаем синезуб, спариваем его с магнитолой и через минуту получаем отличный звук на все колонки в машине.
Всё! Практически все опции, использовавшиеся в китайском комбайне, но теперь с гораздо лучшим качеством, я теперь имею.

kononvaler 16.02.2014 17:45

2. Развитие.
Если есть планшет, то как же быть без коммуникаций? Решение не заставило себя долго ждать и было легко и довольно дешево найдено в виде...
портативного 3G/4G беспроводного маршрутизатора (WiFi точки доступа с поддержкой USB модемов) от Tp-Link TL-MR3020
http://www.tp-linkru.com/resources/i...3020-V1-03.jpg
который легко работает как с 3-G модем-роутерами последнего поколения , так и старенькими "заточенными" "свистками". Например обычный "свисток"
от билайн путем изменения в роутере конфигурации (через вэб-интерфейс роутера) чудненько работал в России с SIM картой от МТС. Еще один плюс этого маршрутизатора в его питании от USB порта через мини-USB шнур. То есть покупаем еще один адаптер для прикуривателя, втыкаем его в багажном отделении в гнездо прикуривателя, от него запитываем WiFi роутер, подключаем к роутеру модем от Tele2 или Kcell Connect, кому что нравится, и вокруг нас есть доступ в интернет через WiFi.
Получается, что сэкономив около 10 тысяч тенге (2000 руб.) на модели Nexus без GSM модуля, за эти же деньги (примерно 5 тысяч роутер (1000 руб.) и столько же модем с годовой подпиской на интернет от нашего мобильного оператора "Kcell") я получил более гибкую систему и расшаренный WiFi для всех моих устройств (телефон мой и жены. с вайберами, скайпами и прочей фигней). Теперь и "Навител" может показывать пробки , погоду и что он там еще онлайн умеет.
Настало время настроек.
Ну например не включать же и выключать планшет вручную при повороте ключа в замке зажигания?
Со включением совсем просто, для этого надо разблокировать меню разработчика: идем в настройки, затем в самый низ "О планшетном ПК", заходим и опять в самый низ "Номер сборки", нажимаем на нее 7раз, получаем предупреждение и соглашаемся.
http://vinstel.kz/vk_pictures/Screenshot_2l.png
В итоге в предыдущем меню, где было "О планшетном ПК", прямо над ним появится новое меню: "{}Для разработчиков".
http://vinstel.kz/vk_pictures/Screenshot_3l.png
заходим в него и ставим галочку "Не выключать экран (Во время зарядки экран будет всегда включен)".
http://vinstel.kz/vk_pictures/Screenshot_7l.png
Теперь при включении зажигания экран сразу будет включаться.
Для того чтобы его выключить (и не только) будем использовать замечательную бесплатную программу Llama. Суть ее в том , что она позволяет по определенным условиям совершать назначенные действия. Например при обнаружении моей WiFi точки доступа включить bluetooth и отключить таймаут отключения экрана, при пропадании WiFi выключить bluetooth и заблокировать экран.
Заходим в закладку события, отключаем все ненужные предустановленные (в нашем случае наверно все), и создаем два события, например In car и Out of car.
http://vinstel.kz/vk_pictures/Screenshot_4l.png
Для первого условием будет то, что наша авто-WiFi сеть подключена (ее просто нужно выбрать из списка запомненных сетей, т.е мы должны уже были к ней хоть раз подключаться), а действиями: переключить блютуз на "включен" и изменить таймаут выключения экрана на "постоянно".
http://vinstel.kz/vk_pictures/Screenshot_5l.png
Для второго условие соответственно WiFi сеть отключена и указать само-собой именно нашу сеть, действия: переключить блютуз в "отключен" и выключить экран.
http://vinstel.kz/vk_pictures/Screenshot_6l.png
Алгоритм получается такой. включаем зажигание и планшет получает заряд от USB, вследствие чего включает экран. Также от зажигания включается WiFi точка доступа и Llama включает bluetooth и запрещает экрану засыпать. Магнитола готова принимать аудио по bluetooth.
После выключения зажигания выключается WiFi и Llama выключает bluetooth и блокирует экран.
Основные задачи выполнены, дальше буду добавлять внешнее файловое хранилище. Но это следующим постом B).

Продолжение следует.....

kononvaler 16.02.2014 17:47

3. Расширяемся.
Само-собой, что в наше время 16Gb для хранения мультимедиа, а если у нас планшет и само-собой подразумевается просмотр видео, это очень мало. В предыдущем посте была картинка точки доступа Tp-Link TL-MR3020, где хорошо виден не используемый пока LAN порт. Вот его-то и можно задействовать для наших целей, в чем поможет еще одна чудная железка RaspberryPi http://www.raspberrypi.org/
http://vinstel.kz/vk_pictures/raspberry.jpg
Raspberry Pi был куплен еще в октябре прошлого года, посылка пришла за 9 дней, а хорошо это помню, потому что обсуждалось на форуме Linuxforum.kz . Использовать предполагалось как XBMC хосты к медиа-серверу для телевизоров с HDMI , но без поддержки сети. Пультов в Алматы я к ним не нашел, но зато он оказался как нельзя кстати для моих целей. А именно как устройство для хранения и передачи данных, раз уж наш Nexuz 7 в этом весьма ограничен.
Купил новую SD карту на 4GB Ridata 10 класса всего за 1200 тенге (240 руб.). Такими темпами скоро их будут давать на сдачу. P.S. Прошла буквально неделя, не закончил еще опыты и описание, как эта карта благополучно издохла. Теперь купил Transend на те-же 4 гига, тот-же 10 класс, но за 1450 тенгенов(290 руб.).
Все готово к установке , а так-как 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
http://vinstel.kz/vk_pictures/raspi-config.png

Выбираем первый пункт для расширения 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:
Медиатека видна
http://vinstel.kz/vk_pictures/vlc-upnp.png
Фильм показывает
http://vinstel.kz/vk_pictures/vlc-show.png
Что любопытно, в предыдущих версиях 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
http://vinstel.kz/vk_pictures/upnplayl.png
сам скачивает обложки и показывает актуальную во время воспроизведения трека (надо включать в настройках).
Если в настройках UPnPlay выставить разрешение на внешнее управление, а в Llama в правило отключения добавить посылать сигнал паузы плееру, то UPnPlay корректно встает на паузу по отключению зажигания.

Продолжение следует....

kononvaler 16.02.2014 17:50

4. Выключаем питание.
Вначале Raspberry и Tp-Link были подключены через 12->5vUSB адаптер в боковом отсека багажника рядом с гнездом прикуривателя, и, естественно, мгновенно выключались при отключении зажигания. Особые неудобства испытывал при кратковременных остановках, когда выключаешь двигатель и затем его снова надо запустить. В момент поворота ключа зажигания на "Старт" отключается питание прикуривателя, и приходится ждать когда заново запустятся оба устройства. У Pi несколько раз файловая система давала ошибки так, что приходилось вытаскивать SD карту и прогонять системный раздел утилитой fsck.
Очевидно, нужно как-то резервировать питание. Напрямую к батарее устройства подключать нельзя, хотя у Pi потребляемая мощность 3,5вт, но если его не выключать, то например несвежую 60А/ч батарею за выходные можно теоретически посадить. Если Pi выключать скриптом то вылазит другая проблема - его невозможно запустить пока не перемкнешь Reset на плате для сброса процессора или не "передернешь" питание. Так как в схеме решил использовать миниатюрные реле, то второй вариант по экономии питания явно предпочтительнее.
Идея заключалась в использовании таймеров, запускаемых по включению зажигания и удерживающих включенными WiFi на 30 секунд, а Pi на минуту после выключения зажигания. Так-же необходимо реализовать условие на случай, что-бы после выключения зажигания, когда Pi начинает выключаться, а тут вернулось питание от замка зажигания, то таймер после завершения отключения Pi должен опять запуститься.
В итоге после размышлений, перепаивания различных версий на макете и доводки получилась такая схема:
[img width=700]http://vinstel.kz/vk_pictures/timers.png[/img] (Я не виноват, что движок форума не слушает указания по ширине изображения)
При подаче напряжения от ключа зажигания на контакт Х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.
Соединяем:
[img width=300]http://storage8.static.itmages.ru/i/13/1121/h_1385050783_3630076_afa638ec42.jpg[/img]
Если для запитывания и подключения Pi использовал разъемы от USB коннектора для подключения к материнской плате, то для питания WiFi просто отрезал кусок miniUSB кабеля и подпаял его. При этом WiFi при необходимости можно отключить и забрать например с собой в гостиницу.

Обобщаем: при включении зажигания включается таймер 1 и включает WiFi и удерживает его включенным 30 сек после выключения. Кратковременные выключения (меньше 30 сек) не влияют на работу WiFi.
Так-же включается таймер 2, подает питание и начинает отсчитывать время, запускается Pi и выставляет "1", чем сбрасывает таймер в начало отсчета и держится в этом состоянии. После выключения зажигания Pi на своем входе получает "0" и получив несколько раз подтверждение об этом состоянии в течении минуты затем снимает "1" с выхода и выполняет команду выключения. В это время таймер отсчитывает свою разрешенную минуту и выключается. Если зажигание было опять подано в то время. как Pi начала выключаться, то таймер не получит сигнала включения до тех пор, пока сам не отработает до конца и плюс задержка в пару секунд, и только после этого опять подаст питание на Pi.
Конечно, маленькую батарею в моей схеме не обязательно использовать, если рядом доступно постояннное питание от батареи автомобиля (у меня же эти устройства в боковом отсеке в багажнике и не хотелось тащить туда дополнительный провод). Тогда диод VD5 будет не нужен и вместо батареи на схеме нужно подключиться к батарее в машине. Интегральные таймеры NE555 и логические элементы на CD4001 имеют крайне низкое энергопотребление и не окажут негативного влияния на автомобильный аккумулятор.
Напаял все на монтажке, и выглядит это в сборе внутри старого корпуста от ADSL модема Dlink вот так:
[img width=500]http://vinstel.kz/vk_pictures/poweron.jpg[/img]
Если не считать батарею то затрачено на элементы схемы примерно тенге 500.
Ну осталось подружить нашу Pi с получившейся схемой. Есть два решения с одинаковым результатом, одно на C++ (громко сказано) с использованием специальной библиотеки, ну и просто скриптик на баш :huh: .
sudo nano /opt/power_onoff.sh

[hr]
#!/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
[hr]
Где:
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

Собственно и все. Как писали в старых добрых радиолюбительских журналах "правильно собранная схема в настройке не нуждается". ^_^
Надеюсь идеи на этом не закончатся и будет чем еще поделиться.

s.m. 16.02.2014 18:01

Круто, но сколько лишнего железа...
Достаточно было подключить к нексусу правильный кабель и поставить нужную прошивку...

Raspberry Pi здесь абсолютно избыточен

И поосторожнее с ковриком, при резком торможении девайс улететь может не туда...

kononvaler 16.02.2014 18:21

Цитата:

Сообщение от s.m. (Сообщение 287501)
Raspberry Pi здесь абсолютно избыточен

И поосторожнее с ковриком, при резком торможении девайс улететь может не туда...

1. Встроенная память нексуса 16 гб, минус на программы (те же карты сайжик и навител) на мультимедия мало чего останется, через распберри я расширяюсь ло куда хватит фантазии и необходиости, в данном случае 64 гб.
2. Этот коврик уже больше полгода, жарким летом и зимой до -20, планшет ни разу не отваливался, чтобы его оторвать надо с усилием вращать устройство, иначе можно вероятно оторвать заднюю крышку. В тексте было написано про поездку и убитые дороги, а вы меня предупреждаете про торможение, наверно читали краем глаза.

P.S. Мой вам респект по вашему проекту (посмотрел с интересом, восхищен вашим трудолюбием), но по поводу вашей критики по Raspberry Pi мне стало понятно из вашего подхода. На мой взгляд плюс в том, что я в своей связке разнородных казалось бы железяк легко поменяю без ущерба для всей системы любой из узлов (поломка или апгрейд, сейчас например некус 2-й генерации, у меня 1-й еще).

s.m. 16.02.2014 19:03

Цитата:

1. Встроенная память нексуса 16 гб, минус на программы (те же карты сайжик и навител) на мультимедия мало чего останется, через распберри я расширяюсь ло куда хватит фантазии и необходиости, в данном случае 64 гб.
а если повесить otg-кабель, то можно повесить активный хаб на 7 портов и подключить туда все, включая винчестер и 3g-модем и камеру заднего вида и т.д.. этот винчестер будет просто смонтирован в файловую систему и не надо никаких dlna. а фантазии с gpio решает 5-баксовая ардуина, включенная в тот же хаб.
к тому же, это гораздо надежнее, ибо проще.

Но каждый заморачивается как хочет. Всем мир.

kononvaler 16.02.2014 19:39

Цитата:

Сообщение от s.m. (Сообщение 287504)
а если повесить otg-кабель, то можно повесить активный хаб на 7 портов и подключить туда все, включая винчестер и 3g-модем и камеру заднего вида и т.д.. этот винчестер будет просто смонтирован в файловую систему и не надо никаких dlna. а фантазии с gpio решает 5-баксовая ардуина, включенная в тот же хаб.
к тому же, это гораздо надежнее, ибо проще.

1Можно и так, но тогда это будет другой тред.
2.Вайфай с 3G в моем случае раздается всем в машине (планшет на панели, мой и жены телефоны).
3.Не знаю чем dlna вам насолил, хорошо работает. Ардуино использовать только ради гпио? А так распберри с полноценным линуксом. Разница в цене невелика.
4. гораздо надежнее, ибо проще - хм, распайка отг кабеля с внешним питанием и еще дополнительное питание на планшет - а он заряжаться не будет если вкабель использовать для otg, а если подать питание то отключается otg.
Я даже не рутовал устройство, планшет с родным андроидом от гугля. И то, что мои дополнения висят на дополнительных устройствах как раз не приводят к ненадежности, а наоборот, отказ любого из них не приводит к тотальному отказу всей системы в целом:
а) музыку я смогу слушать с магнитолы .
б) навигация будет даже если планшет останется один
в) случись что с планшетом, я могу свой телефон нексус 5 (собственно любой андроид) вместо него воткнуть, заменит на ходу, ведь там все те-же приложения.
г) вайфай я могу брать с собой например в гостиницу (и планшет)

МДА 1 16.02.2014 21:28

Просто человек решыл ни чего не копировать и пошел - своим путём!Да и намного проще + можно взять с собой+быстрая замено девайса(планшет на телефон). kononvaler ещё б с задним ходом бы разобраться !

kononvaler 16.02.2014 21:53

Цитата:

Сообщение от МДА 1 (Сообщение 287519)
kononvaler ещё б с задним ходом бы разобраться !

Я работаю над этим. :yes4:
Так как мой Raspberry находится в задней части авто(да собственно ведь без разницы где его ставить, там где удобно, проводов кроме питания тянуть не надо), ничего не стоит воткнуть в него usb камеру, я же пока застрял на автоматическом запуске приложения в андроиде при включении з\х. Картинку передать нет проблем, хоть в vlc, хоть через http в браузер, вот бы пальцем при этом в планшет не тыкать основная задача. :bye:


Часовой пояс GMT +4, время: 13:28.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot