Мазмұны:

[Wearable Mouse] Windows 10 мен Linux үшін Bluetooth негізіндегі киюге болатын тышқан контроллері: 5 қадам
[Wearable Mouse] Windows 10 мен Linux үшін Bluetooth негізіндегі киюге болатын тышқан контроллері: 5 қадам

Бейне: [Wearable Mouse] Windows 10 мен Linux үшін Bluetooth негізіндегі киюге болатын тышқан контроллері: 5 қадам

Бейне: [Wearable Mouse] Windows 10 мен Linux үшін Bluetooth негізіндегі киюге болатын тышқан контроллері: 5 қадам
Бейне: LGR Oddware: Twiddler Motion Controlled Keyboard Mouse from 1992 2024, Шілде
Anonim
Image
Image
Raspberry Pi көмегімен интерфейсті акселерометр
Raspberry Pi көмегімен интерфейсті акселерометр

Мен Bluetooth негізіндегі тышқан контроллерін жасадым, ол тышқанның көрсеткішін басқаруға және компьютерге тышқанмен байланысты операцияларды кез келген бетке тигізбестен орындауға арналған. Қолғапқа салынған электронды схеманы акселерометр арқылы қол қимылдарын бақылау үшін қолдануға болады және оны тышқан көрсеткішінің қозғалысына аударуға болады. Бұл құрылғы сол жақ батырманы басуды қайталайтын батырмамен де байланысады. Құрылғы дербес компьютерге (USB арқылы) немесе Bluetooth байланысы арқылы сымсыз қосылуы мүмкін. Bluetooth негізгі құрылғы мен осы киілетін тышқан арасында берік және әмбебап сымсыз байланысты қамтамасыз етеді. Bluetooth кеңінен таралған және дерлік барлық дербес ноутбуктермен қамтылғандықтан, мұндай киілетін құрылғыны қолдану кең. Әр түрлі жобалар үшін әр түрлі сенсорлардың интерфейсі және мұндай құрылғыны әзірлеу үшін жиі қолданылатын платформа болып табылатын Raspberry Pi -ді қолдану оңай және ауқымды. Қолғапты қолдану мүмкіндігін кеңейту үшін оны кез келген басқа киіммен алмастыруға болады.

COVID-19-ға қарсы сақтық шарасы ретінде әр түрлі адамдармен бөлісуге болатын беттерге тиіп кетуден аулақ болған жөн, ал сенсорлы экранды ноутбук немесе тышқан сол ортақ беттердің қатарында болуы мүмкін. Мұндай киілетін құрылғыны қолдану гигиенаны сақтауға және жиі қолданылатын беттерді тазартуға көмектеседі:)

Жабдықтар

  • Raspberry Pi 3 моделі B V1.2
  • SparkFun үш осьті акселерометрдің үзілуі - MMA8452Q
  • Аталықтан әйелге секіргіш сым
  • Қолғап
  • Құбыр таспасы
  • Қайшы
  • Микро USB кабелі
  • HDMI кабелі (Raspberry Pi арқылы жөндеу үшін)

1 -қадам: Raspberry Pi көмегімен интерфейсті акселерометр

Raspberry Pi көмегімен интерфейсті акселерометр
Raspberry Pi көмегімен интерфейсті акселерометр

Мен Raspberry Pi GPIO түйреуіштерімен сөйлесу және ось деректерін жіберу үшін I2C байланыс протоколын қолданатын Sparkfun MMA8542Q үш осьті акселерометрді қолдандым. Бұл сенсор конфигурацияланатын деректер жылдамдығымен, ұйқы режимдерімен, үдеу диапазонымен, сүзгі режимімен және т.б әр түрлі жұмыс режимдерін қамтамасыз етеді. Мен сенсордың бастапқы конфигурациясында және оны қолмен ыммен тексеруде Пибитс коды өте пайдалы деп таптым. Сенсорды алдымен тегіс бетке қойып, шикізат сенсорының мәндерін сақтай отырып, детерминисттік қисайулар жасаған дұрыс. Бұл, әсіресе, бұл сенсордың әр түрлі қол қимылдарымен қалай әрекет ететінін және біздің қолданбаға шекті мәндерді қалай қою керектігін түсіну үшін пайдалы. Акселерометр сәтті интерфейске қосылғаннан кейін, сіз Pi терминалының экранында шикі осьтер туралы мәліметтерді көре аласыз.

2-қадам: Raspberry Pi көмегімен пернелер тіркесімі

Raspberry Pi көмегімен интерфейс түймесі
Raspberry Pi көмегімен интерфейс түймесі

Бұл киілетін құрылғыда мен тінтуірдің сол жақ батырмасы ретінде жұмыс істей алатын түймені байланыстырдым, осылайша мен экрандағы белгішелерді шерте аламын. Содан кейін түйменің 2 ұшы Pi -дің 2 GPIO түйреуішіне қосылады. Түйреуіштердің бірі логикалық жоғары мәнді шығарады, ал екіншісі бұл мәнді оқиды. Түйме басылған кезде, схема жабылады және кіріс түйрегіш логикалық жоғары мәнді оқи алады, оны тінтуірдің сол жақ батырмасын басу үшін мен жазған сценарий өңдейді. Дәнекерлеу үтігі болмағандықтан, мен секіргіштерді түймені жалғау үшін жабысқақ таспаны қолдандым.

3 -қадам: тышқан көрсеткішін тізбектей басқару үшін Python сценарийін әзірлеу

Мен тінтуір көрсеткішін басқару үшін Pyautogui Python кітапханасын қолдандым. Бұл кітапхананы қолданудың себебі, ол Linux -те де, Windows платформасында да жұмыс істеді. Менің Raspberry Pi құрылғысындағы тінтуір көрсеткішін басқару үшін алдымен Pi -ді дисплейге қостым. Содан кейін мен тінтуір көрсеткішін басқару үшін кітапхана ұсынған келесі API -ді қолдандым:

  1. pyautogui.move (0, 200, 2) # тышқанды 2 секунд ішінде 200 пиксельге төмен жылжытады
  2. pyautogui.click () # тышқанды шертіңіз

Акселерометрден келетін қате туралы деректерді сүзу үшін мен берілген код арқылы түсінуге болатын орташа және басқа сүзу әдістерін қолдандым. Pyautogui.move (0, y) API тінтуір көрсеткіші бір уақытта жоғары-төмен немесе солға-оңға қарай жылжи алатындай қолданылды. Себебі акселерометр осьтерді X, Y және Z бағытында көрсетеді, бірақ API тек 2 дәлелді алады, X және Y осьтері. Демек, бұл әдіс менің акселерометрге және экрандағы қимылдарды салыстыруға өте қолайлы болды.

4 -қадам: Bluetooth арқылы тышқан көрсеткішін басқару үшін Python сценарийін әзірлеу

Bluetooth арқылы тышқан көрсеткішін басқару үшін Python сценарийін әзірлеу
Bluetooth арқылы тышқан көрсеткішін басқару үшін Python сценарийін әзірлеу

Бұл бөлім-Bluetooth мүмкіндіктері бар кез-келген ноутбук Raspberry Pi-мен сервер-клиенттік байланыс үлгісінде байланысып, тінтуірдің координаталарын сымсыз жібере алатын жетілдірілген қосымша. Windows 10 64-биттік ноутбукті Bluetooth байланысына қосу үшін төмендегі әрекеттерді орындау қажет:

Windows 10:

  1. Кіретін Bluetooth COM портын жасаңыз.
  2. Пи -ді Bluetooth арқылы ноутбуктің Bluetooth -мен жұптастырыңыз.
  3. Windows жүйесіне Python орнатыңыз.
  4. Windows жүйесіне pip орнатыңыз. Pip Linux немесе Windows машинасына кітапханаларды орнату үшін қолданылады.
  5. Windows жүйесінде pyautogui орнатыңыз: pip install pyautogui
  6. Пяутогуи құрылғыға орнатылғаннан кейін Windows терминалында келесі пәрменді қолдана отырып, Windows жүйесінде Pybluez орнатыңыз: pip install PyBluez-win10. PyBluez Windows және Linux компьютерлерінде Bluetooth байланысын қосады.
  7. Windows 10 ноутбукінде қосымшаны әзірлеу үшін бізге Microsoft Visual Studio (15-20 ГБ бос орын қажет) және оның құрастыру құралдарын орнату қажет. Сондықтан, PyBluez -мен бірге төмендегі нұсқауларды орындау керек,

    1. «Visual Studio Installer» жүктеп алып, іске қосыңыз:
    2. «Visual Studio Build Tools 2017» орнатыңыз, «Visual C ++ құрастыру құралдары» мен «Windows платформасының әмбебап құралдарын» тексеріңіз.

    3. git clone
    4. cd pybluez
    5. python setup.py орнату

  8. Егер жоғарыдағы нұсқаулар дұрыс орындалса, Windows терминалында Python -ды іске қосу және pyautogui мен Bluetooth модулін импорттау жоғарыдағы суреттегідей қатесіз жұмыс істеуі керек.
  9. Windows машинасында орнатылған pybluez кітапханасында келесіге өтіңіз: pybluez-master / sample / simple / rfcomm-server.py және python rfcomm-server.py көмегімен орындаңыз. Егер терминал қатесіз күту күйіне өтсе, Pi -де Bluetooth орнату үшін төмендегі бөлімге өтіңіз. Егер pybluez орнатуда қателер болса, жөндеуді GitHub мәселелеріне қараңыз.

Raspberry Pi туралы Raspbian:

  1. PyBluez -ді Pi -ге орнатыңыз
  2. Windows -те сервер үлгісін іске қосыңыз. Содан кейін Pi-де pybluez-master / sample / simple / rfcomm-client.py тармағына өтіп, орындаңыз. Егер екі құрылғы байланыса бастаса, енді Bluetooth екі құрылғыда да орнатылады. Python -мен розеткалық байланыс қалай жұмыс істейтіні туралы көбірек білу үшін MIT сілтемесін қараңыз.

Деректерді байттан жіберетіндіктен, осьтік деректерді ПК -ден жіберу үшін кейбір қосымша деректерді талдау қажет болады. Клиент пен сервер деректерінің байланысы туралы қосымша ақпарат алу үшін берілген кодты қараңыз.

5 -қадам: акселерометр мен түйме қолғапқа ендіру

Қолғапқа акселерометр мен түймені енгізу
Қолғапқа акселерометр мен түймені енгізу
Қолғапқа акселерометр мен түймені ендіру
Қолғапқа акселерометр мен түймені ендіру

Акселерометр бір -бірімен жақсы байланысқаннан кейін, қаңқалық жүйе осы қадамдағы бірінші кескінге ұқсайды.

Қолғаптың беті тегіс емес болғандықтан, мен пошта жәшігіме анда -санда келетін жалған несие картасын қолдандым. Бұл қадамдағы екінші суретке сәйкес, мен қолғаптың үстіңгі бетіне жалған несие картасын жабысқақ таспамен жаптым. Картаның үстіне мен акселерометрді қостым. Бұл қондырғы менің акселерометрімді тұрақты ұстап тұру үшін және менің қимылдарымды дәл бақылау үшін жеткілікті берік болды.

Ұсынылған: