- Wymagane materiały:
- Schemat obwodu:
- Tworzenie aplikacji na Androida przy użyciu przetwarzania:
- Zrozumienie kodu przetwarzania:
- Programowanie Arduino:
- Projektowanie obwodów i PCB za pomocą EasyEDA:
- Obliczanie i zamawianie próbek online:
- Działanie wyświetlacza tablicy Bluetooth Sign:
Niezależnie od tego, czy są to długie autostrady, czy drzwi wejściowe do lekarzy, wszędzie mamy tablice informacyjne, które dostarczają nam informacji. Ale te tablice informacyjne są często nudne i nie mogą być od czasu do czasu konfigurowane zgodnie z naszymi zainteresowaniami. Dlatego w tym projekcie zamierzamy zbudować tablicę Sign sterowaną przez Bluetooth przy użyciu wyświetlacza Matrix 8 * 8. Unikalną cechą tego projektu jest aplikacja na Androida, która umożliwia użytkownikowi sterowanie wszystkimi 64 diodami LED indywidualnie z telefonu komórkowego. Dzięki temu użytkownik może z łatwością tworzyć własne projekty i wyświetlać je na wyświetlaczu LED, brzmi interesująco, prawda? !! Więc zacznijmy…
Wymagane materiały:
- Arduino Pro mini
- MAX7219
- Moduł Bluetooth HC-05
- Wyświetlacz matrycowy 8 * 8 LED
- Rezystor 20k
- DC Barrel Jack
Schemat obwodu:
Schemat obwodu tej kontrolowanej przez Bluetooth płytki LED zbudowanej przy użyciu aplikacji EasyEDA. Użyjemy tych samych schematów, aby opracować z niego płytkę drukowaną i wyprodukować ją za pomocą EasyEDA.
Obwód jest dość prosty. Całość zasilana jest z zasilacza 12V, który podawany jest bezpośrednio na pin Raw płytki Arduino. To napięcie surowe jest następnie regulowane do + 5 V, które jest dostarczane do modułu Bluetooth i układu scalonego MAX7219. Piny Tx i Rx modułu Bluetooth są połączone z D11 i D10 Arduino, aby umożliwić połączenie szeregowe.
Cyfrowe piny od D5 do D7 są podłączone do układu MAX7219 w celu wysyłania i odbierania danych poprzez komunikację SPI. Pin ISET MAX7219 jest przeciągany wysoko przez rezystor 20k.
W tym projekcie wykonałem PCB, możesz pobrać plik projektowy PCB i użyć tego samego lub zbudować obwód na płytce stykowej. Jednak ze względu na jego złożoność zaleca się zakup modułu wyświetlacza 8x8 lub użycie płytki drukowanej
Matryca 8x8 to bardzo przydatny moduł wyświetlania, który można wykorzystać w wielu fajnych projektach:
- Sterowanie matrycą LED 8x8 za pomocą Raspberry Pi
- Przewijanie wyświetlania tekstu na matrycy LED 8x8 za pomocą Arduino
- Matryca LED 8x8 wykorzystująca Arduino
- Połączenie matrycy 8x8 LED z mikrokontrolerem AVR
Tworzenie aplikacji na Androida przy użyciu przetwarzania:
Zanim przystąpimy do programowania naszego Arduino, powinniśmy wiedzieć, jakie dane otrzymamy z telefonu komórkowego, aby na niego odpowiedzieć. Przyjrzyjmy się więc, jak powstaje aplikacja na Androida i jak można ją wykorzystać na smartfonie do sterowania matrycą LED 8x8.
Aplikacja na Androida dla tego projektu została stworzona przy użyciu oprogramowania Processing. Jest to aplikacja programistyczna typu Open Source i można ją łatwo pobrać i wykorzystać do tworzenia interesujących projektów przy użyciu Arduino lub innych mikrokontrolerów, ponieważ może tworzyć aplikacje na Androida i aplikacje systemowe. Zrealizowaliśmy już kilka projektów z wykorzystaniem Przetwarzania i możesz je sprawdzić, klikając poniższe linki.
- DIY Radio FM za pomocą przetwarzania
- Sterowanie wirtualną rzeczywistością / gestami za pomocą Arduino
- Prywatny pokój rozmów wykorzystujący Arduino.
- System radarowy Arduino wykorzystujący aplikację przetwarzającą i czujnik ultradźwiękowy
- Wykrywanie i śledzenie twarzy w czasie rzeczywistym za pomocą Arduino
- DIY Prędkościomierz wykorzystujący Arduino i przetwarzanie
- Gra w ping ponga przy użyciu akcelerometru Arduino
- Dwunożny robot wykorzystujący Arduino
- Kamera termowizyjna Arduino DIY
Wracając do tematu, nie mogę wytłumaczyć całego kodu aplikacji na Androida, więc trzeba by było nauczyć się przetwarzania samodzielnie, a potem spojrzeć na kod, żeby zrozumieć, jak to działa. Dlatego dla osób, które chcą pominąć proces uczenia się Przetwarzania, można pobrać aplikację na Androida z poniższego linku
- Pobierz aplikację na Androida
Poniżej znajduje się interfejs naszej aplikacji na Androida:
Plik APK można zainstalować bezpośrednio w dowolnej aplikacji na Androida i uruchomić jak każdą inną aplikację. Ale upewnij się, że Twoje urządzenie Bluetooth HC-05 nosi nazwę „HC-05”, ponieważ tylko wtedy będzie działać.
Zrozumienie kodu przetwarzania:
Osoby zainteresowane tym, co dzieje się za ekranem, mogą czytać dalej, inne mogą przejść do następnego nagłówka. Zasadniczo aplikacja na Androida łączy się podczas uruchamiania z urządzeniem Bluetooth o nazwie „HC-05” i wyświetla zestaw 64 diod LED w postaci kółek. Następnie, gdy użytkownik naciśnie kółko, zmieni kolor na czerwony, a numer koła zostanie wysłany do Arduino przez Bluetooth, po otrzymaniu numeru koła Arduino włącza diodę LED. Przyjrzyjmy się ważnym liniom programu Przetwarzanie, aby lepiej zrozumieć. Pełny kod aplikacji na Androida można pobrać z poniższego linku.
- Przetwarzanie kodu aplikacji na Androida
Używamy klas i obiektów do wyświetlania 64 diod LED, abyśmy mogli łatwo zaadresować każdą z nich. Jak widać w poniższym kodzie, używamy pętli for do iteracji od 1 do 64 przy użyciu tablicy. Dzięki temu każda dioda LED będzie miała swoją własną wartość pozycji X, pozycji Y oraz koloru i możemy je łatwo zmieniać.
// dipslay wszystkie diody dla (int i = 1; i <= 64; i ++) led_array.display (); // Wszystkie diody wyświetlane class Led { float X_Pos; float Y_Pos; kolor kolor; // KONSTRUKCJA Dioda (temp. Zmienna, temp. Zmienna, temp. Kolorów) { X_Pos = tempx; Y_Pos = tymczasowy; kolor = tempc; } void display () { fill (color); elipsa (X_Pos, Y_Pos, led_dia, led_dia); } }
Diody LED są ładowane na ekranie w tej samej kolejności, co na wyświetlaczu. Każda dioda jest oddzielona odległością równą średnicy diody, dzięki czemu możemy łatwo rozróżnić, która dioda jest aktualnie wybrana przez użytkownika. Jak pokazano w poniższym programie, tworzymy tablicę, w której każdy element zawiera informacje o pozycji X, Y i kolorze diody LED.
void load_leds () { led_array = new Led; int a = 1; for (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1.5); for (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // fill (255); // elipsa (x, y, led_dia, led_dia); led_array = nowa dioda Led (x, y, kolor (255,255,255)); a ++; } } }
Głównym krokiem programu jest sprawdzenie, czy użytkownik nacisnął jakąkolwiek diodę, a jeśli tak, to musimy zmienić kolor diody i wysłać numer diody przez Bluetooth. Ponieważ teraz możemy łatwo adresować lokalizację i kolor każdej diody LED, możemy to zrobić, po prostu porównując wartości X, Y miejsca naciśnięcia przez użytkownika z wartościami X, Y diod LED. Jeśli wartości się łączą, to zmieniamy stan diody LED, a także wysyłamy numer przez Bluetooth, jak pokazano poniżej.
// sprawdź, czy najedź myszką na diodę // Jeśli tak, wyślij numer diody dla (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); dane bajtowe = {bajt (i)}; bt.broadcast (dane); } }
Oprócz tego program może również zresetować całą diodę LED, wyłączając je wszystkie, a także możesz zmienić diodę LED na czerwoną (ON) lub białą (OFF), więc mamy również przycisk przełączający. Przycisk przełącznika jest wyświetlany i czeka na wprowadzenie. Po naciśnięciu zostanie wykonana odpowiednia akcja. Kod, który robi to samo, jest pokazany poniżej jako funkcja, która jest wywoływana wewnątrz pętli rysowania.
void load_buttons () { rectMode (CENTER); textAlign (CENTRUM, CENTRUM); noStroke (); wypełnij (# 1BF2D4); rect (szerokość / 2-szerokość / 4, wysokość / 1,3, szerokość / 4, wysokość / 12); wypełnij (0); tekst ("Resetuj", szerokość / 2-szerokość / 4, wysokość / 1,3); // przycisk 1 if (czerwony == true) {fill (# 080F89); rect (szerokość / 2 + szerokość / 4, wysokość / 1,3, szerokość / 4, wysokość / 12); fill (255,0,0); tekst ("CZERWONY", szerokość / 2 + szerokość / 4, wysokość / 1.3);} // przycisk 2 if (czerwony == false) {fill (# 080F89); rect (szerokość / 2 + szerokość / 4, wysokość / 1,3, szerokość / 4, wysokość / 12); fill (255); text ("BIAŁY", szerokość / 2 + szerokość / 4, wysokość / 1.3);} // przycisk 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { byte data = {0}; bt.broadcast (dane); println ("ZERUJ"); load_leds (); // załaduj wszystkie diody w pozycji i kolorze } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (dane); if (red == true) red = false; else if (red == false) red = true; println ("PRZEŁĄCZENIE"); } color_val = 0; } }
Programowanie Arduino:
Kompletny Arduino Program dla tej Bluetooth sterowany projekt Board bezprzewodowy jest podana na dole tego ekranu; możesz użyć go bezpośrednio i przesłać na swoją tablicę. Poniżej wyjaśniono ważne wiersze programu.
Moduł Bluetooth jest podłączony do pin 10 i 11, a więc mamy do wykorzystania seryjny oprogramowania, aby umożliwić komunikację szeregową na tych szpilek i wtedy możemy słuchać na dane z tych szpilek. Otrzymujemy dane otrzymane z modułu Bluetooth i zapisujemy je w zmiennej o nazwie przychodzące . Jeśli wartość przychodząca będzie równa „0”, wyłączymy wszystkie diody używając poniższego kodu
if (BT.available ()) { incoming = BT.read (); Serial.println (przychodzący); if (incoming == 0) m.clear (); // Czyści ekran
Korzystając z wartości przychodzących, musimy określić, którą diodę LED użytkownik nacisnął na telefonie komórkowym i pogodę, aby włączyć lub wyłączyć tę diodę. Sprawdzamy więc, czy wartość jest równa 100. Jeśli wartość wynosi 10, oznacza to, że użytkownik poprosił o zmianę koloru diody LED. Dlatego przełączamy zmienną na czerwoną, aby wiedzieć, czy dioda LED powinna być włączona, czy wyłączona.
else if (incoming == 100) // Sprawdź, czy powinniśmy włączyć lub wyłączyć diodę LED { if (red == true) red = false; else if (red == false) red = true; Serial.print ("RED:"); Serial.println (czerwony); }
Wreszcie, jeśli wartość jest większa niż 65, oznacza to, że użytkownik nacisnął diodę LED. Na podstawie liczby od 1 do 64 musimy ustalić, którą diodę nacisnął użytkownik. Aby przełączyć tę diodę LED, będziemy potrzebować wartości wiersza i kolumny tej diody LED, która jest obliczana i przechowywana odpowiednio w zmiennej X i Y i pokazana w kodzie poniżej. Na koniec, na podstawie wartości zmiennej czerwonej, włączamy lub wyłączamy diodę LED zgodnie z żądaniem użytkownika
else if (incoming <= 64) {// Oblicz, gdzie włączyć ro OFF the LED toggle = true; Y = przychodzące / 8; X = przychodzące - (Y * 8); if (przychodzące% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (red == true) m.setDot ((X - 1), (Y), true); // LED ON else if (red == false) m.setDot ((X - 1), (Y), false); // LED WYŁ. }
Projektowanie obwodów i PCB za pomocą EasyEDA:
Aby zaprojektować ten wyświetlacz z matrycą sterowaną przez Bluetooth, wybraliśmy internetowe narzędzie EDA o nazwie EasyEDA. Wcześniej korzystałem z EasyEDA wiele razy i stwierdziłem, że jest bardzo wygodny w użyciu, ponieważ ma dobrą kolekcję śladów i jest open-source. Po zaprojektowaniu PCB możemy zamówić próbki PCB, korzystając z ich tanich usług produkcji PCB. Oferują również usługi zaopatrzenia w komponenty, w przypadku których mają duże zapasy komponentów elektronicznych, a użytkownicy mogą zamówić wymagane komponenty wraz z zamówieniem PCB.
Projektując obwody i płytki drukowane, możesz również upublicznić projekty obwodów i płytek drukowanych, aby inni użytkownicy mogli je kopiować lub edytować i mogli czerpać korzyści z Twojej pracy. poniższy link:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Możesz wyświetlić dowolną warstwę (górną, dolną, topową, dolną itp.) PCB, wybierając warstwę z okna „Warstwy”.
Możesz również zobaczyć PCB, jak będzie wyglądać po wytworzeniu za pomocą przycisku Photo View w EasyEDA:
Obliczanie i zamawianie próbek online:
Po zakończeniu projektowania tej płytki PCB z matrycą sterowaną przez Bluetooth można ją zamówić za pośrednictwem witryny JLCPCB.com. Aby zamówić PCB w JLCPCB, potrzebujesz Gerber File. Aby pobrać pliki Gerber z płytki drukowanej, wystarczy kliknąć przycisk Wyjście produkcyjne na stronie edytora EasyEDA, a następnie pobrać ze strony zamówienia płytki PCB EasyEDA.
Teraz przejdź do JLCPCB.com i kliknij przycisk Cytuj teraz lub przycisk, a następnie możesz wybrać liczbę płytek PCB, które chcesz zamówić, ile warstw miedzi potrzebujesz, grubość PCB, wagę miedzi, a nawet kolor PCB, jak migawka pokazane poniżej:
Po wybraniu wszystkich opcji kliknij „Zapisz w koszyku”, a zostaniesz przeniesiony do strony, na której możesz załadować swój plik Gerber pobrany z EasyEDA. Prześlij swój plik Gerber i kliknij „Zapisz w koszyku”. Na koniec kliknij Bezpiecznie kasy, aby sfinalizować zamówienie, a płytki PCB otrzymasz kilka dni później. Produkują PCB w bardzo niskiej cenie, która wynosi 2 dolary. Ich czas budowy jest również znacznie krótszy, czyli 48 godzin przy dostawie DHL w ciągu 3-5 dni, w zasadzie PCB otrzymasz w ciągu tygodnia od zamówienia.
Po kilku dniach zamawiania PCB otrzymałem próbki PCB w ładnym opakowaniu, jak pokazano na poniższych zdjęciach.
A po otrzymaniu tych elementów przylutowałem wszystkie wymagane elementy na PCB.
Na mojej płytce PCB popełniłem tępy błąd, wybierając niewłaściwy ślad dla modułu wyświetlacza 8 * 8, dlatego musiałem użyć płyty Perf do zamontowania wyświetlacza, jak pokazano na rysunku. Ale teraz ślad jest aktualizowany na PCB i możesz z łatwością zamówić poprawioną płytkę drukowaną i zamontować moduł wyświetlacza.
Działanie wyświetlacza tablicy Bluetooth Sign:
Gdy będziesz gotowy ze sprzętem, poprzez pobranie PCB lub połączenie na płytce prototypowej, użyj programu Arduino podanego na końcu strony i prześlij go na swoją płytkę Arduino. Plik APK aplikacji na Androida jest również dostarczony powyżej, użyj go i zainstaluj aplikację na preferowanym urządzeniu z Androidem.
Włącz sprzęt i wyszukaj nazwę urządzenia HC-05 w telefonie, aby go sparować. Klucz dostępu to domyślnie 1234. Następnie otwórz aplikację, którą właśnie zainstalowaliśmy. Aplikacja powinna wyświetlić komunikat „ podłączony do HC-05 ” u góry ekranu, wtedy będziesz mógł dotknąć diody LED na ekranie i zauważyć, że ta sama dioda świeci się również na płycie.
Możesz również wyłączyć wszystkie diody LED, naciskając przycisk Reset i zdecydować o włączeniu lub wyłączeniu określonej diody LED, naciskając przycisk Przełącz. Domyślnie każda naciśnięta dioda LED będzie włączona. Pełne działanie projektu można zobaczyć na poniższym filmie. Jeśli masz jakiś problem z uruchomieniem go, skorzystaj z pola komentarzy poniżej lub napisz na naszym forum, aby uzyskać więcej pomocy technicznej. Mam nadzieję, że zrozumiałeś samouczek i dobrze się bawiłeś.