Aller au contenu


Photo
- - - - -

Basic Stamp ?


  • Veuillez vous connecter pour répondre
22 réponses à ce sujet

#1 Glius

Glius

    Habitué

  • Membres
  • PipPip
  • 157 messages

Posté 26 novembre 2009 - 07:41

Bonjour !



Bien que je connaisse le site depuis un moment (et Harry), je me suis enfin décidé à m'inscrire car j'aimerai peut être commencer à me faire mon propre robot maintenant que j'ai le temps.



Toutefois, je n'ai pas vraiment la patience et le courage de me mettre à la grosse électronique pour me réaliser une carte. En étudiant un peu les solutions existantes, j'ai pu voir que Parallax met à disposition des petites cartes électroniques toutes faites qui sont programmable avec un microcontrolleur basic stamp.

J'ai jeté un oeil à la documentation et au langage et cela me semble en effet un peu différent du C... mais je n'ai pas pu encore regarder en profondeur.



J'aurai souhaité donc avoir votre avis sur ce que propose Parallax et le basic stamp :



  • Principales caractéristiques du langage basic stamp ?
  • Est ce un langage puissant ? Quelles sont les limites ?
  • De manière générale, qu'en pensez vous ? (il parait que c'est plus simple pour gérer les actionneurs...)
  • Sinon... que me conseilleriez vous ? Notamment au vu de ce que je recherche...



Je vous remercie d'avance.



PS : je vais me nourrir et je retourne ensuite ici et promis... je fais ma présentation sur le forum :-)

#2 zeqL

zeqL

    Membre passionné

  • Membres
  • PipPipPip
  • 393 messages
  • Gender:Male

Posté 26 novembre 2009 - 07:54

Hum je ne connaissais pas Basic Stamp mais cela ressemble aux Arduino.

D'après ce que j'ai pu lire, le langage pour ces cartes est du BASIC (un peu modifié). Je ne l'ai jamais utilisé (le langage et la carte) donc je ne connais pas la puissance de ce langage ni ses limites mais si ca ressemble un peu au Basic des calculatrices, je dirais que c'est un langage simple d'utilisation mais si l'on veut faire des choses complexes au niveau du code, il faudra se tourner vers d'autres langages.

Toujours d'après ce que j'ai vu sur le site et d'autres sources, cette carte est proposée avec des kits de développement avec des bases mobiles, ce qui peut éviter d'avoir à les faires soi-même et de pouvoir s'amuser rapidement.

Dans le même genre d'idée que le Basic Stamp, il y a les cartes Arduino qui utilisent du C légèrement modifié (langage Arduino) mais pour des développement plus complexe on peut coder en C et java via un IDE plus puissant que l'IDE fourni de base.



#3 biohazard2

biohazard2

    Habitué

  • Membres
  • PipPip
  • 184 messages

Posté 26 novembre 2009 - 08:46

Hello,

Ouaip, c'est du dérivé du langage BASIC, un langage simple et pas très puissant car vieux. D'après Wikipédia, la première version date de 1963 :| .

C'est un langage qui a beaucoup de dérivés, par exemple dans les suites OpenOffice et Office de Microsoft. Perso, pour avoir pas mal bossé avec, je ne l'aime pas (pas du tout agréable à utiliser), je lui préfère le C qui est nettement plus puissant.

Bonne soirée,
Biohazard2

PS : Wouhou, enfin quelqu'un qui se donne la peine d'écrire français :D

#4 Glius

Glius

    Habitué

  • Membres
  • PipPip
  • 157 messages

Posté 26 novembre 2009 - 08:58

PS : Wouhou, enfin quelqu'un qui se donne la peine d'écrire français :D




Comme vous, je trouve ça normal... Pour la compréhension de tous, quoi de mieux que du bon français ? :tare:



Merci pour votre point de vue... J'attends d'autres avis / idées pour avoir une réponse assez exhaustive !

Mais que conseillerez vous alors ? Il y a des cartes toutes faites où il ne reste plus qu'a branhcer les capteurs / actionneurs (avec les résistances permettant le bon fonctionnement, etc.) ?

Un peu comme celle-ci de Parallax, mais programmable avec le langage plus classique style C ?



Les cartes arduino semblent permettre la même chose, non ? (avec une plaque d'essais en plus)



Merci

#5 robocop

robocop

    Membre passionné

  • Membres
  • PipPipPip
  • 357 messages
  • Gender:Male

Posté 26 novembre 2009 - 09:56

Salut,

Les cartes arduino sont basées sur un atmel atmega 328, et se programment dans un espèce de C, un poil plus au niveau (avec nottament une ébauche de classes).

Effectvement, c'est une carte toute faite (programmeur usb, led de test, quartz, et tout inclus).

#6 philou-RX

philou-RX

    Habitué

  • Membres
  • PipPip
  • 261 messages
  • Gender:Male
  • Location:Riviera - Vaudoise

Posté 27 novembre 2009 - 01:16

Salut à tous,

Effectivement le Basic (comme son nom l'indique) est une programmation assez simple, les instructions ne sont pas nombreuses, mais tu peux quand meme faire déjà des choses avec...

J'ai acheté un de ces Kits robots Parallax il y a quelques années, et je peux dire que je m'y suis bien amusé, car j'ai commencé à prendre l'anglais et la programmation avec. Je ne sais pas quel est ton niveau (programmation : Expert - Débutant) ??? Et qu'est-ce tu recherches à faire avec ce petit robot...

De plus ce qui est bien chez Parallax (même si tu dois payer), c'est que t'as des modules externes...Donc tu peux customizé la chose.

Amicalement Philou

#7 Glius

Glius

    Habitué

  • Membres
  • PipPip
  • 157 messages

Posté 27 novembre 2009 - 02:28

Salut Philou,

Concernant la programmation, on peut dire que j'ai un niveau correcte :
J'ai déjà programmé :
- C un certain nombre de programmes (listes chainées, arbres, pendus, puissance 4, ...)
- je connais le C++ et ai fait quelques mini-programmes avec
- enfin j'ai programmé un "gros" site en PHP
Bref, j'ai la "logique" programmation sur PC, mais je n'ai pas encore la pratique sur microcontroleurs... Mais c'est en forgeant qu'on devient forgeron, non ?

Ce que je souhaite faire ? C'est évoluer simplement.
Dans un premier temps, et poru décrire simplement les fonctions du robot, je souhaiterai le faire avancer / tourner / reculer, utiliser un capteur de distance pour regarder dans plusieurs directions (monter le capteur sur un servo) et utiliser des capteurs de contact (pour la sécurité). Ceci permettant de se déplacer sans se prendre de mur !
Une fois que je saurai faire ça (montage + programmation), je pense que j'aurai beaucoup appris et que je pourrai passer à un robot plus "utile" ! Même s'il y a une utilité à ce robot : me former :p

Et peut être un jour... brancher une mini-caméra comme capteur pour faire du controle par vision (exemple : mettre uen cible et faire en sorte que le robot la suive).

Voici donc ce que je cherche à faire.
De ce que je comprends :
- Avec les éléments Parallax / BASIC STAMP : la programmation est simplifiée mais j'aurai du mal à aller sur certaines applications comme le contrôle-vision. Plus aisé à mettre en oeuvre pour ma 1ère application, tant sur l'hardware que le software. Mais le tout pour un peu plus cher.
- Avec les éléments standards / langage C : moins cher, même difficulté / facilité pour l'architecture hardware. Mais le software sera plus compliqué à mettre en oeuvre.
==> Je me trompe ???

Merci
Glius

#8 zeqL

zeqL

    Membre passionné

  • Membres
  • PipPipPip
  • 393 messages
  • Gender:Male

Posté 28 novembre 2009 - 12:38

Avec l'Arduino (la carte basique coûte 20€) tu programme en C (langage "Arduino" très proche du C) et comme il y a des bibliothèques spécifiques à la carte, c'est une introduction assez facile aux uC, car l'interface fournie, même s'il n'est pas très engageante pour de gros projets, permet de taper son code, compiler et envoyer le programme à la carte par liaison USB très facilement.

De plus un wiki sur le site d'Arduino est disponible et regorge d'informations, de tutos sur l'utilisation de moteurs, capteurs, bouts de programmes et tout.

Ensuite pour de gros projets (contrôle de vision comme tu dis) plusieurs solutions s'ouvriront à toi : garder la carte Arduino mais changer d'IDE pour un IDE plus puissant ou alors faire ta propre carte avec un microcontroleur PIC ou autre, et codé aussi en C. ;)

#9 TiNano

TiNano

    Nouveau membre

  • Membres
  • 8 messages

Posté 29 novembre 2009 - 02:22

Ouaip, c'est du dérivé du langage BASIC, un langage simple et pas très puissant car vieux. D'après Wikipédia, la première version date de 1963 :| .



C'est un langage qui a beaucoup de dérivés, par exemple dans les suites OpenOffice et Office de Microsoft. Perso, pour avoir pas mal bossé avec, je ne l'aime pas (pas du tout agréable à utiliser), je lui préfère le C qui est nettement plus puissant.




La puissance du langage n'a rien à voir avec son age ni avec sa complexité.

Après dépends aussi de ce qu'on appelle la puissance d'un langage?

Les performances possible du langage? La richesse du langage?



Après, programmer des µC en basic ou en C, ça change rien.

L'µC ne connait ni l'un ni l'autre, c'est le compilateur qui s'occupe de traduire le basic ou C en un langage compréhensible par l'µC.



Sinon, c'est vrai que le c est bien plus jeune que le basic: début des année 70 :p



Ensuite, on peut faire des choses compliqué avec un langage simple.

Ensuite il ne me semble pas que le c ai beaucoup plus d'instruction que le basic, il y a juste un plus grands panel de lib.

#10 robocop

robocop

    Membre passionné

  • Membres
  • PipPipPip
  • 357 messages
  • Gender:Male

Posté 29 novembre 2009 - 03:34

Ouaip, c'est du dérivé du langage BASIC, un langage simple et pas très puissant car vieux. D'après Wikipédia, la première version date de 1963 :| .



C'est un langage qui a beaucoup de dérivés, par exemple dans les suites OpenOffice et Office de Microsoft. Perso, pour avoir pas mal bossé avec, je ne l'aime pas (pas du tout agréable à utiliser), je lui préfère le C qui est nettement plus puissant.




La puissance du langage n'a rien à voir avec son age ni avec sa complexité.

[...]

Après, programmer des µC en basic ou en C, ça change rien.

L'µC ne connait ni l'un ni l'autre, c'est le compilateur qui s'occupe de traduire le basic ou C en un langage compréhensible par l'µC.

[...]




Certe, mais le C est bien plus bas niveau que le BASIC, ainsi, le compilateur aura beaucoup moins de mal à optimiser le code généré; car un programme C donne beaucoup plus d'information qu'un programme BASIC : type des inscructions, comment gérer la mémoire, etc.



Ainsi, il y aura une grande différence entre l'assembleur généré à partir d'un programme C, et l'assembleur généré par un programme BASIC.

#11 Glius

Glius

    Habitué

  • Membres
  • PipPip
  • 157 messages

Posté 29 novembre 2009 - 04:46

Au final, j'ai jeté un oeil sur des tutoriels pour le BASIC (matériel Parallax) et le module Arduino. Et voici ce dont je me rends compte :



- La programmation a été simplifiée avec le BASIC. Il est en effet simple de créer des algorithmes avec tous types de matériels. Toutefois, si on a déjà programmé en C, il faut prendre l'habitude de ce nouveau langage ! Toutefois, en analysant un peu tout ça, on se rend compte qu'on peut en effet aller sur des algorithmes assez complexes... Il faut toutefois prendre le coup de main ;-)



- Pour les prix : la carte Arduino coute 20/30 € (ici) alors que le module BASIC STAMP avec son µC coute 90/100 € (ici et ici ! La différence de prix est assez élevée...



- Au niveau de "s'y mettre", on trouve pas mal d'informations pour les deux. Dans le nouveau magazine Planète Robot il y a des exemples pour utiliser le module de Parallax avec un petit code en Basic Stamp qui permet d'apprendre à utiliser un moteur à rotation continue, un microswitch... Plus les tutoriels qu'on trouve... bah ça fait avancer vite. Coté Arduino, il faut se mettre un peu à l'anglais et on en apprend pas mal !



Ma conclusion : je pense que je vais être radin et que je vais aller sur l'Arduino !

Je vous remercie pour vos conseils ! :)



Depuis cet après-midi, je suis en train de "concevoir" sur papier l'électronique du robot. Je ferai sûrement appel à vous pour une petite vérification si j'ai des doutes. Pour l'instant, je n'en ai que pour le branchement d'un moteur pas à pas... affaire à a suivre !



#12 TiNano

TiNano

    Nouveau membre

  • Membres
  • 8 messages

Posté 29 novembre 2009 - 05:23

La différence que tu peux voir dans l'assembleur vient surtout du compilateur.
Un même programme C ne générera pas forcément le même code assembleur en fonction du compilateur utilisé.

[quote"robocop"]le C est bien plus bas niveau que le BASIC, ainsi, le compilateur aura beaucoup moins de mal à optimiser le code généré[/quote]

Excuse moi, mais je vais devoir nuancer ce bout de phrase.
Le fait d'expliciter la gestion de la mémoire en C ne permet pas au compilateur d'optimiser au mieux le code.
En effet, tu lui impose l'allocation et la libération de la mémoire, mais si dans ton code tu ne rends jamais la mémoire, le compilateur ne le fera pas à ta place.
Et si tu es vraiment limité en mémoire, tu risque d'exploser ton programme ^^.

Plus tu es dans un langage haut niveau plus le compilateur a de latitude pour optimiser.

une applications faites par un développeur moyen aura de meilleur performance en .Net qu'en C++ et il y aura aussi moins de risque de plantage et de trou de sécurité dans l'appli .net.

Après pour Glius, c'est vrai que le porte monnaie entre en compte ^^'.

#13 Glius

Glius

    Habitué

  • Membres
  • PipPip
  • 157 messages

Posté 29 novembre 2009 - 06:23

[quote"TiNano"]Après pour Glius, c'est vrai que le porte monnaie entre en compte ^^'.[/quote]

Le porte-monnaie rentre souvent en compte :p Surtout pour une telle différence de prix !
Mais faut dire que je cherche à faire des choses simples pour l'instant. Mais étant déjà un peu plus familier avec le langage C... ;)

Qui plus est, ça me permettra de soutenir l'open-source et de me donner bonne conscience :tare:

#14 Maïck

Maïck

    Membre passionné

  • Membres
  • PipPipPip
  • 390 messages
  • Gender:Male
  • Location:Suisse

Posté 30 novembre 2009 - 05:49

En même temps employer un langage proprio non portable et qui plus est est à la base fait pour faire facilement des petites applications graphiques je voit pas vraiment l'intérêt...

Si tu code bien en C tu a juste la couche qui s'occupe du matériel à changer, tout le programme haut niveau reste le même quel que soit le uP...

#15 TiNano

TiNano

    Nouveau membre

  • Membres
  • 8 messages

Posté 30 novembre 2009 - 08:31

Le Basic premier du nom n'était pas destiné à faire de petites applications graphiques.
Il ne faut pas mélanger Basic, visual Basic, visual Basic.net, Dark basic.
Il y a plein de dérivé de basic et il ne faut pas tout mélanger.
Ensuite pour ce qui est de l'apriori C -> pas proprio -> portable.
Après le c connait aussi quelque dérivé en fonction des plateformes.
De tête je vois, le C AINSI, C posix, C++, C++ 0x et plusieurs dérivé spécifique à certains µC.

Ensuite le c n'est pas non plus un gage de portabilité. et le fait d'être proprio ou pas ne joue pas non plus sur la portabilité.

Je vais pas continuer plus longtemps, il ne me semble pas que ce soit le sujet. Et il ne faudra pas non plus que ça vire au débats stérile.

#16 webshinra

webshinra

    Membre passionné

  • Membres
  • PipPipPip
  • 510 messages

Posté 01 décembre 2009 - 07:46

en fait, ce sont des normes, pas des dérivé, mais ça ne change rien au fait qu'il existes des compilateurs libre de partout

#17 TiNano

TiNano

    Nouveau membre

  • Membres
  • 8 messages

Posté 01 décembre 2009 - 11:05

Pour moi quand je dis "dérivé", c'est que le langage n'est plus exactement le même.
Un compilateur fait pour le C ANSI sera incapable de compiler un C posix 1.b qui bien sur en utilise les particularités.

Ensuite

[quote"Maïck"]Si tu code bien en C tu a juste la couche qui s'occupe du matériel à changer, tout le programme haut niveau reste le même quel que soit le uP...[/quote]

Là, tu souligne bien le fait que le C n'est pas portable tel quel. il y a toujours des modifications à faire en cas de changement de matériel.

Après, je voyais venir le débat open-source VS !open-source qui est un des trolls les plus répandus avec "windows vs linux".

Après la portabilité pour de la robotique, c'est pour moi la dernière chose pour laquelle je me casserai la tête :

D'une part, on développe pour notre robot qui a sans doute son anatomie propre et son fonctionnement propre.
Un programme gérant le déplacement ne sera pas applicable à tout les robots : chenille/roue, bipède, hexapode, rampant ... autant de programme différent pour gérer le déplacement.

Ici, les questions de libre et portable ne sont pas les première questions à se poser et loin de là.

En tant que développeur professionnel, j'ai été amener à pratiquer plusieurs langage et à en pratiquer des différents en fonction des projets.
Le choix du langage doit se faire en fonction des projets et en fonction du cout de dev sur tel ou tel langage.
Aujourd'hui, le développement d'un logiciel de chat client/server avec login/mdp, gestion de canaux, de niveau d'utilisateur, interprétant les commandes simples, sera pour moi 7 fois plus cher en C/C++ qu'en .net pour des performances équivalentes.
Après, si on me demande du programmer un PIC, de suite je met le .net à l'écart.

#18 miky-mike

miky-mike

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 232 messages
  • Gender:Male
  • Location:Belgique

Posté 01 décembre 2009 - 03:04

[quote"TiNano"]Le choix du langage doit se faire en fonction des projets et en fonction du cout de dev sur tel ou tel langage. [/quote]
Tout à fait !

#19 webshinra

webshinra

    Membre passionné

  • Membres
  • PipPipPip
  • 510 messages

Posté 01 décembre 2009 - 06:46

[quote"TiNano"]Pour moi quand je dis "dérivé", c'est que le langage n'est plus exactement le même.
Un compilateur fait pour le C ANSI sera incapable de compiler un C posix 1.b qui bien sur en utilise les particularités.[/quote]
ouais, mais c'est le principe des normes (d'ailleur, j'ai repondu a l'arache se matin, mais qualifier le c++ de dérivé du C ça mérite la pendaisons). mais par contre un compilateur qui ne gérerais pas le C ANSI serais a jeter, puisque c'est la versions "passe partout", donc, si tu veut un truc portable, tu sais lequelle choisir.
[quote"TiNano"]
Après, je voyais venir le débat open-source VS !open-source qui est un des trolls les plus répandus avec "windows vs linux".[/quote]
tu sais, quand je troll je le sais, là non, je signal juste qu'il en existes plein en précisant LIBRE (parce que c'est pas pareil) parce que c'est pour moi un argument qui restreint beaucoup le nombre de programme disponible (et le fait qu'il y en ai n'en est que plus marquant).
[quote"TiNano"]
Après la portabilité pour de la robotique, c'est pour moi la dernière chose pour laquelle je me casserai la tête :

D'une part, on développe pour notre robot qui a sans doute son anatomie propre et son fonctionnement propre.
Un programme gérant le déplacement ne sera pas applicable à tout les robots : chenille/roue, bipède, hexapode, rampant ... autant de programme différent pour gérer le déplacement.

Ici, les questions de libre et portable ne sont pas les première questions à se poser et loin de là.[/quote]
hé bien, c'est un tord, plus en robotique qu'ailleurs. parce que la portablité linux/windows/macos c'est marrant, mais ça fait que trois plates formes (dont deux très proches). alors qu'en robotique tu peut avoir plein de choses.
c'est a nuancé bien sur, un robot industrielle qui va résté 20 ans en place n'a pas besoin d'un code qui tue et qui peut se transmettre partout.

mais, pour le robot plus généraliste, susceptible d'évoluer ( se qui est presque toujours le cas en robotique amateur, et souvent dans les domaines de la recherches), c'est capital, tu ne peut pas te permettre de recodé la moiter d'un firmware parce que tu a changé de microcontroleur ou rajouté des puces mémoires, c'est d'ailleurs la même question pour le codé libre/paslibre ( et en elec, c'est même pire qu'en info ) si tu utilise tel langage compatible avec tel solution logicielle prévus pour tel microcontroleur ( ex: les picsbasic ) si tu change de langage, tu perd le materiel, et si tu change de matos, tu perd ton code.
ensuite, si quand tu repond a un appel d'offre tu doit être compétitif, quand tu bosse "pour toi" tu n'a pas a être rapide, il faut juste être bon, c'est a dire avoir un code de bonne qualité que tu pourras faire évoluer dans le temps, et adapté a tes besoins ( le C# pour un microcontroleur, c'est craignos dans 99% des cas (on note que j'ai hésité a omettre "pour un microcontroleur))
[quote"TiNano"]Là, tu souligne bien le fait que le C n'est pas portable tel quel. il y a toujours des modifications à faire en cas de changement de matériel. [/quote]
aucun langage n'est portable "tel quelle" même le java, il faudra portée la machine virtuelle ou l'interpréteur des langages de haut niveau qui géreras le matos a la place de l'utilisateur futur.

#20 Maïck

Maïck

    Membre passionné

  • Membres
  • PipPipPip
  • 390 messages
  • Gender:Male
  • Location:Suisse

Posté 01 décembre 2009 - 08:41

Je trouve aussi qu'au contraire le fait d'être portable est un grand avantage, je vois mal qu'on doivent recoder toute l'intelligence du robot qui participe à la coupe de robotique à cause d'un changement de uP...

Après même si c'est pour un petit projet je n'aime jamais faire du code "jetable".




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users