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

Katılım
13 Haz 2018
Konular
1,096
Mesajlar
5,095
Çözümler
2
Daha fazla  
Tepkime puanı
4,329
Puanları
2,599
Yaş
39
Konum
Türkiye
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