Spisu treści:
- Krok 1: Znajdź Glockenspiel i stwórz ramę nośną
- Krok 2: Druk 3D i wsporniki do frezowania CNC oraz konfiguracja par serwomechanizmu - Zdjęcie 1
- Krok 3: Druk 3D i wsporniki frezowania CNC oraz konfiguracja par serwomechanizmu - Zdjęcie 2
- Krok 4: Druk 3D i wsporniki frezowania CNC oraz konfiguracja par serwomechanizmów - Zdjęcie 3
- Krok 5: Zrób młotki i przymocuj do serw - Zdjęcie 1
- Krok 6: Zrób młotki i przymocuj do serw - Zdjęcie 2
- Krok 7: Elektronika
- Krok 8: Płytka interfejsu elektronicznego - Zdjęcie 1
- Krok 9: Płytka interfejsu elektronicznego - Zdjęcie 2
- Krok 10: Kod Arduino
- Krok 11: Ukończony i działający
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Stworzyliśmy ten robot glockenspiel z części, które już mieliśmy i wykonaliśmy.
Nadal jest eksperymentalny i jest w wersji pierwszej.
Spielatron jest kontrolowany przez Arduino, które odtwarza polecenia Midi wysyłane do niego z komputera.
Obecne ograniczenia są
- Jest monofoniczny, tzn. może grać tylko jednym młotkiem na raz.
- Prędkość serwa ogranicza zarówno ilość uderzeń na minutę, jak i długość nut w muzyce, np. nie można grać szesnastek przy 120 BPM.
Krok 1: Znajdź Glockenspiel i stwórz ramę nośną
Mieliśmy ponad 40-letni glockenspiel, który został uratowany z wydziału muzycznego szkoły średniej, kiedy stał się nadwyżką do wymagań. Cały czas siedział w szafie, czekając na okazję do wykorzystania. Jest trochę poobijany, a niektóre klawisze są podejrzane i dają nudno brzmiące nuty, jednak dla zabawy w tworzeniu projektu nie uzasadniono zakupu nowego.
Rama została wykonana ze sklejki o grubości 10 mm i jest dopasowana do glockenspiela i może pomieścić cztery pary serw modelujących RC. Odległość od glockenspiela do serwomechanizmu została określona w taki sposób, aby główka młotka uderzyła w żądaną liczbę klawiszy bez uderzania w pinezki utrzymujące klawisze w miejscu. Okazało się, że to około 220 mm od środka obrotu serwa do środka klawiszy.
Para serwomechanizmu uderza w klawisze od G5 do G6.
Servo pair dwa uderzenia klawiszy G#5 do G#6.
Servo pair trzy uderzenia klawiszy od A6 do G7.
Servo pair cztery uderzenia klawiszy od Bb6 do F#7.
Krok 2: Druk 3D i wsporniki do frezowania CNC oraz konfiguracja par serwomechanizmu - Zdjęcie 1
Mieliśmy cztery stare serwa JR NES-507 plus dwa Hitec HS81 i dwa Hitec HS82, które nie były używane. Serwa HS81 i HS82 są na tyle podobne, że mogą być używane w tym samym celu.
Wydrukowaliśmy w 3D cztery wsporniki do montażu serw Hitec i przykręciliśmy te wsporniki do standardowego serwomechanizmu tarczowego dostarczanego z serwami JR. Ponieważ drukujemy w ABS, zwykle drukujemy pliki w rozmiarze 103%, aby umożliwić skurcz.
Następnie ze sklejki o grubości 1,5 mm poprowadziliśmy cztery wsporniki, aby pasowały do górnych części dysków serwomechanizmów Hitec. Te wsporniki mają wspierać młotki.
Krok 3: Druk 3D i wsporniki frezowania CNC oraz konfiguracja par serwomechanizmu - Zdjęcie 2
Krok 4: Druk 3D i wsporniki frezowania CNC oraz konfiguracja par serwomechanizmów - Zdjęcie 3
Krok 5: Zrób młotki i przymocuj do serw - Zdjęcie 1
Młotki są wykonane z głowic wydrukowanych w 3D i bambusowych patyczków 4 mm (dostępne w lokalnym supermarkecie). Główki mocowane są za pomocą kleju cyjanoakrylowego, a zespół młotka mocowany jest do wspornika serwomechanizmu za pomocą dwóch opasek zaciskowych na każdym. Nie były one początkowo w pełni dokręcone, aby umożliwić regulację długości podczas ustawiania i testowania.
Krok 6: Zrób młotki i przymocuj do serw - Zdjęcie 2
Krok 7: Elektronika
Najpierw wydrukowaliśmy w 3D uchwyt do płytki Arduino Uno, który był przymocowany do dwóch ramion serwomechanizmu drewnianej ramy. Płytka interfejsu została poprowadzona do podłączenia ośmiu serw do Uno z własnym oddzielnym zasilaniem 5V. Był też nagłówek dla karty adaptera micro SD z myślą o możliwości odtwarzania niektórych plików midi zapisanych na karcie, w przeciwieństwie do wysyłania z komputera. Obecnie ze Spielatrona korzystaliśmy tylko z plikami przesłanymi z komputera.
Zamontuj płytkę interfejsu (shield w Arduino speak) na Arduino i podłącz serwa w następującej kolejności:
- Serwo obrotowe 1 na pin 2 Arduino
- Serwo młotka 1 do pinu 3 Arduino
- Serwo obrotowe 2 do Arduino pin 4
- Serwo młotka 2 do pinu Arduino 5
- Serwo obrotowe 3 do pinu Arduino 6
- Serwo młotkowe 3 do pinu Arduino 7
- Serwo obrotowe 4 do pinu Arduino 8
- Serwo młotka 4 do pinu Arduino 9
Krok 8: Płytka interfejsu elektronicznego - Zdjęcie 1
Krok 9: Płytka interfejsu elektronicznego - Zdjęcie 2
Krok 10: Kod Arduino
Dodaj bibliotekę MIDI.h do swojego środowiska programistycznego Arduino oraz skompiluj i prześlij załączony kod do Arduino.
Uwaga wiersz 81:
Serial.początek(115200); //użyj szybkości transmisji komputera, a nie rzeczywistej szybkości transmisji midi wynoszącej 31250
Jak skomentowano, wysyłamy dane Midi do Spielatrona przez interfejs USB z normalną szybkością transmisji komputera, a nie prawidłową szybkością transmisji Midi wynoszącą 31250, ponieważ żaden z naszych komputerów nie może być łatwo skonfigurowany do tej szybkości transmisji.
Zauważysz również, że kod dotyczy tylko nuty w zdarzeniach Midi, ponieważ młotek musi zostać podniesiony natychmiast po opuszczeniu i nie może czekać na wystąpienie zdarzenia nutowego.
Krok 11: Ukończony i działający
Zrobimy osobną instrukcję dotyczącą tego, jak komponujemy i wysyłamy pliki Midi z naszego komputera do Spielatrona.