Category Archives: Geekeries

EasyLight: code source disponible et gratuit

easylight

Après de nombreux commentaires pour obtenir le code source et les exécutables de mon système EasyLight, j’ai décidé de publier les sources DotNet et Arduino sur mon GitHub.

Le projet fonctionne parfaitement et est dans un état stable, il ne reste plus qu’à améliorer les performances d’analyse de l’image.

Le code arduino permet de faire le lien entre easylight et vos leds.

Je vous invite donc à aller sur ma page consacrée à EasyLight et j’espère que ce système Ambilight Clone vous satisfera.

Clash Of Clans: entre stratégies et astuces !

clashofclans

Clash Of Clans est probablement le jeu sur mobile qui cartonne le plus car il rassemble plusieurs dizaines de millions de joueurs et il rapporte plus de 12 millions de dollars quotidiennement à SuperCell (société éditrice du jeu).

Le concept est simple: créer un village et attaquer d’autres villages pour gagner de l’or et de l’élixir.

Et si le jeu Clash Of Clans parait si simple, il n’en reste pas moins stratégique et très chronophage !

PhpMyAdmin BruteForce

phpmyadmin

Aujourd’hui je vous propose un petit software que j’ai développé en 15 minutes et qui permet de bruteforcer un PhpMyAdmin.

L’objectif est donc de trouver le mot de passe d’un compte PhpMyAdmin est essayant de s’identifier avec plusieurs milliers de passwords.

IMPORTANT, sachez que je ne pourrais être tenu pour responsable de l’utilisation que vous ferez du logiciel PhpMyAdmin BruteForcer et que je l’ai développé dans un but pédagogique uniquement.

[FACER] WatchFace BumbleBee pour LG Watch / Moto360

LG WATCH R

Comme j’ai reçu ma montre connectée LG Watch R, je me suis dis pourquoi ne pas essayer de faire ma propre WatchFace.

Pour les ignorants, une WatchFace est tout simplement la façade de la montre, et je ne vais pas vous mentir j’ai acheté la LG Watch R juste pour pouvoir changer tous les jours de WatchFace.

J’ai donc parcouru pas mal de forums et il s’avère qu’il existe une application Android nommée Facer qui permet de créer assez rapidement une WatchFace, sans avoir à se trainer tout les outils de développement.

Sans attendre j’achète donc l’application Facer (1$ c’est pas la mort non plus), et je regarde son fonctionnement.

Et rien de mieux pour apprendre que de se mettre dans le bain, je décide donc de réaliser une WatchFace BumbleBee inspirée de la montre Audemars Piguet BumbleBee.

Et voilà le résultat:

WatchFace BumbleBee

WatchFace BumbleBee

Plutôt sympa non :-)

Et cerise sur le gâteau, j’ai réussi à implémenter toutes les fonctionnalités que je voulais:

  • Secondes / Minutes / Heures
  • Date
  • Meteo (tendance + température)
  • Nombre de steps parcouru (0 à 12000 pas)
  • Etat de la batterie et température de la batterie

Vous pouvez télécharger la WatchFace BumbleBee ici.

Imprimante Minima 3D Printer version 2

minima 3d printer

Après pas mal de remarques, j’ai décidé de revoir un peu le design de la Minima 3D printer.

Voici les améliorations apportées à mon imprimante 3D Minima:

  • les tiges filetés sont remplacées par du profilé alu (ce qui rajoute une trentaine d’euros au coût du projet) mais qui accentue la rigidité de la structure
  • Pour limiter les coûts, je n’utilise plus le Bowden mais un DirectDrive qui sera par ailleurs plus performant.
  • Un support de bobine est intégré via les smooth rods de Z
  • l’autobed leveling se fera grâce à un capteur de proximité (moins de 5€) ce qui évitera de venir taper le plateau
  • la quantité de plastique utilisé par les pièces imprimables est diminuée

Voici une illustration de la maquette de l’imprimante 3D Minima:

3D printer Minima V2

3D printer Minima V2

 

Quel est votre ressenti par rapport à ce nouveau design d’imprimante 3D ?

Imprimante 3D Minima: petit, simple et performante

minima 3D

Cela fait un moment que je cherche à avoir une imprimante 3D qui répond parfaitement à mes besoins.

Après avoir fabriquer une Prusa Mendel, une PrintrBot, une Rostock Delta (en cours de fabrication), je me suis aperçu qu’aucune imprimante 3D ne convient vraiment à ce que je cherche: une petite imprimante stable, performante, transportable, évolutive et pas chère.

Même si certaines imprimantes 3D semble répondre à tous ces critères, il y a toujours quelque chose qui me dérange:

  • encombrement
  • tarif
  • évolutivité limité

J’ai  donc décidé de modéliser l’imprimante de mes rêves qui portera le nom de code Minima 3D. Me voilà donc parti à la découverte d’un univers inconnu: la modélisation 3D.

[DIY] Fabrication d’une Rostock Mini Delta Imprimante 3D Part2

rostock mini front

Cela fait un petit moment que je n’ai pas parlé de mon imprimante Rostock Mini Delta.

Voici donc des nouvelles de l’évolution de l’imprimante 3D, et çà n’a pas été une mince affaire d’avancer dans ce projet de Delta 3D car j’ai rencontré de nombreux soucis.

Je vous propose donc de découvrir la suite de l’aventure imprimante Delta Mini.

La Rostock 3D prend forme et même si le projet avance petit à petit, je suis satisfait du châssis de l’imprimante 3D.

[DIY] Arduino Password Box: protéger vos mots de passe

arduino-password-box

L’Arduino Password Box est un petit gadget qui vous permet de sauvegarder vos mots de passe de manière totalement sécurisée. Pour moins de 10€ vous allez pouvoir concevoir un véritable périphérique de gestion de mots de passe. L’Arduino Password Box est simple à fabriquer et encore plus simple à utiliser. Ce gadget à base d’Arduino Pro Micro est l’accessoire indispensable pour sécuriser vos données et vos mots de passe. Protéger vos navigations sur Internet pour moins de 10€ est désormais possible grâce au Arduino Password Box !

Imprimante 3D: auto bed leveling facile !

autobed leveling

Avant de monter ma nouvelle imprimante 3D, une Rostock Delta modifiée, j’ai décidé d’implémenter une fonctionnalité que tous le monde considère comme géniale: l’auto bed leveling.

Actuellement ma RepRap Prusa fonctionne plutôt pas mal et je n’ai que 3 reproches à lui faire:

  • ma Mendel Prusa est bruyante et dérange mes voisins lorsque j’imprime, mais vous verrez dans un prochain billet que j’ai trouvé une astuce à pas cher pour limiter les vibrations et le bruit occasionné par l’imprimante 3D.
  • la vitesse d’impression n’est pas terrible. Pour vous donner une idée, il me faut 8 heures pour imprimer une des 3 bases de ma future Delta Rostock. Pour le moment pas grand chose à faire, je n’ose pas augmenter la vitesse pour ne pas perdre en qualité.
  • avant chaque impression je suis obligé de régler le bed manuellement, ce qui est fastidieux et génère quelques impressions ratées car les premières couches sont mal posées.

Dans le dernier firmware Marlin (celui que j’utilise), il existe une fonctionnalité qui peut me faire gagner du temps: l’auto bed leveling.

Essayons de mettre l’auto bed leveling en marche sur mon imprimante 3D Prusa (vous allez voir çà n’a pas été si simple que çà).

Principe de l’auto bed leveling

L’auto bed leveling est une fonctionnalité relativement simple à comprendre. Un mini servo équipé d’un contacteur switch est installé à proximité de votre extrudeur sur le X Carriage.

Avant une impression, il va venir palper votre plateau en différents endroits afin de pouvoir procéder à une rectification en temps réel de votre axe Z lors de l’impression.

Ce palpeur est alimenté directement par votre carte contrôleur RAMPS et le contacteur switch vient remplacer votre endstop Z Min.

Branchement de l’auto bed leveling

J’ai trouvé assez peu de documentation concernant le branchement (wiring) du servo et du contacteur servant à l’auto bed leveling, c’est pourquoi j’ai pris soin de vous faire cette illustration:

ramps auto bed leveling

ramps auto bed leveling

Tout d’abord il faut brancher votre servo sur le port servo 1 de votre RAMPS. Faites attention à la polarité et à la puissance nécessaire pour alimenter votre servo. Je vous recommande d’utiliser un mini servo 9g que l’on trouver pour 4€ sur le net. Il ne consomme que 5V et est largement nécessaire pour effectuer les différents palpages sur votre bed.

Si votre servo consomme plus de 5V, il vous faudra l’alimenter via une source externe. Voici le type de servo que j’utilise:

Mini Servo 9G

Mini Servo 9G

Maintenant il vous faut un jumper pour relier le VCC au 5V sur la carte RAMPS, sinon celle-ci ne sera pas capable d’alimenter le servo.

Enfin, il suffit de brancher le contacteur switch sur le endstop Z min de la ramps.

Configuration de l’auto bed leveling

La configuration de l’auto bed leveling pour ma Prusa 3D se fait en éditant le fichier “Configuration.h” de Marlin.

Tout d’abord, il faut activer le servo:

/*********************************************************************\
* R/C SERVO support
* Sponsored by TrinityLabs, Reworked by codexmas
**********************************************************************/
 
// Number of servos
//
// If you select a configuration below, this will receive a default value and does not need to be set manually
// set it manually if you have more servos than extruders and wish to manually control some
// leaving it undefined or defining as 0 will disable the servo subsystem
// If unsure, leave commented / disabled
//
#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
 
// Servo Endstops
//
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
//
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 180,65} // X,Y,Z Axis Extend and Retract angles
 
Ici il suffira de modifier les valeurs "180,65" par vos valeurs qui correspondent à l'angle de mouvement du servo pour la rétractation et pour l'extension.
 
Il faut ensuite activer l'auto bed leveling. Il y a 2 modes de palpages:
* le mode grid qui va palper votre bed en parcourant une grille. C'est le mode le plus utilisé.
* le mode point qui va palper 3 points que vous préciserez.
 
Voici un exemple de configuration:
 
//============================= Bed Auto Leveling ===========================
 
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
 
#ifdef ENABLE_AUTO_BED_LEVELING
 
// There are 2 different ways to pick the X and Y locations to probe:
 
// - "grid" mode
// Probe every point in a rectangular grid
// You must specify the rectangle, and the density of sample points
// This mode is preferred because there are more measurements.
// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
 
// - "3-point" mode
// Probe 3 arbitrary points on the bed (that aren't colinear)
// You must specify the X & Y coordinates of all 3 points
 
#define AUTO_BED_LEVELING_GRID
// with AUTO_BED_LEVELING_GRID, the bed is sampled in a
// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
// and least squares solution is calculated
// Note: this feature occupies 10'206 byte
#ifdef AUTO_BED_LEVELING_GRID
 
// set the rectangle in which to probe
#define LEFT_PROBE_BED_POSITION 40
#define RIGHT_PROBE_BED_POSITION 150
#define BACK_PROBE_BED_POSITION 150
#define FRONT_PROBE_BED_POSITION 40
 
// set the number of grid points per dimension
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
#define AUTO_BED_LEVELING_GRID_POINTS 3
 
 
#else // not AUTO_BED_LEVELING_GRID
// with no grid, just probe 3 arbitrary points. A simple cross-product
// is used to esimate the plane of the print bed
 
#define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15
#define ABL_PROBE_PT_2_Y 20
#define ABL_PROBE_PT_3_X 170
#define ABL_PROBE_PT_3_Y 20
 
#endif // AUTO_BED_LEVELING_GRID
 
 
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -35.0
#define Y_PROBE_OFFSET_FROM_EXTRUDER -35.0
#define Z_PROBE_OFFSET_FROM_EXTRUDER -25.14
 
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
// Be sure you have this distance over your Z_MAX_POS in case
 
#define XY_TRAVEL_SPEED 5000 // X and Y axis travel speed between probes, in mm/min
 
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
 
 
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
 
// #define PROBE_SERVO_DEACTIVATION_DELAY 300
 
 
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
 
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
// When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
// - If stepper drivers timeout, it will need X and Y homing again before Z homing
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
 
#ifdef Z_SAFE_HOMING
 
#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
 
#endif
 
#endif // ENABLE_AUTO_BED_LEVELING

Les paramètres importants sont:

  • #define ENABLE_AUTO_BED_LEVELING: pour activer l’auto bed leveling
  • X_PROBE_OFFSET_FROM_EXTRUDER: espace entre le X du servo et celui de votre extruder
  • Y_PROBE_OFFSET_FROM_EXTRUDER: espace entre le Y du servo et celui de votre extruder
  • Z_PROBE_OFFSET_FROM_EXTRUDER: espace entre le Z du servo et celui de votre extruder
  • LEFT_PROBE_BED_POSITION, RIGHT_PROBE_BED_POSITION, BACK_PROBE_BED_POSITION, FRONT_PROBE_BED_POSITION: pour définir le rectangle de la grille de palpage
  • Z_RAISE_BEFORE_HOMING: nombre de mm à remonter par votre Z avant la commande de Homing G28
  • Z_RAISE_BEFORE_PROBING: nombre de mm à remonter par votre Z avant le premier palpage
  • Z_RAISE_BETWEEN_PROBINGS: nombre de mm à remonter par votre Z entre 2 palpages
  • PROBE_SERVO_DEACTIVATION_DELAY: si votre servo tremblotte, vous pouvez activer cette option. Elle permet de limiter le phénomène Parkinson sur le servo servant à l’auto bed leveling.

GCode pour l’auto bed leveling

Une fois le firmware correctement configuré, il ne reste plus qu’à le tester en utilisant le GCode suivant:

G90 ; Passage coordonnees absolues
G28 X Y ; Home X Y
//G28 Z ; home Z (pas necessaire)
G29 ; Palpage
G90 ; Passage coordonnées absolues
G1 Z2 F4000 ; rétractation palpeur

Problèmes avec l’auto bed leveling

Au cours de l’installation et la configuration de l’autobed leveling j’ai rencontré un certain nombre de problèmes, le plus chiant étant qu’entre deux palpations, l’axe Z ne remontait pas et du coup çà frottait la glace :(.

Après plusieurs heures a essayé de comprendre d’où pouvait provenir l’erreur, je me suis aperçu que mon endstop Z fonctionnait à l’envers, en détectant le Z min comme étant un Z max.

J’ai donc tout simplement modifié mon firmware Marlin pour que celui-ci devienne bien un Z min :-)

Ensuite, mon support de servo a fondu car il était beaucoup trop proche de ma buse, j’ai donc réaliser un support plus large permettant d’espacer le servo de la buse (penser à remesurer les espacements sinon l’autobed leveling ne sera plus correct).

En espérant que cette expérience vous aidera à installer l’autobed leveling sur votre imprimante 3D.

 

Votre patron est-il un con ?!

patron con

Je donne régulièrement des formations techniques (PHP / C++ / SEO) à de futurs ingénieurs, j’ai pas mal de potes dans le milieu de l’informatique et je me rends compte d’un phénomène grandissant au fur et à mesure que le temps passe: le patronphobisme.

Les salariés sont de plus en plus désespérés et rentrent de plus en plus dans une phase de sinistrose généralisée. Mais pourquoi sont-ils autant démoralisés alors que l’informatique, et tout ce qui s’y approche de près ou de loin, est un marché fleurissant où le chômage à du mal à s’implanter.

On peut alors se demander si les français sont fainéants ou bien si ce mal-être est réel. Et si c’est le cas, pourquoi ne parviennent-ils pas à sortir de cette léthargie désespérante ?

A chacune de mes interventions auprès d’étudiants, de salariés ou d’amis, je pose la question suivante: pourquoi n’es-tu pas heureux dans ton travail ?

On pourrait s’attendre à un réponse portant sur l’argent du genre “Je gagne pas assez”, mais ce n’est pas le cas. Dans 80% des cas, le déclencheur de cette morosité dépressive est l’incompréhension avec son ou ses supérieurs hiérarchiques.

Et dans la plupart des cas ce patronphobisme est dû à des comportements récurrents que l’on subit aussi bien dans des PME que dans des grands comptes internationaux.

Voici donc une liste non exhaustive recensant les témoignages qui vous permettra de savoir si votre patron est “THE BOULET” et le responsable de toutes vos misères ou bien si vous devez vous remettre en cause d’urgence. Evidemment, la suite de l’article est sur le ton de l’humour (ou pas :p) et si des patrons, chef d’entreprise ou responsable me lisent, n’oubliez pas que vous aussi avez été un simple petit gens :)