Contrôler le clavier & souris w / app Android via Arduino (7 / 10 étapes)

Étape 7: L’application Android

Pour l’étape suivante, je vais supposer que vous êtes à l’aise avec l’écriture d’une application Android. Si ce n’est pas le cas, s’il vous plaît revenir sur les liens de l’étape 2. Le code source est ci-dessous.

NOTES :
* Être sûr changer la valeur de DEVICE_ADDRESS. Cela peut être consultée sur l’autocollant sur votre BlueSMiRF. Il se retrouve tout en fixant le taux de baud à l’étape 4 (#9). C’est la chaîne de lettres et de chiffres après « BTA », qui est une valeur supérieure à « BAUDRT ».
* Être sûr de modifier le package nom (première ligne de MyRemote.java) pour correspondre à la structure de répertoire de votre projet

MyRemote.java

package edu.mit.media.amarino.myremote ;

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

public class MyRemote s’étend l’activité {}

public TextView résultat ;
public int a, b ;
public EditText inputField ;

/ * changer l’adresse à l’adresse de votre module Bluetooth
* et s’assurer que votre périphérique est ajouté au Amarino * /
private static final String DEVICE_ADDRESS = "00:06:66:07:AD:FE" ;

final int DELAY = 150 ;

/ ** Appelée lorsque l’activité est d’abord créée. */

{} public void onCreate (Bundle savedInstanceState)
super.onCreate(savedInstanceState) ;
setContentView(R.layout.main) ;

Amarino.Connect (this, DEVICE_ADDRESS) ;

dernière touche lClick = findViewById(R.id.leftClick) (bouton) ;
lClick.setOnClickListener (new View.OnClickListener() {}
{} public void onClick (View v)
Exécuter l’action lors du clic sur
onLeftClick() ;
}
});
dernière touche rClick = findViewById(R.id.rightClick) (bouton) ;
rClick.setOnClickListener (new View.OnClickListener() {}
{} public void onClick (View v)
Exécuter l’action lors du clic sur
onRightClick() ;
}
});
Touche final positif = findViewById(R.id.plusBtn) (bouton) ;
plus.setOnClickListener (new View.OnClickListener() {}
{} public void onClick (View v)
Exécuter l’action lors du clic sur
onPlus() ;
}
});
Touche finale moins findViewById(R.id.minusBtn) = (Button) ;
minus.setOnClickListener (new View.OnClickListener() {}
{} public void onClick (View v)
Exécuter l’action lors du clic sur
onMinus() ;
}
});

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

TextWatcher fieldValidatorTextWatcher = new TextWatcher() {}

' public void beforeTextChanged (int début, int count, CharSequence s, int après) {}
}

{} public onTextChanged Sub (CharSequence s, int start, int, int compteur antérieur)
Dim str As String = inputField.getText().toString() ;
int len = str.length() ;
char c ;

backspaced
Si (len < = start) {}
onDelete() ;
}
Swyped
ElseIf (len > (start + 1)) {}
Temp de chaîne = "" ;
pour (int i = start ; j’ai < len; i ++) {}
c = str.charAt(i) ;
Temp += Character.toString(c) ;
}
onSend(temp) ;
}
tapé normalement
else {}
c = str.charAt(len-1) ;
Str = Character.toString(c) ;
onSend(str) ;
}
}

{} public void afterTextChanged (modifiable arg0)
}
};
inputField.addTextChangedListener(fieldValidatorTextWatcher) ;

}


Protected Sub onStart() {}
super.onStart() ;
}

Protected Sub onStop() {}
super.onStop() ;
arrêter le service de Amarino en arrière-plan, nous n’avez pas besoin plus
Amarino.Disconnect (this, DEVICE_ADDRESS) ;
}

public boolean onTouchEvent (MotionEvent event) {}
int x = (int)event.getX() ;
int y = (int)event.getY() ;
int diffX ;
diffY int ;
isUp booléenne, isDown, isLeft, isRight ;
commutateur (event.getAction()) {}
affaire MotionEvent.ACTION_DOWN :
a = x ;
b = y ;
rupture ;
affaire MotionEvent.ACTION_MOVE :
déterminer la gauche ou vers la droite
if(a > x) {}
isLeft = true ;
isRight = false ;
} else {}
isRight = true ;
isLeft = false ;
}
déterminer vers le haut ou vers le bas
if(b > y) {}
isUp = true ;
isDown = false ;
} else {}
isDown = true ;
isUp = false ;
}
calculer la différence
diffX = a - x ;
Si diffX (diffX < 0) * = -1 ;
diffY = b - y ;
Si diffY (diffY < 0) * = -1 ;
déterminer la plus grande différence
Si (isLeft & & isUp) {}
if(diffX > diffY) onLeft() ;
d’autre onUp() ;
}
ElseIf (isLeft & & isDown) {}
if(diffX > diffY) onLeft() ;
d’autre onDown() ;
}
ElseIf (isRight & & isDown) {}
if(diffX > diffY) onRight() ;
d’autre onDown() ;
}
ElseIf (isRight & & isUp) {}
if(diffX > diffY) onRight() ;
d’autre onUp() ;
}

rupture ;
affaire MotionEvent.ACTION_UP :
rupture ;
}
retourne la valeur false ;
}

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

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

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

main.Xml

<? xml version = « 1,0 » encoding = « utf-8 »? >
< xmlns:android LinearLayout = "http://schemas.android.com/apk/res/android" android : orientation = "vertical"
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 » >

< bouton android : id = "
Android : text = "android : textSize ="32px"
Android : layout_width = « 200px » android : layout_height = « 100px » >< / bouton >

< bouton android : id = "
Android : text = "android : textSize ="32px"
Android : layout_width = « 200px » android : layout_height = « 100px » >< / bouton >

< / LinearLayout >

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

< bouton android : id = "
Android : text = "android : textSize ="48px"
Android : layout_width = « 100px » android : layout_height = « 100px » >< / bouton >

< bouton android : id = "
Android : text = "android : textSize ="48px"
Android : layout_width = « 100px » android : layout_height = « 100px » >< / bouton >

< / 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 >
< string nom = « app_name » > MyRemote < / string >
< string nom = « clickLeft » > clic gauche < / string >
< string nom = « bouton » > clic droit < / string >
< string nom = « plus » > + < / string >
< string nom = « moins » >, < / string >
< string nom = « Envoyer » > Envoyer < / string >
< / ressources >

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

Je voudrais dire un mot sur les plusieurs fonctions au bas de la « MyRemote.java ». Ils appellent la même méthode avec des paramètres similaires :
Amarino.sendDataToArduino (ce, DEVICE_ADDRESS, ' ~', « Z ») ;

Cette méthode effectue la commucation réelle avec le BlueSMiRF câblé à l’Arduino. Il sait quel dispositif pour l’envoyer à la variable DEVICE_ADDRESS, qui est l’identificateur unique pour le BlueSMiRF. Assez simple. Mais la prochaine aux paramètres peut-être besoin d’un peu plus d’explications, le ~ et Z. Le 3ème paramètre (~) indique à l’esquisse de traitement, dont nous allons écrire à l’étape suivante, quel mode nous sommes en :
~ = mouvement de la souris, clic de souris et la sensibilité de la souris
^ = entrée au clavier
' = ret.

J’ai choisi délibérément ces caractères aléatoires pour quelques raisons. Surtout, j’ai eu besoin de quelques caractères réservés pour désigner le « mode » donc j’ai choisi ces personnages que j’utiliserais jamais pendant l’exécution de ce projet. Cela peut paraître déroutant, mais j’espère que cela va s’éclaircir il : le quatrième paramètre (« Z » dans l’extrait ci-dessus) peut faire une chose si l’envoyer avec une ~ ou il peut faire tout autre chose, si je l’envoie avec un ^. Il croît de façon exponentielle les possibilités.

Notez l’utilisation de ces personnages sur la prochaine étape, notre schéma de traitement.

Articles Liés

Contrôler les lumières RVB de Android avec Arduino & Bluetooth LE (BLE)

Contrôler les lumières RVB de Android avec Arduino & Bluetooth LE (BLE)

j'ai vu beaucoup de projets de Kickstarter mettant en vedette la nouvelle norme Bluetooth 4.0 Low Energy et clones Arduino à venir sur le marché, a permis un certain nombre de Bluetooth LE (BLE) mais nombre de ces projets semblent encore être quelque
Contrôle LED avec téléphone Android via BLE (Bluetooth 4.0), MangoCube App et Arduino UNO

Contrôle LED avec téléphone Android via BLE (Bluetooth 4.0), MangoCube App et Arduino UNO

Ce Instructable montre comment envoyer des données au contrôle LED sur Arduino UNO appareil Android.Vous aurez besoin au moins des éléments suivants ;1. Arduino UNO ou Conseil compatible.2. MangoCube BLE Conseil ( https://www.kickstarter.com/projects
ArduDroid : Un Simple contrôleur de base 2-Way Bluetooth Android pour Arduino RGB led bande

ArduDroid : Un Simple contrôleur de base 2-Way Bluetooth Android pour Arduino RGB led bande

INTRODUCTIONGET IT ON google app de jeu « ardudroid »ARDUDROID (anciennement Andruino) est une simple application Android pour vous aider à contrôler les broches de votre Arduino Uno (ou clone) depuis votre téléphone Android sans fil. C'est une appli
Contrôler votre lecteur de musique de mac avec arduino

Contrôler votre lecteur de musique de mac avec arduino

Contrôler iTunes et Vox les 2 plus populaires lecteurs de musique sur les ordinateurs mac avec un arduinoÉtape 1: Choses nécessairesArduino (j'utilise uno, mais tous doivent faire).Câble USB pour l'arduino.IR recevoir diode.Télécommande universelle I
Comment contrôler le climatiseur a/c à la maison avec Arduino, même de loin !

Comment contrôler le climatiseur a/c à la maison avec Arduino, même de loin !

Arduino permet vraiment de faire beaucoup de choses concernant l'Internet des objets, juste avoir un peu « désir et l'intuition pour créer tout type de projet.Dans ce post nous allons voir comment télécommande contrôle votre conditionneur d'air à la
Contrôler un grand déclencheur linéaire avec Arduino

Contrôler un grand déclencheur linéaire avec Arduino

Ce tutoriel de l'actionneur linéaire Arduino montre comment faire la base commande manuelle d'un grand déclencheur linéaire en utilisant un Arduino et deux boutons. Dans le premier jeu du code, le premier bouton s'étend de l'actionneur et le deuxième
Feetech servos comment contrôler simultanément les 26 pièces par arduino

Feetech servos comment contrôler simultanément les 26 pièces par arduino

J'utilise SCM-1 de contrôle des stupéfiants pour contrôler la connexion série sorte peut contrôler 26 morceaux feetech SCS15 servo à un moment donné.Le Robot de contrôle des stupéfiants (SCM-1) peut également accepter d'instructions d'UART, permettan
Contrôler un climatiseur IR avec Android et Arduino

Contrôler un climatiseur IR avec Android et Arduino

Pour mon premier projet Arduino, j'ai décidé de contrôler mon climatiseur sur internet à l'aide d'Arduino et mon téléphone portable Android partout où j'ai accès à internet. La vidéo est en espagnol mais vous obtiendrez ce que je suis la démonstratio
ArduDroid : Un Simple 2 voies Bluetooth-contrôleur basé sur Android pour Arduino

ArduDroid : Un Simple 2 voies Bluetooth-contrôleur basé sur Android pour Arduino

MISES À JOUR :Le 19 nov. 2031 : avis : la synergie incroyable entre Arduino & Android.30 octobre 2013 : Andruino est maintenant officiellement ARDUDROID et est bientôt disponible sur Google jeu. Ce changement de nom pour éviter un conflit avec une au
Comment contrôler un Arduino contrôlée des bras robotiques de Dobot équipe

Comment contrôler un Arduino contrôlée des bras robotiques de Dobot équipe

On dit toujours, Dobot est une haute précision, plusieurs bras robotisé Bureau de contrôle. Dans le dernier instructables, nous avons montré vous la haute précision et la fonctionnalité de bureau en construisant une découpe laser et soudure Dobot bra
Contrôler votre appareil photo reflex numérique avec l’iPhone et le Module de BLE Arduino

Contrôler votre appareil photo reflex numérique avec l’iPhone et le Module de BLE Arduino

Voici 10 minutes instructable pour contrôler l'appareil photo reflex numérique avec Arduino et iPhone.Étape 1: Liste des piecesUn Arduino UNO ou Mega ou Nano ou etc.J'ai utilisé un HM-10 Bluetooth Low Energy Module, mais je pense que tous les autres
Arduino en vol, un Arduino qui permet de contrôler un hélicoptère

Arduino en vol, un Arduino qui permet de contrôler un hélicoptère

j'ai vu de nombreux hacks pour contrôler un hélicoptère rc avec un arduino, mais j'ai un hélicoptère à l'aide de la radiocommande (non ir led). Avec quelques pièces je vais vous montrer comment construire votre propre ! Lire l'ensemble instructable a
À l’aide de routeur MikroTik Conseil 433 & Arduino pour contrôler deux LEDs

À l’aide de routeur MikroTik Conseil 433 & Arduino pour contrôler deux LEDs

Dans ce tutoriel, je vais expliquer comment contrôler deux voyants utilisant MikroTik routeur Conseil et Arduino.MikroTik 433 est un routeur basé sur le noyau Linux, il contient 3 ports Ethernet et 3 mini PCI port permet de raccorder les cartes sans
Contrôler Unity3d par Arduino

Contrôler Unity3d par Arduino

Salut, j'ai ce tutoriel je vais vous montrer comment facilement contrôler Unity3d ou toute autre technologie .net par Arduino.Si vous voulez faire l'inverse s'il vous plaît vérifier ce Instructable plutôt :https://www.mediafire.com/?f099cf2dba08bih