Arduino ile Linux kullanmasını kolaylaştırın!

Damla 

Co Admin
Yönetici
Apple Expert
Adım
Öznur
Cihaz
iPhone 11
Katılım
13 Haz 2018
Konular
1,092
Mesajlar
5,105
Çözümler
4
Tepkime puanı
4,339
Puanları
2,599
Yaş
39
Konum
Türkiye
Program 1. butona basıldığında bilgisayara otomatik giriş yapıyor, 2. butona basıldığında da bir terminal açıp bilgisayarı kapatıyor. Programı kendime göre yazdığım için bekleme süreleri ve kısayollar değişiklik gösterebilir.

Ayrıca, giriş kısmı TTY'de çalışmaktadır. Program tarayıcı olarak Chromium açıyor ancak değiştirebilirsiniz.
Kod:
#include <Keyboard.h>

const int buttonPin = 2;
const int button2Pin = 3;
const int buzzerPin = 4;
bool pressed = false;
bool pressed2 = false;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(buttonPin, INPUT);
  pinMode(button2Pin, INPUT);
  pinMode(buzzerPin, OUTPUT);
  digitalWrite(buzzerPin, HIGH);

  Keyboard.begin();
}

void loop() {
  if(digitalRead(buttonPin) == HIGH && pressed == false) {
    pressed = true;
    Keyboard.print("< KULLANICI ADINIZI BURAYA GIRIN >");
    // Kullanıcı adı girildi

    delay(50);
    Keyboard.press(KEY_RETURN);
    Keyboard.release(KEY_RETURN);
    delay(200);
    // Enter basıldı!

    Keyboard.print("< SIFRENIZI BURAYA GIRIN >");
    delay(5);
    // Şifre girildi!

    Keyboard.press(KEY_RETURN);
    Keyboard.release(KEY_RETURN);
    delay(6000);
    // Enter basıldı!

    Keyboard.press(KEY_LEFT_GUI);
    Keyboard.press('d');
    Keyboard.release(KEY_LEFT_GUI);
    Keyboard.release('d');
    delay(100);
    // Rofi açıldı!

    Keyboard.print("chrom");
    Keyboard.press(KEY_RETURN);
    Keyboard.release(KEY_RETURN);
    delay(5);
    // Firefox açıldı!
    digitalWrite(buzzerPin, LOW);
    delay(150);
    digitalWrite(buzzerPin, HIGH);
    delay(500);
  }

  else if(digitalRead(button2Pin) == HIGH && pressed2 == false) {
    Keyboard.press(KEY_LEFT_GUI);
    Keyboard.press(KEY_RETURN);
    Keyboard.releaseAll();
    delay(500);
    // Terminal açıldı!

    Keyboard.print("sudo poweroff");
    Keyboard.press(KEY_RETURN);
    Keyboard.release(KEY_RETURN);
    // Kapatma komutu girildi!

    pressed2=true;
  }
}
ÖNEMLİ NOT:
Bu kod sadece Arduino Leonardo ve Pro Micro ile çalışmaktadır. Bunun nedeni, bu iki kartta arada iletişim için CH340/ATMEGA16u2 vb. bir kartın bulunmadan direkt mikroişlemci ile temasa geçilebilmesidir. Bu yüzden kod UNO'da çalışmaz.

Nedeni hakkında daha fazla bilgi.


Alıntı..
 
Geri
Üst