lundi 6 octobre 2014

Circuit imprimé avec CNC

La CNC étant construite, reste à choisir et comprendre la suite logicielle nécessaire à son utilisation.
Un vieux PC sous XP /Ubuntu lui est dédié. Sous XP le logiciel MACH3 fourni avec la carte TB6560  est installé, sous ubuntu 10.04 c'est LinuxCNC.

Suite logicielle PCB : KICAD(Ubuntu 14.04)  , de PCBNew export via "tracer" en DXF sans marque de perçage, en même temps création d'un fichier de perçage (.drl)

Pour générer le Gcode , j'utilise PYCAM sous ubuntu 14.04 (c'est en fait le seul que j'arrive à bien faire fonctionner) . Pycam permet de définir une offset correspondante au diamètre de l'outil.

jeudi 12 décembre 2013

Ajout d'un asservissement en vitesse du moteur de coupe


Par ajout d'un capteur IR réflectif sur le moteur de coupe, relié sur l'entrée clock du timer1. grosse amélioration du fonctionnement : le moteur ne cale pas donc pas (beaucoup moins ) de détection de sur -intensité et arrêt dela coupe pendant tempo.
vidéo en fonctionnement

CNC maison

Depuis le temps que ça me trotte dans la tête, je me suis lancé dans la construction d'une petite CNC (table de 300x500), pour voir, pour découvrir, low cost. Les premiers résultats sont très encourageants. J'utilise des glissières de tiroir de bonne qualité et des tiges filetées inox de chez Leroy. La structure est en MDF 19mm découpées précisément par un ami menuisier.Le support de la fraiseuse est doté de 4 glissières, le montage à 90° permet de limiter le jeu; de même les glissières en X sont montées à 90° pour la même raison.

Le plan a été réalisé sous Sketchup.



 Pour faire simple j'ai acheté via ebay un ensemble alim, carte et moteur NEMA23. Ce n'est qu'un peu plus tard que j'ai découvert les problèmes liés à la fameuse carte bleue à TB6560 jusqu'à ce qu'elle "crame" ; j'en ai obtenu une neuve de nouvelle génération auprès du fournisseur.
J'ai aussi monté des micro switch de fin de course mais qui ne sont pas encore raccordés sur la carte car je n'ai pas le bon connecteur.


Test avec le crayon : précision de 5/100 en X et 15/100 en Y ce qui va au delà de mes espérances.
pour moi le plus long a été de trouver et d'apprendre à utiliser la suite logicielle gratuite adéquate. Dans un premier temps j'ai utilisé Sketchup avec un plugin Gccode puis j'ai opté pour LibreCAD et FreeCAD pour le dessin et PYCAM pour la traduction en Gcode et aussi F Engrave  qui est très pratique et simple.
Tout ça avec Mach3 light en attendant de passer sous Linux CNC.











vendredi 12 avril 2013

Ajout sélection Alimentation

Lorsque je suis à l'atelier, je préfère utiliser une alim plutôt que la batterie. Alors plutôt que brancher/débrancher la batterie j'ai ajouté un double inverseur capable de soutenir 10A (il y a de la marge) et 2 bornes 4 mm pour raccordement de l'alim.

Pointer le bug

J'ai passé 2 jours à tenter de résoudre un bug (CCS C sur PIC 16F ) : je voulais qu'une valeur transmise en paramètre d'une fonction (par défaut transmission par valeur) est sa valeur modifiée par cette fonction.Une solution facile et éprouvée était de créer une variable globale, visible de la fonction appelante et appelée. Mais j'ai voulu faire autrement en utilisant un pointeur de façon à transmettre le paramètre non pas par valeur mais par référence (adresse).

j'ai donc déclaré :
int8 *PtrVal;

Par la suite je découvrais que ça ne fonctionnait pas: la fonction appelée qui essayait simplement de resetter la variable :
*PtrVal = 0;

A la fin j'ai posé le problème sur le forum de CCS et obtenu la réponse de PCM Programmer  :
The key thing you need to remember is that just simply creating a pointer doesn't create or allocate any RAM storage locations for data. You have a pointer, but you don't have anything for it to point to.
So to make the pointer be useful, you need to declare a variable, or an array, and load the pointer with the address of that variable or array. 



Il n'y a donc pas d'allocation mémoire lors de la déclaration du pointeur; il faut déclarer la variable :
int8 x;         //Déclaration de la variable et allocation de mémoire
int8 *Ptr;    //Déclaration du pointeur vers un byte


Ptr = &x;     // affectation de l'adresse de x au pointeur

il est alors possible d'accéder/modifier x via le pointeur :
*Ptr = 12;

Certainement très basique mais complétement oublié voire jamais connu!

jeudi 4 avril 2013

Test Nouveau moteur de coupe pour La Poulette

Le moteur de coupe actuel Turnigy G25 est très performant voire trop, très puissant voire trop. Depuis la mise en place de l'asservissement de vitesse du moteur de coupe, la surpuissance de ce moteur est manifeste.
L'autonomie de la tondeuse est de l'ordre de 1h10. 
J'ai donc décidé d'en essayer un autre, j'avais acheté il y a quelques mois un Turnigy Park 450 .
Ce moteur nécessite comme l'autre une protection complète que j'ai réalisé comme suit :
2 disques ALU
 Le moteur est fixé sur celui ci:
 Usina de l'axe en acier à partir d'un rond de 10mm; l'axe moteur est de 4mm, Serrage sur l'axe par 2 vis de 3mm; en sortie l'axe est de 6mm.

L'ensemble avant montage: il y a un roulement inséré dans le disque de sortie.
 Au final avec le capteur de vitesse. C'est lui qui ma posé le plus de problème car la réflexion d'une simple bande réfléchissante n'était pas suffisant. Les résultats satisfaisant n'ont été obtenus qu'avec de l'alu collé sur la cage du moteur.
Pas de robot sans mécanique!
La mise en place sur la Poulette n'a pas posé de gros problèmes et le résultat mesuré ce jour est très positif : l'autonomie est passée à 1h45 soit 35 minutes de plus avec il est vrai assez peu à couper.

mardi 26 mars 2013

CHOIX BATTERIE

Les premières batteries équipant le robot tondeuse étaient des batteries au plomb, je voulais faire simple et avec ce que je connaissais.
Cette année, dans le cadre de la version 6 de La Poulette, je voulais supprimer cette batterie au plomb qui cumule plusieurs inconvénients:
  •  trop lourde (6Kg  pour 17Ah) 
    • La structure doit supporter ce poids
    •  la déplacer dans de l'herbe nécessite couple important et consommation plus importante
  • Charge très longue mais qui nécessite quand même un bon chargeur car mon chargeur de base (forte tendance à la surcharge) a vite fait de la détruire!
 Bref  j'ai cherché des infos et finalement j'ai acheté chez HOBBYKING quelques LIPO  4S (8000mAh et 5000mAh) et un chargeur B6AC: très bons résultats, gain énorme de poids, rapidité de la charge même sans forcer (charge à 0.5C voire moins). Seul bémol : la charge nécessite un chargeur en mesure de vérifier chaque élément , les LIPOs n'aiment pas( mais à priori pas du tout)  les surcharges.

En cherchant un peu j'ai découvert les LIFEPO4 (parfois dénommées A123). Les avantages:
  • les avantages des batteries au Lithium (poids, charge rapide...)
  • mais moins sensibles que les les LIPO au déséquilibre
  • moins toxiques pour l'environnement
  • Existe sous une forme robuste, quasiment compatible avec les batteries au plomb lorsque équipées d'un module PCM. Ce module gère la batterie en charge et en décharge. Il suffit alors d'envoyer une tension max de 14.6V (max théorique de 14.8V pour 3.7V/Cell) et de limiter le courant à moins de  1C.
J'ai donc choisi le modèle EV_POWER  12V 7.5Ah PCM
Les premiers résultats sont très bons, vu la demande faible en cette saison la charge est lente (max 1.5A)