bonjour
je voudrais faire un petit robot avec des servomoteurs,leds...mais je sais pas avec quel microcontroleur pic je peut faire sa???
merci
-----
bonjour
je voudrais faire un petit robot avec des servomoteurs,leds...mais je sais pas avec quel microcontroleur pic je peut faire sa???
merci
Bonjour,
Ton "robot" est capable de souder en usine?
Il te faut alors au moins un PIC16F887 à 40 pattes.Si tu prévois qu'il aura beaucoup de calculs à faire, prends un dsPIC30F4011 à 40 pattes aussi. Tu trouves des armées de microcontrôleurs sur www.microchip.com avec les logiciels gratuits pour programmer.
pont
Si ton robot est juste un bricolo pour t'amuser, un PIC16F88 à 18 pattes te satisfera pleinement.
comme tu dis c'est un robot pour m'amuser !
j'ai lu quelque tuto sur la compilation avec mplab mais c'est asses compliqué!est que vous connaissez d'autre ide pour uc (je code en c de preference!)
MPLAB est assez mal foutu, mais dire que c'est compliqué... quand même pas...
bonjour
ouai c'est vrai que c'est pas compliqué mais si vous en connaissez d'autre...
Bonjour,
Tout d'abord il y a d'autres µcontrôleurs que les PIC, mais c'est vrai que les PIC sont abordables.
Pour la programmation en C je conseille les PIC18 (le compilateur des PIC16 n'est pas fait pas Microchip et est assez limité comparé aux PIC18).
Comme ça a déjà été dit, pour les gros calculs (en flottant par ex) les dsPIC ou mieux.
Si tu veux une mémoire persistante il faut un PIC avec EEPROM (les PIC16 et 18 en ont, il me semble que les dsPIC n'en ont pas).
Personnellement j'utilise Eclipse avec le plugin CDT pour programmer, et je reviens sous MPLAB uniquement pour compiler et débugger (avec MPSIM).
pour programmer un pic aussi il faut utiliser les instructions du pic et pas de langage C
je me trompe?
Bonjour electronique du 62,
Tout dépend de l'utilisation en sortie du PIC, il existe des C chez Hi-Tech, (dont je me demande si ce n'est pas une société de Microchip) pour la série 16, il est évident que lec 18 estv plus fort que lev 16 et chacun sec met au barreau dec l'échelle qui lui plait, mais il y a du C à partir du 16.
Pourquoi utiliser du C? En généra
moi je sais que en cour on fait que en assembleur alors que c'est des pic 16F 497 il me semble donc voila
L'éditeur a sauté, je reprends à zéro:
Bonjour electronique du 62,
Tout dépend de l'utilisation en sortie du PIC, il existe des C chez Hi-Tech, (dont je me demande si ce n'est pas une société de Microchip) pour la série 16, il est évident que le 18 est plus fort que le 16 et chacun se met au barreau de l'échelle qui lui plait, mais il y a du C à partir du 16.
Pourquoi utiliser du C? En général c'est pour aller plus vite en cas de gros projets, ou pour des applications simples qui ne sont pas "pointues" en temps par exemple, si on veut faire une routine en C pour un afficheur graphique LCD, on se heurte à un mur, il faut la faire en assembleur. De même si on vous de demande de faire une tempo de 37 microsecondes, vous n'allez pas utiliser un Basic qui ne connaît que les millisecondes. Et le C évite de faire des développements limités pour les fonctions circulaires et autres, mais en assembleur cela marche aussi, il n'y a pas de limite . Certains font des programmes mixtes, C et ASM, chacun fait comme il veut. L'assembleur, c'est plutôt pour des commandes matérielles, c'est plus simple (par ex piloter un moteur pas à pas). Quand on ne connaît que le C ou le Pascal, on s'y accroche, mais on ne pourra pas tout faire.
pont
donc pour toi avec l'assembleur on a moins de limite que le C?
moi je connai pas dutout le C...
mais oui commencé un moteur pas a pas je l'ai déja fais en cour!
merci de ta reponse en tout cas
Oui, electronique du 62, ton prof a raison et tu peux tout faire, je commençais par faire du Pascal, s'appliquant à faire des travaux graphiques sur l'écran du Pc et cela apprend les structures de base. deuxième stade: travail toujours PC et Turbo Pascal, mais travail sur une interface, pilotage d'un ascenseur. Et tout en gardant des travaux sur PC, on passe à l'assembleur. Celui qui programme en Pascal passe très facilement au C, car cela se ressemble.
. .Tu ne devrais pas avoir de problème pour faire ton robot, mais ne pars pas sur trop compliqué.
pont
bonjour,
si tu veux faire quelque chose de simple pour commencer tu peux utiliser un picbasic
http://www.lextronic.fr/R966-modules-picbasic.html
ce n'est pas un langage trés performant, cependant cela te permet simplement de faire matcher quelques bricoles trés rapidement
quand tu seras confronté aux limitations inherentes à ce genre de produits, tu sera content de pouvoir te tourner vers des langages un peu plus complexes mais beaucoup plus performants.
tu trouveras aussi beaucoup de tutoriels ou il est expliqué la construction de petits robots avec un pic basic et cela d'une facon abordable pour un non informaticien
fred
Il faudrait nous en dire plus, sinon, je te conseillerai, vu le prix d´un microcontroleur d´en prendre un "trop" puissant pour ne pas avoir à changer de modèle parce qu´il ne suit plus... (vu que c´est pour t´amuser/apprendre, ça ne sert à rien de passer 3 jours à chercher exactement ce qu´il te faut, t´en prend un avec pas mal de périphériques et de mémoire et puis en plus comme ça, tu pourras apprendre à gérer tous les différents périphériques)bonjour
je voudrais faire un petit robot avec des servomoteurs,leds...mais je sais pas avec quel microcontroleur pic je peut faire sa???
merci
Bonjour,donc pour toi avec l'assembleur on a moins de limite que le C?
Je donne juste mon avis sur ce point car personnellement, je ne parlerais pas de limite mais d´optimisation.
Pour electronique du 62: Un µP travail en binaire, chaque instruction qu´il doit exécuter est un nombre écrit dans sa mémoire de code. Ces nombres sont appelés langage machine.
Pour rendre la programmation plus aisée (plus compréhensible par des êtres humains), on a associé chaque nombre effectuant une tache à un mot (appelés mnémoniques). Par ex: mov = 01100100. donc au lieu d´écrire une suite de 1 et de 0, tu écris en assembleur.
Le langage assembleur est donc "très proche de l´µP", à chaque instruction correspondra une seule action de ton µP. Et il te faudra donc connaitre toutes les instructions que ton µP connait pour pouvoir le programmer.
Le langage C est un langage de plus haut niveau (on fait abstraction du type d´µP), c´est à dire qu´avec le langage C, tu vas écrire un programme qui pourra fonctionner sur tous les µP.
Mais bien sûr, l´µP ne comprend pas le C puisqu´il ne comprend que le langage machine, donc on va utiliser un logiciel appelé compilateur qui va transformer le programme en C en une suite d´instructions en assembleur (qui seront donc facilement transformé en langage machine).
Simplement, comme c´est un programme qui convertit le C en assembleur, il ne le fait pas aussi proprement que si tu écrivais directement ton programme en assembleur (ce que l´on appel l´optimisation).
Donc il va y avoir probablement plus d´instructions dans ton programme, il mettra donc plus de temps à s´exécuter.
Tout ça pour dire que le langage C n´est pas plus limité que le langage assembleur, il permet les mêmes choses mais en moins optimisé (plus lent et prend plus de mémoire pour faire la même chose). Quoique cela se discute encore car les compilateurs d´aujourd´hui sont paraît-il très performants et on ne voit plus de grande différences.
Seulement pour programmer un µP en C, il faut un compilateur qui transformera le programme en C en assembleur puis en langage machine (ou directement en langage machine) et donc tout µC se programme en C, suffit d´avoir le compilateur qui va avec...
Et comme te l´as déjà dit pont2, le C est utilisé car il permet d´écrire un programme plus rapidement (et qu´il est portable, CAD on peu reprendre le même programme pour le faire tourner sur un autre modèle d´µP)
Juste une petite remarque:
Tout dépend de l´µP/µC, pour un PIC à 20MHz surement, mais avec un µP/µC de 32 bits qui tourne à quelques centaines de MHz, je pense que le problème ne se pose plus...si on veut faire une routine en C pour un afficheur graphique LCD, on se heurte à un mur, il faut la faire en assembleur.
Bon sur ce, j´espère que mon roman est compréhensible
bonjour
j'ai regarder sur le site de microship et j'hesite entre ces 2 :
PIC18F4525 et PIC18F2685.
et pour la programmation mieu veut que j'apprenne l'assembleur!si vous connaissez de bon tutos (je connais http://asm.developpez.com/ mais il n'explique pas les techniques de prog pour les uc il n'y a que des tutos pour processeur intel.)
et j'aimerai en fait faire un robot soit telecommender avec ou sans fils(mais je pense que c'est plus dur!)
Salut,
Pour sélectionner un PIC facilement en fonction de son cahier des charges, j'utilise MAPS qui est un programme de sélection paramétrique.
Pour les compilateurs C, ils existent des versions d'évaluation gratuites pour toutes les familles PIC10/12/16 (Hitech Pro en Lite Mode) , PIC18 et 16bits (dsPIC)
Il existe un bon tuto sur le C18 ici : http://www.aix-mrs.iufm.fr/formation...indexPIC_C.htm
a+
Dernière modification par RISC ; 27/06/2009 à 17h26. Motif: addition
Le PIC18F4525 a 40 pattes, et le 18F2685 en a 28.
J'utilise des 18F2685 que j'ai eu gratuitement. Ils sont très bien, mais si tu les achètes pas besoin de prendre les meilleurs (pour un programme assez gros je n'utilise qu'un quart de la mémoire).
Et tu n'es pas obligé d'apprendre l'assembleur.
L'assembleur c'est bien pour connaître le fonctionnement des microcontrôleur et pour les programmes performants.
Moi j'utilise un peu d'assembleur dans les routines temps réel, et je n'utilise que du C pour le reste.
Utiliser l'assembleur pour un programme assez gros c'est beaucoup plus compliqué que du C.
Je te conseille de suivre des tutoriels en assembleur pour apprendre et d'utiliser du C ensuite (sauf si tu es masochiste, ou que tu as des contraintes de performances).
C´est effectivement mieux de commencer par l´assembleur pour bien comprendre le fonctionnement des µC.et pour la programmation mieu veut que j'apprenne l'assembleur!si vous connaissez de bon tutos
La référence pour les cours sur les PIC en assembleur c´est bigonoff (enfin je ne les ai pas lu personnelement mais c´est ce que ceux qui programment des PIC disent)
bonjour
j'ai essayer de creer un programme en c sur mplab,un truc qui sert absolument a rien c'etait juste pour tester! :
void main()
{
RA0=0b00000000;
RA0 = 1;
}
d'apres ce que j'ai lu,ce programme devrai laisser passer le courant dans la pate RA0 mais quand je compile avec le compilateur HI TECH c compiler, sa me met un message d'erreur :
Build C:\Users\user\uc\Nouveau dossier\ucessai for device 16F84A
Using driver C:\Program Files\HI-TECH Software\PICC\LITE\9.60\bin\pi cl.exe
Executing: "C:\Program Files\HI-TECH Software\PICC\LITE\9.60\bin\pi cl.exe" -C "C:\Users\user\uc\Nouveau dossier\main.c" --chip=16F84A -P -q -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Warning [176] C:\Users\user\uc\Nouveau dossier\main.c; 6.0 ligne manquante
Error [192] C:\Users\user\uc\Nouveau dossier\main.c; 3.1 identificateur "RA0" indefini
Warning [337] C:\Users\user\uc\Nouveau dossier\main.c; 5.8 la ligne ne contient pas de caractère newline (retour chariot)
********** Build failed! **************
manque le include correspondant au pic utilisé
j'ai suivi ce post sans réagir pour le moment.
personellement je conseillerais pour débuter un pic simple et peu couteux et reprogrammable pour débuter et se faire la main .
Et quand on choisi un pic , il faut d'abord définir un cahier des charges ( je sais, pas facile pour un débutant) , un minimum est de définir ce qu'il doit faire.
Bonjour,
J'ajouterais quelques petites choses :
1: Le compilateur ne connaît pas les symboles, juste des nombres. Il faut associer des adresses aux symboles (par ex RA0). C'est le but des fichiers include donc freepicbasic parle.
2: Avec le compilateur HI-TECH il suffit d'inclure <htc.h> (le compilo se charge d'inclure tous les bons fichiers si on a sélectionné le bon PIC dans MPLAB).
3 : Si ton programme compile mais ne fonctionne pas, on peut utiliser le simulateur MPSIM, ça permet d'écarter tout de suite certains problèmes (si ça ne fonctionne pas sur le simulateur ça ne fonctionnera pas sur le circuit). Mais tu as le temps de te familiariser avec les PIC avant d'en arriver là.
A+
merci maintenant sa marche mplab!
disons que j'ai mon uc branché a un programmateur et qu'il soit relié a mon pc,quel est l'extension du fichier qu'il faudrai que j'envoi sur le µc?est qu'il y a des logiciels specialement faut pour integrer un programme a un µc?
L'extension n'a pas d'importance, c'est le contenu qui en a. Il faut lui envoyer la mémoire (avec MPLAB avec file > export il génère un fichier .HEX en hexadécimal). Le logiciel pour programmer est fourni avec le programmateur. On peut aussi programmer directement sous MPLAB (en faisant programmer > select programmer).
vu le prix d'un µc je compte m'en faire un moi meme.est qu'il y a des programmes a telecharger pour faire sa?
Un programmateur n'est pas très cher (PICKIT par ex.) et il y a des fonctionnalités utiles (analyseurs logiques par ex.) donc je te conseille un vrai programmateur.
Si tu veux quand même t'en faire un toi-même, tu dois pouvoir trouver des schémas sur internet avec les logiciels pour programmer. Ceux que j'ai vu utilisent le port série donc c'est très facile d'envoyer des données dessus.
ok merci!
mais le pb c'est pour mettre en service le µc ! il y a des resistances et des condo a mettre un peut partout(d'apres ce que j'ai vu sur les forum)!!!mais jai regardé les pdf sur le pic18f2685 mais il n'y en a aucun qui parle d'ou mettre des composants.
En fait il n'y a presque besoin de rien pour faire marcher le PIC. Quand j'utilise le PICkit2 pour alimenter un PIC je n'ai aucun composant (ni résistance ni condensateur).
Par contre il en faut si on utilise une alim autre que le PICkit, pour mettre MCLR à 5V et isoler Vpp de Vdd. Tu trouveras le schéma page 45 de la datasheet FIGURE 4-2 (il faut une résistance, une capa et une résistance ou une diode). Il faut aussi des condensateurs de découplage pour filtrer les parasites sur l'alim.
Et c'est un circuit conseillé (pour retarder le temps de montée de MLCR) mais ça marche sans. La seule chose indispensable c'est de ne pas connecter MCLR à Vdd quand on programme (car il y a du 12V sur MCLR).