Laserowa Harfa

Typ_projektu
Arduino
Zdjecie główne
Krótki opis projektu

Imitacja harfy za pomocą laserów i fotorezystorów, oparta na ArduinoUno. W momencie przecięcia linii lasera, za pomocą protokołu MIDI USB przetwarzamy sygnał analogowy na cyfrowy i produkujemy dźwięk.

Niezbędne elementy

1. Płytka Arduino UNO

2. Płytka prototypowa

3. Przewody połączeniowe

4. Kabel USB A - USB B

5. Fotorezystory GL5528 10k-20k  

6. Lasery 650nm Arduino

Sprzęt

Komputer z oprogramowaniem VirtualMIDISynth oraz Hairless-MIDI-Serial

Opis projektu

Stworzenie prostego interfejsu muzycznego, w którym laser i czujnik światła sterują nutami MIDI na komputerze.

Jak działa:

Laser świeci na czujnik (fotorezystor / fototranzystor).

Arduino odczytuje wartość analogową z czujnika.

Gdy laser pada na czujnik → Arduino wysyła komendę Note ON dla wybranej nuty (tu: C4).

Gdy laser jest zasłonięty → Arduino wysyła Note OFF, przerywając dźwięk.

Sygnał MIDI trafia do komputera przez USB, program Hairless MIDI zamienia go na wirtualne wejście MIDI, a VirtualMIDISynth odtwarza dźwięk.

Efekt końcowy:

Zasłanianie lub odsłanianie lasera powoduje odtwarzanie nuty na komputerze.

Można rozbudować projekt do kilku czujników, tworząc np. harfę laserową lub interaktywny instrument.
 

kod programu
const int pinCzujnika = A0;
const int prog = 100;
const int nutaC = 60;

bool czyGra = false;

void setup() {
  Serial.begin(115200);
  pinMode(pinCzujnika, INPUT_PULLUP);
}

void loop() {
  int odczyt = analogRead(pinCzujnika);

  if (odczyt < prog && !czyGra) {
    wyslijMIDI(0x90, nutaC, 127); // Note ON
    czyGra = true;
  } 
  else if (odczyt >= prog && czyGra) {
    wyslijMIDI(0x80, nutaC, 0);   
    czyGra = false;
  }
  
  delay(5);
}

void wyslijMIDI(byte komenda, byte nuta, byte velocity) {
  Serial.write(komenda);
  Serial.write(nuta);
  Serial.write(velocity);
}
Schemat
Youtube
Tagi
#muzyka #laser #arduino #67 #dźwięk