Spisu treści:
- Krok 1: Zainstaluj oprogramowanie
- Krok 2: Szkic demonstracyjny
- Krok 3: API
- Krok 4: Oscyloskop o wartości 2 USD
Wideo: Tablet / telefon jako ekran Arduino i oscyloskop o wartości 2 USD: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Chociaż można kupić tani ekran dotykowy LCD o rozdzielczości 320x240 do projektu opartego na Arduino, wygodniej jest - zwłaszcza do prototypowania i testowania szkicu - używać tabletu lub telefonu jako ekranu dotykowego i źródła zasilania dla projekt. Możesz mieć znacznie wyższą rozdzielczość i lepiej wyglądający wyświetlacz na swoim urządzeniu z Androidem (np. wszystkie linie będą wygładzone).
Ekran z systemem Android można podłączyć przez port szeregowy USB, Bluetooth lub WiFi (np. ESP8266).
W tym celu napisałem VectorDisplay (źródło tutaj), aplikację na Androida, która łączy się z biblioteką Arduino, która implementuje duży podzbiór interfejsu Adafruit GFX. Możesz napisać kod, który następnie można łatwo przenieść, aby używać samodzielnego ekranu, lub nadal używać szkicu z wyświetlaczem opartym na systemie Android. Możesz też wysyłać polecenia z aplikacji na Androida, aby sterować szkicem Arduino. Biblioteka Arduino jest w dużej mierze niezależna od płyty: powinna działać z każdą płytą, która zapewnia obiekt portu szeregowego USB o nazwie Serial lub z ESP8266 przez Wi-Fi lub Bluetooth (najpierw sparuj płytę).
Jako dowód zastosowania koncepcji, przeportowałem projekt bare-bones STM32-O-Scope, aby używać VectorDisplay zamiast wyświetlacza ILI9341. Rezultatem jest (szorstki na krawędziach) przenośny, zasilany bateryjnie oscyloskop 1,7 MS/s, który wymaga jedynie płytki STM32F103C o wartości 2 USD (przy użyciu rdzenia Arduino opartego na libmaple), dwóch przewodów, kabla USB OTG i urządzenia z systemem Android. Oczywiście wszystko, co masz dzięki temu, to zakres od 0 do około 3,3V.
Krok 1: Zainstaluj oprogramowanie
Zakładam, że masz skonfigurowane Arduino IDE dla swojej ulubionej płyty i że twoja ulubiona płyta ma interfejs szeregowy USB.
Przejdź do szkicu | Dołącz bibliotekę | Zarządzaj bibliotekami. Umieść "VectorDisplay" w obszarze wyszukiwania i kliknij "Zainstaluj" po znalezieniu.
Pobierz plik zip biblioteki stąd.
Rozpakuj do folderu w folderze Arduino/libraries.
Pobierz VectorDisplay z Google Play i zainstaluj go na swoim urządzeniu z Androidem. Może być konieczne włączenie instalacji z nieznanych źródeł na urządzeniu z Androidem. Aplikacja na Androida korzysta z biblioteki UsbSerial, a punktem wyjścia była jedna z przykładowych aplikacji dla biblioteki.
Krok 2: Szkic demonstracyjny
Podłącz swoją tablicę (w razie potrzeby w trybie przesyłania) do komputera i przejdź do Plik | Przykłady | Wyświetlanie wektora | kręgi w twoim Arduino IDE. Kliknij przycisk przesyłania (strzałka w prawo).
Uruchom aplikację VectorDisplay na swoim urządzeniu z Androidem. Podłącz swoją płytę do urządzenia z systemem Android za pomocą kabla USB OTG. (Jeśli twoja płyta ma port micro USB, upewnij się, że strona hosta USB OTG przechodzi do urządzenia z systemem Android). Powinieneś teraz otrzymać zapytanie o pozwolenie dla VectorDisplay. Wciśnij OK.
Jeśli wszystko pójdzie dobrze, VectorDisplay pokaże teraz dwa przyciski po lewej stronie ekranu: Okrąg i Kolor. Naciśnięcie Kółka rysuje losowe kółko na ekranie, a Kolor zmienia kolor na losowy kolor przed następnym kółkiem.
Jeśli spojrzysz na szkic okręgów w IDE, zobaczysz, że szeregowy wyświetlacz wektorowy jest zadeklarowany z:
SerialDisplayClass Wyświetlacz;
a następnie zainicjowany w setup() za pomocą:
Wyświetl.początek();
Następnie przyciski poleceń są wymagane za pomocą Display.addButton(). Następnie loop() wywołuje Display.readMessage() w celu wyszukania poleceń wysyłanych za pomocą przycisków poleceń.
Domyślnie układ współrzędnych dla wyświetlacza to 240x320. Jednak linie i tekst są rysowane w pełnej rozdzielczości ekranu urządzenia z systemem Android, z antyaliasingiem zapewniającym dobry wygląd. Dlatego aplikacja nazywa się Vector Display.
Krok 3: API
API w bibliotece znajduje się w pliku VectorDisplay.h. Musisz najpierw zainicjować obiekt Display. W przypadku użycia USB zrób to za pomocą:
SerialDisplayClass Wyświetlacz;
Zainicjuj połączenie za pomocą Display.begin().
W obiekcie SerialDisplayClass dostępne są dwa zestawy metod: jeden zestaw używa 32-bitowego koloru (w tym alfa) i poleceń, które są bardzo zbliżone do protokołu szeregowego USB, którego używa moja aplikacja VectorDisplay, a drugi zestaw jest podzbiorem standardu Metody biblioteki Adafruit GFX, wykorzystujące 16-bitowy kolor. W większości możesz dowolnie mieszać oba zestawy poleceń, z wyjątkiem tego, że jeśli używasz metod zgodnych z Adafruit, powinieneś używać 16-bitowych poleceń kolorów, których nazwy kończą się na 565 zamiast 32-bitowych.
Możesz ustawić układ współrzędnych za pomocą Display.coordinates(szerokość, wysokość). Wartość domyślna to szerokość=240 i wysokość=320. Jeśli chcesz emulować wyświetlacz z pikselami niekwadratowymi, możesz użyć Display.pixelAspectRatio(ratio).
Kilka metod, w tym pixelAspectRatio(), przyjmuje argument FixedPoint32. Jest to 32-bitowa liczba całkowita reprezentująca liczbę zmiennoprzecinkową, gdzie 65536 oznacza 1,0. Aby przekonwertować liczbę zmiennoprzecinkową x na FixedPoint32, wykonaj: (FixedPoint32)(65536. * x) (lub po prostu TO_FP32(x)).
Oprócz możliwości wysyłania poleceń z przycisków Androida, zdarzenia dotyczące dotyku ekranu są również wysyłane do MCU.
W przypadku korzystania z Wi-Fi zobacz przykład circles_esp8266. Aby przełączyć się w tryb Wi-Fi, musisz nacisnąć przycisk USB w aplikacji.
W przypadku Bluetooth powinieneś być w stanie zrobić:
Wyświetlacz SerialDisplayClass (MyBluetoothSerial);
… MójBluetoothSerial.begin(115200); Wyświetl.początek();
a następnie postępuj tak jak w przypadku portu szeregowego USB, gdzie MyBluetoothSerial to dowolny obiekt Stream (np. Serial2) podłączony do adaptera Bluetooth.
Krok 4: Oscyloskop o wartości 2 USD
Do szybkiego i brudnego oscyloskopu potrzebna będzie płytka STM32F103C8 w kolorze niebieskim lub czarnym (łatwiejsza w obsłudze), którą można dostać na Aliexpress za niecałe 2 dolary. Opiszę jak przygotować płytkę do pracy ze środowiskiem Arduino i zainstalować szkice tutaj.
Pobierz ten szkic na tablicy, który jest zmodyfikowaną wersją szkicu STM32-O-Scope firmy Pingumacpenguin. Edytuj linię #define BOARD_LED, aby pasowała do Twojej tablicy. Używam czarnej pigułki, której dioda LED to PB12. Niebieskie pigułki (i niektóre czarne pigułki, które mają taki sam pinout jak niebieska pigułka) mają diodę LED na PC13.
Podłącz jeden przewód - sondę uziemiającą - do uziemienia płyty, a drugi przewód do styku B0 płyty. Podłącz płytkę do urządzenia z systemem Android z uruchomionym VectorDisplay i masz przenośny, zasilany bateryjnie oscyloskop.
Na zdjęciu mam oscyloskop podpięty do fototranzystora. Ślad na ekranie pochodzi z pilota telewizyjnego na podczerwień.
Zalecana:
Super jasna latarka o wartości 100 USD za mniej niż 10 USD!: 5 kroków
100 $ Super Bright Flashlight za mniej niż 10 $!: Powiem z góry, że inspirację dla tego Instructable przypisuje się dchall8 za jego Tactical Flashlight Instructable. Pomyślałem, że musi być łatwiejszy sposób na zmodyfikowanie mniejszej latarki przy użyciu mniejszej ilości sprzętu i takiej, która zajmuje mniej czasu. ja p
Mini tablet graficzny o wartości 2 USD: 4 kroki
Mini tablet graficzny o wartości 2 USD: TOUCHPAD HACK - Jak przekształcić touchpad w przydatny mini tablet graficzny z kilkoma prostymi przedmiotami codziennego użytku Aby uzyskać pełny film, odwiedź http://www.metacafe.com/watch/777196/2_mini_graphics_tablet
Dirt Cheap Dirt-O-Meter - Wysokościomierz dźwiękowy oparty na Arduino o wartości 9 USD: 4 kroki (ze zdjęciami)
Dirt Cheap Dirt-O-Meter - Wysokościomierz dźwiękowy oparty na Arduino o wartości 9 USD: Dytters (A.K.A Audible Altimeters) ratował życie skoczkom spadochronowym przez tyle lat. Teraz Audible Abby również zaoszczędzi im pieniądze. Basic Dytters mają cztery alarmy, jeden w drodze w górę i trzy w drodze w dół. Podczas lotu samolotem skoczkowie muszą wiedzieć, kiedy
Zegar Arduino o wartości 5 USD: 4 kroki
Zegar Arduino o wartości 5 USD: stwórz niedrogi zegar zgodny z Arduino. Ten projekt jest zabawny i łatwy do powielenia. Można go umieścić w obudowie lub wybranym projekcie. Użyłem plastikowego pudełka na części elektroniczne. Podstawowe części kosztują 5 USD, ale wymagają również zasilania micro USB
Kaseta o wartości 2 USD Telefon/ładowarka USB: 7 kroków
Kaseta o wartości 2 USD Telefon / ładowarka USB: Uwielbiam zasilacz / ładowarkę Mintyboost Instructables, ale chciałem poszukać czegoś, co jest trochę łatwo dostępne, co nie jest już zbytnio przydatne i było trochę łatwiejsze do dostosowania. Przechodząc przez kilka sklepów z drobiazgami, dotarłem do