Category Archives: DIY

Réglage et premier Gcode sous EMC2

Hello,

Je viens de terminer ma première CNC à la sauce DIY de chez id-conception. Une très belle machine qu’on doit monter soi même avec derrière une communauté très active. C’est l’idéal pour apprendre ;)

Donc ce que nous allons faire c’est:

  1. Régler sa machine
  2. Rectifier le plateau martyr

Régler sa machine:

Ma machine est connectée à un ordi sous linux avec EMC2. Il y a un tuto très très intéressant de maxime42 expliquant le protocol de réglage sous mach3 mais le principe reste identique sur emc2.

Cas pratique : mes moteurs font 200pas.tour-1, la carte est réglée au quart de pas donc si par exemple vous avez une vis qui devrait faire 1.45mm le soft enverra (200/1.45)*4 551,72impulsions.mm-1 . Si vous lancez une commande de 290mm et qu’en mesurant vous trouvez 297mm. Et donc en utilisant la règle de maxime42 cela implique que le pas de vis est en fait de (200*4)/(551,72*290/297) = 1,485mm.tour-1. Donc maintenant vous pourrez modifier le paramétrage avec la bonne valeur du pas (Applications > cnc > stepconf Wizard  modify,….)

N.B.: Vous pourrez refaire la même démarche pour affiner votre mesure. (200/1.485)*4=……etc

N.B.: Dans vos tests, une fois que vous aurez mesuré le déplacement réel, revenez à l’origine avant de quitter emc2 pour modifier le paramétrage d’emc2 car si le pas de vis n’est pas bon à l’aller, il ne le sera pas au retour et donc vous reviendrez à l’origine :) Je sais que c’est évident mais si je peux vous faire gagner du temps ;)

N.B.: Pour votre calcul évidemment ça se simplifie terriblement si vous ne voulez pas tenir compte des pas, micropas , impulsions blah blah…

pas de vis réel= distance réelle parcouru * pas de vis supposé / distance de consigne

Vous comprendrez que c’est une simple règle de trois mais à partir des inverses des pas de vis… si vous ne comprenez pas revenez plus haut avec la notions des impulsions.

 

Rectifier le plateau martyr:

Bon maintenant que les déplacements sont bons et que l’on veut attaquer l’usinage – cri bourrin d’un gadz –  il faut que lorsqu’on met une pièce sur le plateau martyr de la cnc, celle ci soit bien perpendiculaire à l’outil. Et oui si on usine un plan sur notre pièce, celui ci doit être parallèle au plan en contact sur le plateau martyr… (je crois que je me complique un peu dans mes explications :)

Donc on va rentrer dans le plateau martyr pour en enlever par exemple 1.5mm.

Pour cela on va faire notre premier Gcode. Mais comment on fait?

Tout d’abord on a deux possibilités pour usiner, un usinage en escargot/spirale (on commence par l’extérieur du plan pour finir au centre) ou en zigzag(on commence d’un côté et on balaye jusque l’autre côté).

Etant donné que je n’ai pas encore appris à utiliser des outils de design (Cad) et d’outils de cam (pour générer du gcode) je n’ai pas le choix je vais devoir le faire à la main :S Comme mon outil fait 6mm de diamètre l’usinage en escargot va être long à générer à la main et je sens l’erreur pointer le bout de son nez … Le zigzag aussi ça va être long! j’avais envie d’écrire un soft pour le générer automatiquement mais en cherchant un peu j’ai découvert quelques subtilités du gcode. On peut y faire des boucles !!!!! :) Voici le détail très complet du Gcode pour emc2

Dans mon cas, j’ai fait en zigzag mais on peut faire la même chose en escargot d’ailleurs je vous le conseille pour avoir les bords du plan plus propre qu’en zigzag qui m’a nécessité un passage du contour.

Donc voici le code:

(Surfacage du martyr)

N100 G91 (passage en relatif)

N110 G01 Z-1.5 F540
O120 repeat [37] (boucle d’aller-retour en relatif)

N1500 G01 X499 Y0

N1600 G01 X0 Y4

N1700 G01 X-499 Y0

N1800 G01 X0 Y4

O120 endrepeat

(dernier demi zigzag)
N200 G01 X499 Y0

N210 G01 X0 Y4

N220 G01 X-499 Y0

N230 G90 (passage en absolu)

N240 G01 X0 Y0 (usinage du contour du plan)

N250 G01 X500 Y0

N260 G01 X500 Y300

N270 G01 X0 Y300

N280 G01 Z10 (on remonte l’outil)

N290 G01 X0 Y0 (on revient à l’origine)

M2 (fin du programme)

 

 

rmq: j’ai conscience que ce n’est pas le meilleur programme mais c’est mon premier! Donc soyez indulgent De plus ce code doit être vérifié par vous et adapté à la taille de votre outils, à votre plan, à votre broche, l’avance…et surtout compris par vous avant de le lancer! je ne serai pas responsable de votre copier/coller !

Voici en plus quelques explications:

 

Alors là vous êtes prêt pour faire prendre l’origine et lancer votre Gcode !

Enjoy et croisez les doigts ;)

 

[UPDATE] grecode un petit outil pour faire des modifications de votre Gcode pour faire un mirroir, flip,… sans avoir à tout modifier à la  main… A tester!!!

[UPDATE2] Je viens de tomber sur un site qui semble terrible pour générer des surfaces planes de différentes façon. Je n’ai pas testé la compatibilité mais je trouve ça vraiment très simple et léger pour le coup (vous pouvez sauvegarder la page web)

 

Tagged , , , , , ,

Pycam sur Ubuntu 11.10

Hello,

Je suis en train de travailler sur la chaine de création DESIGN -> conversion GCode -> Usinage depuis EMC2 et j’ai pas mal galéré… Windows,Mac ou Linux…. que choisir…

Si vous préférez travailler sur windows vous trouverez évidemment cambam (pour une centaine d’euros sinon ya une versiond’essai d’une quarantaine d’utilisation) c’est un logiciel qui est vraiment bien! Il n’est pas dit que je ne craque pas un jour. Mais pour le moment je n’ai pas besoin de quelque chose de compliqué. Ah oui il y a aussi freemill qui est gratuit pas trop mal, ça vaut le coup d’essayer pour se faire son propre avis.

Mais j’ai eu un petit faible pour pycam sur Linux (sur Mac je n’ai pas réussi à faire marcher la partie viewer), un générateur de Gcode compatible avec EMC2 en python. Je le trouve plutot lisible car on peut générer tout le gcode jusqu’à la finition avec des outils différents.
Même si il est plutot long en temps de calcul pour les phases de finition il me plait bien.

Donc je vous ai fait un petit tuto pour l’installer sur la dernière version de Linux (car évidemment ça ne marche pas du premier coup mais c’est juste un problème de version de python)
Commençons par récupérer la dernière version pour linux sur le site de pycam


Une fois téléchargé, décompressez le fichier dans un coin. Avant de l’installer, on constate que  la version de python installée (2.7) dans ubuntu 11.10 n’est pascompatible avec pycam pour cela il faudra intégrer la version 2.6. Dans la console, faites un

sudo apt-get install python2.6

Ensuite,

sudo rm /usr/bin/python

pour supprimer le lien symbolique vers python2.7

Puis il faut faire le lien symbolique vers python2.6

ln -s /usr/bin/python2.6 /usr/bin/python

Après vous pourrez reprendre l’installation en installant les dépendances

sudo apt-get install python-gtk2 python-opengl python-gtkglext1 python-rsvg python-pyode python-guppy

il faudra sûrement rajouter un

sudo apt-get install pstoedit

(c’était mon cas pour la conversion de dxf,svg…)
Bon ensuite il faudra remodifier le lien symbolique pour que ça repointe vers python 2.7 car sinon ça fout la grouille dans l’os…

sudo rm /usr/bin/python

ln -s /usr/bin/python2.7 /usr/bin/python

 

Et là vous pourrez enfin lancer « pycam_0.5.1-1_all.deb » pour l’installation de pycam

Ce n’est toujours pas fini car quand vous lancerez l’appli, elle va utiliser python2.7 et donc ça ne marchera pas…
Je vous propose de créer un petit script pycam.sh

#!/bin/bash

/usr/bin/python2.6 /usr/bin/pycam

ce script serait, par exemple, à mettre dans /home/toto/ et comme tous les scripts il faudra le rendre exécutable. donc un petit

sudo chmod+x /home/toto/pycam.sh

Pour finir, il faudra modifier le lien du lanceur pour se simplifier l’utilisation sous ubuntu pour cela

sudo gedit /usr/share/applications/pycam.desktop

(gedit parce que c’est plus simple que vi qd même :) Et modifiez l’Exec

[Desktop Entry]

Version=1.0

Name=PyCAM

GenericName=Toolpath Generator

Comment=generate GCode for 3-Axis CNCmachining

Exec=/home/toto/pycam.sh

TryExec=pycam

Terminal=false

Type=Application

Categories=Development;Engineering;Robotics;Education;Science;2DGraphics;VectorGraphics;3DGraphicsMimeType=application/sla;image/svg+xml;application/postscript;image/vnd.dxf

Icon=pycam

Sauvegardez et quittez.

Et voilà c’est enfin fini!!! vous pourrez donc vous servir de pycam sur ubuntu 11.10 sans avoir flingué l’OS ;)

 

Après pour l’utilisation je vous laisse chercher un autre tuto. Mais voici quelques liens  intéressant:

 

Enjoy

Tagged , , ,

On m'a volé mon ordinateur ! c'est pas grave…


Hello,

 

Hier je regardais une video d’un hacker qui raconte avec humour ses péripéties pour récupérer son ordinateur volé.

C’est alors que je me suis posé « la » question mais que deviendrais je sans mon ordi ?? Mon ordi que j’aime tant et sur lequel je passe toutes mes journées depuis l’âge de 2ans (j’exagère un peu…).

Déjà je pleure ;(

Ensuite, même avec des backups, je n’ai pas envie de repasser autant de temps à tout réinstaller ou reparamétrer…

Alors je me suis fait une petite appli qui se lance au login mon ordi (même pour le compte invité) et permet d’envoyer mon ip externe à un site web en php pour stocker ça dans une base de données.


Ainsi je peux suivre l’adresse ip à chaque connexion de mon ordi…même en session invité (c’est même fait exprès car évidemment ma session perso est « passwordé ») et donc si je me fais voler mon ordinateur peut être que ça pourra m’aider à le retrouver . Je l’ai fait pour mac mais cela est très simple à modifier pour que cela fonctionne sur Windows (cette partie là est même déjà en place dans le code java) ou linux

 

Le principe de l’application est assez simple:

1) au démarrage de l’ordinateur un script lance l’appli java. (Il faudra paramétrer le lancement du script en fonction de votre os, un bat sur windows ou sh sur mac et linux)

2) celle ci va consulter le script whatsmyip.php afin de récupérer son adresse ip

3) ensuite l’appli va envoyer en argument l’ip fraichement récupérée au script storemyip.php

4) et voilà le tour est joué, l’appli java se ferme.

5) vous pourrez consulter l’historique date et ip des 50 dernières connexions avec le script consultmyip.php

 

Voici un petit schéma du détail:

 

 

Reprenons point par point:

(pour les sources évitez les copier/coller à la fin du tuto vous retrouverez un lien pour tout télécharger directement)

1) l’appli Java sur votre ordinateur

 

Vous trouverez le zip avec le code source de l’appli à télécharger ici

Dans cette appli vous trouverez un fichier config/config.properties qui contient les urls de votre server php. Il faudra juste remplacer your.url.com par votre url (si vous conservez la même implantation de fichier sur votre serveur php évidemment)

org.galaxy.url.setmyip=http://your.url.com/storemyip.php

org.galaxy.url.whatsmyip.url=http://your.url.com/whatsmyip.php

Ensuite il ne reste plus qu’à paramétrer l’exécution de votre appli java au démarrage de votre ordinateur.
voici quelques liens pour faire cela. exemple de login hook sur mac: lien1 lien2 lien3
Le script à exécuter se trouve dans le zip, il lance juste le jar. Attention le script doit être exécutable évidemment (sudo chmod +x tracer.sh)
L’appli est assez longue à l’exécution (30sec) mais c’est voulu pour permettre la connexion wifi ou ethernet d’être en place avant de tenter de faire de requêtes sur le web. Bon après votre ordinateur met 30 secondes à s’allumer, je pense que ça peut être réduit (en diminuant la tempo dans le code) ou fait autrement mais moi ça me convient pour le moment.

2) Whatsmyip.php

Ce script vous permet de récupérer l’adresse ip vue de l’extérieur. Un script très simple
<?php
$ip = getenv(« REMOTE_ADDR ») ;
Echo $ip;
?>

3) storemyip.php

Ce script vous permet d’inscrire en base votre adresse ip. Un script très simple, il vous faudra mettre vos paramètres en place dans le fichier.
<?php
// information pour la connection à le DB
$host = ‘localhost‘;
$user = ‘user‘;
$pass = ‘pass‘;
$db = ‘db‘;
$ip = ip2long ( $_GET[‘ip’]);
$us32str = sprintf(« %u »,$ip);
$ip2=long2ip(-(4294967296-$us32str));
$link = mysql_connect ($host,$user,$pass) or die (‘Erreur : ‘.mysql_error() );
mysql_select_db($db) or die (‘Erreur :’.mysql_error());
$insert = « INSERT INTO connexion (date, adresseip) VALUES (NOW(), ‘$ip2′) »;
$result = mysql_query($insert,$link) or die (‘Erreur : ‘.mysql_error() );
?>
Bien sûr il vous faudra une base de donnée Mysql pour écrire dedans, voici le script de création de la table:
CREATE TABLE IF NOT EXISTS `connexion` (
`index` int(11) NOT NULL auto_increment,
`date` datetime NOT NULL,
`adresseip` text NOT NULL,
PRIMARY KEY  (`index`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

3) consultmyip.php

Le travail de stockage est fini maintenant si vous voulez consulter les 50 dernières connexions (50 c’est pour la lisibilité) voici le script:
<html>
<body>
<?php
// information pour la connection à le DB
$host = ‘host‘;
$user = ‘user‘;
$pass = ‘pass‘;
$db = ‘db‘;
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die (‘Erreur : ‘.mysql_error() );
mysql_select_db($db) or die (‘Erreur :’.mysql_error());
// requête SQL qui compte le nombre total d’enregistrements dans la table
//et qui récupère tous les enregistrements
$select = « SELECT date,adresseip FROM connexion ORDER BY date DESC »;
$result = mysql_query($select,$link) or die (‘Erreur : ‘.mysql_error() );

$total = mysql_num_rows($result);

// si on a récupéré un résultat on l’affiche.

if($total) {
// début du tableau
echo ‘<table bgcolor= »#FFFFFF »>’. »n »;
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo ‘<tr>';
echo ‘<td bgcolor= »#669999″><b><u>Date</u></b></td>';
echo ‘<td bgcolor= »#669999″><b><u>Adresse IP</u></b></td>';
echo ‘</tr>’. »n »;
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    $compteur=0;
while($row = mysql_fetch_array($result) and $compteur<=100) {
echo ‘<tr>';
echo ‘<td bgcolor= »#CCCCCC »>’.$row[‘date’].'</td>';
echo ‘<td bgcolor= »#CCCCCC »>’.$row[‘adresseip’].'</td>';
echo ‘</tr>’. »n »;
$compteur++;
}
echo ‘</table>’. »n »;
// fin du tableau.
}else echo ‘Pas d’enregistrements dans cette table…';
// on libère le résultatmysql_free_result($result);
?>
</body>
</html>
Et voilà vous pouvez suivre les ip à chaque connexion de votre ordinateur sur le net. Sachant qui ip peut se localiser relativement facilement, en plus  je vous conseille de mettre vnc, et ssh en route (cf. la video précédente) pour aller un peu plus loin ^^
Vous trouverez toutes les sources java, php et mysql à télécharger ici, notez que si vous souhaitez mettre en place l’application il faudra coller le répertoire tracer à la racine de votre système et faire un loginhook sur le tracer.command

ps: on peut imaginer une requête inverse qui en cas de vol autodétruirait l’ordi ^^ quoi je regarde trop la télé… :p

Enjoy

 

Tagged , , , , , , , ,

Processing and Java

Hello,

 

Je suis en train de produire une petite app pour mon projet (je vous en parlerai un peu plus tard…) et donc tout ça se passe en Java. Normal vu que c’est le langage sur lequel je me focalise…

Je viens de jouer avec Processing et je trouve ça vraiment puissant ! On peut déployer son application sur pas mal de plateforme et super simplement. Du coup en regardant un peu on peut fabriquer nos propres librairie et en plus depuis eclipse !  ^^ je sens que je vais me faciliter la vie :)

 

Intégration sous eclipse

un petit learning

le wiki de processing

 

Enjoy !!

Un transistor = interrupteur?

Hello,

Un transistor est un composant électronique qui peut servir de nombreuses façons.

Il peut servir essentiellement d’ampli ou d’interrupteur. C’est grâce à ce dernier mode que depuis une cinquantaine d’année les ordinateurs révolutionnent le monde… de simple interrupteurs…

 

Donc si pour vos petites bidouilles vous avez besoin de cela voici un petit lien pour mieux appréhender cela si vous ne savez pas comment faire.

Dernière chose voici un très bon tuto pour faire un intervallomètre pour votre appareil photo préféré (faites attention quand même à vérifier que cela est compatible avec votre appareil photo, moi j’ai un Canon et le schéma est différent de celui indiqué dans le tuto)

 

Enjoy

Music skills

Hello,

 

Voici une petite video pour les musiciens qui souhaitent fabriquer des effets pour leur guitare électrique. Vous allez voir c’est très simple!!!

 

 

En plus voici un petit site (qu’on voit dans la video) où vous retrouverez tous plein de circuit élec produisant qq effets sympa.

 

Enjoy!!!

font pour dotmatrix à Led

Bonjour,

 

Voici quelques liens pour créer les fonts qui vont bien pour votre dot matrix:

 

Pial’s (We)Blog | 8×8 Dot matrix font generator based on javascript and HTML

LED Scolling Dot Matrix Font & Graphics Generator 5×8 5×7 8×8

Led Font Creator with Scrolling Display – CodeProject

8×8 Pixel ROM Font Editor

Bitmap Font Writer

Free bitmap fonts 8×8 Download – Bitmap fonts 8×8 for Windows

 

Sinon ya Gimp, vous créez une image de 8×8 pixels puis lorsque vous avez fini votre travail vous le sauvegardez au  format xbm (Xbitmap) et puis vous n’aves plus qu’à éditer le ficher pour copier coller cela au bon endroit ;)

C’est fastidieux…bon courage

So Enjoy!

CNC Diy

Hello,

Si un jours vous souhaitez faire votre propre usinage vous même voici un kit pas trop chère qui a l’air plutôt sympa :)

De plus voici quelques liens sur d’autres sites pour notamment piloter sous linux ce genre de chose et un site sur ce thème.

So enjoy!

[update] Cocorico!!! Je viens de découvrir une cnc faite en France c’est vraiment du Diy pour les mouvements de translation c’est des glissières à billes de tiroir, des tiges filletés…mais la précision atteint le dixième donc parfait ça se passe . Je ferai un tuto dès que je recevrai la mienne. ;)

Musique protéinique….

Hello,

Lors du workshop du /tmp/lab/ au macval le 3 juillet, j’ai découvert la musique protéinique… o_O

Vous allez me dire mais qu’est ce que c’est la musique protéinique? Et bien en fait c’est très simple. Pour faire simple une protéine est une sorte ficelle constituée d’ensemble acides aminés. Une fois cette ficelle roulée en boule (je schématise vraiment) ça nous donne une protéine ! Et donc en prennant cette ficelle et en considérant chaque acide aminé et bien on obtient une partition avec ces notes.

On peut penser que ça va être la cacophonie mais détrompez vous on retrouve une certaine mélodie assez intrigante car issue de la nature et non d’un musicien.

Pour ceux qui veulent essayer d’aller un peu plus loin et de jouer leur propre musique protéinique (David Guetta si tu m’entends) voici un lien pour une application en java (avec le code source et une très très bonne explication sur l’algo de traitement :) pour charger des partitions. Mais ça peut se faire soit même avec un petit peu de temps et de java ;)

Si vous souhaitez récupérer des données, il y a des bases de données open qui sont disponibles sur le web (viperdb, protéin databank,…) où vous pourrez trouver des fichiers de type FASTA ou autre à dl.

D’ailleurs, si vous voulez manipuler ces objets, il existe des projets comme chimera qui modélise en 3D ces « partitions » .

_

Si vous voulez aller encore plus loin et analyser vous même l’ADN d’une protéine vous avez une nouvelle plateforme opensource l’openPCR pour 512$.

Donc voilà il n’y a plus qu’à commencer la musique protéinique !!

So enjoy!!

Android SDK

Hello,
Ca y est j’ai laissé tombé mon iphone pour tenter l’expérience Android… Mouais ergonomiquement parlant ça y ressemble même si c’est un peu plus fouilli. Je vous conseille d’essayer et puis Android c’est un peu « The » téléphone pour un geek ;)

Android_robot.svg

Bref, l’intérêt c’est que c’est bien ouvert on qu’on peut faire pas mal de dev.

Il un sdk aux petits oignons en plus c’est en java et ça se fait à travers Eclipse donc nickel :)

Voici un petit tuto pour commencer vos premiers devs.

Android c’est bien c’est vraiment ouvert! peut être un peu trop car il y a de vrais risques. pour vous prémunir faites attention à ce que vous téléchargez. Quand on regarde cette video d’une conf qu’il à eu à la cantine (lieu très agréable) on peut vite se faire %ù »#!

Dernière chose Google annonce un add on de type arduino… mais vous pouvez trouver d’autres choses bien sympathiques comme amarino mais aussi.

So enjoy !