[Résolu] I2C Raspberry <-> Arduino

Des infos, des conseils sur les bus DSI,CSI, I2C, SPI... du Raspberry Pi

Modérateur : Francois

Répondre
Olivier-04
Messages : 6
Enregistré le : mer. 21 déc. 2016 21:32

[Résolu] I2C Raspberry <-> Arduino

Message par Olivier-04 » mer. 21 déc. 2016 21:56

Bonjour,

Je fais des essais basés sur un serveur lighttpd sur Raspberry(maître) communicant avec un Arduino(esclave) par I2C. La communication se fait bien dans les deux sens. J'ai une limite de connaissances dans ce domaine qui fait que je n'arrive pas à envoyer autre chose que des entiers vers l'arduino qu'il lit bien mais pas dans une variable spécifique.
Actuellement par exemple j'envoie différentes valeurs :
0 à 9 -> positions angulaires d'un servomoteur ;
10 -> éteindre une led ;
11 -> allumer une led ;
30 à 50 -> positions en X du joystick virtuel (pilotage moteurs)
60 à 80 -> positions en Y du joystick virtuel (pilotage moteurs)
et en fonction de ces valeurs je génère les actions adaptées dans l'arduino. Mais je ne trouve pas ça très propre et surtout restrictif, notamment pour la gestion du joystick virtuel.
Dans l'autre sens (Arduino->Raspberry, j'envoie les données dans un tableau ce qui fait que selon l'index, le Raspberry sait à quoi ça correspond dans la limite de 4 octets par index du tableau. À moins qu'on puisse là aussi faire mieux.

Ma question est : peut-on à partir du code python (bus.write_byte(address, int(xy)) par exemple) envoyer la valeur dans une variable dédiée ou adresse registre spécifique de l'arduino pour la récupérer et savoir à quoi elle correspond exactement ?

Existe-t-il une doc à ce sujet, j'ai parcouru pas mal de choses mais je n'ai jamais trouvé de réponses précises à ce sujet.

Merci pour votre aide.

Olivier
Modifié en dernier par Olivier-04 le lun. 2 janv. 2017 23:43, modifié 1 fois.

Avatar du membre
Manfraid
Modérateur
Messages : 1392
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: I2C Raspberry <-> Arduino

Message par Manfraid » jeu. 22 déc. 2016 11:02

Salut,

de mémoire tu peu faire un truc du genre

Code : Tout sélectionner

# adresse de l'esclave
DEVICE_ADDRESS = 0x22
#adresse du premier registre
DEVICE_REG_OUT0 = 0x01
#Valeur à envoyer
values = [0xff, 0xff, 0xff, 0xff, 0xff, 0xff]

bus.write_i2c_block_data(DEVICE_ADDRESS, DEVICE_REG_OUT0, values)
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Olivier-04
Messages : 6
Enregistré le : mer. 21 déc. 2016 21:32

Re: I2C Raspberry <-> Arduino

Message par Olivier-04 » jeu. 22 déc. 2016 22:43

Merci beaucoup, j'essaie ça dès que possible !

Olivier-04
Messages : 6
Enregistré le : mer. 21 déc. 2016 21:32

Re: I2C Raspberry <-> Arduino

Message par Olivier-04 » lun. 2 janv. 2017 23:42

Merci bien !!
Cette méthode fonctionne !
Olivier

Avatar du membre
Manfraid
Modérateur
Messages : 1392
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: [Résolu] I2C Raspberry <-> Arduino

Message par Manfraid » mar. 3 janv. 2017 13:06

de rien :)
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Répondre

Retourner vers « Les BUS interfaces »