banneer2

Rechercher sur le blog du grouik:

#Main:

rsaPlp.png

1: Pourquoi faire ça?

A moins de s’appeler le trésor public[1], cette sécurité peut paraître exagérée.

Ça va me servir dans quelques semaines à sécuriser une appli web du travail pour laquelle seuls une dizaine d’utilisateurs auront accès depuis l’extérieur (via un reverse proxy apache) .

2: Présentation des techniques employées:

La configuration se fait au niveau d’apache et du module SSL. Ce n’est pas compliqué, Mais c’est chiant à expliquer de façon claire. J’en suis à la troisième re-rédaction de ce billet pour tenter d’éclaircir les explications.

Ce billet contient tout un mémo de création d’une chaine de certification avec openSSL et un peu de config Apache.

Sur le serveur (mon Raspberry pi), je vais créer trois sites virtuels (VHOST) dans la configuration d’apache:

  • home.tinad.fr (en http)
  • home.tinad.fr (en https)
  • prive.tinad.fr (en https, avec obligation pour l’utilisateur de posséder un certificat personnel signé par l’autorité de certification qu’on va créer):

3: Créer son autorité de certification et des certificats pour les deux sites en https

l’autorité de certification

Malheureusement, il n’est pas possible d’obtenir un certificat ayant le rôle "autorité de certification" reconnu par tous les navigateurs. On devra faire en sorte que les utilisateurs ajoutent notre certificat dans leur navigateur. Je ne détaillerai pas ici comment faire, mais il voici trois pistes:

  • Créer une page web intermédiaire fournissant le certificat, et expliquant comment et pourquoi l’installer
  • Si les utilisateurs sont dans un réseau sur lequel on est l’administrateur réseau : Via une GPO.
  • Offrir une boite de kinder chocolat à l’administrateur réseau pour qu’il fasse une GPO.
  • L’installer manuellement sur tous les postes.

3.1.1: Configuration

[bash]
#On créé l'architecture de dossiers et fichiers nécessaires à une gestion des
#clés et certificats dans le repertoire /srv/ssl
mkdir /srv/ssl
cd /srv/ssl
mkdir certs crl newcerts private
echo 01 > serial
touch index.txt
echo 01 > crlnumber
cp /usr/lib/ssl/openssl.cnf .

3.1.2: Editer le fichier /srv/ssl/openssl.conf et modifiez les parametres suivants:

  • dir=/srv/ssl
  • Dans le bloc [req_distinguished_name]  :

.

countryName_default             = FR
stateOrProvinceName_default     = France

3.1.3: Clé privée certificat et signature

[bash]
#Créer une clé privée
openssl genrsa -des3 -out private/cakey.pem 4096
#certif signé
openssl req -config openssl.cnf -new -x509 -nodes -sha1 -days 1825 -key private/cakey.pem -out cacert.pem

Adaptez les réponses en fonction,s de votre site, mais ne mettez pas le FDQN dans le common name. Il s’agit du certificat autorité, pas celui de votre site web. Voici mon retour écran:

root@raspberrypi:/srv/ssl# openssl req -config openssl.cnf -new -x509 -nodes -sha1 -days 1825 -key private/cakey.pem -out cacert.pem
Enter pass phrase for private/cakey.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [FR]:
State or Province Name (full name) [France]:
Locality Name (eg, city) []:Rouen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:tinad
Organizational Unit Name (eg, section) []:Gnieark   
Common Name (e.g. server FQDN or YOUR name) []:tinad.fr
Email Address []:gnieark@free.fr

Publier le certificat de l’autorité de certification

[bash]
cp /srv/ssl/cacert.pem /var/www/cacert.crt 

(Lors de la copie, on change l’extension .pem en .crt, car .crt est un type mime connu dans la configuration standard d’apache)

3.1.5: Enregistrez le certificat dans le magasin de confiance de votre ordinateur local

Ouvrez tout simplement votre navigateur à l’URL http://VotreServeur/cacert.crt et cochez toutes les cases:

firefoxCacertTinad.png

3.2: Créer un certificat pour le serveur Web home.tinad.fr

changez "home.tinad.fr" par le FDQN de votre serveur pour la suite des tests.

[bash]
cd /srv/ssl
#Création de la clé privée pour home.tinad.fr
openssl genrsa -des3 -out home.tinad.fr.key.pem 4096
#demande de certificat:
openssl req -config openssl.cnf -new -key home.tinad.fr.key.pem -out home.tinad.fr.csr.pem

Voici mon retour écran:

root@raspberrypi:/srv/ssl# openssl req -config openssl.cnf -new -key home.tinad.fr.key.pem -out home.tinad.fr.csr.pem
Enter pass phrase for home.tinad.fr.key.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [FR]:
State or Province Name (full name) [France]:
Locality Name (eg, city) []:Rouen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:tinad
Organizational Unit Name (eg, section) []:home
Common Name (e.g. server FQDN or YOUR name) []:home.tinad.fr
Email Address []:gnieark@free.fr

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Signature de la demande:

[bash]
openssl ca -config openssl.cnf -policy policy_anything -out home.tinad.fr.cert.pem -infiles home.tinad.fr.csr.pem 

La valeur la plus importante est le common name. Elle corrspond au FDQN pour les autres champs, essayez simplement d’etre logique avec l’autorité de certification Voici mon retour écran:

root@raspberrypi:/srv/ssl# openssl ca -config openssl.cnf -policy policy_anything -out home.tinad.fr.cert.pem -infiles home.tinad.fr.csr.pem 
Using configuration from openssl.cnf
Enter pass phrase for /srv/ssl/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: May  3 19:25:04 2013 GMT
            Not After : May  3 19:25:04 2014 GMT
        Subject:
            countryName               = FR
            stateOrProvinceName       = France
            localityName              = Rouen
            organizationName          = tinad
            organizationalUnitName    = home
            commonName                = home.tinad.fr
            emailAddress              = gnieark@free.fr
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                81:4B:C7:3E:9B:C6:EA:60:78:26:B3:8F:77:B4:43:07:07:DE:A8:02
            X509v3 Authority Key Identifier: 
                keyid:BE:1D:5D:B9:F1:53:D6:BD:11:90:8E:5C:0F:D2:BC:99:22:BE:F1:48

Certificate is to be certified until May  3 19:25:04 2014 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Voila, on a notre certificat signé: /srv/ssl/home.tinad.fr.cert.pem et sa clé privée: /srv/ssl/home.tinad.fr.key.pem (chiffrée par un mot de passe là)

On remarque au passage openssl a incrémenté la valeur dans le fichier /srv/ssl/serial .

Créer une clé non protégée par un mot de passe (ça servira à Apache)

[bash]
cd /srv/ssl
openssl rsa -in home.tinad.fr.key.pem -out home.tinad.fr-EnClair.key.pem

3.3: Créer un certificat pour le serveur Web prive.tinad.fr

Idem qu’au châpitre précedent, du coup je ne détaille pas:

[bash]
cd /srv/ssl
#Création de la clé privée pour prive.tinad.fr
openssl genrsa -des3 -out prive.tinad.fr.key.pem 4096
#demande de certificat:
openssl req -config openssl.cnf -new -key prive.tinad.fr.key.pem -out prive.tinad.fr.csr.pem
#signature de la demande:
openssl ca -config openssl.cnf -policy policy_anything -out prive.tinad.fr.cert.pem -infiles prive.tinad.fr.csr.pem
#créer une clé non protégée:
openssl rsa -in prive.tinad.fr.key.pem -out prive.tinad.fr-EnClair.key.pem

4: Configuration du serveur web

[bash]
cd /var/www
#on va créer 5 dossier pour des vhosts:
mkdir home.tinad.fr
mkdir home.tinad.fr-https
mkdir prive.tinad.fr-https
#Il me semble que le VHOST par défault d'apache est le premier par ordre alphabétique;
#d'où le "0" au début du nom
mkdir 0-default
mkdir 0-default-https
#Supprimer les fichiers de vhosts créés à l’installation d'apache
cd /etc/apache2/sites-enabled
rm * 

4.1: configuration des vhost

Comme vous le verrez, je reste sur une configuration méga basique des VHOST, préférant les valeurs par défaut d’apache aux paramètres non ou mal compris. De plus je n’utilise pas de script CGI, donc autant ne pas les activer.

4.1.1: vi /etc/apache2/sites-available/home.tinad.fr

<VirtualHost *:80>                                                                                                                                                               
ServerName home.tinad.fr                                                                                                                                               
DocumentRoot /var/www/home.tinad.fr                                                                                                                                    
</VirtualHost>

4.1.2: vi /etc/apache2/sites-available/home.tinad.fr-https

Ce VHOST est chiffré en HTTPS, cependant, aucune restriction d’accès n’est effectuée. Pour le test, j’ai mis le certificat de notre propre autorité de certification. Mais en production, autant mettre un vrai certificat (comptez maxi 30€/an). Pour cette maquette, j’y publie le certificat de l’autorité de certification, j’explique comment l’insérer, et je mets un formulaire qui permettra aux utilisateurs de demander leurs propres certificats. (dans le projet final ce sera l’administrateur qui aura accès au formulaire pour générer les certificats)

<VirtualHost *:443>
        ServerName home.tinad.fr
        DocumentRoot /var/www/home.tinad.fr-https
        SSLEngine On                                                                                                                                                                                           
        SSLCertificateFile /srv/ssl/home.tinad.fr.cert.pem                                                                                                                                                     
        SSLCertificateKeyFile /srv/ssl/home.tinad.fr-EnClair.key.pem                                                                                                                                           
        SSLProtocol all -SSLv2                                                                                                                                                                                                                                                                                                                                                              
</Virtualhost>       

4.1.3: vi /etc/apache2/sites-available/prive.tinad.fr-https

<VirtualHost *:443>
	ServerName prive.tinad.fr
	DocumentRoot /var/www/prive.tinad.fr-https
	SSLEngine On
	SSLCertificateFile /srv/ssl/prive.tinad.fr.cert.pem 
	SSLCertificateKeyFile /srv/ssl/prive.tinad.fr-EnClair.key.pem
	SSLProtocol all -SSLv2
	SSLCACertificateFile /srv/ssl/cacert.pem
        SSLCARevocationFile  /srv/ssl/crl.pem
	SSLVerifyClient require
	SSLVerifyDepth 1
	SSLOptions +StdEnvVars
</Virtualhost> 

Ce VHOST étant le plus intéressant, expliquons les directives

  • SSLEngine On : active le SSL
  • SSLCertificateFile le fichier contenant le certificat TLS pour prive.tinad.fr
  • SSLCertificateKeyFile le fichier contenant la clé qui servira à chiffrer les connexions (à garder bien cachée ;) )
  • SSLProtocol all -SSLv2 On accepte tous les protocoles ssl supportés sauf le SSLV2 qui présente une faiblesse)
  • SSLCACertificateFile Le fichier certificat de l’autorité qui signe les certificats clients (apache vérifie les signatures)
  • SSLCARevocationFile Le fichier qui contient la liste des certificats révoqués (nécessaire si on veut gérer les utilisateurs)
  • SSLVerifyClient require Seuls les clients ayant un certificat valide sont admis
  • SSLVerifyDepth 1 On limite à une autorité de certification intermédiaire
  • SSLOptions +StdEnvVars Cette directive permet d’ajouter les informations concernant le certificat client aux variables d’environnement. On pourra ainsi adapter le code PHP en fonction du certificat de l’utilisateur.

4.1.4: Activation des vhost:

[bash]
a2ensite home.tinad.fr
a2ensite home.tinad.fr-https
a2ensite prive.tinad.fr-https
/etc/init.d/apache2 reload

4.2: Créer un couple certificat-clé client (fichier PKCS#12):

cd /srv/ssl
mkdir home.tinad.fr-Clefs-clients
cd home.tinad.fr-Clefs-clients

creer clé

openssl genrsa -des3 -out gnieark.home.tinad.fr.key.pem

Créer le certificat:

openssl req -config ../openssl.cnf -new -key gnieark.home.tinad.fr.key.pem -out gnieark.home.tinad.fr.csr.pem

Retour écran de la dernière commande:

Enter pass phrase for gnieark.home.tinad.fr.key.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [FR]:
State or Province Name (full name) [France]:
Locality Name (eg, city) []:Rouen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:tinad
Organizational Unit Name (eg, section) []:home
Common Name (e.g. server FQDN or YOUR name) []:gnieark
Email Address []:gnieark@free.fr

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Signer le certificat:

openssl ca -config ../openssl.cnf -policy policy_anything -out gnieark.home.tinad.fr.cert.pem -infiles gnieark.home.tinad.fr.csr.pem

Retour écran de la commande:

root@raspberrypi:/srv/ssl/home.tinad.fr-Clefs-clients# openssl ca -config ../openssl.cnf -policy policy_anything -out gnieark.home.tinad.fr.cert.pem -infiles gnieark.home.tinad.fr.csr.pem 
Using configuration from ../openssl.cnf
Enter pass phrase for /srv/ssl/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: May 12 17:18:18 2013 GMT
            Not After : May 12 17:18:18 2014 GMT
        Subject:
            countryName               = FR
            stateOrProvinceName       = France
            localityName              = Rouen
            organizationName          = tinad
            organizationalUnitName    = home
            commonName                = gnieark
            emailAddress              = gnieark@free.fr
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                47:E4:92:85:3A:43:6A:BC:43:C7:5B:41:F4:67:66:E2:36:CA:D7:69
            X509v3 Authority Key Identifier: 
                keyid:BE:1D:5D:B9:F1:53:D6:BD:11:90:8E:5C:0F:D2:BC:99:22:BE:F1:48

Certificate is to be certified until May 12 17:18:18 2014 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Concatener et convertir au forlat PKCS#12 (.p12)

[bash]
openssl pkcs12 -export -inkey gnieark.home.tinad.fr.key.pem -in gnieark.home.tinad.fr.cert.pem -out gnieark.home.tinad.fr.cert.p12 -name "Gnieark"

Ça y est, j’ai une clé à) fournir à l’utilisateur Gnieark, il pourra l’intégrer à Firefox ou Internet Explorer (lol) et ainsi accéder au site que j’ai protégé précédent.

5: Révoquer un certificat:

En imaginant que je révoque un Zigazou

[bash]
cd /srv/ssl
openssl ca -config openssl.cnf -revoke prive.tinad.fr/zigazou.prive.tinad.fr.cert.pem
#générer la liste de révocation:
openssl ca -config openssl.cnf -gencrl -out crl.pem
#la visualiser:
openssl crl -in crl.pem -text

5.1.1: Note

[1] Pour déclarer nos impôts il n’y a plus besoin de certificat personnel, mais les interlocuteurs (fonctionnaires de collectivités) ont leurs propres clés PKCS pour communiquer avec cette administration


16692670676_ee280997b3_o.jpg Mon imprimante photographiée par Frédéric BISSON licence CC certains droits réservés

Ça n’engage que moi, mais voici après quelques mois d’impression, dépannages, dessins... Voici mes conseils sur les choix d’une imprimante 3D:

1: Imprimante 3D plug and play, kit à monter, ou importer toutes les pièces de Chine et se dépatouiller

L’imprimante 3D toute faite est plus chère et aura les mêmes soucis qu’une imprimante open-source (Reprap):

  • Extrudeur qui peut se boucher
  • Courroies qui s’usent ou se détendent
  • Fins de course qui se décalent
  • Plateau pas tout à fait horizontal
  • Extrudeur qui a un peu de jeu
  • etc...

Monter soi même un kit permet, avant la première impression, d’avoir une bonne compréhension de l’imprimante et ses mécanismes. La maintenance et les dépannages seront facilités.

Du coup, je suppose que vous suivez ce conseil et dans le reste de ce billet de blog, j’écarte les imprimantes 3D de grande surface.

2: Cartésienne ou delta?

2.1: Kézako?

Mon imprimante cartésienne, une Prusa i3[1], que voici en photo:

16717523982_a1a5dc6511_o.jpg Mon imprimante photographiée par Frédéric BISSON licence CC certains droits réservés

... a des moteurs qui font déplacer relativement[2]mais directement la tête sur les trois axes XYZ.

Cependant pour une imprimante Delta:

mini-rostock.gif Le gif a été honteusement piqué par l’auteur du blog du grouik au site hkforemost.com

il y a des cosinus et des sinus à utiliser dans la relation entre le moteur qui déplace la courroie de X millimètres et le déplacement de la tête d’impression dans un repère cartésien XYZ, .

2.2: Comparatif

2.2.1: Avantages de la Delta

  • Le bruit: les moteurs pas à pas chantent un peu, et c’est tout, Pas de plateau bruyant qui fait de grands mouvements.
  • L’esthétique
  • la vitesse de déplacement. On ne peut pas configurer une imprimante classique de manière à ce que l’accélération soit au max de ce que peuvent fournir les moteurs NEMA 17. Lors d’une accélération (ou d’une décélération) trop grande sur l’axe Y. Le poids du plateau (qui bouge) fait que la courroie sautera malgré une bonne tension. Sur la delta, le poids entrainé par les courroies est moins important.
  • En général, 4 moteurs seulement contre 5 sur la plupart des imprimantes cartésiennes.

Avantages d’une imprimante cartésienne

  • Plus simple à étalonner[3] et configuration du Firmware plus aisée
  • Plus simple à améliorer: Elle tolère une masse plus importante sur la tête, donc si vous voulez ajouter des ventilateurs, des capteurs, des lumières, un double extrudeur.... sans soucis.
  • Pas besoin de Bowden (je reviens sur ce point quelques paragraphes plus loin.)

3: Extrudeur plastique ou métallique?

Type j-Head: 525px-Jhn_mk5.jpg

Type hexagon:

190px-Hexagon-hotend.jpg Les deux photographies proviennent du site reprap.org licence GNU GPL

J’ai testé les deux types. Retour à la J-Head depuis deux jours.

Une tête métallique a l’avantage de supporter des températures élevées tandis qu’une tête en polyétheréthercétone commence à perdre ses capacités vers 247 degrés Celsius (Ça empêche d’extruder certains ABS).

Il est cependant super rare de bloquer son filament dans une J-HEAD, tandis que c’est assez fréquent avec une hexagon. L’extrudeur métallique, dès que sa zone froide chauffe un peu.... paf bouchée.

Ma manipulation pour déboucher la J-HEAD est:

  • Démonter la tête de l’imprimante,
  • La mettre au four à 220 degrés si c’est du PLA qui bloque,
  • La sortir du four avec une pince (c’est chaud),
  • Déboucher avec une tige de 3mm de diamètre.
  • Tout remonter

Autant dire que c’est un peu pénible. Avant de réinstaller un extrudeur entièrement métallique, je m’imprimerai un super système de refroidissement.

A moins de vouloir expérimenter l’impression de plastiques bizarres, la J-HEAD c’est mieux, il faut juste veiller à ce que son bec soit bien serré.

4: Plateau chauffant ou non?

L’impression sur du verre avec plateau chauffant permet de maintenir la première couche à... disons 50° pour du PLA, afin qu’il adhère le temps de l’impression.

Indispensable sur une imprimante qui fait bouger le plateau sur un des axes X ou Y. Sur les autres imprimantes (plateau qui ne bouge que sur l’axe vertical Z, ou qui ne bouge pas du tout) ce n’est pas indispensable mais c’est très pratique. Le fait de ne pas chauffer le plateau nécessite plus de préparation de ce dernier (nettoyage etc...) et augmente le risque de la pièce qui se rétracte pendant l’impression et se soulève un peu.

5: Bowden or not?

le tube Bowden qui sera utilisé par la reprapJeanne

C’est un risque supplémentaire que le filament soit bloqué quelque part. Sauf sur une DELTA, je pense qu’il faut éviter.

6: RAMPS / autre carte?

Je n’ai testé que la RAMPS, je ne peux pas comparer. Cette dernière ne protège pas assez l’arduino, j’en ai abîmé deux en réglant l’intensité des pololus.

7: Alimentation ATX?

Oui, une avec un interrupteur ! C’est costaud, plus sécurisant que certains convertisseurs 12V importés de chine. Et vous avez la possibilité de chercher comment allumer l’alimentation via le RPY/octoplus qui gère vos impressions, ou via l’arduino ;)

8: Conclusion

J’ai pesé à chaque fois le pour et le contre, je n’ai pas d’opinion tranchée.

Enfin si... En appartement sans pièce réservée à vos bidouillages: une Delta (peu de bruit) et n’imprimez que du PLA (peu d’odeur).

Envie de pouvoir faire évoluer / customiser à mort votre imprimante: Cartésienne

Notes

[1] Et vous comprendrez en lisant ce billet que je ne vous conseille pas particulièrement ce modèle

[2] Pour l’axe Y, c’est le plateau qui bouge

[3] Dans le cas d’un kit fourni par emotion-tech, ils fournissent un tool de configuration automatique



top-axe.png Au hackerspace, avec @TranKILLoman, nous nous sommes lancés dans la construction d’une Reprap grande taille: Type Rostock 2 m de hauteur pour 1m40 utiles.

On en est à l’étape "mécanique", C’est à dire les dessins des pièces plastiques pour s’adapter aux barres en profil "T carré 20X20" qu’on a choisi comme structure et comme guides pour les axes.

Il y a encore beaucoup d’étapes.

Le git du projet: https://github.com/gnieark/reprapJeanne

Son wiki: https://mail.jeannedhack.org/wicked/display.php?page=reprap_geante

Allez, je retourne m’ammuser avec OpenSCAD.

Capture_du_2015-01-31_14_57_53.png


Voici quelques sex-toys dessinés par bibi à télécharger aux formats openscad et en STL.

Un billet au titre "J’ai une imprimante 3D depuis plusieurs semaines" traîne depuis quelques temps dans les brouillons de ce blog. Je n’arrive pas à l’écrire.

Écrire un tutoriel sur les repraps? nan: Fouinez ce wiki (partiellement traduit en français).

Un tuto sur le dessin en 3D? Je débute avec openscad. Ce tutoriel vous permettra de faire rapidement quelques dessins simples..

Quand à raconter mes déboires lors de l’assemblage de l’imprimante? Pas intéressant.

N’arrivant pas à écrire de billet sur l’acquisition l’assemblage, le calibrage de ma Prusa i3, j’ai décidé de fournir à mes lecteurs des designs qu’ils ne trouveront pas sur le site internet thingiverse et ses équivalents.

Car, oui, on trouve des pièces de pistolets [1], mais les godemichets se font censurer.

Butt plug

Deux plug anals façon place Vandome: plugAnal2.png

training plug:

plugAnal.png

Penis Like

gode.png

Conclusion

Je ne suis pas responsable de ce que vous ferez de ces objets, et je ne garantis pas que ce soit sans danger. Ça me faisait juste marrer de dessiner et publier ça. Quand à ma rerap? La voici:

IMAG0016.jpg

Note

[1] Aux infos télévisées quand ils ont parlé de ça, ils ont omis de dire qu’on ne peut pas créer de munition avec une imprimante 3D


IMG_20141025_160135.jpg

L’IDE arduino est juste médiocre, et Eclipse sur un laptop me gonfle passablement. Je veux juste coder (avec le langage arduino) dans mon editeur de code préféré (KATE).

Je vous explique dans ce billet comment vous passer simplement d’eclipse ou de l’IDE arduino pour compiler et charger votre programme arduino.

Je suis sous debian (mais ça s’adapte à toutes les distros linux)

Cependant comme sous debian, dans le gestionnaire de paquet, ils ont généralement un retard sur les dernières versions (ce qui peut etre génant pour avoir la prise en charge des cartes arduino récentes) on va préférer télécharger que la méthode "apt-get"

Télécharger l’IDE arduino

Je sais, le but est de ne pas l’utiliser, Il contient des ressources nécessaires: la liste des cartes, les outils de compilations etc...

Téléchargez la par là: Arduino Downloads. Ne prenez pas la béta (le Makefile ne fonctionne pas avec et ne prenez pas les sources, mais la version qui correspond à votre distribution) Au moment où j’écris ce billet, c’est la 1.0.6

Sur mon PC, je décompresse tout dans /home/gnieark/arduino-1.0.6

2: Se faire un dossier de projets

C’est éventuellement le moment de faire du propre dans vos morceaux de code.

Je me fais un dossier qui contiendra tous les dossier projets (et le fichier arduino.mk, j’y viendrai plus loin)

  1. cd ~
  2. mkdir sketchbooks
  3. cd sketchbooks
  4. mkdir projetTest

Mon nouveau projet s’appelle projetTest vous l’avez compris. Dans son dossier je place mon code (projetTest.ino)[1] qui contient:

  1. void setup() {
  2. Serial.begin(19200);
  3. }
  4. void loop() {
  5. Serial.println("It works");
  6. delay(2000);
  7. }

3: Installer et paramétrer le Makefile magique

histoire d’avoir les dépendances sous debian vous pouvez installer le paquet arduino-mk

On télécharge le Makefile qu’a créé Tim Marson:

  1. cd /home/gnieark/sketchbooks
  2. wget http://ed.am/dev/make/arduino-mk/arduino.mk

N’hésitez pas à jeter un coup d’oeil dans ce fichier

Allons dans le dossier projetTest pour créer le Makefile

  1. cd projetTest
  2. vi Makefile

Le mien contient:

BOARD = uno
ARDUINODIR = /home/gnieark/arduino-1.0.6
SERIALDEV = /dev/ttyACM0
include ../arduino.mk

La commande "make boards" vous donnera la liste des cartes. les autres parametres je vous laisse deviner à quoi ils servent et comment les renseigner.

4: Utilisation

  1. #compiler (tous les fichiers .c, .cc et .cpp du repertoire et des sous repertoires seront pris en compte)
  2. make
  3. #envoyer sur la carte
  4. make upload

5: Un petit piège:

Si vous utilisez un serial dans votre code, et qu’il n’est pas à 19200 baups vous aurrez l’erreur suivante lors du chargement du code:

$ make upload

Uploading to board...
stty -F /dev/ttyACM0 hupcl
/usr/bin/avrdude  -DV -p atmega168 -P /dev/ttyACM0 -c arduino -b 19200 -U flash:w:projetTest.hex:i
avrdude: stk500_getsync(): not in sync: resp=0x1e

avrdude done.  Thank you.

Si vous avez absolument besoin de mettre le serial à une autre frequence que 19200 baups, vous devrez trouver comment corriger ce problème dans le fichier arduino.mk

L’interface serie

Pour ouvrir le serial sans passer par l’IDE arduino, installez screen puis:

  1. screen /dev/ttyACM0 19200

7: Conclusion

Ça c’est fait, l’IDE arduino et Eclipse (sur laptop) me rebutaient tellement qu’ils allaient me dégoûter de l’arduino.

Note

[1] Le fait de nommer le fichier principal du projet de la même manière que son parent permet de garder la compatibilité avec l’IDE arduino (qu’on ne veutr plus utiliser, j’en conviens)


- page 1 de 90

#enBref:

Réduction du bruit de ma reprap

dalle-verte-2.jpg Passage chez Toys R Us pour chercher un cadeau, je me suis offert une dalle amortissante d’extérieur.... Pour la mettre sous ma Reprap.

Aaaaarg! pourquoi je ne l’avais pas fait avant!? La nuisance sonore est réduite par 10, le meuble ikéa sur lequel est installée la bête ne résonne plus à chaque mouvement. Je peux enfin allier impression 3D et matage d’une série à la TV.

PS: Pour trouver une image de la dalle, j’ai cherché sur le site de Toys R Us, elle ne semble malheureusement pas être vendue en ligne.



Fermons les magasins de bricolage le dimanche (#troll)

20150221_201510.jpg

A cause des moteurs qu’on a pris pour la reprap géante, il nous faut 12 boulons de diamètre 3mm, de longeur supérieure à 40mm

J’ai fait

  • Leroy Merlin,
  • Leclerc Bricolage

Trankilloman a fait

  • Castorama

Sans succès. Bref, commandés sur Amazon. Fermons les magasins de bricolage le dimanche, de toutes façons ils ne servent à rien.


Développement durable by Gnieark

Ce matin j’ai acheté une alimentation de PC ATX pour ma reprap. Ce genre de truc:

LD0001437445_1.jpg

Ça va, ça vaut 15 euros. Ce n’est pas la mort non plus.

Au travail, dans les jours qui viennent, je vais en mettre une dizaine à la benne DEEE avec mon stock de tours d’ordinateurs HS. Je sais, c’est débile: pour mon porte feuille et pour l’environnement. j’ai simplement préféré ne pas risquer devoir me justifier "Ça serait parti à la benne et même neuf ça vaut rien", en sortant avec.


Comment fonctionne le piège à pigeons

IMG_20140708_121344-EFFECTS.jpg

Suite à l’invasion de zombies, vous êtes retranché en milieu urbain (donc des pigeons), dans un bâtiment qui a des terrasses accessibles.

En stock de nourriture, vous avez des graines pour oiseaux et du maïs mais vous n’aimez pas ça.

Je vais vous indiquer comment avoir un peu de viande. (bon OK, ce sera du pigeon).

Le but n’est pas de chopper un pigeon, mais un paquet de pigeons.

Si le piège se referme à chaque fois, Aucun pigeon n’entrera dedans alors qu’un de ses congénères est piégé.

C’est pourquoi, dans un premier temps (pendant une semaine ou deux), le piège est tout simplement ouvert. Tous les pigeons du quartier vont finir par le connaitre et y passer une fois par jour.

Un jour, vous activez le piège. A présent, un pigeon qui entre ne peut plus sortir. Les pigeons du quartier connaissent cet emplacement de nourriture facile. Ils y passent tous les jours depuis deux semaines. Ils sont en confiance et rentreront dans le piège même s’il y a d’autres pigeons dedans. Voilà, vous avez une quinzaine de pigeons.

Du moins, c’est ce que m’a raconté la personne qui a posé le piège. Vous me remercierez lors d’une attaque de zombie pour ce truc permettant d’avoir un peu de viande.

EDIT quelques jours plus tard:

IMG_20140721_095500.jpg


robot explorer V3

IMG_20140626_004302-EFFECTS.jpg

Après quelques mois de pause, je reprends mes bidouillages sur le robot explorer.

J’ai vu que @flogib de son coté bossait sur un moyen d’équilibrer la puissance des deux moteurs CC de manière à ce que son robot avance droit.

De mon coté ce nouveau prototype aura:

  • Émetteur et récepteur RF pour communiquer avec ses congénères
  • Récepteur ultrason pour estimer les distances avec ses congénères
  • capteur de distance orientable grace à un servo-moteur.
  • Et évidemment deux moteurs CC pour qu’il avance et puisse tourner.

Je publierai plus tard plus des détails, pour le moment c’est juste du porn électronique: IMG_20140626_135302.jpg

IMG_20140625_195619.jpg

IMG_20140626_004310.jpg

IMG_20140626_004232.jpg

IMG_20140625_195754.jpg


Développeur d'intranet

Gnieark:

... Je rajouterai un champs "url_du_logo" dans la base de donnée...

Dev front-end:

... Juste une petite question en passant d’après ton mail : Tu utilises des noms de champs en français? :p ...

Gnieark:

XD Je fais pire que ça... toutes mes variables sont nommées en français (peut être qu’1 ou 2 m’ont échappé et sont en franglais).

Je voulais avancer encore un peu avant de t’ouvrir l’accès au code et te faire cette surprise.

Dev front-end:

q1hfuia.gif


L'effet du passage en https sur la fréquentation du site

En septembre 2013, je passais ce blog en https. J’ai été plutôt inactif depuis (10 billets environ), et pourtant la fréquentation (malgré le risque du passage en https) n’a pas diminuée. Au contraire, elle a légèrement augmenté alors qu’elle aurait du baisser vu le manque d’activité.

stats.jpeg

Je reste à un peu plus de 6000 visiteurs uniques par mois.

Voici un grand raccourci, vu que la majorité des visiteurs sur ce site sont passés par google: Google indexe et référence aussi bien un site en https qu’en http. Attention quand même:

  • Toutes mes anciennes url en http sont proprement redirigées vers la nouvelle adresse avec un code 301.
  • Mon certificat SSL est signé par une autorité de confiance.

Propulsé par Dotclear