Page 1 sur 1

Python android robot?

Posté : jeu. 24 sept. 2020 10:50
par michelw
Bonjour,
Je cherche à faire un projet simple qui allierait la conception d'un objet (robot ou autre...) qui soit programmable en python et dont l'interface de commande soit déportée sur un téléphone android sans faire de java si possible. Quelle carte interface me conseillez-vous, avez-vous un lien vers un tutoriel existant? En vous remerciant pour vos retours.

Re: Python android robot?

Posté : ven. 25 sept. 2020 09:18
par Bud Spencer
Développer une appli Android avec du python tu peux déjà oublier cette idée. Si tu ne veux pas faire de Java et que tu veux une vrai appli Android, il y a d’autre langage qui vont très bien pour ça (c++, c#, kotlin …).

L’autre solution, c’est développer une application serveur http en python sur le PI avec un framework dédié (Django, Flask, Bottle, Tornado … ) et des websocket puis d’utiliser le navigateur le l’Android (ou de n’importe quoi d’autre). Bien évidemment, ça t’oblige à coder la partie dynamique coté client en javaScript (ne pas trop compter sur wasm avec python …).

Est-ce une bonne idée ? Non ! Python est le pire langage que tu puisses choisir pour ce genre de chose, mais ça tu t’en rendras vite compte par toi-même 😉

Re: Python android robot?

Posté : ven. 25 sept. 2020 09:36
par michelw
Oui je suis d'accord avec vous, je m'attendais à ce type de réponse mais j’espérai un peu, probablement à tord.

Re: Python android robot?

Posté : ven. 25 sept. 2020 10:41
par Bud Spencer
Si tu ne te sens pas de t’investir dans l’apprentissage un vrai langage plus adapté pour ce genre de projet, je te recommande vivement du JavaScript avec NodeJS. Tu auras beaucoup moins de code à écrire qu’en python et que des avantages (performances, scalabilité, facilité d’exploitation …). Il faut prendre en compte que le fait de devoir coder du JavaScript te sera indispensable pour la partie client si tu veux du dynamisme et du temps réel. En utilisant NodeJS, tu n’utilises plus qu’un seul et même langage coté client et serveur avec en prime la possibilité d’écrire des ressources communes des 2 côtés. Rien ne t’empêche ensuite de faire appel à des subprocess écris en python coté serveur. Si tu ne l’as pas déjà fait, jette un coup d’œil là-dessus. Ca répond très bien aux besoins que tu as sans pour autant faire appel à des méthodes et des langages de programmation trop compliqué ou trop stricte.

Re: Python android robot?

Posté : ven. 25 sept. 2020 12:59
par michelw
Oui merci!

Re: Python android robot?

Posté : jeu. 22 oct. 2020 11:59
par michelw
Bonjour,
Mon cahier des charges se précise peu à peu. Je souhaite réaliser avec mes élèves un robot roulant style suiveur de ligne mais également pilotable à la "main" avec un téléphone android. Il devra être programmé en python.
J'ai donc pensé à une carte mico-python. Il s'en suit les questions suivantes:
Quelle carte choisir?
Faut-il la obligatoirement la coupler avec une carte raspberry ou android?
Si oui comment choisir entre ces deux cartes précédentes?
En remerciant ceux qui prendront le temps de m'éclairer car j'avoue que cela reste confus pour moi.

Re: Python android robot?

Posté : jeu. 22 oct. 2020 16:50
par destroyedlolo
Salut,

En sortant du rapberry, il y a plein de kit de voitures programmables a base d'ESP pour quelques dizaines d'Euros chez les sites asiatiques.
J'en avais pris une pour mon gamin : Avec le programme de base, elle est commandable avec une applie Android, mais comme l'interface est documentée, ils montraient aussi des exemple en Scratch sur PC et donc pourquoi pas du Python.
Comme c'est un ESP, tu peux directement le programme en microPython ou dans pleins d'autres languages.

Et comme évolution ultime, rien de t’empêche de faire un truc hybride avec a la fois un progamme en local et a distance (genre comme les sondes martiennes).

Re: Python android robot?

Posté : ven. 23 oct. 2020 10:47
par Bud Spencer
Une carte µPython ne change rien aux données du problème et ne ferait que rajouter des limites au projet. Tout ce que vous pourrez faire avec n’importe quelle carte µPython, vous pouvez aussi le faire avec un PI mais pas l’inverse. L’avantage d’utiliser un PI, c’est que vous allez pouvoir travailler avec le standard Python (qui est plutôt limité avec µPython) ce qui vous donne accès à de très nombreuses sources de documentations et d’exemples et vous aurez beaucoup plus de chance de trouver de l’aide quand vous serez ‘coincé’. Pour ce genre de projet, pas besoin d’un PI à 80€, un simple PI Zero W suffit.

Qu’elle que soit la carte, le problème reste toujours le même. Il sera impossible d’écrire une application Android en python pour piloter ce robot donc les seules solutions sont soit d’utiliser une application Android ‘existante’ (et de vous plier à ses contraintes) ou alors d’intégrer dans votre programme python une api capable de traiter des requêtes http pour utiliser le navigateur du smartphone comme client (ce que je vous expliquais plus haut). Comme d’habitude, tout reste une question d’ambition. Soit reprendre un truc qui existe déjà et le mettre en application sans comprendre tout ce qu’il fait ou alors profiter de l’opportunité du projet pour apprendre comment faire 😉

Re: Python android robot?

Posté : sam. 24 oct. 2020 13:57
par michelw
Merci pour vos réponses, effectivement ce tutoriel répond à mes demandes python et raspberry. C'est complètement adapté à mon besoin actuel.