Mercredi, août 26 2015

Peindre son vélo au pistolet

Ca faisait un moment que j’avais envie de repeindre mon vélo. Après avoir pas mal hésité sur la couleur, j’ai décidé de m’orienter vers le Orange de la marque KTM. C’est une couleur RAL 2009. La peinture a été acheté chez Sprido.

 

Peinture Sprido
Peinture Sprido

 

C’est une peinture bi-composants assez facile à appliquer même pour quelqu’un comme moi qui ne pratique pas la peinture au pistolet régulièrement. Il faut très bien préparer son support et avoir la patience d’attendre 5-10min entre chaque couche.

J’ai utilisé un pistolet HVLP avec une buse en 0.8. Sprido conseille une buse en 1.4 mais je pense que c’est plus adapté pour peindre un véhicule et j’aurais gaspillé trop de produit.

Pistolet TecTake
Pistolet TecTake

 

Le vélo a été décapé avec un décapant chimique (beurk) et puis dégraissé et poncé.

Nu
Nu
Ca brille
Ca brille

En pièces
En pièces

 

Le vélo est suspendu à bonne hauteur pour l’application de la peinture.

Prêt
Prêt

Je n’ai qu’un compresseur 2.5Cv 50L mais c’est suffisant pour un travail comme celui-là.

En peinture
En peinture

 

Remontage
Remontage

 

Pas si mal pour un premier vélo
Pas si mal pour un premier vélo

 

Petit détail
Petit détail

 

Remontage presque terminé
Remontage presque terminé

 

L’opération en vidéo:

Mercredi, juillet 22 2015

OpenAlarm : Le premier OpenAlarm Node est fonctionnel !

Voici des nouvelles de OpenAlarm, un projet d'alarme libre, si vous avez râté les épisodes précédents, voici de quoi combler ce manque :


J'ai reçu les PCB de Seeedstudio et est enfin pu réaliser le premier OpenAlarm Node dont voici une photo :

Vue de côté d'un OpenAlarm Node

Une vue qui détaille les différents éléments d'un OpenAlarm Node :

Explication OpenAlarm Node

De haut en bas :

  • Le bouton Reset utilisé lors de la programmation via le port USB
  • Un port micro USB utilisé pour la programmation et la configuration
  • 2 led (rouge et verte) utile pour donner des informations diverses
  • On trouve ensuite des points de connexion (voir tableau plus bas)
  • Des points d'accroche sécable permettant d'accrocher le module (si non utilisé, il est possible de les retirer)

À propos des points de connexion

connexion.png

Tous les points de connexion sont au pas de 2.54mm, facilitant leur utilisation sur une plaquette breadboard par exemple.

Chaque point met à disposition une surface sur laquelle il est possible de souder directement un capteur, un fil ET, il est également possible de souder des contacts latéralement.

Vous remarquerez que les points de connexion sont divisés en 2, mais pourquoi avoir fait ça me direz-vous ? Pour une raison simple, gagner de la place, en faisant ainsi, j'ai réduit au maximum la largeur du module.

Mapping

Nom Atmega32u4 Description
VBUS VBUS, UVCC Alimentation USB, utile si vous souhaitez alimenter le montage via une tension supérieure à 3.3V
D7 PE6 Entrée / Sortie 7, INT6, AIN0
D11 PB7 Entrée / Sortie 11, PCINT7, 0C0A, OC1C, #RTS
VCC VCC, AVCC Alimentation 3.3V
D2 PD1 Entrée / Sortie 2 INT1, SDA
RX PD2 Entrée / Sortie 0, RX, INT2
TX
PD3 Entrée / Sortie 1, TX, INT3
GND GND, UGND La masse
A4 PF1 ADC1
A3 PF4 ADC4
D9 PB5 Entrée / Sortie 9, PWM16, PCINT5, ADC12, OC1A, #OC4B
D8 PB4 Entrée / Sortie 8, PCINT4, ADC11
D6 PD7 Entrée / Sortie 6, T0 PWM, ADC10, #OC4D
D12 PD6 Entrée / Sortie 12, T1, ADC9 , #OC4D

Évolutions

Pour la prochaine version du PCB de OpenAlarm Node, j'ai effectué / prévu les modifications suivantes :

  • RX renommé en D0 et TX en D1 (plus logique pour la notation Arduino)
  • L'ouverture du port microUSB à été agrandie
  • Des composants ont été déplacés afin de simplifier leur pose (meilleure occupation de l'espace)
  • Agrandissement des pads de programmation de l'AVR
  • Rerouter SCL afin qu'il soit accessible depuis l'un des ports extérieurs de OpenAlarm (actuellement utilisé pour le RFM12) mais cela pose actuellement des soucis logiciels
  • Grouper les pads par fonction (alimentation : grouper VCC / VBUS et GND)
  • J'ai passé une nouvelle commande chez Seeedstudio de PCB pour un shield OpenAlarm (que je présenterai dans un prochain article) et Seeedstudio m'a gentiment annoncé que dorénavant les trous coupés en 2 seront facturés 17$ de plus (alors que pour le premier batch, je n'ai rien payé de plus), ça fait mal pour une commande de 9$... Du coup, je vais devoir trouver une solution qui serait d'avoir des trous entier et donc d'augmenter légèrement la largeur...

2 vues recto / verso :

OpenAlarm Node recto OpenAlarm Node verso

Participer ?

Et pour ceux qui voudrait participer à l'aventure, je peux soit vous envoyer un PCB brut ou soit vous faire une carte complète, contactez moi directement (comme c'est encore en dèv, je ne monte pas encore de boutique).

Mardi, juin 16 2015

Mise à jour de RaspiO'Mix : RaspiO'Mix+

RaspiO'Mix est, comme son nom l'indique, l'évolution logique de RaspiO'Mix pour les RaspberryPi dit « Plus » et Raspberry 2.

RaspiO'Mix est une carte fille (également appelé hats) pour RaspberryPi qui vous permet de connecter vos capteurs / actionneurs Grove (le système Grove chez Lextronic) au Raspberry simplement, sans connaissance en électronique.
RaspiO'Mix est un projet libre et ouvert, tous les plans sont disponibles en ligne.

product-plus.png

Caractéristiques

  • Compatible Raspberry A+, Raspberry B+, Raspberry 2
  • 8 entrées / sorties tolérantes 5V
  • 8 entrées analogiques, 0-5V, 18 bits de résolution
  • 2 entrées numériques via DIP switch
  • Horloge temps réel avec batterie de sauvegarde
  • 3 connecteurs pour I2C
  • 1 connecteur pour communication série
  • Alimentation 5V via jack ou bornier à vis

Utilisation en Python

Des exemples en Python sont présents sur GitHub et vous montreront à quel point il est simple de dialoguer avec les capteurs / actionneurs Grove.

Par exemple, pour faire clignoter une LED présente sur le port IO0 et afficher la valeur analogiques lue sur le port AN0.

# On importe les librairies qui nous seront utiles
from raspiomix import Raspiomix import RPi.GPIO as GPIO import time
r = Raspiomix()
GPIO.setmode(GPIO.BOARD)
# On configure le port IO0 de RaspiO'Mix en sortie GPIO.setup(r.IO0, GPIO.OUT)
# Et on boucle ! while True: GPIO.output(r.IO0, not GPIO.input(r.IO0))
print("%f Volt !" % r.readAdc(0))
time.sleep(1)

Difficile de faire plus simple ! Non ?

Plus d'informations

Tout ce dont vous avez besoin pour avancer avec RaspiO'Mix+ est disponible sur le site www.raspiomix.org :

Et bien entendu, pour commander votre RaspiO'Mix+, cela se passe sur www.raspiomix.org !

Lundi, juin 15 2015

Présentation des OpenAlarm Node

Voilà enfin des nouvelles de OpenAlarm, mais le projet n'est pas mort, loin de là mais ce n'est pas mon seul projet et ça ne permet pas vraiment de payer mes factures, soyez donc patient, ou mieux, participez !

Funky v3

Pour le développement des modules capteurs que j’appellerai maintenant OpenAlarm Node ou pour faire plus court, « Node », je me suis basé sur l'excellent travail de Martin au sujet de module autonome basé sur des RFM12 : les Funky (en version 3), ces derniers sont très petits (un des premiers critères de choix) et consomme très peu (autre critère important) et pour finir, ils sont architecturés autour de microcontrôleurs ATMega, on peut donc bénéficier de la simplicité de développement de l'environnement Arduino...

funky_v3.jpg
Source de la photo

Caractéristiques (source) :

  • Poids de 3gr
  • Compatible avec Arduino
  • Microcontrôleur ATMega32U4, le même que celui utilisé sur l'Arduino Leonardo
  • Pas besoin de programmateur externe, programmation directe via USB
  • Utilisation des modules radios 433/868Mhz RFM12B
  • Peu être utilisé avec le nouveau module RFM69CW
  • Fonctionne à 8Mhz, et peut être alimenté via 2.7V - 3.3V, dont les piles boutons
  • Mode faible consommation
  • La version "step-up" inclu la version 3.3V du LTC3525 boost regulator.

Les Funky v3 étant libre, j'ai donc fabriqué mes propres modules afin de les tester et faire quelques mesures avec.

2015-06-15_10.53.06.jpg
Un de mes modules Funky v3 fait maison

J'ai effectué de multiples tests logiciel, notamment, afin d'obtenir au moins les même résultats annoncé de Martin concernant la faible consommation de ces modules.

La course à la consommation moindre

À quoi bon avoir un module autonome capable de détecter l'ouverture d'une porte si ce dernier demande à être rechargé toutes les semaines et donc retiré momentanément de son service ?

Il est donc essentiel que les modules capteurs de OpenAlarm soit très peu gourmand en énergie.

Le microcontrôleur central des OpenAlarm Node dispose d'un BOD (Brown-out Detection permettant de détecter une tension d'alimentation faible, très utile pour éviter les erreurs d'exécution du micrologiciel embarqué), sans BOD activé, il est possible de descendre la consommation à 5µA, en l'activant, on perd 20 µA mais avec une sécurité supplémentaire, si la tension descend en dessous du seuil configuré, l'AVR entre en veille, garantissant le bon fonctionnement général du programme.

Une solution intéressante aurait été de pouvoir désactiver le BOD durant les périodes de veille via un appel de fonction (sleep_bod_disable()), malheureusement, c'est uniquement possible sur les AVR suffixés d'un P comme Picopower et aucun AVR Mega intégrant un contrôleur USB ne fait parti de cette famille...

Une vue de la consommation pendant une phase d'émission, on remarque un pic de consommation à gauche au moment de la sortie de veille et les pics de conso lors de l'émission du module radio à droite :
TEK00000.PNG

LDO

Un régulateur LDO (Low DropOut) permet de travailler avec une tension d'entrée proche de celle en sortie, il permet dans la node OpenAlarm l'alimentation du montage en convertissant le 5V du port USB en 3.3V.

Dans le design de Martin, au choix, il est possible d'intégrer un MCP170X ou un XC2606 (même brochage) mais dans les 2 cas, j'ai eu quelques soucis...

Le MCP1700 / MCP1703 induit un courant de fuite et la consommation monte en flèche (voir les articles de Martin à ce sujet : High sleep current issue with Funky v2 sorted out, Funky v2’s LDO to blame for high sleep current. Now fixed et Every μA counts).

Le XC6206 est le plus intéressant car il induit une perte de seulement 10µA, ainsi, à 4V, sans LDO, l'AVR en veille, la carte ne consomme que 5.5µA, avec le LDO, on passe à 15µA...

Afin d'éviter un courant de fuite s'échappant via le LDO lors de l'utilisation sur batterie, une idée serait de mettre une diode Schottky (diode à faible chute de tension) en sortie du régulateur, mais il faut qu'elle est des caractéristiques qui nous conviennent bien, c'est à dire une tension directe la plus faible possible et un courant de fuite le plus faible possible (un article à ce sujet Reverse diode current), une diode ayant des caractéristiques intéressantes est la RB751S40 avec vf ~ 300mV et un courant de fuite de 300nA.

Les tests avec cette diode se sont montrés concluants, elle est donc embauchée pour cette tâche !

Mosfet

Le Mosfet est uniquement utilisé pour réduire le courant au démarrage en désactivant le RFM, il est activé une fois l'AVR démarré via logiciel.

Article de Martin à ce sujet : Funky v2 rev 1

Ma version

Basé sur mes tests, j'ai décidé de faire une version légèrement différente pour les OpenAlarm Node :

  • Réduire au maximum la taille
  • Intégrer le port USB dans le PCB afin de gagner en taille / épaisseur / cout (on verra ce que ça donne au niveau solidité mais ayant déjà cassé un port physique sur un Funky, je doute que cela soit pire)
  • Dissocier la partie alimentation du Node en lui même, selon moi, le type d'alimentation dépend avant tout de l'utilisation finale qui va en être fait, exemple :
    • Un Node situé à proximité immédiate d'une source de courant n'a pas besoin d'emmener avec lui des régulateurs ("step-up" comme dans le Funky).
    • Je souhaite alimenter mon module avec une batterie au plomb de 12V, idem, pas besoin de composant en plus
    Au final, les OpenAlarm Node sont conçu afin de pouvoir supporter des cartes filles qui pourront intégrer une partie pour la gestion de l'alimentation.
  • Ajouter une LED afin d'en avoir 2 (rouge et verte), pratique pour indiquer des états sur nos capteurs
  • Des points d'accroches sécables
  • Les broches des ports accessibles facilement en périphérie de la carte au pas de 2.54mm

Voici le schéma de principe qui diffère assez peu de celui des Funky v3 (ajout d'une diode après le régulateur LDO et d'une LED) :
schema.png

Et le PCB, recto / verso :
pcb.png

Une vue 3D à l'échelle avec une pièce de 1 euro :
gerber.png

On remarque le port microUSB réalisé directement dans le PCB, ce dernier faisant 0.8mm d'épaisseur.

Le circuit est légèrement plus petit que le Funky v3 et il est simple d'accéder au broches des ports qui sont matérialisés par les 14 pads à droite et à gauche de la carte.

Le bouton de reset est placé sur la gauche, les leds sont à droite du connecteur USB.

Et la base ?

Oui, c'est bien beau d'avoir des modules autonomes de détection mais où est la base recevant les informations des Nodes ? Et bien, pour le moment, il n'y en a pas ! Il suffit d'utiliser un Node branché directement sur le port USB d'un PC (RaspberryPi par exemple) et voilà, nous avons notre base...

Cette solution à beaucoup d'avantages (cout, facilité, etc...) et n'empêche en rien de créer une base par la suite, elle permet surtout d'avoir quelque chose de fonctionnel malgré le temps dont je ne dispose pas toujours pour avancer sur le projet.

Où en est-on ?

Les PCB sont en cours de fabrication, puis, viendra la phase d'assemblage des cartes, de tests et enfin, un nouvel article...

En attendant, tout est disponible sur GitHub !

Compléments d'informations

Mercredi, mai 27 2015

Piloter des prises électriques via un Raspberry

Comment piloter des appareils branchés sur le secteur simplement et surtout sans risque directement via un Raspberry (bien entendu, ça marche avec n'importe quoi d'autre, Arduino, etc...) ?

On pourrait utiliser un relais, un triac, mais ça ne me plait guère, on doit pouvoir faire plus simple et plus sécuritaire... Et si nous utilisions tout simplement des prises commutables à distance du commerce, nous n'aurions plus à nous soucier de l'aspect isolation vu que l'appareil se pilote à distance et est censé avoir passé des tests de conformité CE...

D'autant plus que ces prises télécommandées ne valent pas grand chose, il est facile de trouver un lot de 3 pour moins de 15€ comme celle ci-dessous :

blister.jpg

Une fois les prises télécommandées en notre possession, 3 solutions s'offrent à nous :

  1. Ouvrir les prises et les piloter directement via un signal logique : Mauvaise idée, on perd l'avantage de l'isolation
  2. Sniffer le signal radio lors de l'appui sur une touche et le reproduire
  3. Piloter directement la télécommande en simulant des touches

N'ayant pas de quoi reproduire le signal sniffé sur le moment, j'ai choisi la dernière solution qui implique un démontage de la télécommande.

L'intérieur de la télécommande :
Recto de la carte électronique Verso de la carte électronique

Le coeur de la carte est un HT46R01T3 de Holtek, un microcontrôleur embarquant une partie radio, avec ce dernier, nous trouvons un peu de composant passif, un quartz, des boutons et voilà, vous avez une télécommande « qui fait le job » pour 2 kopeck.

Le schéma de la carte :
schema.png

Nous avons 6 boutons, 3 boutons à gauche pour allumer la prise correspondante et 3 autres boutons à droite pour les éteindre.
Les boutons sont reliés aux broches 2, 3, 4 et 5 via les diodes (D1 à D6) correspondant aux pin PA0 à PA3 du circuit intégré, 6 boutons présents mais seulement 4 entrées utilisées sur le microcontrôleur, cette ruse est possible grâce du diodes: 3 entrées servent à connaitre la prise sélectionnée et une autre indiquent s'il s'agit du bouton OFF.

État des broches en fonction de appuis sur les touches :

Boutons Pin 2 Pin 3 Pin 4 Pin 5
ON1 1 1 0 0
OFF1 1 1 0 1
ON2 1 0 1 0
OFF2 1 0 1 1
ON3 0 1 1 0
OFF3 0 1 1 1

Afin de simuler des appuis sur les touches tout en gardant possible l'utilisation des boutons de la télécommande, nous allons court-circuiter brièvement les boutons, pour cela, je vais utiliser un circuit intégré très pratique, le 4066, un quadruple switch analogique dont voici le schéma :
Contenu du 4066

Il contient donc 4 interrupteurs pilotable via des broches directement via des signaux logiques, la technologie CMOS du 4066 nous permet une connexion direct à notre Raspberry.

Connexion entre le 4066 et le Raspberry

En rouge, on retrouve les points vu plus haut dans le schéma de la télécommande, en vert, il s'agit des liaisons avec le port GPIO (P1) du Raspberry, concernant l'alimentation, c'est assez simple, la télécommande étant alimentée via une pile bouton de 3V, on va utiliser directement les 3V issu du Raspberry.

Un petit bout de code Python (outlet.py) et vous pouvez piloter vos télécommandes :

$ python
>>> from outlet import Power_Outlet
>>> po = Power_Outlet()
>>> po.on(0)
>>> po.off(1)
>>> 

Le tout sur une plaque d'expérimentation :
final.jpg

Mardi, avril 28 2015

Changer ses disques et plaquettes de frein AV sur une Peugeot 308 SW

Petit travail de mécanique qui est assez simple avec des outils classiques.
J’ai commandé mes disques et plaquettes chez Oscaro.com

 

  • Il vous faudra une clef à cliquet avec les douilles qui vont bien
  • Une douille TORX E16 ou une clef à oeillet de 13mm. Les boulons de fixation sont sécurisés avec du frein filet rouge. Autant dire qu’il faut sacrément forcer pour les desserrer !
  • Un marteau pour décoller les anciens disques s’ils sont difficiles à démonter
  • Du papier de verre / brosse métallique pour nettoyer les moyeux
  • Un cric et un jeu de chandelles
  • Une torx T30 pour les vis de centrage des disques
  • Des gants
  • Du dégraissant pour nettoyer les disques neufs
  • Du frein filet. Idéalement du bleu et du rouge mais moi je n’ai que du rouge.

Voilà une vidéo du changement en 20 étapes:

Dimanche, mars 22 2015

Réduire une caméra IP Foscam FI9803P

J’ai acheté une caméra IP pour mettre à l’extérieur de la maison. Elle dispose d’une excellente définition et elle est étanche. Parfait. Bon par contre, je la trouve un peu trop imposante.

La caméra, mais ça c'était avant..
La caméra, mais ça c’était avant..

Au moment de l’installer, un problème se présente. Les câbles sortant de la caméra font environ 20cm. On se retrouve donc avec une prise de courant basse tension, une prise RJ45 et un bouton de reset qui pendouille derrière la caméra. Pour faire quelque chose de propre, il faudrait mettre un boitier électrique pour protéger la connectique. C’est nul :(

Une autre alternative, c’est d’ouvrir sa caméra pour voir ce que l’on peut faire pour rallonger les connecteurs.

Bye bye la garantie
Bye bye la garantie

 

Oh, tient c’est amusant, l’électronique tient dans la tête de la caméra, le reste, c’est … vide… Surement une astuce marketing pour faire croire que c’est un « gros » produit, pro ! Et bien moi je veux une petite caméra discrète avec des câbles plus longs pour traverser un mur.

Problème 1: Boitier trop gros

Solution 1: Scie à métaux

Coupez !
Coupez !

Ensuite on recolle les morceaux restant avec du mastic epoxy chargé de fibres, on ponce et on peint. J’ai conservé le fond de la caméra et les 22 premiers millimètres derrière la tête. Sacré cure d’amaigrissement !

La nouvelle boite mise en peinture
La nouvelle boite mise en peinture

 

Le reste est devenu inutile

ça ne sert à rien
ça ne sert à rien

 

Seules ces pièces sont utiles

 

Les restes
Les restes

 

On peint tout, même le pied de fixation

En peinture
En peinture

 

Ensuite on découpe et recolle l’ancienne fixation

Collage
Collage

Problème 2: La longueur des fils

Solution 2: 1m de câble RJ45, un peu de soudure et hop…

Rallonge ton câble
Rallonge ton câble

 

On remonte le tout pour tester. Tout est OK

On teste
On teste

 

 

Voilà, ma caméra est terminée. Elle n’est pas mimi ma mini foscam :-)

L'ensemble
L’ensemble

 

Finie
Finie

 

Comme quoi un peu de DIY peut venir à bout de stupidités marketing. Hey Foscam ! au lieu de faire des gros boitiers inutiles, rallonge tes connecteurs…

Vendredi, mars 13 2015

Une table basse avec des traverses de chemin de fer

Voici la fabrication d’un table basse avec des traverses de chemin de fer. Je précise que ces traverses ont été achetées chez un soldeur, elles sont non traitées. Le seul hic, c’est le poids ! Les poutres seules sont déjà très lourdes, alors, une fois assemblée, la table pèse un âne mort </div>
    
    
          <p class= aucun rétrolien

- page 1 de 19