Un robot en C ?

Fermé
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 - 5 juil. 2016 à 20:52
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 10 juil. 2016 à 13:39
Bonjour,

Tout d'abord je me présente j'ai 16 ans et j'ai une passion : la programmation !
Je m'y connait pas trop mal je trouve car ça fait déjà 1-2 ans que j'etudis le langage C sur un eBook de 400 pages que d'ailleurs je recommande ... Mais bref, je sais que faire des programmes comme des jeux et des trucs comme ça bref ça reste sur l'ordi
Mais mon RÊVE serait de faire un ROBOT !!!
Oui je suis fou je sais mais sérieux ça me fait délirer cette idée !
Alors j'ai pris ma souris en main et j'ai fait chauffer mon clavier des heures... en vain ;(
En effet , je ne comprends pas pourquoi google n'arrive pas a répondre a mes attentes ... JE VEUT SIMPLEMENT UN BOUQUIN OU UN SITE WEB POUR M'EXPLIQUER !!! ... pardon XD
Bref, je souhaiterai savoir quel micro-contrôleur utiliser (PIC ?) , quelles sont les instructions a utiliser dans la console (code::Blocks pour la robotique ? => c'est mon outil de programmation actuel) , les bases en électronique et mon plus GROS casse-tete : Comment passer un programme en C dans autre chose que l'ordi ( en gros mettre programme dans le robot)

Ohlala faut que je me calme sur les exigences ... dsl mais svp évitez les liens vers d'autres pages CCM essayez de mettre LA bonne réponse (même si c'est un ensemble de questions XD ), pensez aux prochains noobs comme moi qui voudrons tout savoir en une fois

Bonne chance à la personne qui me répondra comme je l'attends . Sachez que je le remercie infiniment d'avance

Vive la communauté CCM :D !!! J'vous adore <3

5 réponses

thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
5 juil. 2016 à 20:56
Petite précision j'ai pose les même questions a un VRAI programmateur de robot et il a pas su me renseigner . Trop complique selon lui >: (

Je vous fait confiance =}

JUST DO IT ! NOTHING IS IMPOSSIBLE !!!
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
5 juil. 2016 à 23:03
Bonjour,

les même questions a un VRAI programmateur de robot
C'est programmeur. Pas programmateur.

Tes questions dépassent allègrement la programmation C et donc le cadre du forum.

Pour le microcontrôleur, peu importe tant que tu peux programmer en C. Par exemple : MSC1210 (Texas), mais il en existe plein d'autres.
Ensuite, il faudra te procurer le manuel des instructions du microcontrôleur. Car, même si tu peux le programmer en C, cela ne respecte pas le standard ISO C89/90, C99, mais le "standard" du microcontrôleur. De plus, cela nécessite d'utiliser les registres et consort. Je te conseille donc, avant de te lancer dans un tel projet de te familiariser avec ces notions et d'apprendre l'assembleur.

Pour passer ton programme sur le microcontrôleur, il te suffira juste d'utiliser un logiciel adhoc qui fera le travail pour toi. Il compilera le programme et transfèrera le code sur le microcontrôleur. À voir donc du côté du fabricant de ton microcontrôleur.

Voilà pour ce que je peux te dire.

Bon courage dans cet intéressant projet.
0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
6 juil. 2016 à 14:30
Bonjour,

La personne avec laquelle j'ai discutée m'a parlée de l'assembleur alors voila, ma question serait de savoir si l'assembleur est un langage qui se debute a tout instant ou faut-il deja des bases solides sur d'autres langages?

Merci de ta réponse qui m'aide vraiment et au plaisir d'une vraie réponse (même si celle-ci est déjà super ;) )
Tchuss !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
6 juil. 2016 à 21:13
Oui, l'assembleur est un langage qui se débute à tout instant. Même, s'il vaut mieux en connaître un autre déjà (ou au moins l'algorithmie). Après, je ne te cache pas, qu'il faut être motivé pour comprendre, mais tu sembles l'être. L'idée d'apprendre l'assembleur n'est pas de bien le programmer, mais d'avoir les notions (registres, cpu, chargement mémoire, etc.). Cela te sera bien utile pour programmer les microcontrôleurs, même si tu le fais en C.
0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
7 juil. 2016 à 23:30
ah d'accooooord c'est juste pour comprendre plus en profondeur ! Merci du tuyau ;)
J'ai du boulot moi !

2-0 pour la France en finale de l'Euro ! Comble de la soirée malgré que je ne soit pas vraiment footeux
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
5 juil. 2016 à 23:04
Bonjour,
Ça c'est un bon rêve et facilement réalisable (non, tu n'es pas fou :p).
Il existe des kits avec micro-controleur, circuit, fils et quelques composants ainsi que des tutoriels complets en français.
J'en connais deux (les plus connus) Rapsberry PI avec lequel on programme en Python et Arduino qui a son propre langage basé sur du C/C++
Chacun propose plusieurs kits plus ou moins complet (niveau composant et capacité) et plus ou moins cher.
Le site d'Arduino : https://www.arduino.cc/
Et le tutoriel complet en français pour le prendre en main : https://www.openclassrooms.com/courses/programmez-vos-premier-montages-avec-arduino
Ainsi qu'un autre plus évolué une fois que tu auras fait le premier : https://www.openclassrooms/courses/perfectionnez-vous-dans-la-programmation-arduino
Les deux cours ont été écrit par le même auteur donc tu ne risques pas de retrouver des trucs du premier dans le deuxième ;)
Voilà, j'espère avoir répondu à tes exigences (bon sauf à une : ça ne sera pas vraiment du C dans ce que je te propose mais bon une fois que tu connais un langage de programmation, tu peux en utiliser d'autres, il y a juste la syntaxe qui change, quelques fonctionnalités (pas très importante enfin ça dépend des langages après) et le plus important les bibliothèques (mais de toute façon, même si tu trouvais un truc pour faire de la robotique en C, ça ne sera pas du tout les mêmes bibliothèques que sur ordinateur))
0
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
6 juil. 2016 à 12:51
Rapsberry PI avec lequel on programme en Python

Je me permets de corriger par:
Raspberry Pi avec lequel on programme dans n'importe quel language, le plus utilisé étant le C (bibliothèque WiringPi) suivi du Python (divers wrappers Python pour la bibliothèque WiringPi, par exemple RPi.GPIO).

Ce n'est pas le cas d'Arduino dont l'IDE impose effectivement un language basé C/C++, comme tu le dis.
0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
6 juil. 2016 à 14:26
Bonjour

Ne me demandez pas comment je vais faire mais bref je veut créer pas mal je suis têtu mais vraiment les kits et moi .. j'aime pas ça donc je veut création mais par création il y a moyens et ce qui me manque le plus c'est la connaissance de l’électronique en global. J'ai repris tout de même un peu conscience grâce a vus mais n'auriez vous pas quelque chose qui pourrait m'aider dans ma quête

Je sais je casse les bonbons parce que c'est vraiment abstrait ces demandes que je vous fait la mais vraiment je veut être fier de mon boulot et je vous avouerai que même en ayant tout programmé, je ne le serai presque pas avec ces kits ...

Même si vous ne savez pas comment m'aider, sachez que je vous remercie de m'avoir mené sur une quelconque piste ... merci vraiment !
0
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
6 juil. 2016 à 17:21
Si tu veux directement partir avec un microcontrôlleur, c'est tout à fait possible, mais ça sera beaucoup plus long et plus compliqué que si tu pars d'une carte qui met déjà autour du microcontrôlleur toute l'électronique dont tu as besoin pour le faire fonctionner.

La Raspberry Pi et l'Arduino ne sont PAS des kits comme tu l'entends (je n'avais pas vu cette terrible erreur de vocabulaire dans la réponse de TiDi), ce sont des cartes à microcontrôlleur (pour la seconde)/microprocesseur (pour la première).

L'Arduino est peu coûteuse (ça dépend des modèles bien sûr, on conseille l'Arduino Uno pour commencer), il s'agit du carte qui met autour d'un microcontrôlleur l'électronique permettant de le faire fonctionner, ainsi qu'un programmateur intégré (c'est ce qui te permet de transmettre le programme de ton ordi vers le microcontrôlleur), qu'il suffit de connecter en USB. Elle propose un IDE Open source qui te permet d'écrire le programme.

La Raspberry Pi est un peu différente. Ce n'est pas seulement une carte à microcontrôlleur, c'est une carte mère d'ordinateur complète, que tu peux donc programmer directement dans le language que tu souhaites.


Renseigne-toi sur ces deux cartes: Arduino et Raspberry Pi.
0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3 > paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018
6 juil. 2016 à 17:43
mais que eut-on faire avec ces cartes a part allumer des leds ? ( que je ne sais pas programmer ) et puis en plus ilme faudrait savoir le langage de l'arduino !
ca me semble plus simple c'est vrai
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
6 juil. 2016 à 18:30
En fait a partir d'une carte tu peux compiler un ode que tu enverras à ton robot par exemple
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 647
5 juil. 2016 à 23:33
Bonjour,

Déjà.. un programmateur.. c'est ça :http://www.conrad.fr/medias/global/ce/0000_0999/0700/0770/0775/077596_BB_00_FB.EPS_1000.jpg :-)

ou à la limite ça : https://user.oc-static.com/files/222001_223000/222955.jpg (c'est d'ailleurs ce que tu devras utiliser pour transférer ton code depuis ton PC vers ton micro controler


Ensuite... ta question concerne d'avantage l'electronique que la programmation en langage C.
Elle n'a donc pas vraiment sa place sur ce forum...

Après, comme le suggère [TiDi] , la mode aujourd'hui est d'utiliser une carte Ardruino.
Elle a l'avantage de posséder un processeur, de la ram, une carte graphique, des ports USB et hdmi.
Bref.. totalement autonome.


0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
6 juil. 2016 à 14:17
bonjour

Déjà c'est arduino et pas ardruino ... désolé XD
Bref arduino ne m’intéresse pas énormément mais merci pour ta réponse

A +
0
[TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016 262
8 juil. 2016 à 18:09
Après thesimskiller, il faut bien commencer quelque part. Peut être est-ce plus judicieux d'apprendre simplement au début le fonctionnement d'un robot, l'électronique, la programmation robotique et tout ça et te perfectionner plus tard quand tu auras déjà des bases. Là tu pourras mieux te diriger vers ce que tu veux faire, tu pourras mieux orienter tes recherches et ça ira sans doute plus vite que si tu commences par quelque chose de lourd dès le début (en apprenant l'assembleur, le bash et tout les trucs qu'on ta proposé, tu n'y arriveras à rien).
En clair : commence par la base et fait évolué ton projet par la suite, crois-moi par expérience, ça ira plus vite, tu apprendras ce qui est nécessaire et tu auras moins de risque de te perdre.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > [TiDi] Messages postés 126 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 17 juillet 2016
8 juil. 2016 à 21:01
(en apprenant l'assembleur, le bash et tout les trucs qu'on ta proposé, tu n'y arriveras à rien).
Ya pas de bash en microcontrôleur...
Concernant l'assembleur, comme je l'ai dit, l'idée n'est pas d'apprendre à bien connaître l'assembleur mais de connaître les notions (registres, etc.). Et ça c'est largement faisable avec un minimum de motivation (d'autant qu'il connaît déjà le C) :-).
0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
8 juil. 2016 à 21:28
Pour l'assembleur, je vais pas mal regarder parce que sur la fiche que je vous avaient passée ( http://iusti.polytech.univ-mrs.fr/~vicente/supportcours/cours_microcontrol_2005.pdf ) , ils expliquent des choses avec ce langage ( exemple rien qu'avec la page 12 ! )
Mais ouai je sais pour la robotique mais en vrai ce qui m’intéresse le plus c'est de faire le programme.. Bon après bien sur que j'adore l'application du langage au matériel, le faire devenir palpable, c'est ce qui m'attire énoooormément; et je ne sais pas pourquoi mais je préférerait presque un commentaire de français en C plutôt qu'en naturel ^^'

Bref juste pour vous dire que oui tidi je grille des étapes, mais le langage c'est pour moi le plus intéressant ( la robotique étant "simplement" une application; mais attention j'adore quand même ça comme un motard aime sa harley !).
Bien compliqué, mais ne t'inquiète pas, je verrais ca après ( si je ne le vois pas, j'en souffrirai de toute façon lors de l'application XD )

PS : Fiddy, dans le début du pdf dont je vous ai passé un lien, les registres CPU, ça n'a rien a voir avec les registres que je dois voir ? Je pense que non mais je demande confirmation par plus qualifié ... ^^

Merci et salut a tous,

H.C
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018
8 juil. 2016 à 21:50
Bref juste pour vous dire que oui tidi je grille des étapes,
Tu n'en grilles pas tant que ça, t'inquiète.

Et oui, les registres CPU, c'est exactement ce dont je te parlais :-).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
6 juil. 2016 à 14:31
Salut,

Le C tu t'y connais mais le C++ tu l'inclus dedans ou pas?
Je pense qu'il serai plus adapté pour ce que tu veux.

Pour ce qui est de ton robot, tu devras gérer le pneumatique, les moteurs, le refroidissement et plein d'autres paramètres mais vu que tu ne les possède pas (je suppose), tu ne peux pas vraiment paramétré tout ça.

Après c'est un robot pour faire quoi?
Discuter avec toi ou juste pour porter un carton?
Il doit dialoguer ou juste faire?

0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
6 juil. 2016 à 14:39
Bonjour,

Bon je dit robot mais je voudrais des connaissances en robotique et surtout électronique parce que quand tu dit débutant en électronique ... ben c'est moi XD ...

Mais ce que je veut surtout c'est les commandes a utiliser sur un code avec un langage ( C ? )
Pour le dialogue ça me semble un peu impossible mais si tu peut me mettre sur une piste ça serai super ! merci à toi
0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3 > thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018
6 juil. 2016 à 14:40
Et puis plutot que le C++, je pensais l'assembleur suite a une précédente réponse sur le sujet ...
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
6 juil. 2016 à 14:49
Je dirai qu'il te faut une sorte d'os.

Il te faut dans un premier temps un "noyau".

https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation#Fonctions_g.C3.A9n.C3.A9ralement_remplies_par_un_noyau

Car ton matériel ne va pas se gérer tout seul :)

Après comme dans un os, il faut des scripts qui s'exécuteront très rapidement (donc pas du C mais tu peux appeler des scripts bach par exemple).

Si ton robot possède un os de base (linux, windows etc etc) ce sera plus simple pour toi, tu auras juste à paramétrer tes scrips bach ou shell comme tu l'entends.

Après l'assembleur c'est vraiment un langage de bas niveau (instructions à la suite et difficilement relisable).

Après l'électronique, des docs sont fournies avec les équipements, ça reviens à du "copier coller" pour les paramètres que tu donneras au code.

Après pour ce qui est du mouvement du robot, je te conseille comme pour tous les os, de créer des processus comme pour windows.

Ex: bougerBras, bougerJambe, tournerTête etc etc ....

Tu pourras bien sur entrer des paramètres mais pour commencer tu t'en fiche.
0
thesimskiller Messages postés 59 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 mai 2018 3
6 juil. 2016 à 15:36
re

Perso j'ai lu ca:
À l'origine, les microcontrôleurs se programmaient en assembleur. Fortement bas niveau (et donc, intrinsèquement optimisé), l'assembleur posa et pose toujours d'énormes problèmes pour la maintenance et l'évolution des logiciels embarqués. Désormais, on utilise de plus en plus des langages de haut niveau, notamment le langage C, capable de faciliter la programmation de microcontrôleurs toujours plus puissants. Ces compilateurs C présentent généralement certaines restrictions liées aux spécificités des microcontrôleurs (mémoire limitée, par exemple). Le compilateur GCC peut produire du code pour certains microcontrôleurs

Alors voila on doit vraiment passer en assembleur selon toi ?
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
Modifié par Pierre1310 le 6/07/2016 à 15:39
Comme je l'ai dis dans mon pavé, c'est difficile à reprendre du code assembleur, c'est pour ça que le langage dit de haut niveau est privilégié par sa compréhension et sa maintenance simplifiée.

Tu t'es renseigné sur ce que je t'ai dis?
Tu comptes y mettre un OS?
Qu'est-ce qui va gérer ton robot?
0