Pages: [1] 2   Go Down
Author Topic: software serial  (Read 1859 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Peut-on utiliser en même temps la fonction serial et softwareserial sur un arduino a base de at328 ???
Ce serait pour rajouter un seul port série.

Sinon, j'utiliserais un mega, mais c'est plus cher...

merci !
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui tu peux mais il y a des limitations au Softwareserial, dont la plus grosse est qu'il n'y a pas de buffer.
Donc si tu n'est pas en train d'ecouter au moment ou tu recois des donnees, elles sont perdues !
Ce n'est pas forcément un problème dans tous les cas, mais si c'est pour faire du bidirectionnel continu, il faut oublier : le temps de traiter tes donnees sur le Serial hardware... Tu auras loupé les autres !
Donc tout depend de ce que tu veux faire !
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a priori, je ne cherche qu'à commander le module, donc je ne me sert que de la fonction TX.

J'ai trouvé un exemple d'utilisation du Vmusic2 sur le sie d'arduino, il exploite en effet  2 ports série, dont un virtuel. Je vais m'en inspirer.

Mon but et d'envoyer des sons enregistrés sur une clef USB en me servant d'un clavier type PS2 ( sans PC bien sur)
La librairie PS2keyboard va me permettre ça.

Merci pour ta réponse en tous cas !

Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wouaaaf... Funky le projet !
En tout cas, oui ca devrait très bien fonctionner sur ce type de comm.

Bon beuf  8-)
Logged

FRANCE
Offline Offline
Sr. Member
****
Karma: 0
Posts: 338
Arduino rocks .... oulalalalala
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

salut christian ;-) ( super de se recroiser )
bonjour tout le monde.
je viens tout juste de recevoir la dualemilanove.

je désire intégrer la comunication avec Arduino dans WhiteCat: .le-chat-noir-numerique.fr/

Je ne pense pas avoir fait le tour  de toutes les possibilités d'Arduino. et je viens tout juste de me connecter via le port série... mais cette discussion avec Christian m interppelle:

Je souhaites en effet recevoir les données depuis Arduino, mais aussi lui envoyer des données, et mettre en place un système suffisament ouvert pour tous les cas de figure soient possibles en spectacle vivant:
Arduino comme boite à boutons mais aussi comme centre de commandement de relais ou de PWM , ou encore de traitement en stand alone (avec un ethernet shield on peut creer du dmx en Art-Net à très moindre cout).

Ce qui m'interresse c'est de savoir les limites de la communication dans les deux sens entre une API et Arduino via la connexion série FTDI.

Concernant la perte des données, il me semblait qu'il était possible de créer un timer dans arduino avec millis et de permettre l appel de la lecture des IO de manière régulière  (puis  > stockage dans un tableau ).
un timer pour le flux des IO et leur stockage ( au 50me ou 25eme de sec, et un timer pour le mode reception/ emission avec un traitement des instructions à un framerate moindre ( 1/10eme de sec) . me tromperai je gravement dans l approche ?

la perte de données entrantes est elle inéluctable ? et peut on s affranchir des Delay (hormis dans la boucle principale ) ? smiley
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut

D'autres te repondront mieux que moi à ce sujet, mais sur le principe, une interruption timée correctement et commandant la fonction read() de softwareserial devrait permettre de ne pas perdre de données.

Surtout si tu descends la vitesse à 2400bd.

Mais et ce que ça serait possible avec une communication à 9600bd ? la plupart des peripheriques externes utilisent cette vitesse de connection.

Et est-ce qu'a 9600, tu ne passes pas quasiment tout ton temps dans l'interruption ? Auquel cas il devient difficile d'effectuer des taches dans le main (notamment traiter le serial hardware...).

Si tu y parviens, en tout cas ça m'interesse !
Logged

FRANCE
Offline Offline
Sr. Member
****
Karma: 0
Posts: 338
Arduino rocks .... oulalalalala
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour neoirto .
et merci....

EDIT: software serial est pour communiqer en port série direct ? ou bien les pins TX and RX sont des abstractions ?
« Last Edit: August 28, 2010, 11:52:54 am by karistouf » Logged

France, Nice
Offline Offline
Full Member
***
Karma: 3
Posts: 194
www.Zartronic.fr
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Software Serial est un peu obsolète, il faut le remplacer par NewSoftSerial :
http://arduiniana.org/libraries/newsoftserial/

Elle sera intégré dans la prochaine version d'Arduino

A+
Logged


www.Zartronic.fr : Arduino & Robotique

FRANCE
Offline Offline
Sr. Member
****
Karma: 0
Posts: 338
Arduino rocks .... oulalalalala
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour teiva.
je me penches dessus. on est d accird qu elle fonctionne en usb et pas sur les PINS I/O ?
Logged

France, Nice
Offline Offline
Full Member
***
Karma: 3
Posts: 194
www.Zartronic.fr
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Et bien de base tu as Serial qui est connecté à l'USB.
NewSoftSerial te permet de créer un autre port série (soft) ( avec 2 pins pour faire rx et tx) sur lequel tu peux brancher une carte ou un module.
Si ton arduino n'est jamais branché par usb à un pc, tu peux aussi récupérer Serial tx et rx pour connecter une carte ou un module série.

Mais pour la mise au point et le débogage il est intéressant de garder le Serial sur l'USB et donc le pc pour afficher des messages ou saisir des commandes.

J'espère que c'est plus clair  smiley
A+
Logged


www.Zartronic.fr : Arduino & Robotique

FRANCE
Offline Offline
Sr. Member
****
Karma: 0
Posts: 338
Arduino rocks .... oulalalalala
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok. compris, et merci.
 smiley-wink
EDIT: concernant l IC 2, si on connecte deux cartes arduino avec une en slave, l interface de la deuxieme est il un deuxieme device sur le port série, ou bien le comptage de IO et anaolgue se fait en additionnant le nombre de la premiere carte ?
« Last Edit: August 28, 2010, 03:20:33 pm by karistouf » Logged

France, Nice
Offline Offline
Full Member
***
Karma: 3
Posts: 194
www.Zartronic.fr
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hélas ce n'est pas aussi simple ...
a) tu ne peux pas chainer les cartes : par l'interface série, c'est pas fait pour ( ou sinon assez difficile).
b) l'interface SPI ou I2C (wire) conviennent assez bien pour cette tâche.
Dans ce cas il y a un maitre et les autres esclaves. ça consomme 2 I/O en I2C(Wire) et 3 ou 4 pour le SPI (mais c'est plus rapide).
c) si tu as besoin de plus de I/O la mega est faite pour ça, et c'est beaucoup plus simple  smiley-wink

A+
Logged


www.Zartronic.fr : Arduino & Robotique

FRANCE
Offline Offline
Sr. Member
****
Karma: 0
Posts: 338
Arduino rocks .... oulalalalala
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hello teiva. merci de ta réponse.
ma question est surtout le couplage de 2 ou plus arduino.
que se passe t il en termes de com: on a deux devices detectés ou bien c est une cascade sur le premier device?
Logged

France, Nice
Offline Offline
Full Member
***
Karma: 3
Posts: 194
www.Zartronic.fr
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

A partir du PC tu vois que l'arduino qui est connecté par USB, pour les autres c'est à toi de faire un programme qui établira la liaison et transmettra les données.
Mais c'est peut être un peu compliqué pour un débutant, il faut mieux commencer avec une seule plaque, si tu as de gros besoin d'I/O il y a la mega, ou encore les multiplexeurs ... tout dépend de ton projet.
A+
Logged


www.Zartronic.fr : Arduino & Robotique

FRANCE
Offline Offline
Sr. Member
****
Karma: 0
Posts: 338
Arduino rocks .... oulalalalala
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok. donc on voit qu un seul device.
merci :-)
question: y a t il une fonction pour merger en une seule chaine de carcatere, plusieurs chaines ? ( je suppose qu une seule execution print est préférable à plusieurs print )
(j en profite ;-)  )
Logged

Pages: [1] 2   Go Up
Jump to: