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.
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
Komputer z oprogramowaniem VirtualMIDISynth oraz Hairless-MIDI-Serial
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.
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);
}