Ip kvm своїми руками 2

Цього разу викладу своєрідний «багфикс» для девайса з попередньої статті
Поглянувши на отриманий велосипед прийшла ідея, виправити на скільки це можливо недоліки.
А саме:
І так приступимо, з чистими руками, холодною головою і гарячим серцем. Компоненти кардинально помінялися замість Raspberry PI будемо використовувати Orange PI а замість Arduino UNO тільки ту саму мікросхему (Atmega16u2) про яку йшла мова в попередній статті.
2. VGA to AV Конвертор
4. Orange PI в моєму випадку модель Orange pi PC
Пару слів про це мікро комп'ютері. Заснований він на процесорі Allwinner H3 (непоганий дешевий 4х-ядерний процесор на архітектурі АРМ), 1гігабайт оперативної пам'яті 3 USB, HDMI і так далі, повний опис не складно знайти в інтернеті.
Встановлюємо операційну систему на Orangepi
Процедура перенесення образу на флешку така ж як і для распберрі, на винде можна скористатися win32 disk imager writer на Лінуксі командою dd.
Але повернемося до наших баранів. Дистрибутив записаний, система запущена.
налаштовуємо motion
Переходимо в консоль
Користувач orangepi або root пароль orangepi
встановлюємо моушен
Всі настройки як в попередній статті
Редагуємо конфиг автозапуску:
У рядку start_motion_daemon ставимо 'yes'. Зберігаємо зміни Ctrl x, y, Enter.
Редагуємо конфиг самого motion (а):
Міняємо значення параметрів як зазначено далі:
Параметр визначає запуск програми в якості служби:
Частота захоплення кадрів:
Відключаємо збереження скріншотів:
Якість передачі зображення:
Частота передачі кадрів:
Скасування обмеження на підключення з інших ip
Зберігаємо зміни Ctrl x, y, Enter.
Консоль поки не закриваємо.
Підготовка до компіляції
Для передачі управління напишемо програму, нижче буде все описано детальніше, поки ж зробимо основні приготування.
Встановлюємо все необхідне для компіляції, наша програма буде на С
Встановлюємо бібліотеку ncurses, за допомогою неї будемо захоплювати значення клавіш
Робимо себе власником serial порту, щоб була можливість запису
зберігаємо Ctrl x, y, Enter
копіюємо вміст лістингу
зберігаємо Ctrl x, y, Enter
компілюємо
rkeysend ця назва одержуваного в процесі компіляції виконуваного файлу
-lncurses підключення при компіляції бібліотеки ncurses, використовується для захоплення клавіш в терміналі і передачі текстових повідомлень в той же термінал.
Якщо компіляція пройшла успішно, можна приступати до GPIO портів.
«Свежескомпілірованная» програма може не тільки передавати клавіші але і управляти конвертером. Поясню навіщо. По-перше можна налаштовувати зображення, яскравість, контрастність, різкість і т.п. По-друге, я вже писав про дозвіл зображення отримується з конвертера = 720х576. Так ось, у конвертера є режим відображення тільки частини зображення, при цьому дозвіл не змінюється, іншими словами можна розглянути більш дрібні деталі зображення використавши цей режим.
Управління конвертером відбуватиметься по засобом GPIO
GPIO як ви звичайно вже знаєте general-purpose input / output, або якщо по-російськи, мені сподобалося досить точне визначення з вікіпедії «інтерфейс вводу / виводу загального призначення» такий собі спосіб мікрокомп'ютера взаємодіяти із зовнішнім світом.
Підключення Orangepi PC до конвертер
І так З'єднуємо конвертер з GPIO. На конвертері є фізичні кнопки управління: ліво, право, низ, верх, menu і zoom. Підключені вони за наступним принципом як на картинці. Ілюстрація відображає тільки принцип роботи кнопок.
На конвертері є порт на якому він міряє напругу і при відповідно до потрібним рівнем виконує дію: відкриває меню, збільшує зображення пересуває зображення на екрані і т.д.
Для управління кнопками я використовував біполярні транзистори з оптичним входом АОТ128А
Емітер і колектор транзистора припаюємо до землі і контакту кнопки. Катод транзистора підключаємо (припаюємо) на землю. Анод транзистора підключаємо до потрібного порту GPIO через резистор на 33 Ома.
Якщо будете щось міняти, пам'ятайте:
Керуюча напруга на аноді даного транзистора не більше 1,6В, при перевищенні цього значення транзистор починає сильно грітися і може статися тепловий пробій. Джерело живлення для Orangepi і для конвертера бажано використовувати один і той же, інакше через різницю потенціалів картина може змінитися.
Підключаємо аноди транзисторів до наступних портів GPIO: PA14 - меню, PD14 - зум, PC4 - верх, PC7 - низ, PG8 - ліво, PA21 - право.
Серіал порт для підключення мікросхеми ATmega16u2 розташований на порт 11 (RX) і 13 (TX). Підключаємо як зазначено на зображенні
Що ж тепер все підключено. Спочатку хотів зробити управління конвертером на одному польовому транзисторі з використанням єдиного порту, але якось не склалося, пульсація ШІМ передається на транзистор і в підсумку опір на ньому починає плавати, є варіанти схем згладжуючих фільтрів але це сильно б ускладнило конструкцію. Ще є варіант використовувати цифровий потенціометр через SPI або I2C, тут вже все в ваших руках, дерзайте.
запускаємо програму
Ha Orangepi запускаємо скомпільовану програму, повинні з'явитися написи із зазначенням відкритого serial порту і комбінаціями клавіш. Приблизно якось так.
Є поєднання клавіш для виклику диспетчера задач або зміни розкладки, наприклад щоб натиснути на підконтрольному комп'ютері «Ctrl Alt Del» в терміналі потрібно ввести «Alt Del», можливі комбінації пишуться під час запуску програми зверху вікна терміналу.
Ці варіанти я не пробував, бо дорого, можливо хтось із прочитали статтю ризикне.
Ймовірно можна заощадити на платі мікрокомп'ютера поміняти Orangepi PC на Orangepi one або Orangepi Zero, його вартість приблизно 500руб. Але з Orangepi Zero можуть виникнути проблеми, там інший процесор, відповідно інший дистрибутив з іншим ядром, в якому можуть бути відсутні потрібні драйвера і модулі.Потенціал GPIO не розкритий повністю, наприклад можна ще підключити реле для замикання контактів Power і Reset на материнській платі.