programmer des robots en C
Répondre à la discussion
Affichage des résultats 1 à 26 sur 26

programmer des robots en C



  1. #1
    anrthos

    programmer des robots en C


    ------

    Bonjour a tous,

    Pour ceux qui le savent je débute en électronique. Je suis pas mal de cours j'apprend dans des livres et je pratiques assidûment et j'avance. Par la suite j'aimerai bien concevoir (sans prétention aucunes) des robots. Parmi les différents langage de programmation je m'oriente vers le C et je souhaiterais savoir la chose suivante. Puisque ce n'est pas pour tout de suite serais-t-il judicieux de m'exercer en programmant des application pour PC? ou est-ce trop différent de la programmation pour la robotique?

    J'attend vos avis avec impatiences merci!

    -----

  2. #2
    antek

    Re : programmer des robots en C

    Citation Envoyé par anrthos Voir le message
    Puisque ce n'est pas pour tout de suite serais-t-il judicieux de m'exercer en programmant des application pour PC ?
    C'est une très bonne idée pour apprendre le langage et la programmation.
    La robotique utilise beaucoup de µC, tu peux aussi te familiariser avec ces bestioles en faisant de l'assembleur.

  3. #3
    anrthos

    Re : programmer des robots en C

    merci pour ta réponse antek,

    peut tu me dire ce qu'est de l'assembleur? J'en ai entendu parler en faisant mes recherches mais je ne sais pas vraiment de quoi il s'agit. Merci

  4. #4
    antek

    Re : programmer des robots en C

    Citation Envoyé par anrthos Voir le message
    peut tu me dire ce qu'est de l'assembleur ?
    En gros, c'est un langage machine adapté et enrobé de facilités pour qu'un humain puisse l'utiliser facilement.
    Il permet d'accéder à tous les composants hard du µC (ou du µP).
    De mon point de vue, il faut au moins en avoir une idée, même en programmant en C, pour savoir ce qu'on fait.
    D'autres disent que c'est un truc qui sert à rien et que c'est une perte de temps de l'apprendre.
    Le seul cours complet en français pour assembleur que je connaisse se trouve là : http://www.abcelectronique.com/bigonoff/
    On n'est pas obligé d'adhérer à ses choix politiques . . .

  5. A voir en vidéo sur Futura
  6. #5
    ranarama

    Re : programmer des robots en C

    L'assembleur est plus long à apprendre que le C mais c'est assez complémentaire, notamment pour éluder les difficultés de compréhension liées à la mémoire : les pointeurs en particulier qui correspondent à un ou des mode(s) d'adressage(s) particulier(s) en assembleur.
    Attention un code en assembleur n'est compatible que pour une puce en particulier (mm si les grands principes restent valables pour tous)
    En C le livre de Nebra est parfait pour débuter, avec une version gratuite en ligne : https://openclassrooms.com/courses/a...rogrammer-en-c
    Même si je conseille plutôt la version "broché" de la second édition qui sort la semaine prochaine
    http://www.amazon.fr/Apprenez-progra...mer+en+C+!+%28
    Enfin les format kindle de la collection sont pas cher : http://www.amazon.fr/Apprenez-%C3%A0...6613465&sr=1-3

  7. #6
    antek

    Re : programmer des robots en C

    Citation Envoyé par ranarama Voir le message
    L'assembleur est plus long à apprendre que le C mais c'est assez complémentaire, notamment pour éluder les difficultés de compréhension liées à la mémoire : les pointeurs en particulier qui correspondent à un ou des mode(s) d'adressage(s) particulier(s) en assembleur.
    Attention un code en assembleur n'est compatible que pour une puce en particulier (mm si les grands principes restent valables pour tous)
    En C le livre de Nebra est parfait pour débuter, avec une version gratuite en ligne : https://openclassrooms.com/courses/a...rogrammer-en-c
    Même si je conseille plutôt la version "broché" de la second édition qui sort la semaine prochaine
    http://www.amazon.fr/Apprenez-progra...mer+en+C+!+%28
    Enfin les format kindle de la collection sont pas cher : http://www.amazon.fr/Apprenez-%C3%A0...6613465&sr=1-3
    D'abord non, et ensuite la comparaison n'a aucun sens lorsqu'on parle d'apprentissage.
    Un code en C aussi.

  8. #7
    ranarama

    Re : programmer des robots en C

    Je maintiens que pour ce qui est du PC "L'assembleur est plus long à apprendre que le C" puisqu'il faut apprendre quasiment tout sur l’électronique de tous les composants de l'ordi, ce qui prends des semaines, voir des mois + autres joyeusetés théoriques genre l’hexadécimal (non) signé , tout cela les programmeurs C n'ont que faire, donc en deux/trois semaines c bouclé ; et un code C compilé avec GCC tourne sur pratiquement toutes les microprocesseurs (AMD64, ARM, DEC Alpha, M68k, MIPS, PowerPC, SPARC, x86, Hitachi H8). [source : https://fr.wikipedia.org/wiki/GNU_Compiler_Collection]

  9. #8
    antek

    Re : programmer des robots en C

    Citation Envoyé par ranarama Voir le message
    Je maintiens que pour ce qui est du PC "L'assembleur est plus long à apprendre que le C" puisqu'il faut . . .
    Oulala mais bien sûr . . .
    Je parlais dans le contexte du demandeur -> commencer à s'intéresser à la robotique -> languages ET micro-contrôleurs

  10. #9
    ranarama

    Re : programmer des robots en C

    Pourtant dans le msg #1 il écrivait
    Citation Envoyé par anrthos Voir le message
    Puisque ce n'est pas pour tout de suite serais-t-il judicieux de m'exercer en programmant des application pour PC?
    D'ailleurs contexte µC ce n'est pas tout rose non + : les bus, les moules d'extensions, les composants etc
    Dernière modification par ranarama ; 11/07/2015 à 17h23.

  11. #10
    DAUDET78

    Re : programmer des robots en C

    Citation Envoyé par ranarama Voir le message
    les moules d'extensions,
    Moi, je les aime bien avec des oignions et un filet de vin blanc ...
    J'aime pas le Grec

  12. #11
    ranarama

    Re : programmer des robots en C

    Bah encore une preuve de la pertinence de la loi de murphy : cette touche "d" fatiguée qui te trahis comme par hasard au pire moment

  13. #12
    PIXEL

    Re : programmer des robots en C

    RRRHHHOOOOOOOO LUI

    EN mouclade : échalotes , crème fraiche , une pointe de curry

  14. #13
    PA5CAL

    Re : programmer des robots en C

    Bonjour

    Du point de vue des principes, l'assembleur me semble bien moins long à apprendre que le langage C, lequel apporte en plus des règles syntaxiques et des librairies standards.

    C'est la connaissance des bases de l'informatique, de l'électronique numérique, de l'architecture et de l'environnement matériel particulier qui risque d'être plus très longue à acquérir. Or, pour de la programmation de bas niveau, cela vaut autant pour l'un que l'autre langage. Et au-delà des principes généraux, un langage assembleur particulier ne peut être maîtrisé qu'après avoir acquis ces connaissances, et notamment celles spécifiques au matériel utilisé.

    En ce qui me concerne, j'ai commencé par apprendre les langages assembleur de plusieurs microprocesseurs 8 bits, et cela m'a énormément aidé quand j'ai ensuite appris et pratiqué le langage C.


    S'agissant de robotique, la programmation n'est qu'une partie des techniques et des sciences qu'il faut connaître.

    La mécanique, l'électronique analogique et l'automatique sont très importantes, et elles peuvent être beaucoup plus longues à apprendre. (Contrairement à ce que certaines demandes sur ce forum laissent parfois supposer, il ne suffit pas d'alimenter le moteur d'un robot pour que celui-ci réalise correctement le mouvement désiré.)

    Dans les cas où le fonctionnement impliquerait des puissances notables ou des manipulations dangereuses, la maîtrise des risques et de la sécurité dans la conception serait également indispensable.
    Dernière modification par PA5CAL ; 11/07/2015 à 18h12.

  15. #14
    ranarama

    Re : programmer des robots en C

    c'est oublié qu'il existe des bibliothèques C pour tout et son contraires (donc aucune importances de savoir comment le hardware fonctionne). Les gamins qui construise leur robots Arduino n'ont aucune idée du fct d'un bus, d'une PWM ...etc à l'infini. à chaque besoin il y a une bibliothèque pour y pourvoir. Le besoin est pourvu, on passe à autre chose

    Va trouver des bibliothèques assembleurs équivalente...

    Faudra donc se taper le développement de l'algo en ASM, ce qui est 100 fois + long que de lire 20 lignes de doc sur la fonction C équivalente.

    Bref l'assembleur c'est très long à apprendre car tu dois apprendre et retenir tout les détails. En C tu progresse bcp + vite en robotique (en zappant les détails) car tu es porter par le tapis volant des bibliothèques

    conclusion : le choix entre ASM et C c'est plus répondre à la question (au sujet de la robotique):
    Est-ce que je veux tout comprendre en détails ou est-ce que je préfère progresser rapidement ?

    NB : rien n’empêche d'apprendre les deux en //

  16. #15
    antek

    Re : programmer des robots en C

    Citation Envoyé par ranarama Voir le message
    c'est oublié qu'il existe des bibliothèques C pour tout et son contraires (donc aucune importances de savoir comment le hardware fonctionne). Les gamins qui construise leur robots Arduino n'ont aucune idée du fct d'un bus, d'une PWM ...etc à l'infini. à chaque besoin il y a une bibliothèque pour y pourvoir. Le besoin est pourvu, on passe à autre chose
    Tout à fait.
    Ils ne savent pas ce qu'ils font, ensuite ils viennent chougner sur les forum "ça marche pas" avec des codes auxquels ils ne comprennent rien.
    Mais si comprendre ce qu'on fait est superflu . . .

  17. #16
    antek

    Re : programmer des robots en C

    Citation Envoyé par ranarama Voir le message
    Bref l'assembleur c'est très long à apprendre car tu dois apprendre et retenir tout les détails. En C tu progresse bcp + vite en robotique (en zappant les détails) car tu es porter par le tapis volant des bibliothèques
    Est-ce que je veux tout comprendre en détails ou est-ce que je préfère progresser rapidement ?
    Si on commence à apprendre avec un Cortex-M3, alors l'assembleur va être un peu long à apprendre.
    Mais je présume qu'on commence avec des choses simples comme des 8 bit.

    C'est quoi l'apprentissage, si ce n'est commencer par apprendre et retenir ?

    De cette façon on progresse dans la recherche des bons programmes, rien d'autre.

  18. #17
    ranarama

    Re : programmer des robots en C

    D'après moi, en assembleur le plus accessible parmi les µC ce sont les PICS (en commençant par les PIC 12) grâce aux nombreux livres de Mr Tavernier :
    http://www.amazon.fr/s/ref=nb_sb_nos...pic+tavernier+
    + ce que tu as cité : http://www.abcelectronique.com/bigonoff/

    L'arduino ben rien, leur logiciel accepte mm pas l'ASM

    En comparaison des livres pour ARM il y en a qu'1 en français, .. et 50 en chinois
    http://www.amazon.fr/s/ref=nb_sb_nos...2109%2Ck%3Aarm
    Sur le web, rien en Fr à ma connaissance..

    Du coup le choix est vite fait
    Dernière modification par ranarama ; 11/07/2015 à 20h06.

  19. #18
    Jack
    Modérateur

    Re : programmer des robots en C

    Pour moi également, l'apprentissage d'un langage "assembleur" est bien plus rapide que celui du C. La preuve, je connaissais par coeur le jeu d'instruction (et même une bonne partie du langage machine pour certain processeurs) de plusieurs processeur alors qu'après de nombreuses années de C, je découvre encore parfois certaines subtilités ou options peu utilisées.

    Pour ce qui concerne la partie registres du processeur (en dehors de ceux de l'UC), le problème de leur gestion est le même quel que soit le langage

  20. #19
    antek

    Re : programmer des robots en C

    Citation Envoyé par ranarama Voir le message
    + ce que tu as cité : http://www.abcelectronique.com/bigonoff/
    L'arduino ben rien, leur logiciel accepte mm pas l'ASM
    Tiens j'y pense, le citoyen BIGONOFF nous a pondu un tuto sur Cortex-M3, dans un µC de chez NXP.
    L'arduino, heu . . . comment dire . . .

  21. #20
    ranarama

    Re : programmer des robots en C

    Citation Envoyé par antek Voir le message
    Tiens j'y pense, le citoyen BIGONOFF nous a pondu un tuto sur Cortex-M3, dans un µC de chez NXP.
    L'arduino, heu . . . comment dire . . .
    Bonne trouvaille Il doit surement avoir ses raisons pour ne pas avoir retenu la framboise comme support de cours. J'irai lire ça

  22. #21
    PA5CAL

    Re : programmer des robots en C

    Citation Envoyé par antek Voir le message
    Ils ne savent pas ce qu'ils font, ensuite ils viennent chougner sur les forum "ça marche pas" avec des codes auxquels ils ne comprennent rien.
    Mais si comprendre ce qu'on fait est superflu . . .
    +1

    Quand les problèmes ne concernent pas purement des problèmes de programmation ou de réalisation de montages, ils sont nombreux à nous solliciter pour tenter de faire marcher leur programme "qui est bon parce qu'il marche chez le voisin". Le plus souvent, les réalisations tombent juste accidentellement en marche, sans qu'ils comprennent les phénomènes et les mécanismes sous-jacents, ni qu'ils imagent les développements et les réglages qui en ont découlé. Et quand ça ne marche pas ou pas bien, c'est juste parce que ce qu'ils ont recopié plus ou moins bêtement ne répond pas à leur cas de figure.

    Pour réaliser un projet, il ne faut pas seulement savoir programmer, il faut aussi savoir quoi écrire. Du temps où ingénieurs métier, analystes et programmeurs avaient des tâches distinctes, c'était une évidence. Aujourd'hui où tout le monde fait un peu n'importe quoi, on a l'air de l'avoir un peu oublié.

    Citation Envoyé par ranarama Voir le message
    L'arduino ben rien, leur logiciel accepte mm pas l'ASM
    En ce qui me concerne, un programme sur cinq que j'écris pour Arduino contient de l'assembleur.

    Et assez souvent je ne le fais pas par plaisir, mais parce que j'y suis obligé pour atteindre les performances requises par mes applications.
    Dernière modification par PA5CAL ; 11/07/2015 à 21h31.

  23. #22
    anrthos

    Re : programmer des robots en C

    merci pour toutes vos réponses ainsi que pour vos échange,
    Je retient que je peut faire le choix d'apprendre rapidement ou d'apprendre en détail, ou encore les deux en même temps. Sachant que pour le moment je n'ai pas les moyen d'investir dans du matériel pour programmer des microprocesseur et que je ne peut que programmer pour mon ordi (des prog sur ordi j'entend). Par quoi est-il judicieux de commencer?

  24. #23
    ranarama

    Re : programmer des robots en C

    Comme dis +haut, Je conseille à tous les débutants l'étude les parties 1 et 2 de ce cours https://openclassrooms.com/courses/a...rogrammer-en-c car cela constitue la base commune à bcp de langage, il propose plein d'exercices et de plus tu as le forum en secours : https://openclassrooms.com/forum/categorie/langage-c

    Citation Envoyé par PA5CAL Voir le message
    +1
    En ce qui me concerne, un programme sur cinq que j'écris pour Arduino contient de l'assembleur.

    Et assez souvent je ne le fais pas par plaisir, mais parce que j'y suis obligé pour atteindre les performances requises par mes applications.
    Interessant ! S'il te plais peux tu me dire ce que tu utilises comme Os et soft ?
    Dernière modification par ranarama ; 11/07/2015 à 22h49.

  25. #24
    PA5CAL

    Re : programmer des robots en C

    Citation Envoyé par ranarama Voir le message
    Interessant ! S'il te plais peux tu me dire ce que tu utilises comme Os et soft ?
    Pour l'OS, c'est Windows, Mac OS X ou Linux selon la machine de développement que j'utilise, mais ça n'a pas d'importance.

    Pour le soft, c'est juste celui fourni dans le package Arduino, constitué notamment d'une chaîne de compilation avr-gcc, qui inclut un assembleur. Le code assembleur peut être intégré au code C Arduino classique (directive asm() ), ou bien être compilé séparément pour être intégré à un projet sous forme de fichier objet ou de bibliothèque, ou pour être téléchargé directement sur la carte Arduino.

  26. #25
    ranarama

    Re : programmer des robots en C

    Bjr

    @Anrthos
    J'ai trouvé un petit article très bien écrit qui explicite les problématiques liées à l'usage (ou pas) de l'ASM :
    http://www.docmirror.net/fr/linux/ho...O-2.html#ss2.2
    cela permet de voir que si l'assembleur et le C sont deux langages bien différent, il peuvent être complémentaires.


    @PA5CAL
    Super ! Merci ! Ah j'avais mm pas vu qu'Arduino fournissait l'assembleur GAS et le linker arf ... Faut dire que j'ai pas trop touché mon arduino à part copier coller des trucs du web Peut etre ya mm un Gcov quelque part (on peut réver) ..

    Je vais comme d'hab éviter l'ASM in-line de GCC : avec tous ces (" ... "); ça deviens vite illisible déjà que sans... ^^ par contre le mode séparé m’intéresse

    Du coup je vais retourner sur Geany (mon éditeur préféré ^^) quitte à me taper la gestion des bibliothèques.
    Geany permet d'ailleurs de travailler le(s) fichier(s) ASM, C, H, MAKEFILE simplement en changeant d'onglet, de lancer des compil C ou ASM (ou ...) et bien entendu des MAKE.EXE, c top cool une fois maitrisé ^^
    J'ai déjà testé un peu j'arrive à lancer une compil du "Blink" mais avec un msg d'erreur horrible. J'ai trouvé la doc http://download.savannah.gnu.org/rel...-1.8.1.pdf.bz2
    Bon faut que je lise tout ça et je devrais m'en sortir (j'ouvrirais un sujet sinon), en refermant la parenthèse.

  27. #26
    anrthos

    Re : programmer des robots en C

    merci pour vos réponses, je vais commencer par suivre les cours de prog en C des openclassroom. ce sera un bon début je pense et au moin je serai pas quoi commencé!

Discussions similaires

  1. Robots: HELP ME !
    Par imswaggyman dans le forum Électronique
    Réponses: 11
    Dernier message: 02/08/2013, 08h52
  2. ère des robots ?
    Par invite797e3f24 dans le forum Discussions scientifiques
    Réponses: 11
    Dernier message: 20/05/2010, 02h22
Découvrez nos comparatifs produits sur l'informatique et les technologies.