ARK REAKTÖRÜ

14 Parça

969 ,1

Satın Alırken Dikkat Edilmesi Gerekenler
  • Parçaların Boyutları
  • Parçaların Üretim Şekli
  • Parçaların Üretim Özellikleri
Ark Reaktörü

ARK REAKTÖRÜ

herkese iyi çalışmalar

 

bu projede bir ark reaktörü yapacağız projenin özellikleri :

 

  • birden fazla animasyon yapabilmesi
  • bilgisayara takınca kayan yazı göstermesi

 

yazılımsal olarak yukarıdaki özellikleri eklemek istiyoruz elektronik parçalar ise şu şekilde:

 

  • 20 tane mantar led —--------------> link
  • Arduino pro mikro   —--------------> link
  • kablo , lehim ,havya gibi birleştirici elemanlar.


projenin plastik modellerini yukarıya eksiksiz olarak ekledim burda fazla olarak benim bilgisayarımda kullandığım bir aparat ta var ama siz masada sevgiliye bilesiniz diye masaya ayağıda tasarladım

projede kullanılan arduino kodu

 

kod tamamen zararsız olup bilgisayara bağlandığında herhangi bir dosya bırakmadan çalışır sadece kayan yazı efekti için basit bir powershell kodu kullanıldı.


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <Arduino.h>
#include <Keyboard.h>

const int ledPinleri[] = {10, 9, 6, 5, 3}; // LED'lerin bağlı olduğu pinler

const int ledSayisi = 5;

const int butonPin = 7; // Butonun bağlı olduğu pin


int animasyonIndeksi = 0;

int parlaklik = 0;

volatile unsigned long basmaZamani = 0; // Butonun basıldığı zamanı saklayan değişken



unsigned long eskiZaman=0;

unsigned long yeniZaman;

int olcum = true;

int bum = true;

int btndrm = false;

int heckdurum = false;



void animasyon_deg();

void patlamaAnimasyonu();

void animasyonCalistir(int indeks);

void animasyon1();

void animasyon2();

void animasyon3();

void nefesAlmaAnimasyonu();


void performAction();



void setup() {


   Keyboard.begin();


  pinMode(butonPin, INPUT_PULLUP);


  for (int i = 0; i < 5; i++) {

    pinMode(ledPinleri[i], OUTPUT);

  }

  Serial.begin(115200);


  attachInterrupt(4, animasyon_deg, CHANGE); // Buton pinine kesmeyi ata


 //patlamaAnimasyonu();

  //animasyonCalistir(animasyonIndeksi);

}



void loop() {


  if(!heckdurum) {


      performAction(); // Seri bağlantı algılandığında performAction() fonksiyonunu çağır    


  }


 if(bum){

    patlamaAnimasyonu();


 }else{

    animasyonCalistir(animasyonIndeksi);

 }

   


}




void animasyon_deg() {

  int btn = digitalRead(butonPin);

/* Serial.print("button durum ");

  Serial.println(btn);

  Serial.print("button durum2 ");

    Serial.println(btndrm);*/

     

    if(btn == 1){

      if(btndrm){


      yeniZaman = millis();


    Serial.print("zaman ");


    Serial.println(yeniZaman - eskiZaman);


    if ( yeniZaman - eskiZaman > 100 && yeniZaman - eskiZaman < 1500) {

        animasyonIndeksi = (animasyonIndeksi + 1) % 4;


        Serial.print("animasyonIndeksi  ");

        Serial.println(animasyonIndeksi);


     } else if(yeniZaman-eskiZaman > 3000){

       Serial.println("patlama");

        bum = true;

     }


   

   btndrm = false;

         Serial.println("girdi true");


      }

    }


    if(btn == 0){

      if(!btndrm){



      eskiZaman = millis();    


      olcum = true;

      btndrm = true;

      Serial.println("girdi false");

      }

    }



}


void patlamaAnimasyonu() {

  for (int i = 0; i < 3; i++)

  {  

      for (int i = 4; i >= 0; i--) {

        digitalWrite(ledPinleri[i], HIGH);

        delay(100);

        digitalWrite(ledPinleri[i], LOW);

      }

  }


  for (int i = 0; i < 10; i++) {

    digitalWrite(ledPinleri[4], HIGH); // Merkez LED

    delay(50);

    digitalWrite(ledPinleri[4], LOW);

    delay(50);

  }


  for (int i = 0; i < 5; i++) {

    digitalWrite(ledPinleri[i], HIGH);

  }

 delay(100);

    for (int i = 0; i < 5; i++) {

    digitalWrite(ledPinleri[i], LOW);

  }

 delay(100);


    for (int i = 0; i < 5; i++) {

    digitalWrite(ledPinleri[i], HIGH);

  }

  bum=false;

  delay(3000);

      for (int i = 0; i < 5; i++) {

    digitalWrite(ledPinleri[i], LOW);

  }


}


void animasyonCalistir(int indeks) {

  switch (indeks) {

    case 3:

      animasyon1();

      break;

    case 1:

      animasyon2();

      break;

    case 2:

      animasyon3();

      break;

    case 0:

      nefesAlmaAnimasyonu();

      break;

  }

}


void animasyon1() {

  for (int i = 0; i < 5; i++) {

    digitalWrite(ledPinleri[i], HIGH);

    delay(100);

    digitalWrite(ledPinleri[i], LOW);

    delay(100);

  }

}


void animasyon2() {


  // LED'lerin yumuşak yanıp söner animasyonu

  int adim = 5; // PWM parlaklık adımı


  // Pin 3'ü sabit olarak HIGH (yanık) yap

  digitalWrite(ledPinleri[4], LOW);


  for (int i = 0; i < 256; i += adim) {

    for (int j = 0; j < ledSayisi - 1; j++) { // Son LED (pin 3) hariç diğer LED'leri PWM ile kontrol et

      analogWrite(ledPinleri[j], i); // Parlaklık değerini ayarla

    }

    delay(20); // Yumuşak geçiş için bir bekleme süresi

  }


  for (int i = 255; i >= 0; i -= adim) {

    for (int j = 0; j < ledSayisi - 1; j++) { // Son LED (pin 3) hariç diğer LED'leri PWM ile kontrol et

      analogWrite(ledPinleri[j], i); // Parlaklık değerini ayarla

    }

    delay(20); // Yumuşak geçiş için bir bekleme süresi

  }


}


void animasyon3() {

  for (int i = 0; i < 5; i++) {

    digitalWrite(ledPinleri[i], HIGH);

  }

  delay(500);

  for (int i = 0; i < 5; i++) {

    digitalWrite(ledPinleri[i], LOW);

  }

  delay(500);

}


void nefesAlmaAnimasyonu() {

  int adim = 2; // Parlaklık artış adımı


  // Artan parlaklık

  while (parlaklik <= 255) {

    for (int i = 0; i < 5; i++) {

      analogWrite(ledPinleri[i], parlaklik);

    }

    delay(50);

    parlaklik += adim;

    if (parlaklik > 255) {

      parlaklik = 255;

      break;

    }

  }


  // Azalan parlaklık

  while (parlaklik >= 0) {

    for (int i = 0; i < 5; i++) {

      analogWrite(ledPinleri[i], parlaklik);

    }

    delay(50);

    parlaklik -= adim;

    if (parlaklik < 0) {

      parlaklik = 0;

      break;

    }

  }

}



void performAction() {

    // Burada yapılacak işlemi tanımlayın

    Serial.println("Bilgisayar bağlantısı algılandı, özel işlem yapılıyor.");


  Keyboard.press(KEY_LEFT_GUI); // Windows tuşunu bas

  delay(500); // Kısa bir süre bekle

  Keyboard.press('r'); // 'r' harfine bas

  delay(500); // Kısa bir süre beklepowershell

  Keyboard.releaseAll(); // Tüm tuşları bırak

  delay(500); // 1 saniye bekle (Çalıştır penceresinin açılması için)


  // PowerShell komutunu yaz

  Keyboard.print("powershell"); // PowerShell yazısını gönder

  delay(500); // Kısa bir süre bekle

  Keyboard.press(KEY_RETURN); // Enter tuşuna bas

  delay(500); // Kısa bir süre bekle

  Keyboard.releaseAll(); // Tüm tuşları bırak

  delay(1000);

  //////


   Keyboard.print("while ($true) { \n");

  delay(100);

   Keyboard.print(" $randomString = -join ((480..570) + (605..900) + (970..1220) | Get-Random -Count 1000) \n");

  delay(100);

   Keyboard.print("Write-Host $randomString -NoNewline -ForegroundColor Green \n");

  delay(100);

   Keyboard.print("Start-Sleep -Milliseconds 100 \n");

  delay(100);

   Keyboard.print("Write-Host \"`r\" -NoNewline \n");

  delay(100);

   Keyboard.print("}");

  delay(100);



  delay(50); // Kısa bir süre bekle

  Keyboard.press(KEY_RETURN); // Enter tuşuna bas

  delay(50); // Kısa bir süre bekle

  Keyboard.releaseAll(); // Tüm tuşları bırak

  Keyboard.press(KEY_F11);

  delay(100); // Tuş basılı tutma süresi

  Keyboard.release(KEY_F11);


heckdurum = true;

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Yorumlar

Truva Atı Figürü - 3D Model | Hasan Aşkın tarafından tasarlandı
1
Hasan Aşkın
Truva Atı Figürü
₺50 ,08
Molekül Masa Lambası - 3D Model | hasbi gürel tarafından tasarlandı
1
5
hasbi gürel
Molekül Masa Lambası
₺466 ,38
Kedili Anahtar Kancası - 3D Model | hasbi gürel tarafından tasarlandı
1
4
hasbi gürel
Kedili Anahtar Kancası
₺248 ,12
iPhone ve Apple Watch Şarj Standı - 3D Model | melisa al tarafından tasarlandı
1
melisa al
IPhone ve Apple Watch Şarj Standı
₺134 ,12