Hur du ansluter en Android-telefon direkt till en Arduino (USB OTG) (Via en personlig massör) (2 / 2 steg)
Steg 2: Mod stöd
Mod stöd
ATmega32u4 mikrokontroller i Mod har inbyggda USB-funktionalitet. Det innebär att det kan framstå som en USB-mus, ett USB-tangentbord och en USB-virtuell terminal (vad du vill). Arduino utvecklingsmiljön innehåller tangentbord/mus funktioner (känd som HID eller human interface-enhet) som väl terminal funktioner (känd som CDC eller kommunikation enhetsklass) och det finns inget sätt att berätta Arduino kompilatorn "inte inkluderar mjukvara för att fungera som USB-tangentbord eller mus såvida inte min skiss uttryckligen kräver det." Så din Mod fungerar som en virtuell serieport, men det är också fungerar som ett virtuellt tangentbord. Android ansluter till den seriella porten, men tycker det är också ett externt tangentbord närvarande och inte längre visar det mjuka tangentbordet.
Vi måste tvinga Arduino att inte inkludera HID funktioner. Hur du gör detta är att redigera filen USBDesc.h ingår med Arduino. På en Mac finns detta i Arduino.app sig själv. Högerklicka på programmet Arduino i Finder och välj "Visa paketets innehåll". Därifrån går igenom innehållet > resurser > Java > Hårdvara > arduino > kärnor > arduino och du hittar USBDesc.h (i 1.5.x Arduino utvecklingsmiljön, finns denna fil i innehållet > Java > Hårdvara > arduino > avr > kärnor > arduino). Öppna USBDesc.h och redigera den:
Gamla:
#define CDC_ENABLED
#define HID_ENABLED
Nya:
#define CDC_ENABLED
/ * #define HID_ENABLED * /
Det är det! Du har kommenterat ut linjen definiera variabeln HID_ENABLED. Du kan behöva avsluta och ladda om Arduino app och sedan kompilera om din skiss för att funktionen ska gälla. Nu endast CDC funktioner kommer att definieras, och ditt Mod bör ändå framstå som en virtuell terminal, men inte ett virtuellt tangentbord. Du kan tala med din Mod över dess standard seriekonsoll vända motorer på/av, cykel mönster, ändra mönster frekvens och intensitet och läsa ingångar.