[Résolu] Raspberry en tant que "relai" pour ArduinoIDE  [RESOLU]

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

[Résolu] Raspberry en tant que "relai" pour ArduinoIDE  [RESOLU]

Message par Korhm » lun. 31 juil. 2017 18:14

Bonjour à tous,

je me sers de mon Raspberry Pi pour, entre autre, m'interfacer avec un Arduino Nano en USB ; qui lui contrôle en bandeau de LED WS2812B.
Tout ça est du bel effet derrière un meuble télé de 4m de long, et le tout bien rangé dans des tiroirs.

Mon problème est là. Je programme depuis l'IDE Arduino sur mon PC Portable, et dès que je veux mettre à jour le soft sur l'Arduino, je dois tout débrancher. Vraiment pas pratique, surtout quand ça ne fonctionne pas comme voulu du premier coup...

Existe t'il donc un moyen de me servir du Raspberry Pi en tant que relai entre mon PC et l'Arduino.
En gros que je puisse émuler ma framboise en tant qu'Arduino en OTA, et qu'elle s'occupera de pousser les binaire à l'Arduino ?

Si ce n'est pas possible, auriez-vous une idée sur comment me simplifier la vie ? Sachant que je ne souhaite pas développer directement via l'interface Arduino IDE sur mon Raspberry, c'est un modèle 2, et c'est du coup plutôt lent...


Merci
Modifié en dernier par Korhm le mer. 2 août 2017 20:48, modifié 1 fois.

nexen
Raspinaute
Messages : 175
Enregistré le : lun. 29 sept. 2014 13:58

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par nexen » lun. 31 juil. 2017 22:06

Bonjour,

Je comprend la problématique du 'c'est lent', j'ai essayé et depuis je me suis endormis ;)

Je n'ai pas essayé, mais n'existe-t-il pas un utilitaire en mode ligne de commande pour pousser le programme dans l'arduino ? Je chercherais 'Arduino linux push program command line ' et par exemple https://arduino.stackexchange.com/quest ... mmand-line

et mon parcours serais : Je génère le programme sur mon laptop, je FTP/SCP/SFTP sur mon raspberry et ensuite je lance la commande pour mettre à jour. Ma fainéantise me pousserais à scripté un bash qui cherche dans un rep particulier, dés qu'il trouve il diffuse et déplace le fichier dans un autre répertoire ....

Ce ci n'est qu'une façon parmis tant d'autre je pense :)

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par guillaume9344 » lun. 31 juil. 2017 22:22

A essayer sur un pi , peut etre en précompilant sur un pc:
https://blog-du-grouik.tinad.fr/post/20 ... DE-arduino.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par Korhm » mar. 1 août 2017 15:22

Merci pour vos retour :)

Depuis hier je suis justement en train de regarder ce qui est faisable en ligne de commande, et vos liens mon bien orienté.
J'ai tenté l'outil inotool qui permet de compilé puis uploader, sans succès. J'ai une erreur de compilation des librairies complémentaires

Je suis donc en train de tester la méthode avec un Makefile, mais toujours un problème de librairie.
Mon .ino inclue WS2812FX.h, qui lui même inclue Adafruit_NeoPixel.h
J'ai donc la structure suivante :

Code : Tout sélectionner

├── libraries
│   ├── Adafruit_NeoPixel
│   │   ├── Adafruit_NeoPixel.cpp
│   │   ├── Adafruit_NeoPixel.h
│   │   ├──[...]
│   └── WS2812FX
│       ├── [...]
│       ├── WS2812FX.cpp
│       ├── WS2812FX.h
│       └── WS2812FX_logo.png
├── Makefile
└── sketch.ino
et le Makefile suivant :

Code : Tout sélectionner

PROJECT_DIR  = /home/pi/dev/ws2812b
LIBRARIES = WS2812FX Adafruit_NeoPixel
LIBRARYPATH =  $(PROJECT_DIR)/libraries

BOARD         = uno
SERIALDEV      = /dev/arduino_nano

include ../arduino.mk
Malgré tout, il indique ne pas trouver Adafruit_NeoPixel.h :(
Quelqu'un aurait une idée ?

Code : Tout sélectionner

pi@Yavin:~/dev/ws2812b $ make
mkdir -p .dep/./
/usr/bin/avr-g++  -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -DUSB_VID= -DUSB_PID= -I. -Iutil -Iutility -I /usr/share/arduino/hardware/arduino/cores/arduino -I /usr/share/arduino/hardware/arduino/variants/standard/ -I /home/pi/dev/ws2812b/libraries/WS2812FX -I /home/pi/dev/ws2812b/libraries/WS2812FX/utility  -c -MMD -MP -MF .dep/sketch.ino.dep -o sketch.o -x c++ -include /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h sketch.ino
In file included from sketch.ino:1:0:
/home/pi/dev/ws2812b/libraries/WS2812FX/WS2812FX.h:56:31: fatal error: Adafruit_NeoPixel.h: No such file or directory
 #include <Adafruit_NeoPixel.h>
                               ^
compilation terminated.
../arduino.mk:416: recipe for target 'sketch.o' failed
make: *** [sketch.o] Error 1
Après j'ai effectivement la solution de compilé sur PC, et uploader le binaire via le rapsberry, mais c'est moins fun :p

nexen
Raspinaute
Messages : 175
Enregistré le : lun. 29 sept. 2014 13:58

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par nexen » mar. 1 août 2017 16:08

hello :)

Tu as demandé :
Existe t'il donc un moyen de me servir du Raspberry Pi en tant que relai entre mon PC et l'Arduino
En gros que je puisse émuler ma framboise en tant qu'Arduino en OTA, et qu'elle s'occupera de pousser les binaire à l'Arduino ?
J'ai répondu à ta demande :)

maintenant si la demande change en cours de route ... pour des raisons de 'FUN' :p on va pas y arrivé ! ;) :lol: :arrow: Ok je sors


pour ton soucis d'include ... je n'ai plus toucher de compilo/arduino depuis 3 ans ... mais il me semble qu'il manque le path pour ton .h quelque part... tu lui indique bien .... mais dans sa ligne de commande il n'a pas l'air de le prendre ....

cdt :)

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par Korhm » mar. 1 août 2017 21:33

Je rajoute des pièges au fur et à mesure :)

Bon, j'ai finalement réussi à compiler avec inotool (j'ai laissé tombé le Makefile qui voulait pas compiler les dépendances des dépendances)
J'avais cependant un problème dans mon code qui compile très bien avec l'IDE Arduino sous Windows, mais pas sous Linux. 2/3 modifs plus loin, ça compile.

Mais concernant l'upload, bien ça coince en plein milieu... :( (et là je suis pile dans mon sujet de départ dans lequel je demandais que le Raspberry Pi gère l'upload :P )
De manière plutôt aléatoire, pendant le Reading ou Writing, j'ai le message suivant qui apparaît et l'upload s'arrête

Code : Tout sélectionner

avrdude: stk500_recv(): programmer is not responding

Exemples :

Code : Tout sélectionner

pi@Yavin:~/arduino $ ino upload -p /dev/arduino_nano -m nano328

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: reading input file ".build/nano328/firmware.hex"
avrdude: writing flash (24246 bytes):

Writing | ################################################## | 100% 7.97s

avrdude: 24246 bytes of flash written
avrdude: verifying flash memory against .build/nano328/firmware.hex:
avrdude: load data flash data from input file .build/nano328/firmware.hex:
avrdude: input file .build/nano328/firmware.hex contains 24246 bytes
avrdude: reading on-chip flash data:

Reading | ###                                                | 5% 0.33savrdude: stk500_recv(): programmer is not responding


Code : Tout sélectionner

pi@Yavin:~/arduino $ sudo ino upload -p /dev/arduino_nano -m nano328

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: reading input file ".build/nano328/firmware.hex"
avrdude: writing flash (24246 bytes):

Writing | ####################################               | 72% 5.76savrdude: stk500_recv(): programmer is not responding

nexen
Raspinaute
Messages : 175
Enregistré le : lun. 29 sept. 2014 13:58

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par nexen » mer. 2 août 2017 08:59

je vais poser la question idiote ... mais je pense que tu as déjà testé : la vitesse de transfert est-elle la bonne ?

PS : tu a renommé ton /dev ? tu lui envois les infos comment ? sérial ou USB ?

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

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par Manfraid » mer. 2 août 2017 09:38

Salut,

petite question, pourquoi tu ne pilote pas directement ton bandeau avec le Rpi ?
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.

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par Korhm » mer. 2 août 2017 12:07

nexen a écrit :je vais poser la question idiote ... mais je pense que tu as déjà testé : la vitesse de transfert est-elle la bonne ?

PS : tu a renommé ton /dev ? tu lui envois les infos comment ? sérial ou USB ?
Oui normalement la vitesse est la bonne. Il faudra que je re-verifie quand même au cas où
Le arduino est connecté en USB. Une règle udev créer un lien symbolique "arduino_nano" qui pointe vers un ttyUSBx
J'ai réussi à faire un upload en entier après un reboot. Mais dès que je re-tente, j'ai de nouveau le problème. Je vais tester en changeant le câble USB pour voir, dès que j'ai un peu de temps :D

Manfraid a écrit : petite question, pourquoi tu ne pilote pas directement ton bandeau avec le Rpi ?
À la base, j'avais vu un article sur la libraire Arduino WS2812FX dans un Hackable Magazine. Donc comme ça correspondait à ce que je voulait faire, j'ai pas cherché plus loin :)
Ensuite, j'avais cherché des Lib pour Raspberry Pi, et je suis tombé sur plusieurs forums, et sur le site Adafruit, qui conseillent vraiment de passer par un micro contrôleur dédié pour des raisons de buffer et de fréquence.
Et comme mon Raspberry ne me sert pas qu'à ça....

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: Raspberry en tant que "relai" pour ArduinoIDE

Message par Korhm » mer. 2 août 2017 16:02

Bon,

en branchement l'Arduino directement sur un port USB du Raspberry Pi, plutôt que via un HUB USB, l'upload se fait correctement à chaque coup.

Merci à tous pour votre aide ;)

Répondre

Retourner vers « Utilisateurs avancés »