Questions sur le pilotage d'une carte Arduino, par une tablette

Bonjour,
Je débute sur ce site, et avec la carte Arduino...
J'ai trouvé des informations intèressentes sur ce site, en ce qui concerne le pilotage à partir d'un PC.
Je cherche et ne trouve pas d'explications claires pour le même type d'opération avec une tablette.
Le chargement sur la carte Arduino, ne semble pas poser de problèmes.
Mais je n'arrive pas à trouver comment, expédier ou recevoir des informations, à partir d'une tablette (type Archos 101).
(Avec un PC, cela semble utiliser l'interface graphique programmable).
Mais comment utiliser, une tablette, par exemple pour commender une led sur la carte Arduino,
ou comment recevoir une inforrmation switch, ouvert ou fermé, sur une tablette.
pouvez-vous me donner des informations à ce sujet, ou des exemples, ou m'indiquer ou les trouver.

Merci.

Serge.

Bonjour,

Tout dépend des connectiques que possède la tablette en question.
Si elle gère le mode "usb host" il doit y avoir moyen d'installer/utiliser les drivers CDC-ACM pour le port série usb.

Sinon il faut trouver autre chose, par exemple avec android >2.1-1 et un "usb host shield" il est possible de communiquer avec le système via le protocole de debug "ADB".
Avec les versions plus récente d'android il est possible d'utiliser le protocole A0A (Android Peripherals and Accessories  |  Android Open Source Project)

Si tu as une liaison bluetooth, tu peux utiliser SimpleHMI. Cela permet d'envoyer et de recevoir des info sous le contrôle de l'arduino et sans développement sur le périphérique Android. Tu installes une appli sur le terminal Android et tout le reste est fait dans l'arduino. Tu peux créer des boutons, des zones de texte, des curseurs.

Je n'ai pas bien expliqué, mon problème.

J'ai réussi a utiliser une application que j'ai écris et dont j'ai téléchargé le .apk dans ma tablette, cela marchais avec IOIO, je commandais une diode sur la carte IOIO, etc ...

Je voudrais faire de même avec Arduino ( Aduino <--> tablette), avec l'USB.
La tablette Archos 101 dispose d'un port USB, que j'utilisais avec IOIO, sans problème ...
Je ne sais pas comment faire avec Arduino !!!!

De plus j'utilise surtout, C++, ou C#, et ne connais pas vraiment java....( quand je ne peut pas faire autrement)
J'utilise aussi monodroid.
Donc je dois avouer que j'ignore complétement le sens des termes: CDC-ACM,ADB,AOA, .....
Je cherche pour une application particulière, à utiliser USB ,et surtout pas Bluetooth Mais je pense qu'il doit exister une solution proche de IOIO, du moins du même style.
Ecriture éventuellement en java d'une application, dont on charge l'apk dans la tablette, et qui permet de communiquer (tablette .... Arduino), via l'USB.

http://anettosoftware.co.uk/ac.php

ceci devrais t'aider.. enfin.. l'application coté tablette existe.. a tester..

ArduinoCommander - android application to manage arduino board - #21 by 4ntoine - Products and Services - Arduino Forum <== sur le forum..

Merci Tealcoune,

Cela me rassure, ce que je cherche à faire semble exister, c'est bon signe.
Il ne me reste plus qu'a trouver comment faire.

Il faut, seulement, trouver, commen faire communiquer, une tablette avec une carte Arduino, via le port USB ...

L'application que je réalise est un peu spécifique (en dehors du fait, de communiquer), ce qui implique, que je réalise, moi l'écriture du code contenu dans la tablette , et non pas charger une application toute faite.

Il existe, sur de nombreux sites, pas mal de démos qui montrent une tablette reliée, par USB, à une carte Arduino.
Ils ont sans aucun, doute, chargé un .apk, dans la tablette, je continu, à chercher, je finirais bien par trouver un exemple de code.

au pire essai de contacter les personnes qui l'on fais .. pour leur demander comment et fais le code android pour la communication.. (perso je tenterai.)

Difficile de contacter les personnes qui ont réalisées, ces démos.

Par contre, 'ai trouvé une piste interessante sur un site, avec un exemple, qui me semble plus claire.

Mais je me heurte, à l'utilisation, de java.

Je n'arrive pas à résoudre le problème suivant:

import com.android.future.usb.UsbAccessory;
import com.android.future.usb.UsbManager;

J'ai le message: '' The import com.android.future.usb cannot be resolved ''.

J'ai trouvé d'autres exemples, dans un livre: beginning android ADK witht Arduino.

Même problèmes ....
Il ne reconnait pas ces imports ....

Personne ne sait ou les trouver, comment les charger ...
Le plus dur est de trouver quelqu'un qui saurrait utiliser java, et android...

Ces librairies manquantes sont semble-t-il fournies par google puisqu'elles sont identifiées android.com. Elles doivent sans doute faire partie de la chaine de développement.

Si j'ai bien compris la doc android.. (pour l'instant je suis plus sur bluetooth que sur usb..

il dise que com.android.future.usb .. c'est pour android 2.3.4 (développer sous api 10) si inférieur c'est mort .. Android le gère pas .

sinon si tu code sous android 4 (api 16) .. tu dois utiliser android.hardware.usb a la place. (inclu dans l'api a partir de l'api 12 "android 3.1" )

voilà la source. USB accessory overview  |  Android Developers

Je pense que tu dois voir raison, j'ai essayé de changer et d' utiliser Api 12, cela semblait m'enlever le problème. mais depuis, j'ai fais une fausse manip.
Et je n'arrive plus à avoir l'affichage, standard de eclipse, je n'ai plus les champs, avec l'arborescence, à gauche et les affichages activity, layer à droite....
Je n'ai plus que les barres du haut, le reste de l'écran est blanc ....

J'en ai profité pour regarder mes messages, cela me confirme que j'était bien sur la bonne voie, en utilisant l'Api 12.
Des que j'aurrai trouvé comment rétablir l'affichage de java, ( ca doit se trouver sur internet ), je ferais la manipe avec Api 16, comme tu me le préconise.

J'avoue que java, c'est pour moi, une grosse galère, j'ai du mal, à suivre, quelles sont les bonnes versions, numéro, d' Api, à utiliser ....
Il aurrait été plus simple d'utiliser la plus haute version, mais il semblerait que cela pause d'autres problèmes, de compatibilitée ....

le souci d'utiliser l'api 16.. c'est que sa ne tourne pas bien dans les versions antérieur..

donc je te conseil.. de regarder qu'elle version ta tablette a.. et de programmer en fonction de celle la.. si l'application et que pour toi .. si elle es pour divers modèle de tablette ou téléphone .. je te conseillerai de voir si tu peux le faire qu'avec l'api 12 ..

ensuite perso .. je n'utilise pas éclipse .. du moins sa fais 3 ans que j'ai pas touché a ce logiciel.. j'utilise netbeans pour mes applications java et android .

par exemple pour un programme que j'ai fais pour communiqué entre ma tablette et arduino j'utilise l'api pour android 4.03..

J'ai rétabli, non sans mal l'état de mes fênetres en java.

Je vais continuer, et éssayer le fonctionnement avec Api 12, comme j'avais commencé.
Les tablettes (Archos 28 et 101), que j'utilise, sont en version 2.4.83 (Android 2.2.1), je pense qu'il sera nécessaire de les mettre à jour.
(10 = 2.3.3 à 2.3.7) et (12= 3.1)
Comme je programme depuis fort longtemps avec soit des assembleurs, soit C, C++, C# ...
Ces langages étant trés pratiques à utiliser, je programmais , entre autre avec, pour Android, en utilisant MonoDroid ( donc C# ).
C'est simple , rapide et efficace, cela utilise les libs (java et android).
Mais je n'arrivais pas à utiliser les libs pour l'USB.
C'est pour cela que je retournai au java.

Il se peu que le problème soit le même, que celui que je viens d'avoir (problème de niveau d'API). A voir ....!!!
En suite je ferai des éssais avec, netbeans, c'est, peut être que plus pratique ,que Eclipse ...!!!

avec éclipse tu a un module qui permet de faire du drag n drop pour les fenêtres Android ..(j'ai plu le nom) .. mais sur Netbeans il n'y en a pas encore. :cry: ..

étant plus développeur java.. j'ai souvent utiliser netbeans .. (pour le java web je trouve qu'il es mieux que éclipse ) .. pour le c, c++.. sa n'es jamais sortie hors du cadre des micro contrôleurs.. idem pour l'assembleur..

^^.. bonne chance pour tes testes .. fais un retour.. on sais jamais sa pourrai m'intéresser pour d'autre projet.. ^^..

J'ai mon PGM (sous eclipse) qui ne semble plus présenter d'erreur.
Si je fais un run:
J'ai, ''No compatible target were found. Do you wish to add a new andriod device''
Je lance le chargement d'un des devices dans la liste (API 12 , 3.1).

J'ai le message:
Starting emulator for AVD 'Serge_Qvga240x320_API_12'
Failed to create Context 0x3005
could not get wglGetExtensionsStringARB

J'ai dans eclipse (cosole, message erre en bas de la fenêtre)
[2012-10-05 19:27:16 - Essai_3] Android Launch!
[2012-10-05 19:27:16 - Essai_3] adb is running normally.
[2012-10-05 19:27:16 - Essai_3] Performing com.example.essai_3.MainActivity activity launch
[2012-10-05 19:27:16 - Essai_3] Failed to find an AVD compatible with target 'Google APIs'.
[2012-10-05 19:27:19 - Essai_3] Still no compatible AVDs with target 'Google APIs': Aborting launch.
Je continurai demain

Suite ...
J'ai le même problème, cela ne fonctionne pas mieux Api 10, 12,16 .....

Par contre, je ne m'explique pas pourquoi, il y aurrait des problèmes d'utilisation, en fonction des Api.

Si j'écris une application (avec eclipse, java), pour piloter via le port USB, une carte IOIO, cela fonctionne, même avec l'Api 10.
J'utilise l'émulateur, ou je charge le .apk dans la tablette (vesion 2.2.1 Adroid).
Cela marche trés bien, avec ma tablette, je fais clignoter, une led, sur la carte IOIO, cela via la liaison USB !!!!!!!!!!!!!
Le problème semble venir de la facon de piloter une carte Arduino ....

Quelqu'un, a-t-il déjà éssayé de commander une carte Arduino avec une tablette, si oui comment faire ... quel, peut-être le code de commande à écrire dans la tablette ?????

J'ai joint une image, pour présenter le type de problème que j'ai ....

Essai_1.png

J'ai eu un problème au moment d'envoyer l'image, je recommence.

Je viens d'éssayer avec la lib AndroidAccessoiry.

Je charge cette lib, avec les autres lib (Arduino-1.0.1 --> library )
Elle n'apparait pas dans importer une lib , et si j'écris manuellement:
#include<AndroidAccessory.h>
le programme ne la trouve pas.

Essai_1.png