Innholdsfortegnelse:

Nettbrett/telefon som Arduino -skjerm og et oscilloskop på $ 2: 4 trinn
Nettbrett/telefon som Arduino -skjerm og et oscilloskop på $ 2: 4 trinn

Video: Nettbrett/telefon som Arduino -skjerm og et oscilloskop på $ 2: 4 trinn

Video: Nettbrett/telefon som Arduino -skjerm og et oscilloskop på $ 2: 4 trinn
Video: Как правильно намотать импульсный трансформатор? Обучение. 2024, November
Anonim
Nettbrett/telefon som Arduino -skjerm og et $ 2 Oscilloskop
Nettbrett/telefon som Arduino -skjerm og et $ 2 Oscilloskop
Nettbrett/telefon som Arduino -skjerm og et $ 2 Oscilloskop
Nettbrett/telefon som Arduino -skjerm og et $ 2 Oscilloskop
Nettbrett/telefon som Arduino -skjerm og et $ 2 Oscilloskop
Nettbrett/telefon som Arduino -skjerm og et $ 2 Oscilloskop

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

Demoskisse
Demoskisse
Demoskisse
Demoskisse
Demoskisse
Demoskisse
Demoskisse
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

Et oscilloskop på 2 dollar
Et oscilloskop på 2 dollar
Et oscilloskop på 2 dollar
Et oscilloskop på 2 dollar
Et oscilloskop på 2 dollar
Et oscilloskop på 2 dollar

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: