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.