SmoothieWare fins de course : Différence entre versions

De fablabo
Aller à : navigation, rechercher
 
(10 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 14 : Ligne 14 :
 
==résumé==
 
==résumé==
  
à l'occasion de la fabacademy, je profite du TP "input devices" et "output devices" pour tenter d'implémenter des fins de courses pour le smoothieware : le programme qui pilote les machines du fablab
+
<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==
 
==découverte du code==
  
Le code source est partagé sur github : https://github.com/Smoothieware/Smoothieware
+
===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")
 
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:FabAcademy]]
 
[[Catégorie:Code]]
 
[[Catégorie:Code]]

Version actuelle en date du 19 juin 2014 à 11:17


fins de course pour smoothieware

JoliAfficheur.jpg

Contributeur·ice·s

Statut du projet

Concept

Statut de la publication

License

CC-by-sa-3.0

Fichiers source

Machines

Matériaux





résumé

à l'occasion de la fabacademy, je profite du TP "input devices" et "output devices" pour

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 :

git clone https://github.com/Cdriko/Smoothieware.git

pour être tenu au courant des changements sur le dépôt d'origine :

cd Smoothieware/ git remote add upstream https://github.com/Smoothieware/Smoothieware.git git fetch upstream


à 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 :

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"

this->kernel->slow_ticker->attach( 100, this, &PauseButton::button_tick );