Innholdsfortegnelse:
Video: Nettbrett/telefon som Arduino -skjerm og et oscilloskop på $ 2: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Selv om man kan kjøpe en billig 320x240 LCD-berøringsskjerm for et Arduino-basert prosjekt, kan det være mer praktisk-spesielt for prototyping og testing av en skisse-å bruke et nettbrett eller en telefon som både berøringsskjerm og strømkilde for en prosjekt. Du kan ha en mye høyere oppløsning og bedre utseende på Android-enheten din (f.eks. Vil alle linjene dine være anti-alias).
Den Android-baserte skjermen kan kobles til via USB Serial, Bluetooth eller WiFi (f.eks. ESP8266).
I den hensikt skrev jeg VectorDisplay (kilde her), en Android -app som pares med et Arduino -bibliotek som implementerer en stor delmengde av Adafruit GFX -grensesnittet. Du kan skrive kode som deretter enkelt kan portes for å bruke en frittstående skjerm, eller fortsette å bruke skissen med en Android-basert skjerm. Og du kan sende kommandoer fra Android -appen for å kontrollere Arduino -skissen. Arduino-biblioteket er stort sett uavhengig av bord: det skal fungere med ethvert kort som har et USB-serieportobjekt som heter Serial eller med en ESP8266 over WiFi eller med Bluetooth (koble kortet først).
Som et bevis på konseptapplikasjon portet jeg bare-bein STM32-O-Scope-prosjektet for å bruke VectorDisplay i stedet for ILI9341-skjermen. Resultatet er et (grovt rundt kantene) bærbart, batteridrevet oscilloskop på 1,7 MS/s som ikke krever mer enn et $ 2 STM32F103C-kort (ved bruk av libmaple-basert Arduino-kjerne), to ledninger, en USB OTG-kabel og en Android-enhet. Selvfølgelig er alt du får med dette et område fra 0 til omtrent 3,3V.
Trinn 1: Installer programvare
Jeg antar at du har en Arduino IDE satt opp for ditt favorittkort og at favorittkortet ditt har et serielt USB -grensesnitt.
Gå til Sketch | Inkluder bibliotek | Administrer biblioteker. Sett "VectorDisplay" i søkeområdet og klikk på "Installer" når den er funnet.
Last ned bibliotekets zip herfra.
Pakk ut i en mappe i mappen Arduino/biblioteker.
Last ned VectorDisplay fra Google Play og installer det på Android -enheten din. Du må kanskje aktivere installasjon fra ukjente kilder på Android -enheten din. Android -appen bruker UsbSerial -biblioteket, og utgangspunktet var et av eksempelappene for biblioteket.
Trinn 2: Demoskisse
Koble kortet (i opplastingsmodus om nødvendig) til datamaskinen og gå til Fil | Eksempler | VectorDisplay | sirkler i Arduino IDE. Klikk på opplastingsknappen (høyre pil).
Start VectorDisplay -appen på Android -enheten din. Koble kortet til Android -enheten via USB OTG -kabel. (Hvis kortet ditt har en USB -mikroport, må du kontrollere at USB OTG -vertssiden går til Android -enheten). Du bør nå få en tillatelsesforespørsel for VectorDisplay. Trykk OK.
Hvis alt går bra, viser VectorDisplay nå to knapper på venstre side av skjermen: Sirkel og farge. Ved å trykke på Circle tegnes en tilfeldig sirkel på skjermen, og Color endrer fargen til en tilfeldig farge før neste sirkel.
Hvis du ser på sirkelskissen i IDE, vil du se at den serielle vektordisplayet er deklarert med:
SerialDisplayClass Display;
og deretter initialisert i oppsett () med:
Display.begin ();
Deretter blir det bedt om kommandoknapper med Display.addButton (). Deretter ringer loop () til Display.readMessage () for å se etter kommandoer som sendes via kommandoknappene.
Som standard er koordinatsystemet for skjermen 240x320. Imidlertid tegnes linjer og tekst med full oppløsning på Android -enhetens skjerm, med antialiasing for godt utseende. Derfor kalles appen Vector Display.
Trinn 3: API
API -en i biblioteket er i VectorDisplay.h -filen. Du må først initialisere et Display -objekt. For USB -bruk, gjør det med:
SerialDisplayClass Display;
Initialiser tilkoblingen med Display.begin ().
Det er to sett med metoder tilgjengelig i SerialDisplayClass-objektet: det ene settet bruker 32-biters farge (inkludert alfa) og kommandoer som er ganske nær USB-seriell protokoll som min VectorDisplay-app bruker, og det andre settet er et delsett av standarden Adafruit GFX bibliotekmetoder, med 16-biters farge. For det meste kan du fritt blande de to settene med kommandoer, med unntak av at hvis du bruker Adafruit-kompatible metoder, bør du bruke 16-biters fargekommandoer hvis navn slutter med 565 i stedet for 32-biters.
Du kan angi koordinatsystemet med Display.coordinates (bredde, høyde). Standard er bredde = 240 og høyde = 320. Hvis du vil etterligne en skjerm med ikke-firkantede piksler, kan du bruke Display.pixelAspectRatio (ratio).
Noen av metodene, inkludert pixelAspectRatio (), tar et FixedPoint32 -argument. Dette er et 32-bits heltall som representerer et flytende tall, der 65536 representerer 1.0. For å konvertere et flytende punkt x til FixedPoint32, gjør du: (FixedPoint32) (65536. * X) (eller bare TO_FP32 (x)).
I tillegg til å kunne sende kommandoer fra Android -knapper, sendes også berøringshendelser på skjermen til MCU.
For eksempel bruk av WiFi. Du må trykke på USB -knappen i appen for å bytte til WiFi -modus.
For Bluetooth bør du kunne gjøre:
SerialDisplayClass -skjerm (MyBluetoothSerial);
… MyBluetoothSerial.begin (115200); Display.begin ();
og fortsett deretter som i USB -seriell etui, hvor MyBluetoothSerial er det Stream -objektet (f.eks. Serial2) er koblet til Bluetooth -adapteren din.
Trinn 4: Et $ 2 Oscilloskop
For det raske og skitne oscilloskopet trenger du et blått eller svart (lettere å håndtere) pille STM32F103C8 -kort, som du kan få på Aliexpress for under $ 2. Jeg beskriver hvordan du forbereder brettet til bruk med Arduino -miljøet for det og installerer skisser her.
Last ned denne skissen på tavlen, som er en modifisert versjon av Pingumacpenguins STM32-O-Scope-skisse. Rediger #define BOARD_LED -linjen for å matche brettet ditt. Jeg bruker en svart pille hvis LED er PB12. De blå pillene (og noen svarte piller som har samme pinout som den blå pillen) har lysdioden på PC13.
Koble en ledning-jordsonde-til brettets bakke og en annen ledning til brettets B0-pinne. Koble kortet til en Android -enhet med VectorDisplay som kjører, så har du et bærbart, batteridrevet oscilloskop.
På bildet har jeg oscilloskopet koblet til en fototransistor. Sporet på skjermen er fra en infrarød TV -fjernkontroll.
Anbefalt:
Øreproppholder (nettbrett, datamaskin, telefon): 4 trinn
Øreproppholder (nettbrett, datamaskin, telefon): Jeg blir alltid frustrert når øreproppene blir sammenflettet eller går tapt. Så jeg bestemte meg for å lage noe du kan sette på baksiden av nettbrettet osv. Jeg presenterer en øreproppholder
Lag din egen bærbare retro spillkonsoll! som også er en Win10 -nettbrett !: 6 trinn (med bilder)
Lag din egen bærbare Retro -spillkonsoll! …… som også er en Win10 -nettbrett !: I dette prosjektet vil jeg vise deg hvordan du lager en bærbar retro -spillkonsoll som også kan brukes som et Windows 10 -nettbrett. Den vil bestå av en 7 " HDMI LCD med berøringsskjerm, en LattePanda SBC, en USB Type C PD power PCB og noen flere komplementære
Arduino 4WD Rover Bluetooth -kontrollert av Android -telefon/nettbrett: 5 trinn
Arduino 4WD Rover Bluetooth Kontrollert av Android -telefon/nettbrett: Arduino 4WD bluetooth -kontrollert rover Dette er en enkel 4WD -rover jeg har laget med Arduino. Roveren styres med en Android -telefon eller nettbrett over bluetooth. Med den appen kan du kontrollere hastigheten (ved hjelp av Arduinos pwm), kjøre den med
Bruke et RTA -program som et oscilloskop eller en kretsanalysator: 4 trinn
Bruke et RTA -program som et oscilloskop eller kretsanalysator: Formålet med dette trikset er å gi seere og rimelige muligheter til å se de elektriske signalene til kretsene og enhetene sine ved hjelp av sanntidsanalysatorprogrammer (RTA). Den primære fordelen med denne tilnærmingen fremfor et oscilloskop er at RTA -programmer
MacBook -nettbrett eller DIY Cintiq eller Homebrew Mac -nettbrett: 7 trinn
MacBook -nettbrett eller DIY Cintiq eller Homebrew Mac -nettbrett: Mye inspirert av c4l3bs funksjonelle instrukser, som igjen var inspirert av bongofish, bestemte jeg meg for å prøve det samme på Core 2 Duo MacBook. Trinnene var bare forskjellige nok til at jeg trodde en separat instruerbar var berettiget. Også