Isi kandungan:

[Wearable Mouse] Pengendali Tetikus Wearable berasaskan Bluetooth untuk Windows 10 dan Linux: 5 Langkah
[Wearable Mouse] Pengendali Tetikus Wearable berasaskan Bluetooth untuk Windows 10 dan Linux: 5 Langkah

Video: [Wearable Mouse] Pengendali Tetikus Wearable berasaskan Bluetooth untuk Windows 10 dan Linux: 5 Langkah

Video: [Wearable Mouse] Pengendali Tetikus Wearable berasaskan Bluetooth untuk Windows 10 dan Linux: 5 Langkah
Video: Know How... 136: Car Hacking, NAT's VLAN's and AlienX 2024, November
Anonim
Image
Image
Memadankan Accelerometer dengan Raspberry Pi
Memadankan Accelerometer dengan Raspberry Pi

Saya membuat pengawal tetikus berasaskan Bluetooth yang dapat digunakan untuk mengendalikan penunjuk tetikus dan melakukan operasi yang berkaitan dengan tetikus PC dengan cepat, tanpa menyentuh permukaan apa pun. Litar elektronik, yang tertanam pada sarung tangan, dapat digunakan untuk melacak gerakan tangan melalui Accelerometer dan yang dapat diterjemahkan ke dalam gerakan penunjuk tetikus. Peranti ini juga dihubungkan dengan butang yang meniru klik butang kiri. Peranti boleh dipasang secara bersiri ke PC (melalui USB) atau tanpa wayar melalui sambungan Bluetooth. Bluetooth menyediakan komunikasi tanpa wayar yang kuat dan universal antara peranti host dan tetikus yang boleh dipakai ini. Oleh kerana Bluetooth tersedia secara meluas dan disertakan dengan hampir semua komputer riba peribadi, kes penggunaan peranti yang boleh dipakai sedemikian luas. Menggunakan Raspberry Pi, yang merupakan platform pengembangan yang biasa digunakan untuk berbagai proyek, penghubung antara sensor yang berbeda, dan pengembangan peranti seperti itu mudah dan dapat ditingkatkan. Sarung tangan boleh diganti dengan pakaian lain yang dapat dipakai agar aplikasinya lebih luas.

Sebagai langkah berjaga-jaga terhadap COVID-19, disarankan untuk tidak menyentuh permukaan yang dapat dikongsi di antara orang yang berbeza, dan komputer riba atau tetikus layar sentuh boleh menjadi antara permukaan yang biasa. Menggunakan alat yang boleh dipakai membantu menjaga kebersihan dan menjaga kebersihan permukaan yang biasa digunakan:)

Bekalan

  • Raspberry Pi 3 Model B V1.2
  • Breakout SparkFun Triple Axis Accelerometer - MMA8452Q
  • Kawat Jumper Lelaki hingga Perempuan
  • Sarung tangan
  • Pita Salur
  • Gunting
  • Kabel USB mikro
  • Kabel HDMI (untuk debug melalui Raspberry Pi)

Langkah 1: Interfacing Accelerometer Dengan Raspberry Pi

Memadankan Accelerometer dengan Raspberry Pi
Memadankan Accelerometer dengan Raspberry Pi

Saya menggunakan pecutan MMA8542Q Triple-axis dari Sparkfun yang menggunakan protokol komunikasi I2C untuk bercakap dengan pin Raspberry Pi GPIO dan menghantar data paksi. Sensor ini menyediakan pelbagai mod operasi dengan kadar data yang dapat dikonfigurasi, mod tidur, julat pecutan, mod penapis, dll. Saya dapati kod dari Pibits sangat membantu dalam konfigurasi awal sensor saya dan mengujinya dengan isyarat tangan saya. Lebih baik meletakkan sensor pada permukaan yang rata dan membuat miring deterministik sambil memerhatikan nilai sensor mentah. Ini sangat berguna dalam memahami bagaimana sensor ini bertindak balas dengan pelbagai gerakan tangan dan bagaimana kita dapat menetapkan ambang untuk aplikasi kita. Setelah accelerometer berjaya dihubungkan, anda dapat melihat data sumbu mentah yang muncul di layar terminal Pi.

Langkah 2: Menekan butang tekan dengan Raspberry Pi

Tombol tekan antara muka dengan Raspberry Pi
Tombol tekan antara muka dengan Raspberry Pi

Dalam peranti yang boleh dipakai ini, saya mengaitkan butang yang boleh berfungsi sebagai butang tetikus kiri sehingga saya dapat mengklik ikon di layar. 2 hujung butang kemudian disambungkan ke 2 pin GPIO Pi. Salah satu pin menghasilkan tinggi logik dan pin yang lain membaca nilai itu. Apabila butang ditekan, litar menjadi tertutup dan pin input dapat membaca nilai tinggi logik, yang kemudian diproses oleh skrip yang saya tulis untuk meniru klik kiri mouse. Kerana kekurangan besi solder, saya menggunakan pita saluran untuk menghubungkan jumper dengan butang.

Langkah 3: Membangunkan Skrip Python untuk Mengendalikan Mouse Pointer secara Serial

Saya menggunakan perpustakaan Pyautogui Python untuk mengawal penunjuk tetikus. Sebab untuk menggunakan perpustakaan ini adalah kerana ia berfungsi di Linux dan juga platform Windows. Untuk mengawal penunjuk tetikus pada Raspberry Pi saya, pertama saya menyambungkan Pi saya ke paparan. Kemudian, saya menggunakan API berikut yang disediakan oleh perpustakaan untuk mengawal penunjuk tetikus saya:

  1. pyautogui.move (0, 200, 2) # menggerakkan tetikus ke bawah 200 piksel selama 2 saat
  2. pyautogui.klik () # klik tetikus

Untuk menyaring data ralat yang berasal dari Accelerometer, saya menggunakan kaedah penyaringan rata-rata dan kaedah lain yang dapat difahami dengan mudah melalui kod yang dilampirkan. API pyautogui.move (0, y) digunakan sedemikian rupa sehingga penunjuk tetikus dapat naik ke atas atau kiri-kanan pada satu masa. Ini kerana pecutan melaporkan sumbu dalam arah X, Y, dan Z, tetapi API hanya memerlukan 2 argumen, paksi X dan Y. Oleh itu, pendekatan ini sangat sesuai untuk accelerometer saya dan memetakan gerak isyarat di skrin.

Langkah 4: Membangunkan Skrip Python untuk Mengendalikan Penunjuk Tetikus Melalui Bluetooth

Membangunkan Skrip Python untuk Mengendalikan Penunjuk Tetikus Melalui Bluetooth
Membangunkan Skrip Python untuk Mengendalikan Penunjuk Tetikus Melalui Bluetooth

Bahagian ini adalah aplikasi lanjutan di mana mana-mana komputer riba yang mempunyai keupayaan Bluetooth dapat berkomunikasi dengan Raspberry Pi dalam model komunikasi pelayan-pelanggan dan menghantar data koordinat tetikus tanpa wayar. Untuk menyediakan komputer riba 64-bit Windows 10 untuk membolehkan Komunikasi Bluetooth, kita perlu mengikuti langkah-langkah di bawah:

Windows 10:

  1. Buat port COM Bluetooth yang masuk.
  2. Pasangkan Bluetooth Pi dengan Bluetooth komputer riba dengan membuat Pi dapat ditemui.
  3. Pasang Python pada Windows.
  4. Pasang pip pada Windows. Pip digunakan untuk memasang perpustakaan pada mesin Linux atau Windows.
  5. Pasang pyautogui di Windows menggunakan: pip install pyautogui
  6. Setelah pyautogui dipasang pada peranti, pasang Pybluez pada Windows menggunakan perintah berikut di terminal Windows menggunakan: pip install PyBluez-win10. PyBluez membolehkan komunikasi Bluetooth pada PC Windows dan Linux.
  7. Untuk mengembangkan aplikasi pada komputer riba Windows 10, kita perlu memasang Microsoft Visual Studio (15-20 GB ruang diperlukan) dan alat binaannya. Oleh itu, bersama dengan PyBluez, kita perlu mengikuti arahan di bawah ini,

    1. Muat turun dan jalankan "Visual Studio Installer":
    2. Pasang "Visual Studio Build Tools 2017", periksa "Visual C ++ build tools" dan "Universal Windows Platform build tools"

    3. git klon
    4. cd pybluez
    5. pasang python setup.py

  8. Sekiranya arahan di atas diikuti dengan betul, jalankan Python di terminal windows, dan mengimport modul pyautogui dan Bluetooth harus berfungsi tanpa kesalahan, seperti pada gambar di atas.
  9. Di pustaka pybluez yang dipasang pada mesin Windows, arahkan ke: pybluez-master / samples / simple / rfcomm-server.py dan jalankan menggunakan python rfcomm-server.py. Sekiranya terminal berada dalam keadaan menunggu tanpa ralat, pergi ke bahagian bawah untuk menyiapkan Bluetooth pada Pi. Sekiranya terdapat kesilapan dalam memasang pybluez, lihat Masalah GitHub untuk debug.

Raspbian pada Raspberry Pi:

  1. Pasang PyBluez pada Pi
  2. Jalankan contoh pelayan pada Windows. Kemudian, pada Pi, arahkan ke pybluez-master / samples / simple / rfcomm-client.py dan jalankan. Sekiranya kedua-dua peranti telah mula berkomunikasi, Bluetooth kini disiapkan pada kedua-dua peranti tersebut. Untuk mengetahui lebih lanjut mengenai bagaimana komunikasi soket berfungsi dengan Python, rujuk pautan ini dari MIT.

Akan ada beberapa penguraian data tambahan yang diperlukan untuk mengirim data sumbu dari Pi ke PC, karena data tersebut dikirim dalam byte. Rujuk kod yang dilampirkan untuk maklumat lebih lanjut mengenai komunikasi data pelanggan dan pelayan.

Langkah 5: Menyematkan Accelerometer dan Butang pada Sarung Tangan

Memasukkan Accelerometer dan Butang di Sarung Tangan
Memasukkan Accelerometer dan Butang di Sarung Tangan
Memasukkan Accelerometer dan Butang di Sarung Tangan
Memasukkan Accelerometer dan Butang di Sarung Tangan

Setelah pecutan dihubungkan dengan baik, sistem kerangka kelihatan seperti gambar pertama pada langkah ini.

Oleh kerana permukaan sarung tangan tidak rata, saya selalu menggunakan kad kredit palsu yang datang ke peti surat saya sesekali. Seperti gambar kedua pada langkah ini, saya melekatkan kad kredit palsu di permukaan atas sarung tangan saya dengan pita saluran. Di atas kad, saya melekatkan pecutan. Persediaan ini cukup kuat untuk memastikan akselerometer saya stabil dan dapat mengesan gerak isyarat saya dengan tepat.

Disyorkan: