octobre 21

Autolevelling avec BLtouch sur Ultimaker Original+

La capteur BLtouch permet de mesurer la distance entre lui et le plateaux afin ensuite d’ajuster la distance buse/plateaux automatiquement. Plus besoin de régler  le plateaux à la main, avec les vis.

BLtouch

Fixation à la tête d’impression

Pour ce faire, il faut d’abord le fixer sur la tête de l’UMO à une hauteur prédéterminé par la hauteur du BLtouch et la distance de sa fixation à la tête et mesurer les coordonnées (X et Y) de la tige du Bltouch par rapport à la buse d’impression.

mesures BLtouchfusion-screen

Le fichier stl du support est disponible sur Thinkiverse bien sur.

Pour calculer les coordonnées du BLtouch : j’ai mis un coup de marqueur noir sur la tige du BLtouch et sur la pointe de la buse, placer une feuille de papier sur la plateaux, fais monter l’ensemble à la main jusqu’à que ça touche bien les coup de marqueur, j’ai repointer les marquage avec une pointe, histoire d’avoir un truc solide.
Ensuite, on mesure les distances entre les différentes marques, par rapport aux axes X et Y.

position-bltouch

 

Ces valeurs serviront ensuite à paramétrer les valeurs   X et Y PROBE_OFFSET_FROM_EXTRUDER  du  firmware.

A noter que, si on amène la tête à fond sur l’axe Y, le BLtouch touche le cache en bois du fond. Il faudra donc plus tard dans le firmware paramétrer un maximum sur l’axe Y de 198 mm au lieu des 210 mm original. Une petite baisse donc de la surface d’impression.
En enlevant le cache en bois, ça doit corriger ça mais j’ai eu la flème de le faire 😉

Connexion à la carte mère

Le Bltouch dispose de 5 fils : 2 pour la détection de position (et le fin de course de l’axe Z) et 3 pour son alimentation et la commade de la monter/descente de la tige. On déconnecte le connecteur de fin de course Z et on branche le BLtouch comme indiqué sur l’image.

bl-touch-pour-auto-leveling pin-j26

Configuration du firmware

Cela passe par l’installation d’Arduino, logiciel qui permet de modifier et d’envoyer le firmware sur l’imprimante.
A noter que ce n’est pas destructif, Cura permet facilement d’envoyer le firmware par défaut, pas de crainte de se coté la donc.

Ensuite, on va récupérer le firmware rc7-bltouch (que j’ai adapté depuis le firmware Marlin RC7)
On ouvre le dossier Marlin et on ouvre dans Arduino le fichier Marlin.ino.

Arduino doit être configuré comme ça au niveau « type de carte » et « processeur ».

config-arduino

Voila les modification des différents fichiers que j’ai effectué par rapport au firmware RC7.

configuration.h
90 //#define SHOW_BOOTSCREEN  // pour ne pas afficher les infos du firmware lors du démarrage
 
124 #define MOTHERBOARD BOARD_ULTIMAIN_2
 
228 #define TEMP_SENSOR_0 20
232 #define TEMP_SENSOR_BED 20
425 #define Z_MIN_ENDSTOP_INVERTING false // inversion du type de capteur
452 #define BLTOUCH
455 #define Z_ENDSTOP_SERVO_NR 0
456 #define Z_SERVO_ANGLES {10,90} // pour commande M280 P0 S10 ou S90 (descente et monté BLtouch)
479 #define X_PROBE_OFFSET_FROM_EXTRUDER 43
      #define Y_PROBE_OFFSET_FROM_EXTRUDER -12
      #define Z_PROBE_OFFSET_FROM_EXTRUDER -3 //( entre -2.9 et -3.1)
484 #define XY_PROBE_SPEED 9000 / Amax de l’UMO+
#define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0
578 #define INVERT_X_DIR true
579 #define INVERT_Y_DIR false
580 #define INVERT_Z_DIR true
611 #define X_MAX_POS 210
      #define Y_MAX_POS 198 //210 d’origine mais limité par le cache en bois
      #define Z_MAX_POS 205
656 #define AUTO_BED_LEVELING_FEATURE
678 #define AUTO_BED_LEVELING_GRID
682     #define LEFT_PROBE_BED_POSITION 0 // >=0
            #define RIGHT_PROBE_BED_POSITION 198 // >=198 (Y max)
            #define FRONT_PROBE_BED_POSITION 43 // >=43 (position BLtouch en Y, par  rapport à nozzle)
            #define BACK_PROBE_BED_POSITION 198 // >=198 (Ymax – position  BLtouch en X)
691     #define AUTO_BED_LEVELING_GRID_POINTS 3 // 9 points de contrôle du plateaux
752 #define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200.0,760*1.1}
753 #define DEFAULT_MAX_FEEDRATE          {500, 500, 30, 25}
754 #define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}
756 #define DEFAULT_ACCELERATION
939 #define LCD_LANGUAGE fr // affichage en Français
984 #define SDSUPPORT / activation du lecteur de carte de l’ulticontroller
1077 #define ULTIMAKERCONTROLLER / activation de l’UltiController
1285 #define NUM_SERVOS 3 // pour dire il y a 3 servo moteurs dispo, Servo index starts with 0 for M280 command
ultralcd.h
65   #define LCD_TIMEOUT_TO_STATUS 30000 / temps de retour automatique à l’écran d’accueil (30 sec)
pins.h
rajout : #define SERVO0_PIN 13 //activation de la broche 3 du connecteur J26
configuration_adv.h
320 #define HOMING_BUMP_DIVISOR {2, 2, 2} // sinon, le plateau ralenti à la 2e monté
321 #define QUICK_HOME  // le HOME se fait plus rapidement car les axes bougent en diagonal
342 #define DEFAULT_STEPPER_DEACTIVE_TIME 60 // désactivation des moteurs au bout de 60 sec (120 par défaut)

Réglages

La partie délicate est d’avoir la tige du BLtouch (en position home Z) au même niveaux que la buse.
  1. mettre Z_MIN_POS et Z_PROBE_OFFSET_FROM_EXTRUDER sur la même valeur négative (plus grande que la distance entre la buse et la plateaux, style -50)
  2. Régler la platitude du plateaux grace aux vis de réglages, la buse étant à 43 mm du BLtouch si le plateaux n’est pas horizontal, on aura un décalage.
  3. Faire chauffer la buse à 180°, histoire de la nettoyer (pour ne pas avoir un reste de filament durcit qui fausserait la mesure  )mais sans avoir de filament qui coule
  4. placer la buse au centre du plateaux
  5. faire un Z home, mettre une feuille de papier sur le plateaux puis le remonter , par pas de 0.1 mm, jusqu’à avoir un bon frottement avec la buse.
  6. Noter la valeur Z renvoyé par l’ulticontroller, c’est le décalage entre la buse et le BLtouch en home, dans mon cas -2.8 mm (Une valeur négative  plus grande réduit l’écart entre la buse et le plateaux)
  7. mettre Z_MIN_POS à 0 et Z_PROBE_OFFSET_FROM_EXTRUDER à la valeur trouvé en 6
  8. Renvoyer le firmware

Note :

On peut ensuite modifier (temporairement), pour des tests, la valeur de Z offset via le Ulticontroller ou via Gcode : M851 Z-2.8; (pour un offset de -2.8 par exemple).
Une fois validé, on peut avec Arduino /croquis/exporter les binaires compilées (création d’in fichier Marlin.ino.mega.hex) et l’importer dans l’Ultimaker via Repetier ou autre.

Voir Gcode

Utilisation

Une fois fait, le BLtouch peut monter et descendre via la commande M280 P0 S10; et M280 P0 S90;

Le test de niveaux par le code G29; mais aussi via le Ulticontroller.

Il faut donc rajouter dans son sclicer préféré un G29; (avec un HOME avant) pour avoir un test de niveaux avant chaque impression !
Perso, je l’ai mis une fois que le plateaux et chaud, histoire de prendre en compte ses éventuels déformations dus à la température.

septembre 6

Pas de son en HDMI

Les GPU ATI (AMD) peuvent rentrer en conflit avec les drivers Realtek de la carte mère.

Dans mon cas, sous seven, le GPU était bien installé, la sortie HDMI visible et activé pour la lecture MAIS pas de son.

L’installation de ce driver ( HDMI_R270 (Driver HDMI pour AMD))résolu le problème.

J’ai aussi désactivé l’audio intégré à la carte mère, via le BIOS et, lors de l’installation de Catalyst (pour mon GPU ATI), je n’ai pas installé son driver audio.

Catégorie : WINDOWS | Commenter
juillet 30

Récupérer la valeur MIDI du volume

Un croquis permettant de récupérer la valeur MIDI du curseur de volume de Ableton Live et de l’envoyer, via USB/MIDI, sur un Teensy 3.

A noter que, à chaque changement de set Live, la valeur du volume est automatiquement envoyé !

void setup()
{

}

void loop()
{
int ControleChange, valeur;
  if (usbMIDI.read()) 
  {      // si il y a des messages MIDI
      int ControleChange = usbMIDI.getData1();
      int valeur = usbMIDI.getData2();
    Serial.print("Control change: ");
    Serial.println(ControleChange);   
    Serial.print("Valeur: ");
    Serial.println(valeur);
  }

}//loop
Catégorie : Teensy/Arduino | Commenter
juin 20

Serveur d’impression 3d Avec Repetier

Pour ma part, j’ai installé Repetier serveur sur mon Raspberry 3, qui contenait déjà Octoprint… les 2 cohabite sans problème puisque qu’ils ont la même adresse IP mais des port d’accès différents.
On peut cependant l’installer sur un raspbian lite (Jessie)

  • Allez sur le site de repetier et bien choisir la version armf.
  • Placer le fichier .deb dans le dossier tmp (par exemple)
  • Se connecter avec un terminal et faire : cd /tmp
  • Faire : ls pour vérifier la présence du fichier
  • Faire : sudo pt-get update et sudo apt-get upgrade, ça peut prendre du temps
  • Lancer l’installation : sudo dpkg -i non_du_fichier_repetier.deb

Une fois fait, on peut accèder à l’interface du serveur Repetier via : ip_du_raspi:3344
Le port peut se modifier via  : sudo nano /usr/local/Repetier-Server/etc/RepetierServer.xml

Même si on peut envoyer des fichiers Gcode sur Repetier Server, on à intérêt à installer aussi sur son PC Repetier Host.
De plus, pour ceux qui utilise Fusion 360, ce logiciel peut envoyer directement le modèle en cours de création dans Repetier Host…
Fusion 360 (création) —> RepetierHost (trancheur) —> RepetierServeur (impression 3D)
Celui-çi se connectera au serveur et permettra de piloter toute l’imprimante connecté au Raspi.
Il contient 2 slicer : Cura et Slic3R et de nombreuses options de réglages et mémorisation de paramètres de filament et autres.
Notes : 
Le log de Repetier s’affiche via
tail -100 /var/log/syslog

Wifi et IP fixe

Sur la version Jessie de raspbian.
Editer le fichier de configuration
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Ecrire dedans
network={
    ssid="nom du SSID"
    psk="clé de sécurité"
}
Redémarrer le raspi
Pour passer en IP fixe, éditer le fichier dédié au DHCP.
sudo nano /etc/dhcpcd.conf
Ecrire dedans (exemple pour Freebox)
interface wlan0

     static ip_address=192.168.0.40
     static routers=192.168.0.254
     static domain_name_servers=192.168.0.254

interface eth0

     static ip_address=192.168.0.40
     static routers=192.168.0.254
     static domain_name_servers=192.168.0.254
un ifconfig permet de lister les connexions disponibles du raspi.

Webcam

Contrairement à Octoprint, la raspicam n’est pas activé par defaut même si la commande :  raspistill -o cam.jpg
créera un photo dans le dossier home/pi du raspi.

J’ai du passer par une ruse pour avoir la vidéo, car le dossier /dev ne contenait pas video0 (la partie vidéo du raspicam)

sudo rpi-update
sudo modprobe bcm2835-v4l2

La commande v4l2-ctl –list-devices permet d’avoir des infos sur la cam.
et v4l2-ctl -d /dev/video0 –list-formats des infos sur les formats pris en charge

Pour que la cam démarre automatiquement :

sudo nano /etc/rc.local

ajouter (après #print the adress ip) : sudo modprobe bcm2835-v4l2

En cas de problème avec Uv4L

curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -

Sudo nano /etc/apt/sources.list

Ajouter dedans
deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main

Mettre à jour et installer le driver uv4l et le serveur

sudo apt-get update
sudo apt-get install uv4l uv4l-raspicam
sudo apt-get install uv4l-server
Pour démarrer le driver au boot
sudo apt-get install uv4l-raspicam-extras

Pour redémarrer
sudo service uv4l_raspicam restart

Bien vérifier que la camera démarre avec Raspbian et que le GPU attribue au moins 128Mb de mémoire via
sudo raspi-config

Les infos de la cam sont accessible via :
sudo nano /etc/uv4l/uv4l-raspicam.conf

<strong>source</strong>
Installation for ARM (Raspberry Pi)
http://blog.cudmore.io/post/2016/06/05/uv4l-on-Raspberry-Pi/

Installation de MJPG streamer

J’ai tellement testé de truc divers que je ne me rappel pas la méthode exacte, mais j’ai suivie cette méthode

https://www.raspberrypi.org/forums/viewtopic.php?p=751735#p751735

Bien appliquer le patch pour Jessie !!

Editer le script :

cd /usr/local/bin
sudo nano streamer.sh
#!/bin/bash
/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -n -f 10 -r 640x480" -o "/usr/local/lib/output_http.so -p 8080 -w /usr/local/www" &

(-f pour le nombre de frames, -r pour la taille de la vidéo, -p pour le port indiqué dans Repetier)

Le rendre exécutable : chmod +x streamer.sh

Puis, pour démarrer le bouzin :

cd /usr/local/bin
sh streamer.sh
Dans les paramètres de Repetier Server /printer settings/webcam/ indiquer :
  • http://192.168.0.45:8080/?action=stream
  • http://192.168.0.45:8080/?action=snapshot
Pour que ça démarre au boot du Rapi :
cd /home/pi/.config/lxsession/LXDE-pi/
sudo nano autostart
rajouter : @sh /usr/local/bin/streamer.sh

Dans les paramètres de Repetier Server /global settings /TimeLapse/ indiquer : /usr/bin/avconv
J’ai installé FFMPEG MAIS je n’ai pas trouvé comment le lié à Repetier.

Installation de FFMPEG (pas nécessaire si Avconv fonctionne)

Ajouter à la liste des dépots du rapi.

sudo nano /etc/apt/sources.list.d/raspi.list
inscrire dedans
deb http://ftp.debian.org/debian/ stretch main contrib non-free
Mettre à jour : sudo apt-get update
et installer : sudo apt-get install ffmpeg
Pour vérifier :  ffmpeg -version devrait renvoyer des infos
Pour voir la vidéo : ffmpeg -f video4linux2 -r 25 -s 640×480 -i /dev/video0 macam.avi
(remplacer ffmpeg par avconv donne le même résultat pour moi, normale car ce sont tout les deux des transcodeur vidéo)
Sources :
  • https://www.raspberrypi.org/forums/viewtopic.php?t=68247&p=498140
  • http://www.silvesterdao.com/2016/06/raspberry-pi-3-wifi-ip-camera.html
  • fr.mathworks.com/help/supportpkg/raspberrypi/ug/add-support-for-raspberry-pi-camera-board.html?requestedDomain=www.mathworks.com
  • https://www.repetier-server.com/setting-webcam-repetier-server-linux/
  • https://www.raspberrypi.org/forums/viewtopic.php?&t=19661

Configuration imprimante

Logiquement, repetier va récupérer le device et port automatiquement. Cependant, la commande : ls /dev/serial/by-id/
permet de savoir ce qui le Raspi défini.
settings-generale
Pour ma part, j’ai activer le Ping Pong Mode car j’avais des coupures aléatoires lors des print.
La taille du buffer peut êtres augmenté, si l’on constate des problèmes de communication.

Repetier Host

Le logiciel communique avec le serveur, via une clé API indiquée sur le serveur dans : global/settings/connectivity.
Le logiciel peut importer automatiquement les paramètres de l’imprimante, indiqué sur le serveur.
repetierhost-imprimante01
Les paramètres d’impressions (layer, vitesse…) peuvent être exportés en fichier .rcp.
Les paramètres de filaments (température, diamètre…) peuvent être exportés en fichier .rcf.
Catégorie : Impression 3D | Commenter
juin 20

Serveur d’impression 3D avec AstroBox

Un autre système, très différent, plus light et coloré et qui peut se coupler sur une platefome en ligne
J’ai testé, plus rapidement de Octoprint mais j’avoue ne pas être emballé, ça donne plus l’impression de pousser à l’achat d’applications, via des sites partenaires.
Pas d’accès à ma raspicam depuis l’interface web et surtout, beaucoup moins de réglages
De plus, la connexion en Wifi est plus compliqué à mettre en place : brancher en ethernet, chercher l’IP (via sa box), ensuite via l’interface web indiquer le mot de passe WiFi.
Bine penser ensuite à désactiver le HotSpot
astroprint-hotspot astroprint-wifi
De plus, l’interface « local » ne donne pas accès à la webcam et aux réglages de l’imprimante, il faut passer par la page de son compte Astroprint pour l’afficher.

Catégorie : Impression 3D | Commenter
juin 20

Serveur d’impression 3D avec Octoprint

OctoPrint permet de piloter et contrôler une imprimante 3D via une page Web et/ou appli Android.
Mais aussi d’envoyer ses fichiers Gcode via le wifi, sans avoir à sortir la carte SD de son imprimante et de suivre la progression de son impression.

OctoPrint01
OctoPrint-control

Prérequis

  1. Un raspberry Pi
  2. carte mémoire
  3. une clé WiFi (Raspi V1 ou V2)
  4. un clavier/souris sans fil
  5. une PiCam noIR (en option)

Pour infos, l’ensemble consomme environ 600 mA, pour ceux qui souhaiterait l’alimenter via l’alim de l’imprimante par exemple.

Version de Raspi

Pour Infos, j’ai testé avec un Raspberry PI P1 B+, ça fonctionne mais il y a de la latence pour afficher la page Web et pour la WebCam. Sinon, une fois lancé, ça print correctement. Mais je recommande au moins le Raspi 2, qui à un QuadCore pour une consommation de 650mA, entièrement compatible avec Raspian.

En 2015, le Raspberry étant sortie en version 3, avec plus de puissance CPU et le WiFi intégré…
Ca fonctionne : https://sites.google.com/site/octoprintworkingonraspberrypi3/ et c’est carrement mieux, je n’ai pas de latence entre la commande envoyé via le navigateur et l’imprimante. La webcam aussi donne une image en temps réel.

Installation

installer l‘image de Octoprint (avec win2dikImage par exemple) sur la carte SD du raspi.

 Via une télé

Mettre la carte dans le raspi connecté en HDMI sur une TV, le dongle bluetooth clavier/sourie et connecter le bouzin via ethernet,
démarrer et suivre les instruction à l’écran.
ATTENTION :  le clavier sera en mode qwerty (q en place de a et ) en place de -). On peut passer ensuite le claver et azerty.
Accès au menu de configuration via : raspi-config
login : pi
password : raspberry
Modifier principalement :
  • la langue = Fr-utf-8
  • la clavier = generic 105 keys puis French Alternative
  • le fuseau horaire = europe/Paris
  •  « enable boot to desktop… » = démarrer le raspi avec l’interface graphique
  • enable camera (si une branche une PiCam)
  • activer le SSH (si besoin futur)

Via un logiciel (putty, bitvise…)

la config de boot peut êtres accessible via l’interface graphique et/ou terminal (raspi ou putty) avec : sudo raspi-config
Une fois la config effectué on accède à l’interface graphique du Rapi (pas encore de OctoPrint), logiquement le WiFi devrait est connecté via le DHCP de sa box.
Si on veux avoir accès en FTP ou SSH au Raspi :
  • IP = ip du raspi sur le réseau local
  • login = pi
  • password = raspberry

Configuration WiFi

Une fois fait, placer la carte SD dans son PS et éditer le fichier octoprint-network.txt pour indiquer le SSID et passe WiFi de sa box.
## WPA/WPA2 secured

iface wlan0 inet manual

    wpa-ssid "Livebox-6Ae4"

   wpa-psk "FTRD45JHU86DE"

IP fixe

Si l’imprimante reste sur le même réseau, il est préférable de lui attribuer une IP fixe, pour éviter les conflits avec d’éventuels périphériques.
Il suffit de rajouter quelques lignes dans le fichier octoprint-network.txt.
## WPA/WPA2 secured

iface wlan0 inet static
address ip-choisi-hors-plage-dhcp
netmask 255.255.255.0
gateway ip-passerelle-de-sa-box

    wpa-ssid "Livebox-6Ae4"

   wpa-psk "FTRD45JHU86DE"

L’inferface Web

L’interface Web de Octoprint est accèssible via : http://ip-du-raspi ou octopi.local
Une fois dedans, la 1er chose à faire est de créer un profile propre à son imprimante en indiquant notamment  les paramètres de vitesse d’axes X Y Z  E (afficher via l’UltiController et control/motion) et le volume d’impression maxi de l’imprimante.
OctoPrint-profile
Pour ma part, j’ai du cocher l’inversion de l’axe Z pour que le plateau monte avec la flèche du haut.

Gcode

On peut aussi insérer du Gcode pour : before, cancel, pause, end du print.
Pour ma part, j’ai mis ça pour la fin
M104 S0 ;extruder heater off
M140 S0 ;heated bed heater off (if you have it)
G91  ;relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more
G28 X0 Y0 ;retour position home
G1 Z40 F9000 ; descendre le plateaux de 4cm
M84 ;moteurs off
G90;absolute positioning

Les plugins

Parmi les plus intéressants :

  • OctoDroid (qui fonctionne bien avec moi)
    Permet de piloter les moteurs et de voir la progression sur son smartphone.
    (récupérer le code API dans Utilisateur/User Setting)
  • OctoPrint (version officiel ??)
  • AutoSelect
    Permet de sélectionner pour l’impression dès l’envoie sur Octoprint
  • Print History.
    Permet de garder une trace de ses impressions et de les exporter (format csv ou xls).
    En cas de changement de Raspi, on peux récupérer ce fichier sous : /home/pi/.octoprint/data/printhistory/history.yaml,
    via FTP sur le raspi.
  • Printer Statistics
    Plus complet que Print history mais pas d’export possible
    octoprint-printerstatistics
  • Automatic shutdown
    Permet d’étendre son imprimante quand l’impression est fini
  • PushBullet
    Pour être prévenu via l’appli dédié d’événement de l’imprimante
  • ScreenSquich
    Pour avoir un affichage de l’interface Web plus adapté au smartphone
  • FirmwareUpdater
    Pour mettre à jour le firmware de son imprimante, automatiquement ou via un fichier
  • DisplayProgress
    Pour afficher la progression du print sur le LCD de l’imprimante

Cura

OctoPrint intègre une version de cura (dossier /usr/local/bin/cura_engine), via un plugin.

GitHub

Il suffit de générer des profiles, via un Cura installé sur PC et de les importer dans les réglages du plugin.

octoprint-cura

Une fois fait, on importe le fichier STL qui va ensuite être slicé par cura, qui va ensuite créer un fichier .gco

octoprint-stlviewer

Slic3R

Ce slicer présente l’intérêt de pouvoir communiquer directement avec Octoprint afin d’y envoyer le ficher gcode, généré par Slic3R.

octoprint-slic3r

L’accès est donné via la clé API, fourni par Octoprint (setting/API)

Accès réseaux

On partager certains dossiers de Octoprint via le réseaux de Windows.
Notamment les dossiers :

  • /home/pi/.octoprint/uploads
  • /home/pi/.octoprint/timelapse

Qui permettront d’envoyer directement le fichier Gcode, fourni par Cura, sur Octoprint et aussi de récupérer les vidéos timelapse généré par Octoprint.

Accéder au raspi via un terminal.

mettre à jour

sudo apt-get update

Installer le protocole smb

sudo apt-get install samba

donner des droits aux dossiers et à leurs contenus

sudo chmod 777 -R /home/pi/.octoprint/uploads
sudo chmod 777 -R /home/pi/.octoprint/timelapse

Paramétrer le partage en éditant le fichier de configuration

sudo nano /etc/samba/smb.conf

Dans la rubrique « global settings« , bien veiller à ce que le nom du groupe soit bien le même que sur votre Windows (par défaut workgroup)
Dans la rubrique « Autentification« , Il faut remplacer : security=user par security=share.
Si besoin, dé-commenter : wins support = yes
Puis, dans la rubrique « share definitions« , ajouter les lignes suivantes à la fin du fichier (path indique le chemin du disque externe) :

[Octoprint-Gcode]
path = /home/pi/.octoprint/uploads
browseable = yes
writable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
public = yes
[Octoprint-Timelapse]
path = /home/pi/.octoprint/timelapse
browseable = yes
writable = yes
read only = no
guest ok = yes
create mask = 07777
directory mask = 0777
public = yes

Ctrl+X et oui pour valider, pour infos je ne suis pas un pro de la sécurité sur Linux, donc…

redémarrer samba

sudo /etc/init.d/samba restart

La vidéo

Le raspi à une connectique prévu pour une petite camera (raspiCam), l’interface d’Octoprint permet de visualiser cette dernière et faireun timelapse de l’impression. Une version avec un grand angle est aussi disponible.
J’ai fais un support pour le Raspi et sa camera, dispo sur ThingIverse.
Même si la visualisation de la vidéo peut se faire directement depuis l’interface d’Octoprint, on peut en faire plus grace au protocole MJPG streamer, implemté dans le raspi.
La page : http://ip-du-raspi:8080/index.html permet d’accéder à d’autre option.
octoprint-MJPG-streamer
Et notamment, la visualisation via VLC avec l’URL : http://ip-de-raspi:8080/?action=stream
Pour désactiver la LED de la caméra :
sudo nano /boot/config.txt
# ajouter la ligne suivante :
disable_camera_led=1
# rebooter
sudo reboot

Accès via Internet

A ce stade, Octoprint et la webcam ne sont accessibles que via votre réseau local.
Pour y avoir accès depuis n’importe quel ordinateur ou smartphone connectés à Internet, il suffit de faire une redirection de port 80 de son IP fixe de box vers l’IP du raspi.
Attention quand même car aucun mot de passe est demandé donc….
source01
Catégorie : Impression 3D | Commenter
juin 10

rester connecté plus longtemps à l’admin

Par défaut, une fois coché « resté connecté » lors de la connexion à l’admin de WordPress, le cookie dédié mémorise pour 2 semaines.

C’est par sécurité mais si c’est son PC perso, c’est chiant ! Pour modifier cette durée, simple ajout au fichier functions.php suffit :

add_filter( 'auth_cookie_expiration', 'stay_logged_in_for_1_year' );
function stay_logged_in_for_1_year( $expire ) {
  return 15778800; // 6 mois, en secondes
}

***

Catégorie : WORDPRESS | Commenter
février 27

Clignotement SANS delay()

Sous Arduino ou Teensy, le clignotement d’une LED avec la commande delay() ralentit tout le code.

1 – Avec la fonction elapsedMillis

Heureusement, la fonction elapsedMillis, qui génère un compteur permet de se passer de delay.
J’ai concocté une fonction qui permet d’allumer et d’éteindre une LED x sec toute les x sec.

int LEDcligno = 20; // LED entre pin 20 et la masse, via résistance
int EtatLEDcligno = HIGH;
int ChangeLEDcligno = 0;
elapsedMillis ComptCligno; //compteur

void setup()
{
pinMode(20, OUTPUT); 
}
void loop()
{
ClignoLED(250, 15000); // 1/4 sec, 15 sec
}//loop

void ClignoLED (int on, int off)
{
int intervalle = ComptCligno - ChangeLEDcligno;
if (EtatLEDcligno == HIGH && intervalle > on)
{
    // éteint 
    EtatLEDcligno = LOW;
    digitalWrite(LEDcligno, EtatLEDcligno);
    ChangeLEDcligno = ComptCligno;
}
  else if (EtatLEDcligno == LOW && intervalle > off) 
  {
    // allumé
    EtatLEDcligno = HIGH;
    digitalWrite(LEDcligno, EtatLEDcligno);
    ChangeLEDcligno = ComptCligno;
  }
intervalle = 0;//RAZ
}//void

2 – Avec le cycle d’horloge

Les instructions du Teensy sont exécutés en boucle, à une fréquence de 96Mhz. Entre le début et la fin de la boucle, il se passe donc un certains temps, dépendant principalement du nombre d’instructions que le teensy doit effectuer.

int ComptLED = 1;
int TempsON = 14000;

void setup() {
  pinMode(2, OUTPUT);//LED
  digitalWrite(2, LOW);// démarrer éteint 
  pinMode(4, INPUT_PULLUP);//contact

}

void loop() {
ComptLED = ComptLED+1;
 Serial.println(ComptLED); 
if (digitalRead(4) == LOW)// si contact
{
 digitalWrite(2, HIGH);// allumer la LED
}

if (ComptLED == TempsON)// au bout d'un certains temps
{
  digitalWrite(2, LOW);// éteindre la LED  
   ComptLED = 1;  
}
}//loop

C’est moins précis car il faut ajuster « ComptLED » à la mano mais ça fonctionne.

Catégorie : Teensy/Arduino | Commenter
novembre 30

Sentinote

Sentinote est un plugin permettant que créer un article WordPress à partir d’un note Evernote.

Le plugin doit d’abord récupérer une clé « token » sur son compte Evernote.

Ensuite, il y a quelques paramètres :

  • la fréquence de mise à jour, on peut aussi le faire manuellement
  • Le nom de l’auteur par defaut
  • La catégorie par défaut ou seront classé les articles
  • Cocher la case « markdown » permet de créer des titres en y accolant le caractère # et des puces en accolant le caractère *. (plus d’infos)

sintinote01

 

 

 

 

 

 

Ensuite, il faut créer un carnet de note du nom indiqué dans les paramètres de Sentinote.
Une fois fais, toutes les notes créé dans ce carnet, en rajoutant l’étiquette « published », créeront un article.
On peut mettre une image MAIS pas de lien vers une image plus grande.

 

novembre 26

Insérer une page dans une catégorie

Avec WordPress, si un menu amène sur une catégorie, la page affiche toute la liste des articles de cette catégories.

J’avais besoin d’afficher plutôt un texte de présentation de la catégorie, présent sur une page.

<?php     
$page_id = 213; // ID de la page (voir dans l'URL lors de l'édition)
$page_data = get_page( $page_id ); // WordPress impose d'utiliser une variable

?>
<div style="margin: 10px;">
<?php
//echo '<h3>'. $page_data->post_title .'</h3>';// Le titre de la page, au besoin
echo apply_filters('the_content', $page_data->post_content); // echo the content and retain WordPress filters such as paragraph tags.
?>
</div>

Créer une catégorie dans WordPress

Créer une page (je me suis inspiré du single.php de mon thème et j’ai enlevé ce qui ne me convenait pas): category-identifiant-de-la-categorie.php

page_id correspont à l’ID de la page, j’ai rajouté un bout de CSS pour la mise en forme.

Catégorie : WORDPRESS | Commenter