Modifications

SmoothieWare fins de course

1 733 octets ajoutés, 19 juin 2014 à 09:17
aucun résumé de modification
==résumé==
<strike>à l'occasion de la fabacademy, je profite du TP "input devices" et "output devices" pour </strike> tenter d'implémenter des fins de courses pour le smoothieware : le programme qui pilote les machines du fablab je n'ai pas le droit de faire ça dans le cadre de la fabacademy : ça ne rentre pas dans les cases
==découverte du code==
===GitHub===Le code source est partagé sur la plateforme de développement collaboratif github : https://github.com/Smoothieware/Smoothieware pour pouvoir coder sans tout casser, il me fallait une copie à moi. j'ai suivit le tutoriel https://help.github.com/articles/fork-a-repo
j'ai commencé par créer un fork sur mon propre compte github (en cliquant sur "fork")
 
puis j'ai récupéré un clone du code en tapant dans la terminal :
 
<code lang=bash>git clone https://github.com/Cdriko/Smoothieware.git</code>
 
pour être tenu au courant des changements sur le dépôt d'origine :
 
<code lang=bash>
cd Smoothieware/
git remote add upstream https://github.com/Smoothieware/Smoothieware.git
git fetch upstream
</code>
 
 
à ce stade, je peux déjà commencer à explorer le code
 
===analyse du code===
 
Actuellement, le programme en C++ qui pilote cette carte est construit de façon modulaire :
 
[[Image:Smoothie.modules.jpg]]
 
On peut créer d'autres modules à la demande
 
http://smoothieware.org/moduleexample
 
un certain nombre d'evènements sont gérés par le kernel : http://smoothieware.org/listofevents
 
====le module existant "EndStops"====
 
c'est naturellement dans ce module que j'ai commencé à regarder.
 
En fait, il ne gère actuellement que le cycle de "homing" : la recherche automatique de l'origine des axes
 
Je vais chercher à l'étendre pour réaliser une surveillance en temps réel
 
====le module Stepper====
 
Celui-ci utilise les "blocks" (voir ci dessus) pour actionner les 3 moteurs
 
Il semblerai que ce soit le bon endroit pour faire abandonner un mouvement
 
===L'idée de fonctionnement===
 
le module EndStops est abonné à l'évènement "slow_ticker"
 
<code lang=c>
this->kernel->slow_ticker->attach( 100, this, &PauseButton::button_tick );
</code>
[[Catégorie:FabAcademy]]
[[Catégorie:Code]]