Меню

Блок питания для cubietruck



Распаковываем и запускаем Cubietruck

Распаковываем и запускаем Cubietruck

Привет Читатель . Прямо в предыдущем посте я до Вашего сведения довел, что стал чудо обладателем — Сubietruck. А вот уже сегодня я желаю рассказать как я доставал сие устройство и упаковки собирал, подключал, а так же заводил с полпинка .

Стоит отметить что хоть и Китайский производитель, но устройство, а особенно его картонная упаковка очень (по моему мнению) стильная и добротная.

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

Прошу прощения, не удержался и еще до написания статьи Вытащил плату и уже собрал корпус . Но зато могу похвалиться как теперь выглядит моя «игрушка».

А теперь с другого ракурса

И собственно Сам Седвич

Все это дело отлично питается от моей старенькой зарядки от HTC Desire HD, хотя везде было написано, что минимум нужна зарядка на 2,5 Ампера.Ну а теперь переходим к самому главному:

Запуск Linux на Сubietruck

Сразу хочу отметить, плата поставляется с предустановленным Android, но для меня эта ось не подходит, так как на Сubietruck я буду запускать Web сервер со всеми вытекающими.

Выбор мой пал на OS Linux Debian. Имеющийся на сайте производителя Lubuntu Server мне не подошел, так как изначально на нем не предустановлен SSH демон, а настроить без консоли или клавы и монитора не предоставляется возможным.

Специально для Вас я нашел, скачал, проверил и выложил почти готовый образ, который можно установить в том числе и в NAND память устройства, но для начала потребуется micro-SD карточка с приблизительным объемом как минимум 2 Гб.

Скачать образ Debian Сubietruck тут 931

Скачать программу записи образа на SD карту тут 539

Логин/пароль = root/1234 (обязательно рекомендую поменять)

. Огромный плюс этого образа, что изначально имеется рабочий SSHD.

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

Установка Debian в NAND

Тут я хочу избавиться от пресловутой micro-SD карточки (но она мне еще пригодится при переносе RootFS на HDD, в NAND я оставлю только Boot).

Итак, после того как Вы авторизовались в консоли выполни следующее:

# sh nand-install.sh

Утвердительно ответить на все вопросы мастера, после чего перезагрузить систему, если автоматом не уйдет на перезагрузку, то выполнить следующую команду

# reboot

После загрузки выполняем следующую команду еще раз (теперь как раз вся FS переместится) так-же утвердительно отвечаем на все вопросы мастера

# sh nand-install.sh

После того как все скопируется можно смело вытащить SD карту и перезагрузиться.

Все. Debian в NAND .

Установка Debian на HDD

Теоретически можно пропустить предыдущий пункт, но нужно обеспечить систему, которая не будет изменять файлы. Моих знаний походу не хватает для этого. Поэтому я пошел в три этапа.

Итак по порядку:

  1. Загружаемся с NAND
  2. Подключаем SD карту
  3. Размечам HDD
  4. Создаем точки монтирования
  5. Переносим FS
  6. Правим Boot и fstab

Первые два пункта очень просты и я их пропущу (порядок стоит сохранить). Что касается разметки, то выбор Ваш, но я сделаю 2 раздела это swap и rootfs.

sda1 swap = 4096 мб (по всем рекомендациям равен двум размерам ОЗУ)

sda2 rootFS = оставшееся пространство

Создадим папки для монтирования hdd, sd карты и boot:

# mkdir /mnt/hdd

# mkdir /mnt/sd

# mkdir /mnt/fboot

# mount /dev/sda2 /mnt/hdd

# mount /dev/mmcblk0p1 /mnt/sd

# mount /dev/nand1 /mnt/fboot

Произведем копирование раздела с SD карты на hdd:

# rsync -avHAXhPx /mnt/sd/* /mnt/hdd

# sync

Изменим в boot ссылку на rootFS:

# nano /mnt/fboot/uEnv.txt

изменить секцию nand_root=укажем наш RootFS на hdd, в моем случае /dev/sda2, сохранить файл.

Узнаем UUID дисков для правки fstab для новой системы

# ls -l /dev/disk/by-uuid

Нужные UUID я выделил жирным. Правим fstab

# nano /mnt/hdd/etc/fstab

Привожу пример своего fstab, делай так-же не ошибешься (укажи только свои uuid):

После того как все отредактируешь обязательно выполни:

# sync

Можно выключить Сubietruck послав:

# halt

После чего можно отключить ненужную периферию (sd карта) и включить устройство. Проверить что RootFS это Ваш HDD можно командой:

# df -h

По объему использованного пространства можно сделать вывод что RootFS на HDD

Собственно все что хотел сегодня Вам рассказать.

Источник

Cubietruck — одноплатный компьютер на базе процессора Allwinner-A20 с интерфейсом SATA

cubietruck

Cubietruck (так же известный под названием Cubieboard3) представляет собой новый миникомпьютер компании Cubiesteam. В отличие от предыдущей модели миникомпьютера Cubieboard2, построенной на том же процессоре Allwinner A20, появились некоторые особенности: ОЗУ увеличено до 2ГБ, обновлен модули Ethernet, добавлены модули WiFi+Bluetooth, интерфейс VGA, поддержка Li аккумуляторов, RTC, аудио интерфейс SPDIF, а также поддержка двух систем Android и Linux.

  • Процессор: двухъядерный 1ГГЦ SoC AllWinner A20 Cortex-A7
  • Графический процессор: Mali400MP2, OpenGL ES 2.0/1.1, HDMI 1080p@30fps или 720p@60fps
  • Оперативная память: 2ГБ DDR3 480MHz
  • Пользовательская память: NAND 8ГБ + MicroSD
  • SATA: поддержка дисков до 2.5ТБ размером 2.5″
  • Питание: 5В постоянного тока (2.5A при подключенном жестком диске), поддержка Li-ion батареи и RTC (часы реального времени)
  • Сеть: 10/100/1000 Ethernet, Wi-Fi+BT с антенной на плате
  • Разъемы: 2хUSB 2.0 HOST, USB 2.0 OTG, SPDIF, IR, 4хLED индикатора, наушники, три программируемые кнопки
  • 54 контакта подключения: I2S, I2C, SPI, CVBS, LRADC x2,UART, PS2, PWMx2, TS/CSI, IRDA, LINEIN&FMIN&MICIN, TVINx4
  • Операционная система: Ubuntu Desktop 12.04, Android 4.2.2
  • Размеры платы: 110 мм x 80 мм x 1.4 мм
Читайте также:  Блок питания для 6п36с

Источник

Заметки дядюшки Раджи

Всякая всячина, которую дядюшка Раджа находит в интернете и хочет поделиться с читателями.

Об авторе

Архив блога

  • ►2021 (6)
    • ►мая (3)
    • ►апреля (1)
    • ►марта (2)
  • ►2020 (13)
    • ►декабря (2)
    • ►октября (1)
    • ►сентября (2)
    • ►августа (1)
    • ►июля (1)
    • ►мая (3)
    • ►февраля (2)
    • ►января (1)
  • ►2019 (12)
    • ►декабря (2)
    • ►октября (2)
    • ►сентября (2)
    • ►августа (1)
    • ►июня (2)
    • ►мая (1)
    • ►марта (1)
    • ►января (1)
  • ►2018 (15)
    • ►декабря (2)
    • ►ноября (1)
    • ►октября (2)
    • ►сентября (1)
    • ►июля (1)
    • ►июня (1)
    • ►мая (2)
    • ►апреля (3)
    • ►февраля (1)
    • ►января (1)
  • ►2017 (20)
    • ►декабря (1)
    • ►ноября (2)
    • ►октября (1)
    • ►сентября (3)
    • ►августа (3)
    • ►июня (1)
    • ►мая (1)
    • ►апреля (1)
    • ►марта (1)
    • ►февраля (4)
    • ►января (2)
  • ►2016 (15)
    • ►декабря (4)
    • ►октября (1)
    • ►августа (1)
    • ►июля (2)
    • ►июня (1)
    • ►апреля (3)
    • ►февраля (1)
    • ►января (2)
  • ►2015 (10)
    • ►декабря (1)
    • ►ноября (2)
    • ►сентября (1)
    • ►августа (2)
    • ►июля (1)
    • ►июня (2)
    • ►апреля (1)
  • ▼2014 (16)
    • ►декабря (1)
    • ►ноября (3)
    • ►октября (1)
    • ►сентября (1)
    • ►августа (2)
    • ▼июля (2)
      • Чистка базы TT-RSS.
      • Подключение батареи к Cubietruck.
    • ►мая (1)
    • ►апреля (1)
    • ►февраля (4)
  • ►2013 (11)
    • ►декабря (2)
    • ►октября (2)
    • ►августа (1)
    • ►июля (1)
    • ►июня (1)
    • ►апреля (1)
    • ►марта (1)
    • ►января (2)
  • ►2012 (24)
    • ►декабря (1)
    • ►ноября (2)
    • ►октября (1)
    • ►сентября (1)
    • ►июля (1)
    • ►июня (4)
    • ►мая (2)
    • ►апреля (2)
    • ►марта (6)
    • ►февраля (2)
    • ►января (2)
  • ►2011 (14)
    • ►декабря (2)
    • ►октября (2)
    • ►сентября (2)
    • ►августа (5)
    • ►июля (2)
    • ►февраля (1)
  • ►2010 (29)
    • ►декабря (1)
    • ►июня (1)
    • ►мая (3)
    • ►апреля (10)
    • ►марта (7)
    • ►февраля (4)
    • ►января (3)
  • ►2009 (38)
    • ►декабря (6)
    • ►ноября (4)
    • ►октября (4)
    • ►сентября (8)
    • ►августа (2)
    • ►июля (2)
    • ►мая (2)
    • ►апреля (1)
    • ►марта (5)
    • ►февраля (2)
    • ►января (2)
  • ►2008 (50)
    • ►декабря (4)
    • ►ноября (6)
    • ►октября (7)
    • ►сентября (15)
    • ►августа (14)
    • ►июля (1)
    • ►июня (2)
    • ►мая (1)

Мой блог смотрят

20 июля 2014

Подключение батареи к Cubietruck.

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

Для подключения батареи нужен специальный разъем, который я нашел по названию «JST XH 2.5 2-Pin». Выглядит он примерно так:

В данном случае провода подключены правильно, т.е. красный — это «+», а черный — это «-«. Мне попался вариант, в котором провода были перепутаны. В любом случае в разъеме «+» соотвествует контакту, который ближе в SATA-разъему, а «-» ближе к Ethernet.

Один мой знакомый не стал ломать голову с разъемом и просто припаял провода с обратной стороны платы.

На батареях провода обычно обозначают так:

  • красный — «+»
  • черный — «-«

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

Провода разъема и провода батареи я соединил простой скруткой и замотал изолентой, но можно и пропаять.
После всех измываний батарею можно подключить к разъему. На этом аппаратная часть закончена.

На плате имеется свой контроллер для управления батареей, параметры которого настраиваются через script.bin, как и всё остальное оборудование. Я надеюсь, что про расшифровку файла с помощью bin2fex и шифровку с помощью fex2bin рассказывать не надо. Перейду непосредственно к содержимому.

В файле есть секции «[pmu_para]» , в которой довольно много параметров. В принципе там можно ничего не менять, по крайней мере в дистрибутиве Cubian, но для порядка можно изменить три параметра:

pmu_battery_cap = 2100 — емкость батареи в мАч.
pmu_init_chgcur = 300 — ток для начальной зарядки батареи в мА.
pmu_resume_chgcur = 300 — ток для зарядки батареи при неполном разряде.

И обязательно надо проверить, чтобы в секции было написано «pmu_used = 1» , иначе ничего работать не будет.

Описание остальных параметров можно посмотреть по ссылке http://linux-sunxi.org/Fex_Guide#pmu_configuration

После изменений плату надо обязательно перезагрузить.

Состояние батареи можно посмотреть в файле «/sys/class/power_supply/battery/uevent«. В нем содержится примерно такая информация:

POWER_SUPPLY_NAME=battery
POWER_SUPPLY_MODEL_NAME=battery
POWER_SUPPLY_STATUS=Full
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=0
POWER_SUPPLY_HEALTH=Good
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4200000
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=3300
POWER_SUPPLY_VOLTAGE_NOW=4191000
POWER_SUPPLY_CURRENT_NOW=0
POWER_SUPPLY_ENERGY_FULL_DESIGN=2300
POWER_SUPPLY_CAPACITY=100
POWER_SUPPLY_TEMP=300

Вовремя работы платы от батареи его содержимое примерно такое:

POWER_SUPPLY_NAME=battery
POWER_SUPPLY_MODEL_NAME=battery
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=1
POWER_SUPPLY_HEALTH=Good
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4200000
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=3300
POWER_SUPPLY_VOLTAGE_NOW=4059000
POWER_SUPPLY_CURRENT_NOW=1241000
POWER_SUPPLY_ENERGY_FULL_DESIGN=2300
POWER_SUPPLY_CAPACITY=100
POWER_SUPPLY_TEMP=300

Ну и в случае зарядки:

POWER_SUPPLY_NAME=battery
POWER_SUPPLY_MODEL_NAME=battery
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=0
POWER_SUPPLY_HEALTH=Good
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4200000
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=3300
POWER_SUPPLY_VOLTAGE_NOW=4155000
POWER_SUPPLY_CURRENT_NOW=218000
POWER_SUPPLY_ENERGY_FULL_DESIGN=2300
POWER_SUPPLY_CAPACITY=97
POWER_SUPPLY_TEMP=300

Под нагрузкой батареи на 2300 mAh системе с жестким диском должно хватить минут на 50.

Источник

H Cubietruck. Практические применения в черновиках Из песочницы

.collapse»>Содержание

  1. Какой у нас план?
  2. Что нам для этого нужно?
  3. Что у нас есть ?
  4. Поехали !
  5. В лучших традициях Хабра, видеопруф.

4 месяца и два дня прошло с момента первой моей публикации «Cubietruck. 15 поводов приобрести», которая к сожалению зависла в песочнице, хотя и периодически всплывает при поиске в Google.
Очень странно, что на Хабре еще нет новых статей по запросу «Cubietruck». Может быть народ смущается покупать эту железку, не зная ее возможностей?
Сегодня мы этот пробел исправим.
Мы даже перешагнем через стереотип первого классического топика о возможностях железок, не будем моргать светодиодом в классическом понимании, а сразу сделаем чего-нибудь интересного. Например интерактивный выключатель света. А заодно и научимся работать с инфракрасным портом на простом английском языке.

Читайте также:  Блок питания segway ninebot

Какой у нас план?

Что нам для этого нужно?

— Сложных систем обнаружения на основе OpenCV или ViBe мы пока проектировать не будем, а вместо этого используем старый дедовский способ — движение наших тел.
— Для резервного управления, пригодилась бы консоль\планшет, но их таскать с собой очень неудобно, а ложиться спать, перед этим отмонтировав что-нибудь — это не тру. Поэтому нам нужен пульт ДУ. Забегая наперед, скажу что пульт подойдет любой, от любого устройства. Лишь бы был рабочим, и с ИК.
— Нам нужно целевое устройство, которое мы будем мучать. Пусть это будет какая-нибудь лампа. Или даже светодиод, если мы боимся лезть в 220 В.
— А еще нам нужны коммутаторы, для подачи питания на эти самые реле.
— И конечно же, нам нужен Cubietruck с адекватной ОС на нем. Под адекватной ОС я имею в виду систему, которая скомпилирована со всеми драйверами, устройствами, и почти не требует обработки напильником.

Что у нас есть ?

— У нас есть PIR датчик движения. Выглядит он вот так.
image

Выдает на выходе ноль, если движения нет, и единицу на протяжении нескольких секунд, если движение есть. Под единицей подразумевается 3.3 вольта, что очень важно для нас, ибо Кубик не толерантен к 5В.

— У нас есть пульт ДУ от DLP проектора Viewsonic. Не очень большой, и не очень маленький. Нам сойдет.

— У нас есть торшер с УФ-лампой, разукрашенный заботливой супругой, у которого с вилки торчат два проводка, позволяя его включать и выключать по желанию. Почему фотоаппарат делает зеленую фотографию — я пока не знаю.

— У нас есть двухрелейный блок, который я покупал к Ардуине (не думайте обо мне ничего плохого). Он принимает на свои два входа единицу или ноль, и в зависимости от этого, включает или выключает реле. Реле кстати 250В/10A, что есть хорошо.

— И наконец у нас есть Cubietruck.

Поехали !

Не буду останавливаться детально на методах установки ОС на Кубик, вкратце скажу что это Cubian (Дебиан), скачанный с официального сайта (http://cubian.org/downloads/), с небольшими костылями, а именно:
Модуль bcmdhd, который необходим для работы wifi, не запускается, если его прописать в /etc/modules, поэтому его пришлось прописать как modprobe bcmdhd в /etc/rc.local;
В /etc/modules пришлось добавить модуль sunxi-ir, это модуль для работы инфракрасного порта;
Wicd, который стоит там по дефолту, в упор не видел наличие вайфая, даже когда я вручную его сконфигурил и сидел с кубика в интернете. Пришлось в том же /etc/rc.local прописывать вручную поиск точки доступа, подключение к ней, и получение IP-адреса.
В общем небольшие костыли.

Теперь нам нужно проверить базовые способности нашей системы, при помощи консоли, а лучше через SSH (стандартный логин ОС — cubie, pw: cubie). Из под рута:

Для наших целей должны быть обязательно загружены два последних модуля.
Они у нас загружены, и мы готовы двигаться дальше…

Это список наших устройств ввода. Нас интересуют файлы event*, это устройства-файлы событий, которые происходят при действии устройства ввода. Кто-то из них — наш инфракрасный порт. Это легко проверить с помощью
root@Cubian:/dev/input# cat event1 | hexdump

Теперь если мы нажмем что-нибудь на пульте ДУ, то должны получить примерно следующее:

0000000 28b2 5326 2723 000e 0001 0085 0001 0000
0000010 28b2 5326 272d 000e 0000 0000 0000 0000
где 5326 — код нашего пульта, а 0085 — код нажатой клавиши.

Пульт работает, можно разбираться с GPIO.

Система портов ввода-вывода в этих устройствах для меня непонятна, и пришлось вечерок покурить спеки к Кубику и процессору А20, чтобы понять что к чему.

Итак, приблизительный алгоритм моргания светодиодом следующий:
— активируем необходимый пин. Они ведь многофункциональные. Делается это при помощи например echo 8 > /sys/class/gpio/export
— смотрим, активировался ли этот пин в sysfs…

— идем в спек (http://linux-sunxi.org/Cubietruck#Expansion_Ports), ищем, на какой реальной ноге находится наш PG2. Он на ноге 5, разъема CN9. Это разъем, находящийся возле USB-порта. В дальнейшем, я постараюсь использовать нумерацию ног с реальной платы, а если кому-то интересно, на этом ресурсе можно прочитать что на этой ноге находится.

— даем ОС понять, что пин будет работать на вывод, echo out > /sys/class/gpio/gpio8_pg2/direction
— подключаем что-нибудь тестер на ногу 5.

— посылаем вывод на эту ногу echo 1 > /sys/class/gpio/gpio8_pg2/value
Напряжение изменилось. Работает. Можно разворачиваться.

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

Читайте также:  Дешевый блок питания 750w

Этот скрипт я запускаю из /etc/rc.local, для удобства сделал вывод в лог.
Вы сразу же заметите, что пины назначаются странным образом, некоторые пропускаются. Именно так, при попытке инициализировать их, система зависает намертво. Причину точную не знаю, скорее всего на этих пинах что-то висит, wifi или даже mmc карта.

Вроде разобрались с инфракрасным портом, и GPIO. Настало время подключить реальные железки.
Модуль реле подключается стандартно, у него всего три выхода: +5В, земля, и сигнал. Землю я беру с одного из пинов UARTa, можно брать откуда угодно. Плюс 5В я беру с 29-го пина, разъема который находится ближе к LAN. Сигнальный провод мы будем подключать к пину 9, разъема куда мы уже подключали наш тестер (ближе к USB, напомню).
Чтобы не отвлекаться на это потом, сразу же подключим наш датчик движения. У него тоже три выхода, +5В, земля и сигнал. Питание подключаем туда же, куда и релейное. А сигнал подключим к 7-му пину, рядом с девятым.
Конечная конструкция, вид спереди:

Теперь нам надо подключить пульт.
Первое что мне (и наверное вам) пришло на ум — lirc. Приблуда для управления инфракрасным портом. Не подходит. Сложно. Почему — смогу написать в комментах, если повезет. Решение мы возьмем простое, но самописное.
Мы будем использовать python, напару с его волшебной библиотекой evdev, для работы с линуксовыми /dev-устройствами.
Ставим вначале pip (питоновский внутренний установщик, кто не в курсе): apt-get install python-dev
Уже с pip ставим библиотеку evdev: pip install evdev
Вуаля, готово.

Не буду вдаваться в скучные подробности, сразу выложу скрипт и объясню что он делает и как работает. Назову его irda.py.

Этот скрипт считывает ивент устройства ввода (мы выше определили, что у меня это /dev/input/event1) и записывает код ивента в файл /dev/irda. Для удобства.
Не знаю как так совпало, но этот скрипт при нажатии разных клавиш пульта, возвращает разные коды. Это неправильно. По-хорошему, нужно уметь различать код кнопки и код пульта, но это будет позже, наша главная цель — Кубик.

У нас получился файл /dev/irda, в котором всегда хранится код последней нажатой клавиши.
Запускаем этот скрипт, сворачиваем в background по CTRL+Z, и тестируем

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

Обрабатывать события от пульта, мы будем на самом простом и понятном всем языке — английском bash. Скрипт irda.sh.

Я не программист, поэтому сорри за отступы, попробую пояснить, какой алгоритм я хотел сделать.
Раз в секунду, в бесконечном цикле, программа проверяет наличие файла /dev/irda.
Как только она его находит, она считывает значение нажатой клавиши, и тут же удаляет файл. Это самый простой способ избавиться от эффекта «залипания клавиши пульта», когда программа постоянно видит одно и то же значение.
Стоит отдельно упомянуть о костыле на Python. Он необходим (мне по крайней мере), потому что простой bash, при чтении event, ожидает ввод, и не сможет выполняться дальше, пока не будет событие нажатия.
Одной кнопкой пульта, реле включается. Другой кнопкой — выключается, это можно легко проследить в скрипте.
Последнее условие, с кодом «101» — нам понадобится позже, для выполнения всех пунктов плана. В общих чертах, этот блок оставляет в системе признак вкл\выкл.

Теперь запустив этот скрипт, мы можем поклацать реле. Оно клацает. С пультом мы разобрались.

Нас ждет датчик движения, подключенный к пину №7.
Определять движение намного проще, чем нажатие на пульте. Для нетерпеливых, простой скрипт, а объяснение позже. Итак, move.sh

В этом скрипте мы так же само инициализируем пин 7 на ввод (вторая строчка), пин 9 на выход, и в бесконечном цикле ждем, пока в файле /sys/class/gpio/gpio6_pg4/value появится единица, затем на 20 секунд включаем реле, и отключаем. Отдельно стоит упомянуть, что проверка движения произойдет, только если в системе находится признак «вкл», о котором говорилось выше. Такой себе чит.

Собственно, на этом все.
Запустим все три файла:

Подвигаемся перед датчиком движения. Работает.
Включенный во время движения свет, можно отключить нажатием кнопки на пульте, а выключенный — включить. Здесь есть очевидные минусы — скрипт обработки движения всегда выполняет действие последним. То есть если через 20 секунд после движения, свет выключился, мы его включили с пульта и опять выключили принудительно — свет включится во время движения.

Чтобы этого избежать, и был введен чит с /dev/movement. Третьей кнопкой на пульте, попросту отключается система определения движения. Управление с пульта остается рабочим, и детектор движения может быть активирован повторным нажатием кнопки. Для индикации режима, я добавил в скрипт irda.sh работу с /sys/class/gpio/gpio67_ph7. Это зеленый светодиод на Кубике, который будет светиться, если система реагирования на движение активна.

В лучших традициях Хабра, видеопруф.

Youtube:

Источник