Go Down

Topic: Urgent!!! Aide Branchement Arduino Uno Avec Plusieurs Interfaces (Read 3509 times) previous topic - next topic

May 23, 2012, 09:16 am Last Edit: May 23, 2012, 09:23 am by nadirovick Reason: 1
Bonjour tout le monde,
Voila je me présente, Nadir et je suis ingénieur en informatique, et je suis nouveau sur le forum et aussi débutant en électronique.
Je veux me lancer dans la robotique car c'est mon rêve d'enfance  :P
Voila mon projet :
•   
•   Platine Arduino Uno
•   Shield de reconnaissance vocale module EasyVR --> reliée avec arduino via TX/RX
•   Afficheur 2 x 16 caractères "CLCD162-BLB"  --> Montage I²C
•   Télémètre ultrason MS-EZ0  --> Montage analogique
•   Photorésistance 12 mm  --> Montage analogique
•   Capteur de température KTY10A  --> Montage analogique
•   Hexapode 18 servo piloté pas une SSC32, reliée avec arduino via TX/RX

Ma préoccupation est que la uno dispose d'une seul paire TX/RX or les deux carte SSC32 et reconnaissance vocale devront être montées en série, y a-t-il un moyen ou une technique pour faire fonctionner le montage ou je dois revoir la conception « cascade uno avec mega…etc.? si oui prière m'orienter

N.B : j'ai rien acheté pour le moment, si y a des propositions à faire je suis preneur, je compte aussi mettre une Ethernet shield et/ou Xbee, et plein d'autres modules  donc la conception doit être extensible


Merci à vous  :)

skizoh

Bonjour, je ne sais pas quel type de RX TX tu à besoin mais tu peut te pencher sur ton matériel avec comme RX / tx supplémentaire un "software serial" liaison serie asynchrone en gros.

http://arduino.cc/hu/Tutorial/SoftwareSerial

voila si ça peut t'aider, sinon je pense que tu a pas mal de matos pour un petit uno mais normalement tu devrai avoir suffisamment d'IO pour tout incorporer, et tu n'a besoin que d'un I2C donc ça va, si dans tes deux RX TX tu n'a que un seul synchrone ta tes chance :) .

Skizo 
Un tien vaux mieux que deux tu l'auras !

Merci pour votre réactivité skizoh, si j'ai bien compris, je dois reconfigurer deux interfaces de série de logiciels pour recevoir les data ?
Autre question si vous permettez, mon branchement est-il bon ?

Merci  XD

skizoh

Bon pour ce schéma, je ne serais pas trop te dire j'ai pas regarder la Doc de tes composant et le dessin pique les yeux ^^ mais j'ai rien vue d'insensé, après pour les software serial, tu dispose déja d'un rx tx qui peu aussi servir au débug (Serial...) c'est ton rx tx, et si tu en a besoin d'une de plus qui n'est pas synchrone ( à vérifier dans tes doc) tu peut en obtenir jusqu'à deux ou 3 de plus je crois avec la méthode software serial.

tu devrai t'en sortir ^^ , par contre prend garde au empilement de shield ça peut mal tourner vérifie bien les pin utilisées et les disponibles avant d'empiler au pif, pas mal de shield ne sont pas compatible sois niveau occupation d'IO sois niveau physique ( ce retrouver avec un shield par dessus ton écran ça serais bof par exemple ^^)

Skizo !
Un tien vaux mieux que deux tu l'auras !

bonjour,

l'arduino Mega à base d'atmega1280 possède 4 liaisons série UART, ça peut répondre à ton besoin.

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

#5
May 23, 2012, 10:53 am Last Edit: May 23, 2012, 11:28 am by nadirovick Reason: 1
Merci pour vos réponses rapides les amis, j'ai pensé à exploiter l'Arduino Mega mais le problème est sur l'empilement des shields  :~« ce n'est pas les mêmes pins, sauf pour quelques une », Je serais donc obligé d'utiliser des shields de prototypage
Corrigez-moi si je suis à coté de la plaque!
N.B : je vais voir la doc  SSC-32 et  EasyVR si c'est des synchrone ou asynchrone.

Merci  :)

skizoh

Oui fait ça, vérifie un peu tout ça mais je pense que tu peut t'en sortir, après j'espère que ton programme sera pas trop énorme
parce que niveau mémoire programmable le uno est pas non plus immense :s 

Skizo !
Un tien vaux mieux que deux tu l'auras !

Re,
Pour la carte EasyVR, c'est le mode d'opération  bridge  Jumper 12 --> SW - Software serial mode « pins 12-13 » j'espère que je ne dis pas des bêtises  :D
Pour la SSC32 j'ai rien trouvé si elle est synchrone ou asynchrone  :(
Merci pour votre aide

skizoh

bon bas c'est pas grave le principale c'était de savoir si un des deux pouvais fonctionner en software serial et c'est le cas donc c'est bon après pin 12 13 peut import quand tu crée ton software serial tu déclare les pin et tu peut prendre de la pin 2 a 13 il me semble quelque chose du genre, et si l'autre est aussi en software serial tu pourra aussi l'utiliser tu peut en faire plusieurs, sinon tu a toujours le serial d'origine.

Aller bon courage pour la suite et reviens nous voir une fois que tu aura avancé pour nous dire ce qu'il en est !

Skizo !
Un tien vaux mieux que deux tu l'auras !

barbudor


Pour la SSC32 j'ai rien trouvé si elle est synchrone ou asynchrone  :(


Dans les specifications on peut lire :
Quote
Serial input = True RS-232 or TTL, 2400, 9600, 38.4k, 115.2k, N81


Les 3 derniers caractères "8N1" signifient 8 bits, No parity, 1 stop bit.
Cela est la caractéristiques d'une liaison asynchrone telle que celle disponible sur les broches 0/1 de L'Arduino ou sur n'importe qu'elle broche en utilisant la lib SoftSerial.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Donc, puis-je faire une interface serie avec la SSC 32 ? je veux garder les pin 0/1 libre

barbudor

#11
May 23, 2012, 09:43 pm Last Edit: May 23, 2012, 09:50 pm by barbudor Reason: 1
Tout a fait. SoftwareSerial.

Par contre j'ai un gros doute sur le fait qu'on puisse créer plusieurs SoftwareSerial simultanément.
Quelqu'un a essayé ?

En lisant un peu mieux, on peu en avoir plusieurs mais on ne peut en écouter qu'une seule à la fois.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

skizoh


En lisant un peu mieux, on peu en avoir plusieurs mais on ne peut en écouter qu'une seule à la fois.


vue qu'on est en monotâche ou est le souci? ^^
tu pense qu'il faudrait re déclaré softwareserial.. à chaque fois avant chaque lecture? Oo

perso j'utilise des software serial mais pas deux simultanément donc je pourrait pas répondre à ça :s

sinon pour la liaison SSC32 c'est RS232 ou TTL, ça s'adapte direct sur l'ARDUINO ça? j'ai un gros doute :s

Skizo !
Un tien vaux mieux que deux tu l'auras !

barbudor

Le soucis c'est que si tu as plusieurs SoftwareSerial et que sur chacune tu as un équipement distant qui parle de lui-même, tu perd tout ce que tu reçois.
Il faut utiliser la méthode .listen() pour déclarer qu'elle SoftwareSerial est écoutée à un moment donné.
Donc c'est plutot fait pour fonctionner dans un mode question-réponse :
Grossièrement ca donne:
A.listen();
A.print("question à A");
A.readUntil( ... );
B.listen();
B.print("question à A");
B.readUntil( ... );

Mais si B commence à parler alors que tu écoutes A, tu perd tout ce qui arrive.
Cela vient du fait qu'il ne gère qu'une seule interruption simultanément et que l'intégralité de la réception de chaque caractère s'effectue de toute façon dans la routine d'interruption bloquant ainsi toutes les autres interruptions durant la réception des 10 bits d'un caractère (start + 8 + stop);
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

skizoh

ah je comprend mieux, il n'a pas de buffeur en réception qui permet de conserver ce qui est arrivé quand on écoutait pas, okok ouai du coup c'est un sacré problème ^^ moi je sais que mon software serial qui fonctionne seul (j'en ai qu'un quoi) doit avoir un buffeur c'est sur puisque je perd jamais de donné pourtant je fait beaucoup d'autre chose en même temps donc bon.. peut être qu'il ne peut en mettre qu'un seul a disposition.. bizarre tout de même !

Skizo !
Un tien vaux mieux que deux tu l'auras !

Go Up