Spisu treści:

Prima - robot grający na pianinie: 13 kroków
Prima - robot grający na pianinie: 13 kroków

Wideo: Prima - robot grający na pianinie: 13 kroków

Wideo: Prima - robot grający na pianinie: 13 kroków
Wideo: Ten chłopiec potrafił wydobyć niesamowite dźwięki za pomocą ust! [Mam Talent!] 2024, Listopad
Anonim
Prima - robot grający na pianinie
Prima - robot grający na pianinie

Pomysł robota grającego na instrumencie zawsze mnie fascynował i zawsze chciałem sam go zbudować. Jednak nigdy nie miałem dużej wiedzy o muzyce i instrumentach muzycznych, więc nigdy nie wiedziałem, jak właściwie mam od tego zacząć. Do niedawna interesowałem się tworzeniem muzyki, zacząłem uczyć się produkcji muzyki, a po zdobyciu klawiatury MIDI zdałem sobie sprawę, że nie jest to trudny instrument do grania i mogę zbudować robota, który będzie na nim grać. Tak więc zaczęło się tworzenie Primy.

Nie byłem pewien sukcesu tego projektu, więc nie zawracałem sobie głowy dokumentowaniem go. Ale ponieważ okazało się, że działa świetnie, postanowiłem podzielić się szczegółami ze społecznością Instructables. Nie będzie to dziennik kompilacji krok po kroku, a raczej wskazówka na początek. Wyjaśnię, jak działa każda część tego robota, udostępnię ich zdjęcia i kod dla Arduino. Mam nadzieję, że to wystarczy, jeśli chcesz powtórzyć ten projekt.

A projekt został zainspirowany tymi instrukcjami, krzycz do JimRD!

Więc zacznijmy

Krok 1: Przegląd całego projektu

Prima to robot, który może grać na klawiaturze/pianinie lub innym podobnym instrumencie klawiszowym. Ma Arduino Uno jako mózg, ekran LCD do wyświetlania obrazu i czujnik ultradźwiękowy do bezdotykowego uruchamiania. Każdy zasilacz, który dostarcza 5 V 2 A, powinien być w stanie go zasilić.

Posiada następujące cechy -

  • Programowalny - może być zaprogramowany do grania dowolnej kompozycji ograniczonej do oktawy.
  • Regulowane tempo - Tempo, które będzie podążać podczas gry na instrumencie, można ustawić w kodzie.
  • Bezdotykowe uruchamianie - użytkownik może uruchomić grę, przesuwając rękę po czujniku, co będzie bardzo pomocne, jeśli użytkownik jest zajęty graniem na innym instrumencie i chce, aby Prima grał razem z nim po określonym czasie. Człowiek-gracz zagłuszający robota - nawet to można osiągnąć za pomocą tej funkcji.

Krok 2: Wideo

Image
Image

Możesz obejrzeć go grającego na klawiaturze w filmie.

Krok 3: Tworzenie modelu 3D

Tworzenie modelu 3D
Tworzenie modelu 3D
Tworzenie modelu 3D
Tworzenie modelu 3D

Po sfinalizowaniu tego, co powinien być w stanie zrobić, zaprojektowałem ciało w TinkerCAD, aby móc zacząć je budować, mając jasny obraz tego, co robię.

Takie podejście bardzo pomogło mi w stworzeniu schludnie wyglądającego robota, który działa dokładnie tak, jak został zaprojektowany. Chociaż musiałem trochę zmodyfikować oryginalny projekt podczas jego budowy, nadal model 3D zaoszczędził mi dużo czasu i wysiłku. Więcej szczegółów na temat modelu 3D można zobaczyć tutaj.

Krok 4: Części i narzędzia

Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia
Części i narzędzia

Do części elektronicznej będziesz potrzebować -

  • Arduino Uno (Ilość - 1)
  • Ekran LCD 16x2 (Ilość - 1)
  • Adapter I2C do ekranu LCD (Ilość - 1)
  • TowerPro SG90 Micro Servo (Ilość - 2)
  • Czujnik ultradźwiękowy HC-SR04 (ilość - 1)
  • Przełącznik wciskany (Ilość - 1)
  • Brzęczyk (Ilość - 1)
  • Tablica Vero/tablica kropkowa/tablica perforowana
  • Przewody połączeniowe męskie-męskie i męskie-żeńskie

Do robienia ciała -

  • Arkusz PVC o grubości 5 mm
  • Szprycha rowerowa (Ilość - 2)
  • Śruby
  • Rurka z uchwytem na wkład do długopisu
  • Farba w sprayu (jeśli chcesz ją pomalować)

Narzędzia, których będziesz potrzebować -

  • Super klej
  • Pistolet na gorący klej
  • Lutownica
  • Anti-cutting (A. K. A gilotyna do papieru)

Krok 5: Obwody

Obwody
Obwody
Obwody
Obwody
Obwody
Obwody

Część okrężna była dość łatwa. Wyjaśniam, jak zrobiłem każdy segment -

Segment LCD - użyłem adaptera I2C do LCD, aby Arduino mogło komunikować się z nim przez I2C, co nie było konieczne, ale uprościło obwód i zmniejszyło liczbę przewodów. Możesz użyć standardowego wyświetlacza LCD, modyfikując nieco kod.

Segment zasilania - wykonałem prosty obwód na veroboard, który składa się z przełącznika dwustabilnego, brzęczyka, diody LED (której później postanowiłem nie używać) i wspólnej szyny zasilającej 5V. Magistrala zasilająca jak w, piny 5V i masy serwomechanizmów, czujnik sonaru, wyświetlacz LCD i Arduino są ze sobą odpowiednio połączone. Jeden pin przełącznika wciskanego jest podłączony do linii 5V+, a drugi pin jest podłączony do pinu VCC zasilacza. Linia uziemienia jest podłączona bezpośrednio do styku uziemienia zasilacza. Tak więc Primę można włączać i wyłączać za pomocą przełącznika. Brzęczyk i dioda LED są połączone równolegle, a ich pin VCC przechodzi do pinu 13 Arduino. Ich masa jest połączona z masą wspólnej szyny zasilającej.

Modyfikacja złącza serwa - Ponieważ przewody połączeniowe często mają tendencję do odłączania się od złącza serwa, odciąłem VCC i przewód uziemiający od obu serw i przylutowałem je bezpośrednio do szyny zasilającej. W przypadku pinów sygnałowych użyłem jednak zworek do podłączenia ich do Arduino.

Czujnik sonaru - Przylutowano dwa przewody odpowiednio do VCC i pinu uziemienia czujnika sonaru, które idą do wspólnej szyny zasilającej, oraz użyto przewodów połączeniowych do podłączenia wyzwalacza i pinu echa do Arduino.

Arduino - Zasilany przez złącze baryłkowe.

Który idzie do którego -

Pin wyzwalający Sonar Sensor -> Pin A2 Arduino

Pin echa Sonar Sensora -> Pin A3 Arduino

Pin SDA adaptera I2C -> pin A4 Arduino

Pin SCL adaptera I2C -> pin A5 Arduino

VCC brzęczyka -> pin D13 Arduino

Naciśnięcie klawisza pin sygnałowy serwomechanizmu -> pin D9 Arduino

Pin sygnałowy serwomechanizmu osi X -> pin D8 Arduino

Wszystkie piny VCC i uziemienia są podłączone do wspólnej szyny zasilającej.

Krok 6: Mocowanie czujnika sonaru

Mocowanie czujnika sonaru
Mocowanie czujnika sonaru

Zdjęcie jest oczywiste, po prostu super przyklejono półkę w kształcie litery L na "ścianie" i przykleiłem na gorąco czujnik sonaru na półce.

Krok 7: Tworzenie szyny osi X

Tworzenie szyny osi X
Tworzenie szyny osi X
Tworzenie szyny osi X
Tworzenie szyny osi X

Zapożyczyłem koncepcję szyny osi X z maszyn CNC. To tylko dwie szprychy rowerowe umieszczone równolegle do siebie, a „ściany” mają otwory, przez które przechodzą szprychy rowerowe. Na innych końcach ścian szprychy rowerowe są przyklejone na gorąco do ścian, aby się nie poruszały. Szprychy rowerowe są wystarczająco mocne, aby wspierać platformę osi X.

Krok 8: Platforma osi X

Platforma osi X
Platforma osi X
Platforma osi X
Platforma osi X
Platforma osi X
Platforma osi X
Platforma osi X
Platforma osi X

Jest to część, która przesuwa się w bok, aby dotrzeć do niektórych klawiszy i ma serwo, do którego przymocowane jest ramię, które naciska klawisz.

Ma na spodzie przyklejoną na gorąco rurkę z dwoma wkładami do długopisu, przez którą przechodzą szprychy rowerowe, co pozwala na przesuwanie się po nich. Dostałem tę rurkę z długopisu, możesz użyć wszystkiego, co pasuje do szprych, np. Słomki do picia.

Następnie pośrodku dolnego arkusza PCV znajduje się kolejny arkusz PCV stojący prosto. Posiada wycięty w dolnej części otwór, który pasuje do korpusu serwa, przez który wkłada się serwo. Serwomechanizm został zabezpieczony gorącym klejem.

Serwo ma podłączone do niego ramię. Kiedy robot musi nacisnąć klawisz, serwo obraca ramię w dół, co skutkuje naciśnięciem klawisza, a następnie obraca je do poprzedniej pozycji.

Krok 9: Przenoszenie platformy osi X

Przenoszenie platformy osi X
Przenoszenie platformy osi X
Przenoszenie platformy osi X
Przenoszenie platformy osi X
Przenoszenie platformy osi X
Przenoszenie platformy osi X

Serwo „X axis Mover” jest przymocowane do podwyższonej platformy, która znajduje się po lewej stronie robota. Platforma osi X ma na górze półkę, na której ramię jest łączone za pomocą śruby. Na drugim końcu ramienia drugie ramię jest połączone śrubą i to jest połączone z klaksonem serwomechanizmu. Wszystkie przeguby są ruchome, a serwo może napędzać platformę osi X na szynach osi X, obracając klakson w lewo/prawo, co spowodowałoby, że ramiona pchają/ciągną platformę na szynach.

Połączenia wykonuje się za pomocą śruby.

Krok 10: Kod

Po zakończeniu budowy korpusu i obwodu wgraj kod na Arduino. Ustaw robota równolegle do klawiatury/fortepianu Platforma osi x zacznie najpierw poruszać się w lewo i zatrzyma się w określonym punkcie. Poruszaj robotem, aż klawisz C pianina spotka się z tym punktem. To kluczowy krok, ponieważ bez takiego ustawienia robota nie będzie on poprawnie odtwarzał melodii. Następnie włącz robota, w ciągu kilku sekund powinien zacząć grać melodię.

Kod jest dość prosty i można go ulepszyć. Jeśli chcesz, aby robot grał twoją własną melodię, musisz po prostu umieścić ją w kodzie, co jest całkiem proste.

Krok 11: Malowanie

Jeśli chcesz go pomalować tak jak mój (sugerowałbym to zrobić, wygląda na lepiej pomalowany), najpierw wykonaj wszystkie części ciała, upewnij się, że są prawidłowo przycięte. Następnie umyj je mydłem, aby były wolne od oleju i brudu. Ludzie zwykle szlifują powierzchnię przed malowaniem, ale tutaj nie ma takiej potrzeby. Najpierw spryskaj je warstwą, daj wystarczająco dużo czasu do wyschnięcia (kilka godzin), a następnie pomaluj kolejną warstwę. Montaż części i sklejanie można rozpocząć po wyschnięciu farby.

Do malowania mojej użyłem farby w sprayu

Krok 12: Rozmieszczenie i organizacja elektroniki

Umieszczanie i organizowanie elektroniki
Umieszczanie i organizowanie elektroniki
Umieszczanie i organizowanie elektroniki
Umieszczanie i organizowanie elektroniki

Przykręciłem Arduino do płyty bazowej PCV i przykleiłem na gorąco zarówno obwód zasilający, jak i wyświetlacz LCD na płycie bazowej. Uporządkowałem przewody za pomocą gorącego kleju.

Krok 13: Wniosek: Dziękuję za przeczytanie instrukcji

Tak więc zbudowałem Primę. Mam nadzieję, że dziennik kompilacji był jasny i łatwy do zrozumienia. Jeśli masz jakieś pytania, zostaw je w komentarzu, postaram się odpowiedzieć jak najwcześniej.

Plany na przyszłość związane z tym projektem -

  • Łatwiejsze tworzenie oprogramowania do programowania Primy.
  • Dodano funkcję stukania tempa, dzięki czemu możesz po prostu dotknąć przycisku, aby dostosować tempo.
  • Zamiana serwomechanizmów na cichsze i szybsze

Jeśli to zbudujesz, dodaj zdjęcia w komentarzu, chciałbym zobaczyć twoje!:)

Zalecana: