Aller au contenu

Battery manager


Recommended Posts

Hello: je suis nouveau sur ce forum et je n'ai pas trouvé la section de présentation alors j'en profite ici.

Si il y a un endroit pour cela alors je ne l'ai pas trouvé.

Voilà je suis étudiant en école d'ingénieur, à strasbourg. J'ai un projet à faire sur le semestre: rendre un triporteur (vélo à trois roue avec une caisse devant) en version électrique. Pour ma partie de ce projet nous devons concevoir une IHM (interface homme machine) qui va communiquer en bluetooth avec les capteur du vélo(ce sera une tablette numérique pour l'IHM). Ca pose déjà la complexité du projet. :) .

Quand on va tourner vue qu'il y aura deux roues électriques devant on va devoir créer en sofware un différentiel électronique: c'est la partie programmation de mon collègue. Tout ça va communiquer avec un PIC, pour le transfert en bluetooth en protocole SPP vers la tablette.

triporteur-bakfiets-cargotrike-8-vitesses.jpg

On aura une tablette numérique (pour le moment le choix est sur un Archos 70 IT) sous android bien sur! Je débute totalement en android: j'ai parcourue le site du zero pour apprendre un peut le java et les différent tuto d'un peut partout pour créer une Interface. Je travail avec le JDK et Eclipse pour créer mes projets. Et j'ai plusieurs questions à vous poser.

-dans quel ordre pensez vous que je dois commencer à pratiquer pour apprendre sur android? Faire du java d'abord et ensuite des tutos android? J'ai un livre qui s'appel:

.eyrolles-programmation-android_m.jpg

et qui pour le moment m'aide beaucoup à progresser.

J'arrive déjà placer des boutons dans une AVD (le téléphone virtuelle) (plug-in ADT pour eclipse). Je comprend comment les placer comment changer la photo de l'icone de l'appli et la photo d'un bouton photo(c'est déjà pas mal je pense pour un début: depuis deux jours sur java, android, le fonctionnement d'eclipse etc etc).

J'ai testé "hello world" et un code de calculatrice que j'ai trouvé pour voir comment faire les layout et placer de boutons judicieusement et faire les "écoutes"(methode onclick quelque chose je sais plus dsl) sur l'actions des boutons. J'en suis la pour les tuto. Prochaine étape les "écoute" sur les bouton pour faire des actions: dans un premier temps le tuto "tu clic sa affiche en dessous une texte: tu as cliquer" pour comprendre le fonctionnement des "écoutes". Mais tout ça c'est bien beau , car en java et en C je n'ai pas beaucoup de base. Va falloir que je crée des variables et travaillé avec et la ça va se gâter.

J'en viens à ma question: pour l'IHM de ma tablette de veux par l'intermédiaire de la communication bluetooth pouvoir afficher la tension de la batterie du vélo. Donc je cherche un code source me permettant de créer déjà un icône batterie évolutif en fonction d'une variable qui sera ma tension de batterie. Mais dans un premier temps je veux essayer de créer une variable "manuelle" que je change moi même et qui me fera varier mon icône batterie en affichant le pourcentage, puis ensuite j'implémenterais la suite, car pour le moment avec le bluetooth je sais pas comment je vais faire. Mais chaque chose en son temps les amis.

J'espère avoir été claire sur mon projet: je cherche un code complet et non une appli pour faire moi même mon icône évolution de l'état de la batterie, et éventuellement des tuto pour ça. Car la aussi je dois mal taper mes recherches google car je trouve que des appli en ".apk" et pas des codes, et c'est ca que je cherche.

Si vous avez des infos, tutos, sur le fonctionnement du bluetooth android, ou sur le protocole SPP je sui preneur, j'ai pas encore eu le temps de chercher (j'ai 4 autres projet en parallèles).

Ce projet est vraiment balaise, mais en même temps un sacrée défi. Si vous pouvez m'aider déjà dans cette première demande se sera super et je ferais évoluer le post avec l'avancement de mes recherches. Si vous avez des questions ou suggestions elles sont les bienvenue.

Yoch.

Ps: j'espère avoir posté au bon endroit. Sinon admin changez d'endroit en me prévenant ou vous l'avez mis que je puisse continuer à le suivre. Merci.

Lien vers le commentaire
Partager sur d’autres sites

Salut!

Bienvenue parmi les développeurs Android!

L'outil essentiel pour développer une application, c'est les références des librairies à disposition! En effet, on invente pas tout, il est important d'utiliser ce qui est déjà fourni vu qu'on est flemmard :-)

Pour ça, l'unique endroit où se rendre, c'est le site officiel :-D Et comme Android (contrairement à l'OS des iphones) c'est gratuit, tout est à disposition et facilement! Le lien c'est ça : http://developer.android.com/index.html

Tu as des exemples de codes ici : http://developer.android.com/resources/browser.html?tag=sample

Qui sont écris par les employés de Google, donc c'est bien fait mais parfois difficile à comprendre pour les débutants.

Et surtout, vu que chaque application utilise des choses différentes, il faut chercher dans les références d'Android ce que tu as besoin. Le sommaire est ici : http://developer.android.com/reference/packages.html

Pour ton application, tu aurais besoin par exemple de :

http://developer.android.com/reference/android/bluetooth/package-summary.html

qui explique bien toutes les options définies pour les connexions bluetooth.

Après, si j'ai bien compris tu dois afficher l'état de la batterie du vélo. Pour ça, il faut faire un pairing de l'émetteur bluetooth du vélo avec la tablette, puis que cette émetteur te transmette régulièrement ses informations. (Libre à vous le choix de la manière à laquelle ces infos sont envoyées... Si le dispositif du vélo n'existe pas encore, à vous de créer un petit protocole pour le faire.

Après, tu te fais une classe qui consiste en la batterie et en de ce que tu reçois, tu affiches un pourcentage ou une petite barre de progression de l'état....

J'ai peut-être pas bien compris ce que tu voulais... Mais une application qui gère directement une batterie à partir d'un dispositif Bluetooth ça ne doit pas exister.. Et si ça l'étais, il faut avoir de la chance pour trouver les sources.

Proposer les sources de ton application c'est comme si l'auteur d'un livre te donnait le fichier .doc.

A pars ceux de Google, qui ne sont pas évident à comprendre, peu de personnes les donnent!

Si tu as des questions, n'hésitent pas à poster ici!

Lien vers le commentaire
Partager sur d’autres sites

J'ai peut-être pas bien compris ce que tu voulais... Mais une application qui gère directement une batterie à partir d'un dispositif Bluetooth ça ne doit pas exister.. Et si ça l'étais, il faut avoir de la chance pour trouver les sources.

Si tu as des questions, n'hésitent pas à poster ici!

Salut Iceman. En premier lieux, merci pour ta réponse.

Tu as bien compris ce que je veux: par intermédiaire d'un capteur, en passant par un PIC, qui lui va transmettre en bluetooth l'info de tension de la batterie du vélo je dois récupérer sur la tablette cette info et faire mon widget perso de tension de batterie (sauf que ce sera pas celle du tel): comme une appli android sur la tension de batterie du téléphone qui fait évoluer l'icone de charge.

Donc je cherchais des info sur la façon de faire fonctionner le bluetooth sur android, alors je vais regarder les liens que tu m'a donné.

Mais d'après ce que tu me dis je ne vais pas pouvoir récupérer un code source pour faire mon propre icone de batterie, et c'est ça que je cherche dans un premier temps. Car en faire un moi même comme je débute, c'est impossible. J'aurais voulu en récupérer et juste l'adapter à mon problème.

J'aurais voulu ensuite créer une variable "tension batterie" (ou une méthode je ne sias pas trop quel terme employer) que je changerais manuellement, et en fonction de la valeur que je luis donne, faire évoluer mon icone batterie, simplement pour voir si ça marche et si j'ai bien compris comment faire. Et ensuite quand j'aurais compris le bluetooth en faite ma variable tension batterie deviendrait la valeur que je reçois en bluetooth. Peut être ça t'aide à mieux comprendre.

Nous n'avons pas d'idée non plus sur la façon de mettre en place un protocole, pour que l'émission et la réception soientt "synchro". Et la aussi je cherche de l'aide.

Voilà, si tu as d'autre lien suite à ces quelques explications supplémentaires, je suis preneur. Et toutes aide des autres membres du forum est la bien venue.

Merci à vous.

Yoch.

Lien vers le commentaire
Partager sur d’autres sites

Ok j'ai bien compris alors!

Ces temps je suis très chargé... Du coup pas beaucoup de temps pour y toucher!

Ces jauges peuvent s'apparenter à une barre de progression de chargement. En java ça s'apelle une progress bar.

Sur Android, ça existe aussi : http://developer.android.com/reference/android/widget/ProgressBar.html

Un code d'une application est même disponible sur la page (pas complète je crois, mais ça montre l'implentation).

la variable int mProgressStatus correspond au pourcentage de la barre. En modifiant, ça modifie la barre.

A +

Lien vers le commentaire
Partager sur d’autres sites

Merci à toi. J'avais pensé à une progresse bar, mais pour le moment je n'ai pas eu trop le temps de chercher.

Merci pour le lien, j'ai des basses pour commencer, je ne perd pas mon temps pour chercher.

Je te tiendrai au courant de l'avancement et si j'ai d'autre problèmes aussi..........

A+ l'ami et big THANKS.

Yoch.

PS: j'ai bien cliqué sur follow this topic, mais j'ai pas de mail quand tu réponds

Lien vers le commentaire
Partager sur d’autres sites

Tu as réussi à faire ta progressbar?

Pour ton projet je te conseillerais de développer avec un modèle MVC << Observable Observé >>.

C'est à dire :

Créer un Service (une sorte d'Activity Android mais sans layout graphique associé, qui tourne en arrière plan sans interaction avec l'utilisateur). Celui-ci gère la connexion avec le device bluetooth. Il serait "Observable" (extends Observable).

Créer une Activity qui aurait un layout et fait l'interface avec l'utilisateur. Il observe le service (implements Observer).

A partir de ceci, dès que le service reçoit une information (= status de la batterie via bluetooth), il notifie l'activité (méthode .notifyAll() ) que l'état a été modifié et lui envoie en paramètre.

Quand l'Activity est notifiée, une métode est apellée automatiquement et consisterait ainsi à mettre à jour la progressbar.

Cette méthode à l'avantage d'éviter d'avoir une boucle qui tourne en permanence pour vérifier l'état de la batterie. L'application est en veille (ça n'empêche pas de faire des autres tâches sur l'application) et dès qu'elle notifiée, elle se met à jour.

Voilà mon point de vue :-) Selon ton niveau en Java, ce n'est pas excessivement compliqué... Mais je peux t'aider dans la limite de mon temps libre ;-)

A+

P.S. J'ai testé la progressbar. Par défaut, il s'agit d'un cercle de chargement. il faut juste modifier le layout XML. Le projet Eclipse est en pièce jointe, il consiste en une progressbar qui se modifie toutes les 1 secondes par une valeur aléatoire. Juste pour le test ;-)

Lien vers le commentaire
Partager sur d’autres sites

Salut Iceman: Je n'ai pas eu le temps de continuer pour le moment sur la progresse bar, j'ai énormément de travail. Mais je vais regarder ça ce we.

Tes explications m'aide à comprendre comme faire, mais j'ai bien peur que pour le moment ce soit trop compliqué pour mon niveau d'android, je débute totalement. Je regarderais ton code ce we. Et je te dis déjà un grand MERCI.

Ton aide est le bienvenue, je ne suis pas pressé par le temps pour le moment, donc même si c'est pas tout de suite que tu m'aides, on a le temps de voir. Je vais déjà regardé ce que tu m'as envoyé, et j'essayerais de t'expliqué encore plus clairement ce que je veux en MP si tu as le temps.

Je te tiens au courant.

BIG THANKS.

Laurent.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Hello: comme certains le savent déjà, en projet à l'école je travaille sur un tricycle, que nous devons rendre électrique, avec deux moteurs brushless de 750wat chacun!!!!!!!! :D :D

Une tablette archos numérique servira de tableau de bord au tricycle et c'est moi qui suis chargé de créer l'interface et donc de programmer la tablette sous android. Un microcontroller enverra les données de suivantes: "tensions batterie" "autonomie batterie" "vitesse", plus d'autres infos.

Mon objectif va être se faire évoluer des "progress bar" en fonction de la tension de batterie, de l'autonomie et de la vitesse du tricycle.

Ca fais deux mois que je programme et j'en bave, mais j'ai bien avancé et je veux vous montrer.

Voici à quoi va ressembler l'interface sur la tablette: pour le moment ce n'est que du static et rien ne bouge les données affichées sont juste pour voir ce que ca va donner:

archos1.jpg

Soyez indulgent avec moi, sur l'hestetique de mon interface, je vous rappel que c'est la première que je fais. :)

J'ai fais un fichier a part ou je test l'évolution de la progress bar en fonction des données envoyé en bluetooth par le microcontroleur et ca marche plutôt pas mal: lien video

http://www.youtube.com/watch?feature=player_embedded&v=E2qg5_GFHnU

C'est vraiment génial à faire, mais c'est une programmation très compliqué et j'en chie grave. Bon heureusement on me donne des bouts de codes pour m'aider entre collègues, car sinon je n'aurais jamais pu faire ça.

La difficulté maintenant va être de totu réunir pour faire fonctionner et évoluer toutes les barres et les infos de l'interface et la ca va pas aller sans difficultés, mais bon.

Rendu du projet dans 4 semaines, pas le temps de glander!!!!!

A+!!

Yoch!

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...