- ashira aime ceci
- Robot Maker
- → Affichage d'un profil : Aime: Path
Statistiques de la communauté
- Groupe Modérateur
- Messages 2 504
- Visites sur le profil 20 767
- Titre Made By Humans
- Âge 51 ans
- Date de naissance Décembre 15, 1972
-
Gender
Homme
-
Location
Paris
Outils utilisateur
Derniers visiteurs
#71741 Moteur pas à pas Nema 17 [testé par ashira]
Posté par Path - 02 juillet 2016 - 06:31
#70804 Octoprint sur Rasbian avec l'imprimante 3D Discovery 200
Posté par Path - 05 juin 2016 - 04:19
Octoprint ou le truc de fainéant. Je m'en sers pour ne plus enlever/remettre la petite carte SD à chaque impression. http://octoprint.org/
On charge le fichier gcode par un glisser-déposer dans l'interface web. Au passage, il n'est plus utile de le nommer 'dagoma0.g'. On lance l'impression et c'est tout.
Le raspberry est bien pratique pour pas être obligé de laisser son ordi branché le temps de l'impression. Inutile d'installer la rasbian modifiée (Octopi) qu'ils proposent. On peut installer le soft seul sur sa Rasbian existante et à jour. Le raspberry est relié à l'imprimante par le câble USB. Il fait tourner le programme qui expose une interface web sur le port 5000.
Les quelques lignes pour l'installer sont là : https://github.com/f...unning-Raspbian
Le tuto que j'ai suivi : http://www.lesimprimantes3d.fr/forum/topic/1254-tuto-piloter-%C3%A0-distance-la-discovery-200-avec-octoprint-sur-raspberry-pi/
En plus du truc de fainéant, l'interface web permet de voir passer tout le gcode (instructif), pré-chauffer, extruder et bouger la tête sur les 3 axes.
Bref, un indispensable !!
J'utilise toujours le générateur de gcode (Cura) mais on peut aussi installer un pluggin cura dans octoprint pour y charger directement les .stl. Perso, je ne suis pas allé jusque là. J'ai préféré rester dans Cura pour retrouver tout mes paramètres durement configurés. Octoprint gère aussi votre cam pour imprimer chez soit depuis le travail ...
Ça chauffe !!
- Mike118 aime ceci
#68367 Un convertisseur 12VCC - DC 5VCC
Posté par Path - 29 mars 2016 - 10:14
Pourquoi pas C'est une bonne idée.
Je n'ai pas de voiture ^^ Je n'ai pas de bidule sur allume cigare à recycler.
... Désolé, je sors ... et vite oui ... Je suis con des fois
- Taupiot_Jr aime ceci
#67997 Ash, Self balancing robot
Posté par Path - 16 mars 2016 - 11:01
Ce soir, branchement du PI et son pote Duino !!
Les 2 sont reliés en USB. Ils sont isolés du reste du robot. Le PI alimente l'arduino via USB.
Au programme ce soir :
- Upload sur arduino directement depuis le PI en ligne de commande.
- Communication entre les 2 via USB.
Je kiffe, je partage. Parce que je ne dois pas être le seul que cela embête de débrancher re-brancher ce câble USB ...
Compilation et Upload
Pour modifier le sketch via ssh, depuis le PI vers l'arduino, sans passer par l'interface graphique (IDE) :
(Préalable) Il faut installer 2 packages sur le PI :
sudo apt-get install arduino-core arduino-mk
Autoriser le user (pi) à utiliser les commandes arduino :
sudo usermod -a -G dialout pi
Pour chaque programme à uploader :
Il faut un répertoire dédié pour ces 2 fichiers : code.ino et le Makefile.
Code.ino (le nom importe peu mais l'extension doit être .ino) contient le code source arduino. On peut l'éditer via son éditeur de texte préféré, via ssh, via vi si on veut.
Makefile indique aux commandes arduino quelques paramètres. Il doit contenir ces lignes :
ARDUINO_DIR = /usr/share/arduino BOARD_TAG = uno ARDUINO_PORT = /dev/ttyACM* ARDUINO_LIBS = include /usr/share/arduino/Arduino.mk
Mon arduino est un uno , cela tombe bien. Je crois qu'il faut changer 'BOARD_TAG' si ce n'est pas le cas.
Pour Ash, sur le PI, cela donne :
pi@raspberrypi:~/SBR/arduino $ ls -la total 20 drwxr-xr-x 3 pi pi 4096 mars 16 21:49 . drwxr-xr-x 5 pi pi 4096 mars 16 21:47 .. drwxr-xr-x 3 pi pi 4096 mars 16 21:49 build-uno -rw-r--r-- 1 pi pi 133 mars 16 21:48 Makefile -rw-r--r-- 1 pi pi 532 mars 16 21:47 sbr.ino
NB. le répertoire build-uno est créé par le compilateur.
Compiler et uploader :
Pour compiler, il faut se mettre dans le répertoire qui contient le .ino et le Makefile.
Lancer la commande make :
pi@raspberrypi:~/SBR/arduino $ vi sbr.ino pi@raspberrypi:~/SBR/arduino $ make
Arduino.mk Configuration:
- [AUTODETECTED] CURRENT_OS = LINUX
- [COMPUTED] ARDMK_DIR = /usr/share/arduino (relative to Common.mk)
- [AUTODETECTED] ARDUINO_DIR = /usr/share/arduino
- [AUTODETECTED] ARDUINO_VERSION = 105
- [DEFAULT] ARDUINO_SKETCHBOOK = /home/pi/sketchbook
- [BUNDLED] AVR_TOOLS_DIR = /usr/share/arduino/hardware/tools/avr (in Arduino distribution)
- [COMPUTED] ARDUINO_LIB_PATH = /usr/share/arduino/libraries (from ARDUINO_DIR)
- [DEFAULT] ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/arduino
- [COMPUTED] ARDUINO_VAR_PATH = /usr/share/arduino/hardware/arduino/variants (from ARDUINO_DIR)
- [COMPUTED] BOARDS_TXT = /usr/share/arduino/hardware/arduino/boards.txt (from ARDUINO_DIR)
- [DEFAULT] USER_LIB_PATH = /home/pi/sketchbook/libraries (in user sketchbook)
- [DEFAULT] PRE_BUILD_HOOK = pre-build-hook.sh
- [USER] BOARD_TAG = uno
- [COMPUTED] OBJDIR = build-uno (from BOARD_TAG)
- [DETECTED] MONITOR_BAUDRATE = 9600 (in sketch)
- [DEFAULT] OPTIMIZATION_LEVEL = s
- [DEFAULT] MCU_FLAG_NAME = mmcu
- [DEFAULT] CFLAGS_STD = -std=gnu99
- [COMPUTED] DEVICE_PATH = /dev/ttyACM* (from MONITOR_PORT)
- [AUTODETECTED] Size utility: AVR-aware for enhanced output
- [COMPUTED] BOOTLOADER_PARENT = /usr/share/arduino/hardware/arduino/bootloaders (from ARDUINO_DIR)
-------------------------
mkdir -p build-uno
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -x c++ -include Arduino.h -MMD -c -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=105 -D__PROG_TYPES_COMPAT__ -I. -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/standard -Wall -ffunction-sections -fdata-sections -Os -fno-exceptions sbr.ino -o build-uno/sbr.o
/usr/share/arduino/hardware/tools/avr/bin/avr-gcc -mmcu=atmega328p -Wl,--gc-sections -Os -o build-uno/arduino.elf build-uno/sbr.o build-uno/libcore.a -lc -lm
/usr/share/arduino/hardware/tools/avr/bin/avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex build-uno/arduino.elf build-uno/arduino.eep
/usr/share/arduino/hardware/tools/avr/bin/avr-objcopy: --change-section-lma .eeprom=0x00000000 jamais utilisé
/usr/share/arduino/hardware/tools/avr/bin/avr-objcopy -O ihex -R .eeprom build-uno/arduino.elf build-uno/arduino.hex
/usr/share/arduino/hardware/tools/avr/bin/avr-size --mcu=atmega328p -C --format=avr build-uno/arduino.elf
AVR Memory Usage
----------------
Device: atmega328p
Program: 4418 bytes (13.5% Full)
(.text + .data + .bootloader)
Data: 232 bytes (11.3% Full)
(.data + .bss + .noinit)
Cela semble compiler ^^
Pour uploader, toujours dans le même répertoire, lancer make upload.
pi@raspberrypi:~/SBR/arduino $ make upload
Arduino.mk Configuration:
- [AUTODETECTED] CURRENT_OS = LINUX
- [COMPUTED] ARDMK_DIR = /usr/share/arduino (relative to Common.mk)
- [AUTODETECTED] ARDUINO_DIR = /usr/share/arduino
- [AUTODETECTED] ARDUINO_VERSION = 105
- [DEFAULT] ARDUINO_SKETCHBOOK = /home/pi/sketchbook
- [BUNDLED] AVR_TOOLS_DIR = /usr/share/arduino/hardware/tools/avr (in Arduino distribution)
- [COMPUTED] ARDUINO_LIB_PATH = /usr/share/arduino/libraries (from ARDUINO_DIR)
- [DEFAULT] ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/arduino
- [COMPUTED] ARDUINO_VAR_PATH = /usr/share/arduino/hardware/arduino/variants (from ARDUINO_DIR)
- [COMPUTED] BOARDS_TXT = /usr/share/arduino/hardware/arduino/boards.txt (from ARDUINO_DIR)
- [DEFAULT] USER_LIB_PATH = /home/pi/sketchbook/libraries (in user sketchbook)
- [DEFAULT] PRE_BUILD_HOOK = pre-build-hook.sh
- [USER] BOARD_TAG = uno
- [COMPUTED] OBJDIR = build-uno (from BOARD_TAG)
- [DETECTED] MONITOR_BAUDRATE = 9600 (in sketch)
- [DEFAULT] OPTIMIZATION_LEVEL = s
- [DEFAULT] MCU_FLAG_NAME = mmcu
- [DEFAULT] CFLAGS_STD = -std=gnu99
- [COMPUTED] DEVICE_PATH = /dev/ttyACM* (from MONITOR_PORT)
- [AUTODETECTED] Size utility: AVR-aware for enhanced output
- [COMPUTED] BOOTLOADER_PARENT = /usr/share/arduino/hardware/arduino/bootloaders (from ARDUINO_DIR)
-------------------------
mkdir -p build-uno
make reset
make[1]: Entering directory '/home/pi/SBR/arduino'
/usr/bin/ard-reset-arduino /dev/ttyACM0
make[1]: Leaving directory '/home/pi/SBR/arduino'
make do_upload
make[1]: Entering directory '/home/pi/SBR/arduino'
/usr/share/arduino/hardware/tools/avr/../avrdude -q -V -D -p atmega328p -C /usr/share/arduino/hardware/tools/avr/../avrdude.conf -c arduino -b 115200 -P /dev/ttyACM0 \
-U flash:w:build-uno/arduino.hex:i
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e950f
avrdude: reading input file "build-uno/arduino.hex"
avrdude: writing flash (4418 bytes):
avrdude: 4418 bytes of flash written
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
avrdude done. Thank you.
make[1]: Leaving directory '/home/pi/SBR/arduino'
I thank you too Mr Duino.
Communication entre Mr PI et Mr Duino via USB
Maintenant, toujours sans débrancher la prise USB entre le PI et le Duino, ils se parlent !
Préalable sur le raspberry
Il faut installer Serial pour python.
sudo apt-get install python-serial
Préalable sur arduino : rien.
Programme de test PI (en python)
#!/usr/bin/python # -*- coding: utf-8 -*- import serial import time ser = serial.Serial('/dev/ttyACM0', 9600) while 1 : message = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()) ser.write(message) print(ser.readline()) time.sleep(0.5)
Programme de test arduino :
int compteur = 0; String message; void setup(){ Serial.begin(9600); } void loop() { message = "-"; if (Serial.available()) { message = Serial.readString(); } Serial.print("MSG # "); Serial.print(compteur); Serial.print(" read : "); Serial.println(message); compteur++; delay(1000); }
Le PI envoi la date.
Le Duino lit cette date, ajoute une donnée et retourne la texte modifié.
Le PI affiche ce que Duino lui envoi.
pi@raspberrypi:~/SBR $ ./test-serial-rpi.py Wed, 16 MSG # 0 read : - MSG # 1 read : Wed, 16 Mar 2016 21:30:21 +0000 MSG # 2 read : Wed, 16 Mar 2016 21:30:23 +0000 MSG # 3 read : Wed, 16 Mar 2016 21:30:25 +0000 MSG # 4 read : Wed, 16 Mar 2016 21:30:27 +0000 MSG # 5 read : Wed, 16 Mar 2016 21:30:29 +0000
Au passage, on note qu'il manque une seconde sur 2. La lecture étant bloquante en python sur le PI, il attend que le Duino réponde (1s) pour envoyer la prochaine date.
#67706 Ash, Self balancing robot
Posté par Path - 03 mars 2016 - 11:31
Quelques nouvelles de Ash,
J'ai tout démonté pour améliorer la forme, retirer les câbles en face avant (par dessus l'afficheur), retirer un peu de matière et fixer plus solidement le capteur inertiel. Il a minci et il est plus léger.
Coté logiciel, j'ai fait un compromis. J'avais donné la possibilité de piloter indépendamment la vitesse des 2 moteurs en affectant les 2 uniques sorties PWM aux moteurs. Aujourd'hui, je n'en laisse qu'un pour donner le 2eme au pilotage d'un servo. Raspberry oblige ... Le prochain ce sera avec de l'arduino ou un mix des 2 !
Donc il perd la possibilité de tourner en avançant. Il tournera à l'arrêt. En contrepartie, il gagne la vue avec une tête pivotante.
Je lui cherche des yeux ou plutôt une canne blanche Je vais essayer avec ça. Je vous tiens au courant.
PS.
Au passage, j'ai appris au sujet du capteur inertiel et plus précisément sur la librairie utilisée RTIMULib. Elle donne des valeurs correctes (attendues) pour le yaw et le roll (entre 0 et 360). Mais pour le pitch, elle va varier entre 90 et - 90. Sur une demi sphère. Surprenant. Tout est super bien expliqué là : https://richardstech....com/imu-stuff/. Du coup, vu la nouvelle position du capteur, je n'utilise plus le pitch mais le roll avec 90° comme objectif de correction.
- Mike118 aime ceci
#67361 Ash, Self balancing robot
Posté par Path - 20 février 2016 - 09:08
Vu chez MaceRobotics, je l'en remercie pour m'avoir donner cette idée : configurer le dongle wifi en point d'accès wifi
http://www.robot-maker.com/forum/topic/10172-mrpi1-mini-robot-mobile-avec-raspberry-pi/
Je me suis lancé là dedans ... J'ai réussi alors je partage.
Mon dongle wifi : Wifi Netgear N150 (WNA1000M). Il supporte le mode station (ou AP) mais il n'est pas reconnu d'office par la raspbian. Je m'en suis sorti grace à ce lien : https://matt.niloo.f...i-netgear-n150/. On s'en sort en mettant la conf du driver dans /etc/rc.local.
Pour la config en mode AP, j'ai trouvé beaucoup de tutos et fait plein d'essais. Je retiens http://www.daveconroy.com/turn-your-raspberry-pi-into-a-wifi-hotspot-with-edimax-nano-usb-ew-7811un-rtl8188cus-chipset/ qui doit convenir à la plupart mais sans le bridge pour moi, pas besoin. Et http://elinux.org/RPI-Wireless-Hotspot qui améliore le point d'accès avec du dhcp. Sans ce dernier, impossible de m'y connecter avec mon tel.
Ce qui m'a fait perdre un temps fou c'est mon netgear et son driver. Dans la conf de hostapd, par défaut, c'est driver=nl80211. Il fallait driver=rtl871xdrv.
Mais ce n'est pas tout. La conf des services hostapd et udhcpd fonctionnait bien mais pas au redémarrage ... J'ai cru devenir fou. Le problème venait de rc.local qui arrive après le lancement des services. Du coup, je restart les 2 services dans rc.local, après le driver. Je ne trouve pas ce contournement super bien.
Ça fonctionne, je me connecte directement au raspberry en wifi sans passer par mon router. Mais si quelqu'un a mieux que /etc/rc.local pour installer le driver 8192cu, je suis prenneur.
- Mike118 aime ceci
#66920 Path
Posté par Path - 06 février 2016 - 06:40
Bonjour à vous,
Amateur de tech' en général, je viens du monde du logiciel avec un vernis d'électronique. A la base, mon univers pro et perso tourne autour de node.js, des systèmes qui font tourner le web et de linux. J'ai 40 ans passés et je suis resté très geek ... même si on appelait ça autrement par le passé.
Donc ... A force de voir passer des news sur le sujet, j'ai décidé de m'offrir ce petit Raspberry PI. D'abord pour pas mourrir idiot et j'étais très intrigué par ce fameux port GPIO, que ne connaissais pas. Les tutos d'installation passés, ça a été la révélation !!
Un premier projet de petit serveur web avec nodeJS. Normal J'avais devant moi ce petit serveur web hard + soft qui tournait sur mon réseau local, administré via un terminal ssh, comme les gros serveurs ... Premier kiffe.
Après cela, j'ai vite essayé de brancher une led et un bouton poussoir, juste pour voir comment interfacer ça avec nodeJS (toujours). Ca consistait à allumer la led en pressant le bouton. C'est un marteau pilon pour une tête d'épingle si on passe par un raspberry pour faire ça mais je devais apprendre.
Un 2ème projet où je voulais mettre ensemble le sense hat, une vielle webcam usb et un bras articulé avec 2 servos. Je voulais piloter les servos avec le capteur IMU du sense hat. -> 2ème gros kiffe. Au passage, j'ai grillé la camera officielle avec mes doigts, j'en suis pas fier. 30€ j'ai retenu la leçon. Pour me consoler, le logiciel motion a reconnu ma vielle webcam directement.
Jusque là, j'ai avancé sans but précis, en me demandant ce que je pouvais faire de sympa avec ces trucs.
Je vous lis depuis quelques semaines et je trouve certaines de vos réalisations très impressionnantes. Je viens partager humblement, en amateur pour lire commentaires et remarques. C'est comme ça qu'on progresse. Je vais essayer de vous présenter mon 3eme projet dans le topic dédié à ça.
Ces quelques petits projets d'introduction représentent déjà pas mal de recherches sur le net, mine de rien. Je viens partager ça aussi. S'il y a des débutants comme moi.
++, Path
- ashira aime ceci
- Robot Maker
- → Affichage d'un profil : Aime: Path
- Privacy Policy