Mercredi, juillet 13 2016

[DIY] Cat-Hunter, l’anti pisse

Quand on aime pas les chats il faut savoir s’en débarrasser ! Depuis mon déménagement (au rez de chaussée) un chat a déjà pissé plusieurs fois sur nos rideaux par la fenêtre !

Les répulsifs sous formes de granules odorantes (gerbantes !) n’ont pas l’air des plus efficaces, après moultes réflexions de plusieurs personnes l’idée d’un « psssshhhttt » automatisé fit son chemin.

Dans l’urgence, j’en ai acheté un sur Amazon, il s’agit basiquement d’une bombe d’air sec avec un déclencheur utilisant un PIR, dans le même temps j’ai commencé à fabriquer mon propre dispositif. L’idée de base est d’utiliser un désodorisant à chiotte automatique.

sense spray naked3

Plusieurs problèmes se posent, dans un premier temps le détecteur est au niveau du bouton (à la perpendiculaire du spray) et lors de déclenchements successifs il y a un temps d’attente de plusieurs minutes….

Commençons la charcuterie… On enlève toute l’électronique embarquée pour la remplacer et on gardera le moteur et la structure en plastique.

IMG_20160708_012235

La carte que j’ai prévu utilise un pic12f675 avec un mosfet 7n7002 et un PIR de Panasonic EKMB.

cat_hunter

IMG_20160712_005022

Le système marche correctement, reste plus qu’a voir son efficacité au prochain passage de cette saleté de chat !

IMG_20160713_004210

J’ai déporté le capteur PIR dans une boite de pellicule (oui oui j’utilise encore de la pellicule !) et je l’ai couvert avec un PAD de BMX qui trainait dans un coin. (il faut que je trouve un moyen de désactiver le système je n’ai pas mit de bouton et ça pu le jasmin Brise(r) chez moi !).

IMG_20160713_201524

#include <pic12f675.h>
#include <xc.h>
#include <stdint.h>

#define _XTAL_FREQ 4000000

#define MOTOR GPIObits.GP5
#define PIR GPIObits.GP2

#pragma config FOSC = INTRCIO
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config MCLRE = OFF
#pragma config BOREN = OFF
#pragma config CP = OFF
#pragma config CPD = OFF

uint8_t pir_detected = 0;

void main() {
TRISIObits.TRISIO5 = 0; // GP5 = Output for motor
TRISIObits.TRISIO2 = 1;
ANSEL = 0;
MOTOR = 0;

// Enable interrupt on change
INTCONbits.GIE = 1;
INTCONbits.GPIE = 1;
IOCbits.IOC2 = 1;

while(1) {
SLEEP();
if(pir_detected == 1) {
MOTOR = 1;
__delay_ms(500);
MOTOR = 0;
pir_detected = 0;
__delay_ms(1000);
__delay_ms(1000);
__delay_ms(1000);
}
}
}

void interrupt isr(void) {
uint8_t tmp = 0;
if(INTCONbits.GPIF == 1) {
pir_detected = 1;
tmp = GPIObits.GP2;
INTCONbits.GPIF = 0;
}
}

Classé dans:Astuce / Tips, Divers, DIY, Electronique

Vendredi, mai 25 2012

Mise à jour de l'Ultimaker

Ça fait pas mal de temps que je n'ai donné de nouvelle de mon Ultimaker, et pourtant, pas mal de chose à dire...

Réception des pièces de remplacement et peinture

Dans un précédent billet, j'expliquais que le colis de mon Ultimaker avait été mal traité durant le transport et que des pièces en bois de l'imprimante était cassées, une erreur s'est également glissée : ils m'avait fourni une pièce ne correspondant pas m'obligeant à usiner une entretoise.

J'ai contacté le support à ce sujet qui à été très réactif car ils m'ont aussitôt expédié un colis avec de toutes nouvelles pièces, réception en moins d'une semaine, merci Ultimaker pour la réactivité.

Quitte à devoir tout démonté et tout remonté, je me suis dit qu'il serait pas mal de la peindre, d'ailleurs, la légende raconte qu'une Ultimaker peinte se sent mieux et du coup, imprime mieux... ;)

J'étais parti pour tout peindre en vert et me suis dit que ce serait plus sympa d'avoir plusieurs couleurs, ce que je n'avais pas prévu, c'est que ça allait me prendre un temps fou, bref, c'est fait mais ce fût long, faute de temps.

Voici le résultat :
L'Ultimaker peinte ! IMG_0082.jpg

L'extérieur est peint en noir, l'intérieur en vert, toutes les autres pièces fixes en jaune ou orange.

Heated bed

J'ai beau imprimer uniquement du PLA, de légères déformations se forment sous les pièces dû à la rétractation du plastique refroidissant, l'idée est de mettre un lit chauffant (heated bed) permettant de garder la pièce en cours d'impression uniformément chaude.

J'ai voulu faire au plus simple pour le lit chauffant, je l'ai donc commandé, c'est un simple PCB sur lequel est gravé une piste en serpentin faisant office d'élément chauffant, on trouve également 2 diodes têtes bêches servant à indiquer si le lit chauffe ou non.

Les soudures d'origines, de la grande qualité, je fais mieux avec mes pieds :
Oh, les belles soudures

Avant un quelconque montage, j'ai fait quelques tests, ça chauffe parfaitement bien...
Ça chauffe !

Qui dit lit chauffant dit nouveau support pour l'impression, il est bien sûr hors de question de poser l'élément chauffant sur la plateforme d'origine en acrylique.

Le support sera en bois, en contreplaqué de 10mm d'épaisseur, légèrement surélevé à l'aide d'entretoise, le lit chauffant trouvera sa place, enfin, posé sur ce dernier, on trouvera une plaque de verre à insert sur lequel les impressions se feront.

Les couches successivent : Contre-plaqué, alu, isolant, mylar, lit chauffant.
La plaque de contre-plaqué Une couche d'aluminium Une couche d'isolant Une couche de Mylar Le lit chauffant

Le nouveau support étant légèrement plus épais que celui par défaut, le réglage du capteur de fin de course supérieur de l'axe Z doit être légèrement modifié, pour cela un simple profilé d'alu à fait l'affaire...
Patte d'adaptation Patte d'adaptation

La pièce une fois installée :
Patte d'adaptation

Le réglage du plan se fait à l'aide de 4 vis situées en dessous du support, l'utilisation d'une clef Allen est obligatoire, j'ai prévu de les remplacer par des vis moletées. L'impression de 4 pièces de remplacement « Z-stage spring-screwblock » (Thing:21480) sans pas de vis à également été nécessaire pour l'adaptation du nouveau support.

Pièce d'adaptation pour le lit chauffant

Concernant la partie commande et capteur, j'ai suivi à la lettre les indications d'installation du wiki de Ultimaker, ne possédant pas d'alimentation de 19V suffisamment puissante pour remplacer celle d'origine afin d'alimenter l'imprimante et le lit chauffant, j'ai choisi d'alimenter ce dernier via une source secondaire, ça tombe bien, une alimentation industrielle 12V / 20A toute petite trouvée en brocante pour 3€ ne demandait qu'à servir...

La carte de l'Ultimaker permet d'origine de piloter un lit chauffant, en fait, on vient se brancher sur un des deux Mosfet restants sur 3 (le premier servant pour la tête d'extrustion), j'ai d'ailleurs supprimer le second Mosfet afin de faire de la place pour pouvoir poser un radiateur sur celui pilotant le lit chauffant.

Pour le capteur de température du lit chauffant, il suffit simplement d'ajouter une résistance de 4,7Kohms sur la carte de commande à l'endroit indiqué.

IMG_0083.jpg

Un peu de lumière

Des réglettes de led multicolores de Ikea trainait dans mon bureau sans réelle utilité, ils en ont finalement trouvé une pour éclairer l'impression.

La surface de travail éclairée :
Éclairage de la surface de travail

Vue sur les barettes de Leds :
IMG_0087.jpg IMG_0090.jpg

Concernant la connection des leds, je vous déconseille fortement d'utiliser le 12V du ventilateur, ce régulateur chauffe déjà énormément et lui ajouter une charge de 400mA (intensité max des réglettes) pourrait le voir fumer très rapidement, coupant, du coup l'alimentation du ventilateur...Je lui ai d'ailleurs mis un dissipateur car je trouve qu'il chauffait déjà énormément.

Quelques photos en vracs


IMG_0072.jpg IMG_0073.jpg IMG_0076.jpg

La suite dès que j'ai un peu de temps...

Vendredi, juillet 31 2009

Protection pour élément Lipo par MAX810 + MOSFET

Un élément LiPo ne doit pas descendre en dessous d'un seuil de tension de 2.5V, entrainant alors la destruction de ce dernier, il est très simple de réaliser un montage contrôlant la tension de l'élément Lipo et empêchant la tension de descendre en dessous dudit seuil...
C'est le but de ce montage, très simple mais très utile...réalisé avec seulement 2 composants : un MAX810 et un MOSFET...

Protection pour Lipo

Accédez à l'article sur le wiki : ProtectionLipo