Controle toetsenbordmuis & w / Android app via Arduino (7 / 10 stap)

Stap 7: De Android app

Voor de volgende stap ga ik om te veronderstellen dat u vertrouwd bent met het schrijven van een Android app. Als dat niet het geval is, kunt u opnieuw de links de stap 2. De broncode is hieronder.

OPMERKINGEN:
* Worden ervoor dat u de waarde van DEVICE_ADDRESS wijzigen. Dit kan worden gevonden op de sticker op uw BlueSMiRF. Het kan ook worden gevonden tijdens het instellen van de baud-rate in stap 4 (#9). De tekenreeks van letters en cijfers is na "BTA", dat een waarde boven de "BAUDRT".
* Worden Wijzig de pakket naam (eerste lijn van MyRemote.java) aan uw project directory-structuur

MyRemote.java

pakket edu.mit.media.amarino.myremote;

importeren van android.app.Activity;
importeren van android.os.Bundle;
importeren van android.text.Editable;
importeren van android.text.TextWatcher;
importeren van android.view.MotionEvent;
importeren van android.view.View;
importeren van android.widget.Button;
importeren van android.widget.EditText;
importeren van at.abraxas.amarino.Amarino;

openbare klasse MyRemote breidt activiteit {}

openbare TextView resultaat;
public int a, b;
openbare EditText inputField;

/ * het adres wijzigen naar het adres van uw Bluetooth-module
* en zorgen dat uw apparaat wordt toegevoegd aan Amarino * /
privé statisch definitief koord DEVICE_ADDRESS = "00:06:66:07:AD:FE";

definitieve int vertraging = 150;

/ ** Aangeroepen wanneer de activiteit voor het eerst wordt gemaakt. */

openbare nietige onCreate (bundel savedInstanceState) {}
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Amarino.Connect (, DEVICE_ADDRESS);

laatste knop lClick = (knop) findViewById(R.id.leftClick);
lClick.setOnClickListener (nieuwe View.OnClickListener() {}
openbare nietige onClick (View v) {}
Actie bij klikken op uitvoeren
onLeftClick();
}
});
laatste knop rClick = (knop) findViewById(R.id.rightClick);
rClick.setOnClickListener (nieuwe View.OnClickListener() {}
openbare nietige onClick (View v) {}
Actie bij klikken op uitvoeren
onRightClick();
}
});
de laatste knop plus = (knop) findViewById(R.id.plusBtn);
plus.setOnClickListener (nieuwe View.OnClickListener() {}
openbare nietige onClick (View v) {}
Actie bij klikken op uitvoeren
onPlus();
}
});
de laatste knop minus = (knop) findViewById(R.id.minusBtn);
minus.setOnClickListener (nieuwe View.OnClickListener() {}
openbare nietige onClick (View v) {}
Actie bij klikken op uitvoeren
onMinus();
}
});

inputField = (EditText)findViewById(R.id.input);

TextWatcher fieldValidatorTextWatcher = nieuwe TextWatcher() {}

openbare nietige beforeTextChanged (CharSequence s, int begin, int count, int na) {}
}

public void onTextChanged (int begin, CharSequence s, int vóór, int count) {}
Koord str = inputField.getText().toString();
int len = str.length();
char c;

backspaced
Als (len < = start) {}
onDelete();
}
Swyped
anders als (len > (start + 1)) {}
Tekenreeks temp = "";
for (int i = start; ik < len; i ++) {}
c = str.charAt(i);
Temp += Character.toString(c);
}
onSend(temp);
}
normaal getypt
else {}
c = str.charAt(len-1);
Str = Character.toString(c);
onSend(str);
}
}

openbare nietige afterTextChanged (bewerkbare arg0) {}
}
};
inputField.addTextChangedListener(fieldValidatorTextWatcher);

}


beschermd nietig onStart() {}
super.onStart();
}

beschermd nietig onStop() {}
super.onStop();
Houd de dienst van de achtergrond van de Amarino, we hoeven het niet meer
Amarino.Disconnect (, DEVICE_ADDRESS);
}

openbare Booleaanse onTouchEvent (MotionEvent evenement) {}
int x = (int)event.getX();
int y = (int)event.getY();
int diffX;
int diffY;
Boolean isUp, isDown, isLeft, isRight;
schakelaar (event.getAction()) {}
Case MotionEvent.ACTION_DOWN:
een = x;
b = y;
breken;
Case MotionEvent.ACTION_MOVE:
bepalen van links of rechts
if(a > x) {}
isLeft = true;
isRight = false;
} else {}
isRight = true;
isLeft = false;
}
bepalen omhoog of omlaag
if(b > y) {}
isUp = true;
isDown = false;
} else {}
isDown = true;
isUp = false;
}
verschil berekenen
diffX = a - x;
Als (diffX < 0) diffX * = -1;
diffY = b - y;
Als (diffY < 0) diffY * = -1;
groter verschil bepalen
Als (isLeft & & isUp) {}
if(diffX > diffY) onLeft();
anders onUp();
}
anders als (isLeft & & isDown) {}
if(diffX > diffY) onLeft();
anders onDown();
}
anders als (isRight & & isDown) {}
if(diffX > diffY) onRight();
anders onDown();
}
anders als (isRight & & isUp) {}
if(diffX > diffY) onRight();
anders onUp();
}

breken;
Case MotionEvent.ACTION_UP:
breken;
}
return false;
}

private void onUp() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', "U");
}
private void onLeft() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', 'L');
}
private void onRight() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', 'R');
}
private void onDown() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', "D");
}
private void onLeftClick() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', 'Z');
}
private void onRightClick() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', 'X');
}
private void onPlus() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', 'P');
}
private void onMinus() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', "M");
}

private void onSend (String str) {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ^', str);
}
private void onDelete() {}
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ''', 'B');
}
}

===============================

Main.XML

<? xml version = "1.0" encoding = "utf-8"? >
< LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android: richting = "verticale"
Android: layout_width = "fill_parent" android: layout_height = "fill_parent" >

< LinearLayout android: layout_width = "400px" android: layout_height = "100px" android: layout_gravity = "center_horizontal"
Android: layout_marginTop = "20px" >

< button android: id = "
Android: tekst = "android: textSize ="32px"
Android: layout_width = "200px" android: layout_height = "100px" >< / Button >

< button android: id = "
Android: tekst = "android: textSize ="32px"
Android: layout_width = "200px" android: layout_height = "100px" >< / Button >

< / LinearLayout >

< LinearLayout android: layout_width = "200px" android: layout_height = "100px" android: layout_gravity = "center_horizontal"
Android: layout_marginTop = "20px" >

< button android: id = "
Android: tekst = "android: textSize ="48px"
Android: layout_width = "100px" android: layout_height = "100px" >< / Button >

< button android: id = "
Android: tekst = "android: textSize ="48px"
Android: layout_width = "100px" android: layout_height = "100px" >< / Button >

< / LinearLayout >

< LinearLayout android: layout_width = "450px" android: layout_height = "100px" android: layout_gravity = "center_horizontal"
Android: layout_marginTop = "20px" >

< EditText android: id = "android: textSize ="32px"
Android: layout_width = "fill_parent" android: layout_height = "100px" / >

< / LinearLayout >

< / LinearLayout >

===============================

strings.XML

<? xml version = "1.0" encoding = "utf-8"? >
< resources >
< naam = "app_name" > MyRemote < / string >
< naam = "clickLeft" > Klik met de linkermuisknop < / string >
< naam = "clickRight" > Klik met de rechtermuisknop < / string >
< naam = "plus" > + < / string >
< naam = "minus" > – < / string >
< naam = "Verzend" > verzenden < / string >
< / middelen >

===============================

Ik wil iets zeggen over de verschillende functies aan de onderkant van de "MyRemote.java". Ze noemen de zelfde methode met vergelijkbare parameters:
Amarino.sendDataToArduino (dit, DEVICE_ADDRESS, ' ~', 'Z');

Deze methode doet de werkelijke commucation met de BlueSMiRF aangesloten op de Arduino. Het weet welk apparaat te sturen door de variabele DEVICE_ADDRESS, die de unieke id voor de BlueSMiRF. Vrij regelrecht voorwaarts. Maar de volgende parameters wellicht een beetje meer uitleg, de ~ en de Z. De 3e parameter (~) vertelt de Processing Schets, die we schrijven in de volgende stap, welke modus we in:
~ = muis gevoeligheid, muisbeweging en muisklik
↑ = invoer van het toetsenbord
' = backspace

Ik koos deze willekeurige tekens doelbewust voor een paar redenen. Voornamelijk, moest ik een paar gereserveerde tekens ter aanduiding van de "mode", dus ik koos die tekens overlapt die ik nooit gebruiken zou terwijl het runnen van dit project. Dit lijkt misschien verwarrend, maar hopelijk zal dit duidelijk omhoog: de vierde parameter ("Z" in het bovenstaande fragment) een ding kan doen als verzenden met een ~ of het kan iets heel anders doen als ik stuur het met een ^. Dit groeit de mogelijkheden exponentieel.

Let op het gebruik van deze tekens op de volgende stap, onze Processing schets.

Gerelateerde Artikelen

Controle LED met Android telefoon via BLE (Bluetooth 4.0), MangoCube App en Arduino UNO

Controle LED met Android telefoon via BLE (Bluetooth 4.0), MangoCube App en Arduino UNO

Dit Instructable ziet u hoe gegevens vanaf Android apparaat verzenden controle LED op Arduino UNO.U moet ten minste de volgende onderdelen;1. de Arduino UNO of compatibel board.2. MangoCube BLE Board ( https://www.kickstarter.com/projects/530456128/m
Luid en flitsende Android app voor Arduino. Geen Android programmeerkennis vereist

Luid en flitsende Android app voor Arduino. Geen Android programmeerkennis vereist

IntroductieDit Instructable toont je hoe geluid toe te voegen en Arduino apparaat knipperen van menu-items aan uw pfodApp gecontroleerd. Geen Android programmeren is vereist, de pfodDesigner de Arduino schets voor u genereert.pfodApp ondersteunt reed
Controlerende Intel Edison met aangepaste Android app via Internet.

Controlerende Intel Edison met aangepaste Android app via Internet.

¡Hello iedereen, ik hoop dat dit project zal helpen u om uw eigen Smart Home gecontroleerd door middel van Internet!Het project bestaat in een Smart Home systeem gecontroleerd door middel van Internet door een Android applicatie ontworpen door mij. S
RC auto hack - bluetooth gecontroleerd via Android app

RC auto hack - bluetooth gecontroleerd via Android app

Ik weet zeker dat ieder van jullie op home ongebruikte RC auto kan vinden. Deze instructie helpt u wijzigen in uw oude RC auto origineel cadeau :) Wijten aan het feit dat de RC auto had ik in grootte klein was heb ik Arduino Pro Mini gekozen als bela
Bouwen van Android Bluetooth App voor Arduino

Bouwen van Android Bluetooth App voor Arduino

Hallo, ga vandaag ik om een android app voor arduino Bluetooth module HC-06 te maken. Via deze app kunt u een lichte of led formulier uw Androïde telefoon. Kunt doen...Stap 1: Ga naar Android editorGa naar MIT App uitvinderLink: http://appinventor.mi
Controle van de Arduino met behulp van android app

Controle van de Arduino met behulp van android app

In deze instructables ga ik uit te leggen hoe de controle van de arduino IO pinnen met behulp van een android app, die we hier schrijven.De mededeling zal via ethernet en gebruiken we het GET-verzoek voor het activeren van de IO.Laten we beginnen!Sta
Arduino Bluetooth Garage deur controle met sensoren en aanpasbare Android App

Arduino Bluetooth Garage deur controle met sensoren en aanpasbare Android App

Relais voor het openen garagedeuren en elektrische deursloten activeren via een arduino.Een aanpasbare Android App, verbindt met arduino via wachtwoordbeveiliging bluetooth koppeling.Een bluetooth-module voor hc-05 opdrachten ontvangt van een android
Arduino - BLUETOOTH stem & Remote Home control Android APP

Arduino - BLUETOOTH stem & Remote Home control Android APP

Hello wereld! Vandaag maakte ik een voice control en remote control app gecombineerd. Volgens mij is dit de beste die ik heb gemaakt en ik ga te gebruiken in mijn huis mezelf, lees ook de andere apps die ik heb gemaakt.Ik maakte een lijst van opdrach
Controle elektrische apparaten van uw android telefoon, Arduino en maak je eigen android app

Controle elektrische apparaten van uw android telefoon, Arduino en maak je eigen android app

Hallo, wil je controle van al uw elektrische apparaten bij u thuis bediend vanuit uw Androïde mobiele, wilt u uw eigen app om deze taak te maken, deze post wordt uitgelegd stap voor stap procedure om te maken van de android app voor de controle van e
Controle van de Arduino met Android telefoon via Bluetooth

Controle van de Arduino met Android telefoon via Bluetooth

Hallo mensen, hier kunt u leren hoe u kunt besturen Arduino met Android telefoon via Bluetooth. U kunt uw smartphone als een afstandsbediening voor u verlichting van het huis systeem of u kunt gebruiken als een drone externe enz.Om de verbinding tuss
Arduino/Android - BLUETOOTH RGB LED CONTROL ANDROID APP

Arduino/Android - BLUETOOTH RGB LED CONTROL ANDROID APP

Hello wereld! Vandaag maakte ik een app wilt besturen een RGB Led-module met een Android apparaat. Contacteer mij voor de Open source-code van de APP.Opmerking: Als u kocht een gemeenschappelijk Anode LED aansluiten naar 5vIk gebruikte een gemeenscha
How To: Maak een Android App met Android Studio controle LED

How To: Maak een Android App met Android Studio controle LED

Dit is een stapsgewijze tutorial voor het maken van een android apk via bluetooth.Vóór de start codering,Download Android Studio IDE en bijwerken van Java.Java en C programmeren zal helpen.Deze tutorial zal niet uitleggen Java programmering.Als u cod
Controle robotarm met handschoenen, Android telefoon en Arduino

Controle robotarm met handschoenen, Android telefoon en Arduino

Vandaag hebben we bijna 2 technieken om te spelen met robotarm, hetzij door knoppen voor voorbeeld als op spel schild of het gebruik van handschoenen die sensoren bevatten. Nog, vandaag zal ik laten u een nieuwe techniek met behulp van alleen je Andr
Bluetooth Control RC Tank + Android Arduino

Bluetooth Control RC Tank + Android Arduino

Kan de vrede is op uDit is mijn eerste instructable. Het gaat om controle van uw rc tank via bluetooth in plaats van met behulp van radiofrequentie. Er zijn dat veel project als dit, maar dit is mijn manier. hahahaIk begon te denken dat ik zo lui ben