Bilgisayarınızın Arduino Tabanlı El Hareketi Kontrolü Nasıl Yapılır?

El Hareketi Kontrolü yeni bir şey değil. El hareketleriyle kontrol edilen birçok robot gördük. Teknoloji o kadar hızlı hareket ediyor ki, düşündüğümüz her şey zaten piyasada mevcut. Çok ilginç bir proje, Kişisel Bilgisayarınızı veya Dizüstü bilgisayarınızı Arduino Uno adlı küçük bir Mikroişlemci kartı kullanarak kontrol etmektir. Bir Arduino kullanarak, bir fare veya klavye kullanmak yerine sadece elimizi sallayarak bazı basit işlevleri gerçekleştirebiliriz. Bu işlevler arasında resimlerin kaydırılması, Sayfalarda yukarı ve aşağı kaydırma, bir web tarayıcısının sekmeleri arasında geçiş yapma, bir videoyu oynatma veya duraklatma, masaüstü uygulamaları arasında geçiş yapma vb. Yer alır.

El Hareketlerini Kullanarak Bilgisayarda Farklı İşlemler Nasıl Yapılır?

Artık projenin özetini bildiğimize göre, ilerleyelim ve çalışmaya başlamak için farklı bilgiler toplayalım. Önce bileşenlerin bir listesini çıkaracağız, sonra bunları kısaca inceleyeceğiz, ardından tüm bileşenleri bir araya getirerek çalışan bir sistem oluşturacağız.

Adım 1: Bileşenleri Toplama

Herhangi bir projeye başlamak için en iyi yaklaşım, bileşenlerin bir listesini yapmak ve bu bileşenlerin kısa bir incelemesini yapmaktır çünkü hiç kimse eksik bir bileşen yüzünden bir projenin ortasında kalmak istemeyecektir. Bu projede kullanacağımız bileşenlerin bir listesi aşağıda verilmiştir:

Adım 2: Bileşenlerin İncelenmesi

Tüm bileşenlerin tam bir listesine sahip olduğumuz için. Devam edelim ve tüm bileşenlerin çalışmasıyla ilgili kısa bir çalışmadan geçelim.

Arduino Nano, farklı devrelerde çeşitli işlemleri gerçekleştiren bir mikrodenetleyici kartıdır. Gerektirir C Kodu bu, kurula hangi görevleri ve nasıl gerçekleştireceğini söyler. 13 dijital I / O pinine sahiptir, bu da 13 farklı cihazı çalıştırabileceğimiz anlamına gelir. Arduino Nano, Arduino Uno ile tamamen aynı işlevselliğe sahiptir, ancak oldukça küçük bir boyuttadır. Arduino Nano kartındaki mikrodenetleyici, ATmega328p.13'ten fazla cihazı kontrol etmek istiyorsanız, Arduino Mega'yı kullanın.

HC-SR04 kartı, iki nesne arasındaki mesafeyi belirlemek için kullanılan ultrasonik bir sensördür. Bir verici ve bir alıcıdan oluşur. Verici, elektrik sinyalini bir ultrasonik sinyale dönüştürür ve alıcı, ultrasonik sinyali tekrar elektrik sinyaline dönüştürür. Verici bir ultrasonik dalga gönderdiğinde, belirli bir nesneyle çarpıştıktan sonra yansır. Mesafe, ultrasonik sinyalin vericiden alıp alıcıya geri dönmesi için geçen süre kullanılarak hesaplanır.

3. Adım: Bileşenleri Birleştirme

Şimdi kullanacağımız bileşenlerin ana çalışmasını bildiğimiz gibi. Nihai çalışan bir ürün yapmak için bileşenleri bir araya getirmeye başlayalım.

  1. Her iki ultrasonik sensörün Vcc ve toprak pinlerini Arduino Nano kartının 5V ve toprağına bağlayın. İlk ultrasonik sensörün trig ve eko pini sırasıyla Arduino Nano'nun pin11 ve pin10'una bağlanır. İkinci ultrasonik sensörün trig ve eko pini sırasıyla Arduino nano'nun pin6 ve pin5'ine bağlanır.
  2. Arduino nano kartını dizüstü bilgisayar ekranı bantının arkasına takın. Ultrasonik sensörlerin her ikisi de dizüstü bilgisayarın her iki üst köşesine de takılacak.

Adım 4: Arduino'ya Başlarken

Arduino IDE'ye henüz aşina değilseniz endişelenmeyin, çünkü Arduino IDE'yi bir mikrodenetleyici kartı ile kurmak ve kullanmak için adım adım bir prosedür aşağıda açıklanmıştır.

  1. Arduino IDE'nin en son sürümünü Arduino'dan indirin.
  2. Arduino Nano kartınızı dizüstü bilgisayarınıza bağlayın ve kontrol panelini açın. Sonra tıklayın Donanım ve ses. Şimdi tıklayın Cihazlar ve yazıcılar.Burada mikrodenetleyici kartınızın bağlı olduğu bağlantı noktasını bulun. benim durumumda öyle COM14ancak farklı bilgisayarlarda farklıdır.
  3. Araç menüsüne tıklayın ve panoyu Arduino Nano açılır menüden.
  4. Aynı Araç menüsünde, bağlantı noktasını daha önce görüntülemede gözlemlediğiniz bağlantı noktası numarasına ayarlayın. Cihazlar ve yazıcılar.
  5. Aynı Araç menüsünde İşlemciyi ATmega328P (Eski Önyükleyici).
  6. Aşağıda ekli kodu indirin ve Arduino IDE'nize yapıştırın. Tıkla yükle mikrodenetleyici panonuzdaki kodu yazmak için düğmeye basın.

Kodu indirmek için burayı tıklayın.

Adım 5: Hareketleri Ayarlama

Bir görevi gerçekleştirmek için mesafeyi algılayacak ve uygun bir komuta dönüştürecek bir kod yazmak istiyoruz.

önce jestleri kullanarak gerçekleştirmek istediğimiz tüm görevlerin bir listesini yapalım. Tüm bu görevlerin listesi aşağıdadır.

  1. Web Tarayıcısında sonraki sekmeye veya önceki sekmeye geçin.
  2. Web Sayfasında yukarı ve aşağı kaydırın.
  3. VLC Player'da videoları oynatın ve duraklatın.
  4. Sesi artırın ve azaltın.
  5. İki görev arasında geçiş yapın.

Şimdi tüm bu işlemleri gerçekleştirmek için jestler ayarlayacağız.

  1. Hareket 1: Elinizi yaklaşık 15cm-30cm arasındaki sağ ultrasonik sensörün önüne yerleştirin. Kısa bir süre sonra elinizi çekin. Bu, web sayfasını aşağı kaydıracak ve sesi azaltacaktır.
  2. Hareket 2: Elinizi yaklaşık 15cm-30cm arasındaki sağ ultrasonik sensörün önüne yerleştirin. Kısa bir süre sonra elinizi ultrasonik sensöre doğru itin. Bu, web sayfasını yukarı kaydıracak ve sesi artıracaktır.
  3. Hareket 3: Sonraki sekmeye geçmek için elinizi sağ ultrasonik sensörün önünde kaydırın.
  4. Hareket 4: Önceki sekmeye gitmek için, elinizi sol ultrasonik sensörün önünde kaydırın. Bu ayrıca videonuzu VLC oynatıcıda oynatır / duraklatır.
  5. Hareket 5: İki görev arasında geçiş yapmak için elinizi her iki sensörde de kaydırın.

Kodu yazdık ve tüm koşulları yukarıdaki jestlere göre yaptık. Ve kullandığımız not edilmelidir. Google Chrome Web Tarayıcımız olarak ve VLC medya oynatıcı medya uygulamamız olarak.

Adım 6: Arduino Kodunu Anlamak

5 hareketi dijital bir komuta dönüştüren bir kod yazdık. bu komut seri bağlantı noktasına gönderilir. Bu komutları yorumlamak ve çeşitli görevleri yerine getirmek için bazı klavye işlevlerini gerçekleştirmek için bir python programı yazacağız.

1. Başlangıçta, sensörlere bağlamak istediğimiz tüm pinler başlatılır. Zaman ve mesafenin hesaplanması için verileri depolamak üzere farklı değişkenler de başlatılır.

const int trigPin1 = 11; // çıkış pimini tetikle (sensör 1) const int echoPin1 = 10; // echo giriş pini (sensör 1) const int trigPin2 = 6; // çıkış pimini tetikle (sensör 2) const int echoPin2 = 5; // yankı giriş pini (sensör 2) // uzun süreli mesafe hesaplaması için kullanılan değişkenler; int mesafe1, mesafe2; şamandıra r; işaretsiz uzun sıcaklık = 0; int temp1 = 0; int l = 0;

2. Bir fonksiyon yazdık, void find_distance (void) her iki ultrasonik sensörün mesafesini hesaplamak için. Bazı parazitlere neden olabileceğinden, her iki ultrasonik sensörü de aynı anda tetiklememek daha iyidir. Bu işlev, mesafeyi cm cinsinden döndürecektir.

void find_distance (void) {digitalWrite (trigPin1, LOW); gecikme Mikrosaniye (2); digitalWrite (trigPin1, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (trigPin1, DÜŞÜK); süre = pulseIn (echoPin1, HIGH, 5000); r = 3.4 * süre / 2; // pulsein işlevinin döndürdüğü zamanı kullanarak ölçümü cm cinsinden almak için hesaplama. mesafe1 = r / 100.00; digitalWrite (trigPin2, DÜŞÜK); gecikme Mikrosaniye (2); digitalWrite (trigPin2, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (trigPin2, DÜŞÜK); süre = pulseIn (echoPin2, HIGH, 5000); r = 3.4 * süre / 2; mesafe2 = r / 100,00; gecikme (100); }

3. geçersiz kurulum () GİRİŞ veya ÇIKIŞ olarak kullanılacak tüm pinleri başlatan bir işlevdir. Baud Hızı da bu işlevde ayarlanır. Baud Hızı, mikro denetleyici kartının takılı sensörlerle iletişim kurduğu hızdır.

geçersiz kurulum () {Serial.begin (9600); pinMode (trigPin1, OUTPUT); // sensörün tetik ve yankı pinlerini giriş ve çıkış olarak başlatın: pinMode (echoPin1, INPUT); pinMode (trigPin2, OUTPUT); pinMode (echoPin2, INPUT); gecikme (1000); }

4. geçersiz döngü ()bir döngüde tekrar tekrar çalışan bir işlevdir. Bu döngüde, birçok durumda mesafeyi hesaplıyor ve hareketi algılamak için koşullar uyguluyoruz.

boşluk döngü () {find_distance (); eğer (mesafe2 <= 35 && mesafe2> = 15) {temp = milis (); while (milis () <= (sıcaklık + 300)) find_distance (); eğer (mesafe2 <= 35 && mesafe2> = 15) {temp = mesafe2; while (mesafe2 <= 50 || uzaklık2 == 0) {find_distance (); eğer ((sıcaklık + 6)mesafe2) {Serial.println ("yukarı"); }}} else {Serial.println ("sonraki"); }} else if (mesafe1 <= 35 && mesafe1> = 15) {temp = milis (); while (milis () <= (sıcaklık + 300)) {find_distance (); eğer (mesafe2 <= 35 && mesafe2> = 15) {Serial.println ("değiştir"); l = 1; kırmak; }} if (l == 0) {Serial.println ("önceki"); while (mesafe1 <= 35 && mesafe1> = 15) find_distance (); } l = 0; } }

Adım 7: Python Programlama

Yükleyeceğiz PyAutoGUIve sadece gelen seri verileri okuyarak çeşitli klavye komutlarını çağırın. Bu program ile, fareye sol veya sağ tıklama veya herhangi bir klavye tuşuna basma gibi birçok fare işlemini ve klavye işlemini taklit edebiliriz.

Öncelikle pencerelerimize PIP kuracağız. Bu basit bir prosedürdür. Bilgisayarınıza pip yüklemek üzere video kılavuzunu açmak için burayı tıklayın. PIP'i bilgisayarımıza kurduktan sonra devam edip pyAutoGUI'yi kuracağız. Bunu yapmak için, komut istemine aşağıdaki komutu yazın

python -m pip kurulum pyautogui

Bu komut puAutoGUI'yi bilgisayarınıza kuracaktır. Şimdiye kadar her şey yolunda giderse, devam edip farklı klavye komutlarını çağırmak için bir python programı yazalım. Arduino kodu ile seri girişte 5 farklı komut aldığımız için Python kodu bu komutları aşağıdaki gibi belirli klavye komutlarına dönüştürebilir.

  • Veri: "sonraki" —–> İşlem: "Ctrl + PgDn"
  • Veri: “önceki” —–> Eylem: “Ctrl + PgUp”
  • Veri: "aşağı" —–> İşlem: "Aşağı Ok"
  • Veri: "yukarı" —–> İşlem: "Yukarı Ok"
  • Veri: "değiştir" —–> Eylem: "Alt + Sekme"

Python, birArduino, sadece Arduino'yu Python ile arayüzleyebilen pyfirmata'yı içe aktararak. Projeyi çalıştırmak için gerekli olacak Python kodu aşağıdadır:

import serial # seri iletişim için seri kütüphane import pyautogui # fare ve klavyeyi programlı olarak kontrol etmek için pyautogui kütüphanesi ekleyin. Arduino_Serial = serial. incoming_data'da 'sonraki' ise gelen Seri veriler: # gelen veri 'sonraki' ise pyautogui.hotkey ('ctrl', 'pgdn') # incoming_data'da 'önceki' ise sonraki sekmeye hareket eden "ctrl + pgdn" işlemini gerçekleştirin : # gelen veri 'önceki' ise pyautogui.hotkey ('ctrl', 'pgup') # incoming_data'da 'aşağı' ise önceki sekmeye hareket eden "ctrl + pgup" işlemini gerçekleştirin: # Gelen veri 'aşağı' ise # pyautogui.press ('aşağı') # incoming_data'da 'yukarı' ise pyautogui.scroll (-100) sayfasını aşağı kaydıran "aşağı ok" işlemini gerçekleştirir: a 'yukarı' # pyautogui.press ('yukarı') #, incoming_data'da 'değiştir' ise pyautogui.scroll (100) sayfasını yukarı kaydıran "yukarı ok" işlemini gerçekleştirir: # Gelen veri 'değiştir' ise pyautogui.keyDown ('alt') #, pyautogui.press ('tab') pyautogui.keyUp ('alt') incoming_data = "" sekmesini değiştiren "alt + tab" işlemini gerçekleştirir; # verileri temizler

Bu, el hareketlerini kullanarak bilgisayarınızı kontrol etmenin en basit yoluydu. Yukarıda belirtilen tüm adımları izleyin ve bilgisayarınızı klavye ve fare yerine elinizle kontrol etmenin keyfini çıkarın.

Facebook Twitter Google Plus Pinterest