Spisu treści:

Odtwarzaj utwory za pomocą silnika krokowego !!: 11 kroków (ze zdjęciami)
Odtwarzaj utwory za pomocą silnika krokowego !!: 11 kroków (ze zdjęciami)

Wideo: Odtwarzaj utwory za pomocą silnika krokowego !!: 11 kroków (ze zdjęciami)

Wideo: Odtwarzaj utwory za pomocą silnika krokowego !!: 11 kroków (ze zdjęciami)
Wideo: 15.SFI / Still Alive! Czy sztuczna inteligencja zastąpi artystę? / Sonia Kujawa 2024, Listopad
Anonim
Odtwarzaj utwory za pomocą silnika krokowego !!
Odtwarzaj utwory za pomocą silnika krokowego !!

W tym projekcie chodzi o zaprojektowanie prostego interfejsu dynamicznego, który pozwoli na dwojaką interakcję z silnikiem krokowym.

Pierwszy interfejs będzie sterował kierunkiem i prędkością silnika krokowego za pomocą prostego GUI, który ma strzałki w lewo i w prawo dla kierunku oraz strzałki w górę iw dół dla prędkości.

Drugi interfejs będzie miał charakter bardziej muzyczny, co pozwoli na odtwarzanie prostych utworów z wykorzystaniem dźwięków obrotowych silnika krokowego.

Krok 1: Wymagane części

  1. Arduino UNO (lub kompatybilna płytka)
  2. Nextion ulepszony NX4827K043 od iTead Studio.
  3. Karta rozszerzeń Nextion do ulepszonego wyświetlacza Nextion
  4. Karta microSDHC
  5. Czytnik/nagrywarka kart SD - do przesyłania plików z komputera na kartę SDHC
  6. Deska do krojenia chleba
  7. Silnik krokowy (42BYGHM809)
  8. Kondensator 100 uF Sterownik silnika krokowego firmy Duinotech (L298) - [JayCar nr części XC4492].
  9. Zasilanie zewnętrzne - m.in. Regulowany zasilacz laboratoryjny

Krok 2: Tworzenie interfejsu

Tworzenie interfejsu
Tworzenie interfejsu

Pierwszym krokiem jest utworzenie interfejsów w edytorze Nextion na komputerze.

Edytor Nextion możesz pobrać tutaj.

Załaduj Nextion Editor i utwórz nowy projekt. Kiedy zaczynasz nowy projekt, musisz upewnić się, że wybierasz właściwe urządzenie Nextion z dostępnych opcji. Tutaj używane jest urządzenie „Nextion Enhanced NX4827K043”.

  1. Wybierz Plik → NowyWybierz nazwę projektu i zapisz go w odpowiednim miejscu na dysku twardym.
  2. Wybierz odpowiednie urządzenie Nextion z dostępnych opcji

    Moje urządzenie ma rozmiar ekranu 480 x 272 pikseli

Krok 3: Zasoby projektu

Zasoby projektu
Zasoby projektu
Zasoby projektu
Zasoby projektu
Zasoby projektu
Zasoby projektu

Musisz zaimportować wszystkie zasoby (np. obrazy i czcionki) do swojego projektu, a następnie zaprojektować interfejs tak, aby odpowiadał Twoim konkretnym potrzebom.

Czcionki

Nie są używane żadne konkretne czcionki, ale jeśli chcesz napisać dowolny tekst na wyświetlaczu, musisz wygenerować czcionkę w edytorze Nextion.

A) Narzędzia → Generator czcionek

  1. Wybierz wysokość czcionki (np. 16).
  2. Wybierz typ kodu czcionki (np. iso-8859-2)
  3. Wybierz, czy chcesz, aby był pogrubiony, czy nie
  4. Wybierz czcionkę, której chcesz użyć (np. Arial)
  5. Wybierz odstęp (np. 0)
  6. I na koniec nadaj tej czcionce unikalną nazwę (np. Arial_16)
  7. Naciśnij przycisk „Generuj czcionkę” w prawym dolnym rogu okna.

Po naciśnięciu przycisku Generuj czcionkę, zapiszesz czcionkę za pomocą rozszerzenia *.zi i automatycznie zapyta, czy chcesz „Dodać wygenerowaną czcionkę?” do projektu. Jeśli jesteś zadowolony z czcionki i chciałbyś użyć tej czcionki w swoim projekcie, wybierz „Tak”, w przeciwnym razie wybierz „Nie” i zacznij od nowa.

Nie możesz dodać żadnego tekstu do projektu, dopóki nie zaimportujesz lub nie dodasz czcionki. Wszystkie czcionki Twojego projektu zostaną wyświetlone w oknie czcionek.

**Uwaga:Każda czcionka zostanie automatycznie zindeksowana, aby w razie potrzeby można było programowo odwoływać się do czcionki. W rzeczywistości wszystkim zasobom, które dodajesz do swojego projektu, przypisywany jest numer i zwiększany o jeden za każdy dodany zasób. W przypadku niektórych zasobów możesz zobaczyć ten numer po lewej stronie przedmiotu. Np. Na powyższym obrazku czcionka Courier ma indeks 0, podczas gdy czcionka Arial ma indeks 1. Jeśli usuniesz zasób, jego numer indeksu może się zmienić.

Krok 4: Importowanie obrazów

Importowanie obrazów
Importowanie obrazów
Importowanie obrazów
Importowanie obrazów

Na urządzeniu Nextion Enhanced NX4827K043 każde zdjęcie musi mieć rozmiar 480 x 272 pikseli.

Zaimportujemy teraz następujące zdjęcia do edytora Nextion, abyśmy mogli użyć ich w projekcie. W lewym dolnym rogu edytora Nextion znajduje się okno zasobów „Czcionki i obraz”:

  1. Wybierz kartę Obraz
  2. Następnie wybierz ikonę „+”
  3. Spowoduje to otwarcie okna dialogowego, w którym możesz wybrać zdjęcia do dodania do projektu. Możesz wybrać więcej niż jedno zdjęcie do zaimportowania.

W przypadku ekranu powitalnego możesz wykonać dowolny obraz według własnego wyboru.

A dla silnika krokowego i interfejsu fortepianu możesz pobrać powyższy obraz.

Krok 5: Tworzenie GUI

Tworzenie GUI
Tworzenie GUI

Każdy zasób otrzyma identyfikator na podstawie kolejności, w jakiej został dodany, a każdy zasób automatycznie otrzyma nazwę.

Możesz zmienić nazwę zasobu lub obiektu, ale nie możesz edytować identyfikatora.

Zaprojektowane zostaną trzy strony, aby spełnić opisane powyżej kryteria.

Aby dodać stronę, wystarczy wybrać ikonę „Dodaj” z „okna strony”. I kontynuuj dodawanie stron, aż będziesz mieć w sumie 3 strony (page0, page1 i page2).

Krok 6: Ekran powitalny strony 0

Strona 0-Ekran powitalny
Strona 0-Ekran powitalny

Po włączeniu Nextion ekran powitalny będzie wyświetlany przez 3 sekundy, zanim pojawi się ekran sterownika silnika krokowego. Użyłem następujących kroków, aby stworzyć ekran powitalny.

Dodaj obraz ekranu powitalnego do strony 0

  • Wybierz „stronę 0” z okna strony
  • Wybierz „Obraz” z okna Przybornika
  • Kliknij dwukrotnie atrybut „pic” w oknie atrybutów
  • Wybierz obraz ekranu powitalnego z listy
  • Naciśnij przycisk OK

2. Dodaj Timer do strony 0

  • Wybierz Timer z okna Toolbox
  • Zmień atrybut „tim” z 400 na 3000 w oknie atrybutów
  • Wprowadź „page page1” w sekcji kodu użytkownika zdarzenia timera (0) To zdarzenie timera spowoduje przejście Nextion do strony 1 po 3 sekundach.

To zdarzenie timera sprawi, że Nextion przeskoczy na stronę 1 po 3 sekundach.

Krok 7: Strona 1 - Sterownik silnika krokowego

Ta strona jest przeznaczona do sterowania kierunkiem i prędkością silnika krokowego. Dostępne będą dwa przyciski kierunku (w lewo i w prawo) oraz dwa przyciski prędkości (szybciej i wolniej). I jeszcze jeden przycisk, aby przejść do następnej strony (tj. Strona fortepianu z silnikiem krokowym). Te przyciski zostaną również zmapowane na kartę rozszerzeń Nextion. Dotykowe przyciski na karcie rozszerzeń zapewnią alternatywną metodę sterowania silnikiem.

Dodaj zdjęcie sterownika silnika krokowego do page1

  • Wybierz „strona1” z okna strony
  • Wybierz „Obraz” z okna Przybornika
  • Kliknij dwukrotnie atrybut „pic” w oknie atrybutów
  • Wybierz z listy obraz „Stepper Motor Controller”
  • Naciśnij przycisk OK

2. Dodaj punkty aktywne nad każdym przyciskiem na obrazie sterownika silnika krokowego

a)Wybierz „Hotspot” z okna Przybornika

b) Przeciągnij i zmień rozmiar Hotspotu tak, aby zakrywał przycisk „W lewo”

  • Jest to obszar, który będzie reagował na naciśnięcia „lewego przycisku”.
  • Będzie przejrzysty po przesłaniu na tablicę Nextion

c)Wybierz zakładkę „Touch Press Event” w oknie Event

d) Usuń zaznaczenie pola wyboru „Wyślij identyfikator składnika”

e)Wpisz następujący kod w sekcji „Kod użytkownika” okna Zdarzenia:

drukuj „L”

f) Zmień nazwę obiektu hotspotu na „Lewy”, wykonując następujący proces:

  • Wybierz objname z okna atrybutów i zmień tekst z „m0” na „Left”
  • Zmiana nazwy obiektu hotspot nie jest obowiązkowa; jednak pomoże to później.

g) Powtórz kroki 2a-2f dla każdego z pozostałych przycisków w następującej kolejności i zgodnie z poniższą tabelą

  • Dobrze
  • Szybciej
  • Wolniej
  • Następny

Dziesiętny kod ASCII dla litery „L” to 76, dlatego gdy wyświetlacz Nextion Enhanced wyśle literę L do Arduino za pomocą polecenia drukowania „L”, Arduino otrzyma numer 76. Po naciśnięciu prawego przycisku otrzyma numer 82 i tak dalej. Przycisk „Dalej” nie przesyła niczego do Arduino, jest po prostu po to, aby przeskoczyć do następnego interfejsu na wyświetlaczu Nextion Enhanced, stąd powód, dla którego kod użytkownika jest inny dla tego przycisku.

3. Przypisz przyciski do karty rozszerzeń

a) Wybierz „page0”, a następnie „page1” z okna strony

b)Wybierz zakładkę „Wstępnie zainicjuj zdarzenie” w oknie Zdarzenia

c)Wprowadź następujący kod w polu „Kod użytkownika” na karcie Wstępna inicjalizacja zdarzenia:

  • cfgpio 5, 1, w lewo
  • cfgpio 2, 1, w prawo
  • cfgpio 4, 1, Szybciej
  • cfgpio 3, 1, wolniejszy
  • cfgpio 1, 1, Dalej

***Uwaga: między cfgpio a numerem obok jest jedna spacja, ale w każdym wierszu nie ma innych spacji. Jeśli wprowadzisz dodatkowe spacje, nie skompiluje się. Ten kod mapuje przyciski na karcie rozszerzeń do obiektów punktu aktywnego na stronie1. Na przykład, gdy naciśnięty jest lewy przycisk (IO5) na karcie rozszerzeń, symuluje działania lub zdarzenia związane z hotspotem m0/Left. W takim przypadku wyśle do Arduino wartość „L” (76).

Numer IO jest zaznaczony w nawiasach na karcie rozszerzeń.

Krok 8: Strona 2 - Fortepian z silnikiem krokowym

Strona 2 - Fortepian z silnikiem krokowym
Strona 2 - Fortepian z silnikiem krokowym
Strona 2 - Fortepian z silnikiem krokowym
Strona 2 - Fortepian z silnikiem krokowym

jego interfejs będzie wyglądał jak fortepian i pozwoli mi sterować silnikiem krokowym tak, aby wytwarzał dźwięk w tym samym klawiszu, który naciskam na wyświetlaczu Nextion. Silnik krokowy wytworzy nutę, obracając się z określoną częstotliwością.

1. Dodaj zdjęcie pianina z silnikiem krokowym do page2.

  • Wybierz „page2” z okna strony
  • Wybierz „Obraz” z okna Przybornika
  • Kliknij dwukrotnie atrybut „pic” w oknie atrybutów
  • Wybierz z listy obraz „Stepper Motor Piano”
  • Naciśnij przycisk OK

2. Dodaj Hotspoty nad każdym klawiszem na obrazie fortepianu z silnikiem krokowym

a)Wybierz „Hotspot” z okna Przybornika

b) Przeciągnij i zmień rozmiar Hotspotu, aby zakrył klawisz „A”. Jest to obszar, który zareaguje na naciśnięcia „klawisza A”. Będzie przezroczysty po przesłaniu na tablicę Nextion.

c)Wybierz zakładkę „Touch Press Event” w oknie Event.

d) Wpisz następujące informacje w sekcji „Kod użytkownika”

drukuj 1

e) Powtórz kroki 2a-2d dla każdego z pozostałych kluczy zgodnie z poniższą tabelą.

** Po naciśnięciu określonego klawisza tablica Nextion Enhanced prześle wydrukowany numer, a następnie trzy wartości 0x00. Wartości końcowe można zignorować.

3. Przycisk „Wstecz” pozwoli mi wrócić do poprzedniego interfejsu na płycie Nextion Enhanced.

a)Utwórz hotspot dla przycisku Wstecz, wykonując następujący proces:

  1. Wybierz Hotspot z okna Przybornika
  2. Przenieś/zmień rozmiar hotspotu nad przyciskiem „Wstecz”

b)Wybierz okno Wydarzenie.

c)Upewnij się, że wybrana jest zakładka „Zdarzenie prasy dotykowej”

d) Wpisz: page page1 w sekcji Kod użytkownika

Krok 9: Debugowanie

Debugowanie
Debugowanie
Debugowanie
Debugowanie

Dobrą rzeczą w edytorze Nextion jest to, że możesz przetestować funkcjonalność interfejsu przed przesłaniem go na tablicę.

  1. Zapisz projekt, naciskając przycisk zapisu na pasku zadań
  2. Następnie naciśnij przycisk kompilacji
  3. Następnie naciśnij przycisk debugowania.

Pojawi się okno emulatora Nextion. To okno powinno reagować w taki sam sposób jak moduł Nextion po przesłaniu pliku Nextion na tablicę. Ten emulator to świetny sposób na przetestowanie interfejsu i upewnienie się, że wygląda i działa zgodnie z oczekiwaniami. Gdy byłem zadowolony z interfejsu (-ów), przeniosłem skompilowany plik Nextion na kartę SD:

  1. Naciśnij przycisk kompilacji
  2. Plik → Otwórz folder kompilacji
  3. Wybierz plik *.tft o tej samej nazwie co projekt.
  4. Skopiuj go na kartę micro SDHC
  5. Włóż kartę SDHC do gniazda karty SD na wyświetlaczu Nextion
  6. Włącz tablicę Nextion

Poczekaj, aż plik zaktualizuje tablicę Nextion i powinieneś zobaczyć komunikat, który wygląda tak:

Następnym krokiem jest wyłączenie płyty Nextion i wyjęcie karty SDHC.

Krok 10: KONFIGURACJA ARDUINO

Wyświetlacz Nextion Enhanced jest gotowy, a teraz kolej na Arduino. Arduino jest zaprogramowany do odbierania komunikatów szeregowych z wyświetlacza Nextion Enhanced i sterowania silnikiem krokowym na podstawie otrzymanych liter lub cyfr. Unikalne litery lub cyfry przesyłane z płyty Nextion pozwalają Arduino zrozumieć, który przycisk jest wciśnięty, i wykorzystuje te cyfry lub litery do sterowania przepływem kodu w celu wykonania określonych działań silnika krokowego.

Biblioteka SoftwareSerial służy do umożliwienia komunikacji szeregowej między Arduino a wyświetlaczem Nextion Enhanced. Biblioteka AccelStepper służy do uproszczenia procesu sterowania silnikiem krokowym.

Ustaw maksymalną i minimalną prędkość silników oraz kilka wstępnie zdefiniowanych klawiszy. Możliwe jest „dostrojenie” silnika za pomocą pierwszego interfejsu wyświetlacza Nextion. Możesz to zrobić, obracając silnik szybciej lub wolniej, aż dotrzesz do żądanego klucza. Tutaj aplikacja „Tuner T1 Free” ze sklepu z aplikacjami iTunes służy do identyfikacji KIEDY silnik wytwarzał nutę w kluczu. Kiedy silnik generował konkretną nutę, zapisywałem prędkość silnika krokowego, która została wydrukowana w oknie monitora szeregowego. Za każdym razem, gdy prędkość silnika jest zwiększana lub zmniejszana, kod Arduino drukuje prędkość w oknie monitora szeregowego. Następnie używam tych prędkości do aktualizacji tablicy notes w kodzie Arduino. Tablica notes zawiera prędkości silnika krokowego odpowiadające poszczególnym nutom fortepianu. Wyświetlacz Nextion zasadniczo wysyła numer indeksu notatki do odtworzenia z tablicy notatek na Arduino, upraszczając w ten sposób kod wymagany do obracania silnika z 16 różnymi prędkościami.

Krok 11: Finalizowanie + schematy

Finalizowanie + schematy
Finalizowanie + schematy
Finalizowanie + schematy
Finalizowanie + schematy
Finalizowanie + schematy
Finalizowanie + schematy
Finalizowanie + schematy
Finalizowanie + schematy

Po wyłączeniu wszystkich płyt następnym krokiem jest wykonanie wszystkich niezbędnych połączeń sprzętowych z Arduino. Należy wziąć pod uwagę dwie główne sekcje:

  • Sterownik silnika krokowego i silnik
  • Płyta Nextion Enhanced.

Musisz upewnić się, że używasz zewnętrznego źródła zasilania do zasilania zarówno silnika krokowego, jak i płyty Nextion Enhanced. Sama płytka sterownika silnika krokowego była zasilana przez Arduino bez żadnych problemów, ale rzeczywisty silnik krokowy będzie wymagał zewnętrznego zasilania. Płyta Nextion Enhanced potrzebuje również zewnętrznego zasilacza, ponieważ wymaga więcej prądu niż Arduino może bezpiecznie zapewnić.

Zanotuj używany zasilacz zewnętrzny. Upewniłem się, że mam wystarczająco duży zasilacz, aby obsłużyć wymagania dotyczące zasilania projektu, i wykorzystałem odpowiednie arkusze danych, aby pomóc mi zidentyfikować te wymagania. Jeśli planujesz powtórzyć ten projekt, upewnij się, że bierzesz pod uwagę specyficzne wymagania dotyczące mocy silnika, sterownika silnika i wyświetlacza Nextion. Arduino może dostarczać tylko 400mA prądu z pinu 5V. Po podłączeniu wszystkiego włączyłem wyświetlacz Nextion, a następnie włączyłem Arduino. Silnik krokowy zaczyna się automatycznie obracać. Użyłem pierwszego interfejsu do zmiany kierunku i/lub prędkości silnika. Zwróć uwagę na maksymalne i minimalne prędkości ustawione w kodzie Arduino. Następnie użyłem przycisku Dalej, aby przejść do drugiego interfejsu na wyświetlaczu Nextion Enhanced. Drugi interfejs wygląda jak fortepian. A kiedy naciskam klawisz na wyświetlaczu fortepianu, silnik zmienia prędkość, aby dopasować się do naciśniętej nuty.

To wszystko. Teraz gotowe.

Mam nadzieję, że to ci się spodoba

Zalecana: