[Разработка на Raspberry Pi, Удалённая работа] Повышаем эффективность работы из дома, или как шевелить мышкой на Pi Zero
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Работа из дома – это не только благо, но и серьезный вызов для эффективных менеджеров, которые до сих пор меряют производительность ИТ отдела в трудочасах. Основным индикатором твоей трудонадёжности частенько выступает бодро-зеленый статус в корпоративном мессенджере. Некоторые идут ещё дальше и деплоят средства измерения “digital experience” сотрудников дабы считать, сколько времени они провели в Word’е, браузере или среде разработки. Есть несколько способов, как можно противостоять этому безобразию:
- Программный. Я перепробовал различные скрипты и тулзы, эмулирующие действия пользователя – ничего не работает. Компьютер всё равно засыпает/мессенджер ставит статус “Away”
- Аппаратныйтакой:
или такой:Извините, данный ресурс не поддреживается. :( Работает, но печатать что-либо разумное не выйдет.3. Гибридный, на нём и остановимся по-подробнееИзготовить эмулятор USB HID устройства можно на любой Ардуине с ATmega32U4. Там есть поддержка USB. Но зачем использовать Ардуину, если за те же деньги есть Raspberry Pi Zero (W)? Pi0 можно превратить в USB клавиатуру, мышь и сетевую карту одновременно, при этом управлять всем добром через SSH, ни в чём себе не отказывая. Давайте посмотрим, как это можно сделать.Вначале нужно достать Pi Zero (W), установить туда ОС и настроить SSH <- это давайте сами. Потом нужно кое-что настроить на Pi0, чтобы она стала определяться как USB HID устройство:
pi@raspberrypi:~ $ echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
pi@raspberrypi:~ $ echo "dwc2" | sudo tee -a /etc/modules
pi@raspberrypi:~ $ sudo echo "libcomposite" | sudo tee -a /etc/modules
pi@raspberrypi:~ $ sudo touch /usr/bin/pypikey_usb
pi@raspberrypi:~ $ sudo chmod +x /usr/bin/pypikey_usb
Добавляем файл гаджета в автозагрузку
pi@raspberrypi:~ $ sudo nano /etc/rc.local
добавляем строчку в конец файла над exit 0 и сохраняем
/usr/bin/pypikey_usb # libcomposite configuration
cоздаем сам USB гаджет
sudo nano /usr/bin/pypikey_usb
#!/bin/bash
cd /sys/kernel/config/usb_gadget/
mkdir -p pypikey
cd pypikey
echo 0x1d6b > idVendor # Linux Foundation
echo 0x0104 > idProduct # Multifunction Composite Gadget
echo 0x0100 > bcdDevice # v1.0.0
echo 0x0200 > bcdUSB # USB2
mkdir -p strings/0x409
echo "0123456789" > strings/0x409/serialnumber
echo "Artyom" > strings/0x409/manufacturer
echo "PyPiKey USB Device" > strings/0x409/product
mkdir -p configs/c.1/strings/0x409
echo "Config 1: ECM network" > configs/c.1/strings/0x409/configuration
echo 250 > configs/c.1/MaxPower
# keyboard
REPORT_DESC="\
\\x05\\x01\\x09\\x06\\xa1\\x01\\x05\\x07\\x19\\xe0\\x29\\xe7\\x15\\x00\\x25\\x01\
\\x75\\x01\\x95\\x08\\x81\\x02\\x95\\x01\\x75\\x08\\x81\\x03\\x95\\x05\\x75\\x01\
\\x05\\x08\\x19\\x01\\x29\\x05\\x91\\x02\\x95\\x01\\x75\\x03\\x91\\x03\\x95\\x06\
\\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0"
mkdir -p functions/hid.usb0
echo 1 > functions/hid.usb0/protocol
echo 1 > functions/hid.usb0/subclass
echo 8 > functions/hid.usb0/report_length
echo -ne ${REPORT_DESC} > functions/hid.usb0/report_desc
ln -s functions/hid.usb0 configs/c.1/
# End keyboard
# mouse
MOUSE_COMBINED_DESC="\
\\x05\\x01\\x09\\x02\\xa1\\x01\\x09\\x01\\xa1\\x00\\x85\\x01\\x05\\x09\\x19\\x01\
\\x29\\x03\\x15\\x00\\x25\\x01\\x95\\x03\\x75\\x01\\x81\\x02\\x95\\x01\\x75\\x05\
\\x81\\x03\\x05\\x01\\x09\\x30\\x09\\x31\\x15\\x81\\x25\\x7f\\x75\\x08\\x95\\x02\
\\x81\\x06\\x95\\x02\\x75\\x08\\x81\\x01\\xc0\\xc0\\x05\\x01\\x09\\x02\\xa1\\x01\
\\x09\\x01\\xa1\\x00\\x85\\x02\\x05\\x09\\x19\\x01\\x29\\x03\\x15\\x00\\x25\\x01\
\\x95\\x03\\x75\\x01\\x81\\x02\\x95\\x01\\x75\\x05\\x81\\x01\\x05\\x01\\x09\\x30\
\\x09\\x31\\x15\\x00\\x26\\xff\\x7f\\x95\\x02\\x75\\x10\\x81\\x02\\xc0\\xc0"
mkdir -p functions/hid.usb1
echo 2 > functions/hid.usb1/protocol
echo 1 > functions/hid.usb1/subclass
echo 6 > functions/hid.usb1/report_length
echo -ne ${MOUSE_COMBINED_DESC} > functions/hid.usb1/report_desc
ln -s functions/hid.usb1 configs/c.1/
# End mouse
ls /sys/class/udc > UDC
Теперь можно перегрузить Pi0 и подключить плату к USB порту компьютера (у Pi0 два микро USB порта на плате - дата и питание, втыкать в дату).Устройство должно определиться как USB HID клавиатура и мышь. Внутри Pi0 у вас теперь два новых интерфейса - /dev/hidg0 - клава. /dev/hidg1 - мышь.Шевелить мышкой теперь можно так (Python):
with open('/dev/hidg1', 'rb+') as hidg1:
hidg1.write(b'\x01\x00\xff\x00\x00\x00') #move 1 pixel right
hidg1.write(b'\x01\x00\x01\x00\x00\x00') #move 1 pixel left
А печатать на клавиатуре так:
with open('/dev/hidg0', 'rb+') as hidg0:
hidg0.write(b'\x00\x00\x04\x00\x00\x00\x00\x00') #нажали А
hidg0.write(b'\x00\x00\x00\x00\x00\x00\x00\x00') #отпустили А
На моей ГитХаб страничке есть два питон файла. Первый (pypimu.py) удобно прописать в планировщике на запуск каждую минуту. Он сдвигает курсор мыши на пискель вправо и сразу же на пиксель влево. Я не вижу, когда это происходит, но этого хватает, чтобы компьютер не спал никогда. Второй (pypikey.py) печатает текст, который вы ему скормите. Примерно как-то так:
Можно долго смотреть на то, как другие работают....Кажется, всё. Спасибо за внимание!
===========
Источник:
habr.com
===========
Похожие новости:
- [IT-компании, Законодательство в IT, Монетизация игр, Разработка под iOS] Судебное разбирательство по иску Epic Games против Apple начнется в мае 2021 года
- [Python] Мелкая питонячая радость #10: конечные автоматы и глубокое обучение в несколько строк
- [Видеоконференцсвязь, История IT, Работа с видео, Удалённая работа] История развития видеоконференций (перевод)
- [Разработка игр, Управление персоналом, Карьера в IT-индустрии, Удалённая работа] Один день в офисе будущего
- [Производство и разработка электроники, Процессоры] Инсайд: в новых процессорах Intel будет использоваться многочиповая конфигурация
- [Настройка Linux, Open source, Python, *nix, Сетевые технологии] ipipou: больше чем просто нешифрованный туннель
- [Карьера в IT-индустрии, IT-компании, Удалённая работа] Еще один подход к работе в IT
- [Компьютерное железо, DIY или Сделай сам] Сборка очень компактного планшетного ПК на базе Core i7
- [CRM-системы, ERP-системы, IT-инфраструктура, Софт] Эти безумные KPI
- [Компьютерное железо, Настольные компьютеры, Производство и разработка электроники] Представлен конкурент Raspberry Pi 4 — одноплатный ПК с x86, работающий под Windows 10
Теги для поиска: #_razrabotka_na_raspberry_pi (Разработка на Raspberry Pi), #_udalennaja_rabota (Удалённая работа), #_pi, #_raspberry, #_usb_hid, #_emuljator (эмулятор), #_klaviatury (клавиатуры), #_myshi (мыши), #_python, #_razrabotka_na_raspberry_pi (
Разработка на Raspberry Pi
), #_udalennaja_rabota (
Удалённая работа
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:57
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Работа из дома – это не только благо, но и серьезный вызов для эффективных менеджеров, которые до сих пор меряют производительность ИТ отдела в трудочасах. Основным индикатором твоей трудонадёжности частенько выступает бодро-зеленый статус в корпоративном мессенджере. Некоторые идут ещё дальше и деплоят средства измерения “digital experience” сотрудников дабы считать, сколько времени они провели в Word’е, браузере или среде разработки. Есть несколько способов, как можно противостоять этому безобразию:
или такой:Извините, данный ресурс не поддреживается. :( Работает, но печатать что-либо разумное не выйдет.3. Гибридный, на нём и остановимся по-подробнееИзготовить эмулятор USB HID устройства можно на любой Ардуине с ATmega32U4. Там есть поддержка USB. Но зачем использовать Ардуину, если за те же деньги есть Raspberry Pi Zero (W)? Pi0 можно превратить в USB клавиатуру, мышь и сетевую карту одновременно, при этом управлять всем добром через SSH, ни в чём себе не отказывая. Давайте посмотрим, как это можно сделать.Вначале нужно достать Pi Zero (W), установить туда ОС и настроить SSH <- это давайте сами. Потом нужно кое-что настроить на Pi0, чтобы она стала определяться как USB HID устройство: pi@raspberrypi:~ $ echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
pi@raspberrypi:~ $ echo "dwc2" | sudo tee -a /etc/modules pi@raspberrypi:~ $ sudo echo "libcomposite" | sudo tee -a /etc/modules pi@raspberrypi:~ $ sudo touch /usr/bin/pypikey_usb pi@raspberrypi:~ $ sudo chmod +x /usr/bin/pypikey_usb pi@raspberrypi:~ $ sudo nano /etc/rc.local
/usr/bin/pypikey_usb # libcomposite configuration
sudo nano /usr/bin/pypikey_usb
#!/bin/bash
cd /sys/kernel/config/usb_gadget/ mkdir -p pypikey cd pypikey echo 0x1d6b > idVendor # Linux Foundation echo 0x0104 > idProduct # Multifunction Composite Gadget echo 0x0100 > bcdDevice # v1.0.0 echo 0x0200 > bcdUSB # USB2 mkdir -p strings/0x409 echo "0123456789" > strings/0x409/serialnumber echo "Artyom" > strings/0x409/manufacturer echo "PyPiKey USB Device" > strings/0x409/product mkdir -p configs/c.1/strings/0x409 echo "Config 1: ECM network" > configs/c.1/strings/0x409/configuration echo 250 > configs/c.1/MaxPower # keyboard REPORT_DESC="\ \\x05\\x01\\x09\\x06\\xa1\\x01\\x05\\x07\\x19\\xe0\\x29\\xe7\\x15\\x00\\x25\\x01\ \\x75\\x01\\x95\\x08\\x81\\x02\\x95\\x01\\x75\\x08\\x81\\x03\\x95\\x05\\x75\\x01\ \\x05\\x08\\x19\\x01\\x29\\x05\\x91\\x02\\x95\\x01\\x75\\x03\\x91\\x03\\x95\\x06\ \\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0" mkdir -p functions/hid.usb0 echo 1 > functions/hid.usb0/protocol echo 1 > functions/hid.usb0/subclass echo 8 > functions/hid.usb0/report_length echo -ne ${REPORT_DESC} > functions/hid.usb0/report_desc ln -s functions/hid.usb0 configs/c.1/ # End keyboard # mouse MOUSE_COMBINED_DESC="\ \\x05\\x01\\x09\\x02\\xa1\\x01\\x09\\x01\\xa1\\x00\\x85\\x01\\x05\\x09\\x19\\x01\ \\x29\\x03\\x15\\x00\\x25\\x01\\x95\\x03\\x75\\x01\\x81\\x02\\x95\\x01\\x75\\x05\ \\x81\\x03\\x05\\x01\\x09\\x30\\x09\\x31\\x15\\x81\\x25\\x7f\\x75\\x08\\x95\\x02\ \\x81\\x06\\x95\\x02\\x75\\x08\\x81\\x01\\xc0\\xc0\\x05\\x01\\x09\\x02\\xa1\\x01\ \\x09\\x01\\xa1\\x00\\x85\\x02\\x05\\x09\\x19\\x01\\x29\\x03\\x15\\x00\\x25\\x01\ \\x95\\x03\\x75\\x01\\x81\\x02\\x95\\x01\\x75\\x05\\x81\\x01\\x05\\x01\\x09\\x30\ \\x09\\x31\\x15\\x00\\x26\\xff\\x7f\\x95\\x02\\x75\\x10\\x81\\x02\\xc0\\xc0" mkdir -p functions/hid.usb1 echo 2 > functions/hid.usb1/protocol echo 1 > functions/hid.usb1/subclass echo 6 > functions/hid.usb1/report_length echo -ne ${MOUSE_COMBINED_DESC} > functions/hid.usb1/report_desc ln -s functions/hid.usb1 configs/c.1/ # End mouse ls /sys/class/udc > UDC with open('/dev/hidg1', 'rb+') as hidg1:
hidg1.write(b'\x01\x00\xff\x00\x00\x00') #move 1 pixel right hidg1.write(b'\x01\x00\x01\x00\x00\x00') #move 1 pixel left with open('/dev/hidg0', 'rb+') as hidg0:
hidg0.write(b'\x00\x00\x04\x00\x00\x00\x00\x00') #нажали А hidg0.write(b'\x00\x00\x00\x00\x00\x00\x00\x00') #отпустили А Можно долго смотреть на то, как другие работают....Кажется, всё. Спасибо за внимание! =========== Источник: habr.com =========== Похожие новости:
Разработка на Raspberry Pi ), #_udalennaja_rabota ( Удалённая работа ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:57
Часовой пояс: UTC + 5