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

Katılım
13 Haz 2018
Konular
1,095
Mesajlar
5,097
Puanları
2,599
Daha fazla  
Yaş
39
Adım
Öznur
Cinsiyet
Kadın
Cihaz
iPhone 11
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