Aller au contenu


Photo
- - - - -

Compatibilité de capteurs


13 réponses à ce sujet

#1 Astondb8-RX

Astondb8-RX

    Habitué

  • Membres
  • PipPip
  • 295 messages

Posté 08 mai 2011 - 06:16

Bonjour,



Je voudrais savoir si tous les capteurs (quelle que soit leur origine) sont compatibles avec les signaux qu'attend une Arduino .



par exemple



Il y a certains capteurs pour lesquels c'est juste du délire (20 € pour 2 µrupteurs même s’il y a les vis de fixations) je trouve cela exorbitant, mais pour certain autre il n'est pas possible de faire autrement.



Vous par exemple, ou achetez vous vous capteurs (quel que soitle type de capteur)



Cdlt

Yves

#2 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 08 mai 2011 - 06:30

Oui, la plupart des capteurs sont compatible avec l'arduino (microrupteurs, capteurs infrarouge, capteurs ultrason etc).

Moi je les achete générelement sur robotshop.

#3 lordcuty

lordcuty

    Habitué

  • Membres
  • PipPip
  • 298 messages

Posté 08 mai 2011 - 06:34

il a plusieur type de capteur et la compatibilité est dut à leur mode de communication digital annalogique pour les plus simples dont la plupart sont compatible après il y à les séries et autre ou la sa dépent du protocole

#4 Astondb8-RX

Astondb8-RX

    Habitué

  • Membres
  • PipPip
  • 295 messages

Posté 08 mai 2011 - 07:33

Merci

Et effectivement je comprends bien qu'il existe des capteurs "simples" qui ne renvoie qu'un 1 ou un 0 et d'autres plus "complexes" qui demandent un peu plus de connaissances.

Par exemple, sur un autre Post, Jbot nous montrait son Robot empileur de jetons. Il parlait d'un lecteur de code-barre. Il est évident que pour ce genre de capteur il faut non seulement déclencher la lecture des que le capteur reconnait un code-barre, mais il faut aussi gérer le décodage. Et là cela doit être plus complexe à gérer.

Question Jbot. Ton lecteur Code barre avait un Rx et un TXx(plus une alimentation (pin 2 et 3 d'une D-sub9 avec le 1 en masse je suppose)interprète tu le codes ?
Tu as une bibliothèque que tu inclus dans ton code C ?
En informatique, il faut déclarer le driver (une Dll dans win32) mais là ?

Sinon, ma question était surtout (même si je me doutais de la réponse) pour clarifier ce qu'ils disent dans les Docs du lien que j'ai donné (compatible avec telle ou telle carte)

Cdlt
Yves

#5 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 08 mai 2011 - 07:49

Il y a 2 utilisations sur le PC, soit par port clavier (ça écrit ce que ça lit à la place de ton clavier),
soit par RS232, tu lis les valeurs du lecteur comme si tu lisais un port série.

Sur un microcontroleur, il n'y a que la 2eme solution. Tu fais des Serial.read() (sur arduino par exemple) et ca te renvoie le caractere que le code barre est en train de lire, dans mon cas par exemple : 'K' puis 'I' puis 'N' puis 'G' .

En gros c'est comme n'importe quel périphérique série.

#6 Astondb8-RX

Astondb8-RX

    Habitué

  • Membres
  • PipPip
  • 295 messages

Posté 08 mai 2011 - 07:54

Ça a l'air simple à lire comme ça...
A tester pour être sur d'avoir compris.

Merci

#7 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 08 mai 2011 - 08:06

Exemple de code que j'utilise pour differencier si je viens de lire une reine (commence par un Q) ou un roi (ne commence pas par un Q) :

{
int result = 0;
if (Serial1.available()) {
if (Serial1.read() == 'Q')
result = 2;
else
result = 1;
}
while (Serial1.available()) {

Serial.print(Serial1.read()); // DEBUG
//Serial1.read();
}
return result;
}
[/code]

#8 Astondb8-RX

Astondb8-RX

    Habitué

  • Membres
  • PipPip
  • 295 messages

Posté 08 mai 2011 - 09:15

Je débute alors, sois indulgent



Tu declare une variable "result" à laquelle tu donne une valeur de "0"

"Serial read" est lit la valeur retournée par le lecteur de code-barre

Tu fait une boucle qui test la valeur de "serial read"

Si "Serial read" est égal à "Q"

La variable "result" prend la valeur "2"

Sinon, elle prend la valeur "1"

Par contre le "Whi"l sert à continuer ta boucle tant que... tant que quoi ?



que veux dire "avelable" je ne trouve pas dans le code de Arduino





Merci

Cdlt

Yves

#9 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 08 mai 2011 - 09:23

while (Serial1.available())

ca sert à continuer à vider le buffer de lecture (en gros si il y avait écrit QUEEN, ca sert a vider du buffer le "UEEN").

http://arduino.cc/fr/Main/Serialavailable

#10 Astondb8-RX

Astondb8-RX

    Habitué

  • Membres
  • PipPip
  • 295 messages

Posté 08 mai 2011 - 09:25

Bien sur...

Merci beaucoup.

Mais cela veux aussi dire que cette page est incomplète.
Tu sais ou trouver une liste d'instructions C plus complète (je veux dire C valide et compréhensible pour Arduino) puisque c'est du C plus light.

Cdlt
Yves

#11 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 08 mai 2011 - 09:35

Ben avec la page que tu m'avais linké, tu as les 3/4 de ce dont du auras besoin.
http://arduino.cc/fr/Main/ReferenceEtendue

Il te manquera juste les fonctions spécifiques a certaines librairies.



#12 Astondb8-RX

Astondb8-RX

    Habitué

  • Membres
  • PipPip
  • 295 messages

Posté 08 mai 2011 - 09:46

Super.

Merci pour toutes ces infos.

Cdlt
Yves

#13 webshinra

webshinra

    Membre passionné

  • Membres
  • PipPipPip
  • 510 messages

Posté 09 mai 2011 - 12:09

les gens, souvenez vous que arduino c'est du c++ : http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B

#14 Hexa Emails

Hexa Emails

    Membre passionné

  • Membres
  • PipPipPip
  • 439 messages
  • Gender:Male

Posté 09 mai 2011 - 05:12

En même temps je vois pas la différence entre le C et le Java perso :p
Y a juste le VHDL que je trouve différent...



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users