scribing robot see https://hackaday.io/project/153194/

Dependencies:   mbed

See description of the project here: https://hackaday.io/project/153194/

Revision:
0:694620b4c620
Child:
1:163fa4a925d9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Apr 22 13:57:53 2018 +0000
@@ -0,0 +1,1334 @@
+#include "mbed.h"
+#include "time.h"
+
+#define servo_stylo_pos 1800//1800
+#define servo_stylo_lev 1680//1680
+#define servo_neutre 1400
+#define servo_gomme_lev 900//900
+#define servo_gomme_pos 755//730 780
+
+DigitalOut myled(LED1);
+DigitalOut led_err(LED3);
+DigitalOut stepper_clk_1(p21);//21
+DigitalOut stepper_dir_1(p22);//22
+DigitalOut stepper_clk_2(p23);//23
+DigitalOut stepper_dir_2(p24);//24
+DigitalOut servoout(p17);
+AnalogIn potard_1 (p20);
+DigitalIn switch_epaule(p18);
+DigitalIn switch_coude(p19);
+Serial pc(USBTX, USBRX);
+LocalFileSystem local("local");
+
+Timeout pulse_stepper1;
+Timeout pulse_stepper2;
+Timeout servo_timeout;
+Ticker appel_servo;
+
+int cons_servo_main=1400; //1800
+int a_coude, a_epaule, dir_1_real, dir_2_real, tick_attached_coude, tick_attached_epaule;
+int period_stepper1, period_stepper2, precis, outil, ligne;
+float X_pos, Y_pos;
+float X_print, Y_print, X_fictif;
+int remplissage[5]= {0,0,0,0,0};
+char texte_heure_bk[10];
+char texte_minute_bk[10];
+
+float taille_glob;
+
+char police_maj[256][30]= {
+    5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //32 espace
+    ,2,2,15,3,2,5,6,2,1,5,4,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //33 !
+    ,2,1,15,3,1,11,2,4,15,3,4,11,5,5,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //34 "
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //35
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //36
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //37 %
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //38 &
+    ,2,3,15,3,1,11,5,4,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //39 ' appostrophe
+    ,4,11,8,20,14,18,5,5,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //40 (
+    ,4,-6,8,20,10,6,5,5,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //41 )
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //42
+    ,2,1,5,3,9,5,2,5,9,3,5,1,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //43 +
+    ,2,3,1,3,1,-3,5,4,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //44 , virgule
+    ,2,2,5,3,8,5,5,10,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //45 -
+    ,6,2,1,5,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //46 . point
+    ,2,9,15,3,1,1,5,10,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //47 /
+    ,4,5,11,8,16,8,3,9,5,4,5,5,8,8,0,3,1,11,5,10 ,0,0,0,0,0,0,0,0,0,0 //48 0
+    ,2,1,12,3,4,15,3,4,1,2,2,1,3,6,1,5,7,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //49 1
+    ,4,5,11,8,16,6,3,1,1,3,9,1,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //50 2
+    ,4,5,12,6,15,4,4,5,5,8,12,1,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //51 3
+    ,2,9,7,3,1,7,3,7,15,3,7,1,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //52 4
+    ,2,8,15,3,2,15,3,1,9,3,4,9,4,4,5,8,12,2,5,9 ,0,0,0,0,0,0,0,0,0,0 //53 5
+    ,4,5,5,8,16,0,3,1,8,4,8,8,14,16,12,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //54 6
+    ,2,1,15,3,9,15,3,1,1,5,10,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //55 7
+    ,4,5,12,6,4,20,4,5,5,8,28,12,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //56 8
+    ,4,5,11,8,24,8,3,9,8,4,2,8,14,8,4,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //57 9
+    ,6,2,7,6,2,3,5,4,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //58 :
+    ,6,3,7,2,3,1,3,1,-3,5,4,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //59 ;
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //60 <
+    ,2,2,7,3,8,7,2,2,3,3,8,3,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //61 =
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //62 >
+    ,4,5,11,8,16,8,4,7,11,4,8,4,4,7,7,4,12,16,3,5 ,4,6,5,1,5,10,0,0,0,0 //63 ?
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //64
+
+    ,2,1,1,3,6,15,3,11,1,2,3,6,3,9,6,5,12,0,0,0,0,0,0,0,0,0,0,0,0,0 //A 65
+    ,2,1,1,3,1,15,3,3,15,4,3,12,6,12,4,3,1,9,4,3,5,8,12,4,3,1,1,5,8,0 //B 66
+    ,4,5,5,8,7,0,3,1,11,4,5,11,8,16,9,5,10,0,0,0,0,0,0,0,0,0,0,0,0,0 //C 67
+    ,2,1,1,3,1,15,3,4,15,4,4,11,8,12,8,3,8,5,4,4,5,8,8,4,3,1,1,5,9,0 //D 68
+    ,2,8,15,3,1,15,3,1,1,3,8,1,2,1,8,3,6,8,5,9 ,0,0,0,0,0,0,0,0,0,0 //E 69
+    ,2,8,15,3,1,15,3,1,1,2,1,8,3,6,8,5,9,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //F 70
+    ,4,5,11,8,9,16,3,1,5,4,5,5,8,0,8,3,9,8,3,5 ,8,5,10,0,0,0,0,0,0,0 //G 71
+    ,2,1,15,3,1,1,2,1,8,3,8,8,2,8,15,3,8,1,5,9 ,0,0,0,0,0,0,0,0,0,0 //H 72
+    ,2,1,15,3,5,15,2,3,15,3,3,1,2,1,1,3,5,1,5,6 ,0,0,0,0,0,0,0,0,0,0 //I 73
+    ,4,4,4,6,0,8,3,7,15,2,5,15,3,9,15,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //J 74
+    ,2,1,1,3,1,15,2,7,15,3,1,8,3,7,1,5,8,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //K 75
+    ,2,1,15,3,1,1,3,8,1,5,9,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //L 76
+    ,2,1,1,3,1,15,3,5,8,3,9,15,3,9,1,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //M 77
+    ,2,1,1,3,1,15,3,9,1,3,9,15,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //N 78
+    ,4,5,11,8,16,8,3,9,5,4,5,5,8,8,0,3,1,11,5,10 ,0,0,0,0,0,0,0,0,0,0 //O 79
+    ,2,1,1,3,1,15,3,3,15,4,3,12,6,12,4,3,1,9,5,7 ,0,0,0,0,0,0,0,0,0,0 //P 80
+    ,4,5,11,8,16,8,3,9,5,4,5,5,8,8,0,3,1,11,2,6,4,3,9,1,5,10,0,0,0,0 //Q 81
+    ,2,1,1,3,1,15,3,3,15,4,3,12,6,12,4,3,1,9,2,3,9,3,6,1,5,7,0,0,0,0 //R 82
+    ,4,5,11,8,8,16,3,9,5,4,5,5,8,8,0,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //S 83
+    ,2,5,1,3,5,15,2,1,15,3,9,15,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //T 84
+    ,2,1,15,3,1,5,4,5,5,8,0,8,3,9,15,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //U 85
+    ,2,1,15,3,5,1,3,9,15,5,10,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //V 86
+    ,2,1,15,3,5,1,3,7,8,3,9,1,3,13,15,5,14,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //W 87
+    ,2,9,15,3,1,1,2,1,15,3,9,1,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //X 88
+    ,2,9,15,3,1,1,2,1,15,3,5,8,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //Y 89
+    ,2,1,15,3,9,15,3,1,1,3,9,1,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //Z 90
+
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //91
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //92
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //93
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //94
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //95
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //96
+
+    ,4,4,4,6,8,24,3,7,7,4,4,7,6,8,15,5,8,0,0,0 ,0,0,0,0,0,0,0,0,0,0 // a 27
+    ,4,5,5,8,0,16,2,1,1,3,1,15,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //b 28
+    ,4,5,5,8,10,22,5,9,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //c 29
+    ,4,5,5,8,24,8,2,9,1,3,9,15,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //d 30
+    ,2,1,5,3,9,5,4,5,5,8,8,22,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //e 31
+    ,2,1,1,3,1,10,4,4,10,6,16,10,2,4,7,3,1,7,5,7,0,0,0,0,0,0,0,0,0,0 //f 32
+    ,4,5,5,8,24,8,3,9,0,4,5,0,8,8,1,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //g 33
+    ,2,1,15,3,1,1,4,5,5,8,16,8,3,9,1,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //h 34
+    ,2,2,1,3,2,9,6,2,12,5,4,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //i 35
+    ,6,6,12,2,6,9,3,6,-1,4,3,-1,6,8,0,5,7,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //j 36
+    ,2,1,15,3,1,1,2,6,9,3,1,5,3,6,1,5,7,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //k 37
+    ,2,2,15,3,2,1,5,4,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //l 38
+    ,2,1,9,3,1,1,4,4,6,6,16,8,3,7,1,4,10,6,6,16 ,8,3,13,1,5,14,0,0,0,0 //m 39
+    ,2,1,9,3,1,1,4,5,5,8,16,8,3,9,1,5,10,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //n 40
+    ,4,5,5,8,0,16,5,10,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //o 41
+    ,2,1,-3,3,1,9,4,5,5,8,0,16,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //p 42
+    ,4,5,5,8,0,16,2,9,9,3,9,-3,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //q 43
+    ,2,1,9,3,1,1,4,5,5,8,16,9,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //r 44
+    ,2,7,9,3,3,9,4,3,7,4,12,20,3,5,5,4,5,3,4,12 ,4,3,1,1,5,8,0,0,0,0 //s 45
+    ,2,1,15,3,1,4,4,4,4,6,0,8,2,1,11,3,6,11,5,8 ,0,0,0,0,0,0,0,0,0,0 //t 46
+    ,2,1,9,3,1,4,4,4,4,6,0,8,3,7,9,5,8,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //u 47
+    ,2,1,9,3,5,1,3,9,9,5,10,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //v 48
+    ,2,1,9,3,4,1,3,6,5,3,8,1,3,11,9,5,12,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //w 49
+    ,2,7,9,3,1,1,2,1,9,3,7,1,5,8,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //x 50
+    ,2,1,9,3,5,1,2,9,9,3,2,-5,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //y 121
+    ,2,1,9,3,9,9,3,1,1,3,9,1,5,10,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //z 122
+
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //123
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //124
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //125
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //126
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //127
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //128
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //129
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //130
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //131
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //132
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //133
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //134
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //135
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //136
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //137
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //138
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //139
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //140
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //141
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //142
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //143
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //144
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //145
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //146
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //147
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //148
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //149
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //150
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //151
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //152
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //153
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //154
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //155
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //156
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //157
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //158
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //159
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //160
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //161
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //162
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //163
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //164
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //165
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //166
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //167
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //168
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //169
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //170
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //171
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //172
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //173
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //174
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //175
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //176
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //177 +/-
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //178
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //179
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //180
+    ,2,1,-3,3,1,9,4,4,4,6,0,8,3,7,9,5,8,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //181 µ
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //182
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //183
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //184
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //185
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //186
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //187
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //188
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //189
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //190
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //191
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //192
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //193
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //194
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //195
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //196
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //197
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //198
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //199
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //200
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //201
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //202
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //203
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //204
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //205
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //206
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //207
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //208
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //209
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //210
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //211
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //212
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //213
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //214
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //215
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //216
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //217
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //218
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //219
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //220
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //221
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //222
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //223
+    ,4,4,4,6,8,24,3,7,7,4,4,7,6,8,15,2,2,14,3,6 ,12,5,8,0,0,0,0,0,0,0 //224 à
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //225
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //226
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //227
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //228
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //229
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //230
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //231
+    ,2,1,5,3,9,5,4,5,5,8,8,22,2,3,14,3,7,12,5,10 ,0,0,0,0,0,0,0,0,0,0 //232 è
+    ,2,1,5,3,9,5,4,5,5,8,8,22,2,7,14,3,3,12,5,10 ,0,0,0,0,0,0,0,0,0,0 //233 é
+    ,2,1,5,3,9,5,4,5,5,8,8,22,2,2,12,3,5,14,3,8 ,12,5,10,0,0,0,0,0,0,0//234 ê
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //235
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //236
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //237
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //238
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //239 ï
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //240
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //241
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //242
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //243
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //244 ô
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //245
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //246 ö
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //247
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //248
+    ,2,1,9,3,1,4,4,4,4,6,0,8,3,7,9,2,2,14,3,6,12,5,8,0,0,0,0,0,0,0 //249 ù
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //250
+    ,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0 //251
+};
+
+void stop_tick_servo(void)
+{
+    servoout=0;
+}
+
+void tick_servo (void)
+{
+    servoout=1;
+    servo_timeout.attach_us(&stop_tick_servo, cons_servo_main);
+}
+
+void clk_stepper1(void)
+{
+    stepper_clk_1=1;
+    pulse_stepper1.attach_us(&clk_stepper1, period_stepper1);
+    a_coude=a_coude + dir_1_real;
+    stepper_clk_1=0;
+}
+
+void clk_stepper2(void)
+{
+    stepper_clk_2=1;
+    pulse_stepper2.attach_us(&clk_stepper2, period_stepper2);
+    a_epaule=a_epaule + dir_2_real;
+    stepper_clk_2=0;
+}
+
+void tick_detach()
+{
+    tick_attached_coude=0;
+    tick_attached_epaule=0;
+    pulse_stepper1.detach();
+    pulse_stepper2.detach();
+}
+
+void set_poignet(int pospoignet)
+{
+    switch (pospoignet) {
+        case 1 : //stylo pose
+            if (cons_servo_main!=servo_stylo_pos) {
+                wait_ms(100);
+                cons_servo_main=servo_stylo_pos;
+                myled=1;
+                wait_ms(80);
+            }
+            precis=1;
+            break;
+        case 2 : //stylo leve
+            if (cons_servo_main!=servo_stylo_lev) {
+                //wait_ms(50);
+                cons_servo_main=servo_stylo_lev;
+                myled=0;
+                wait_ms(50);
+            }
+            precis=0;
+            break;
+        case 3 : //neutre
+            cons_servo_main=servo_neutre;
+            precis=0;
+            break;
+        case 4 : //gomme levee
+            cons_servo_main=servo_gomme_lev;
+            precis=0;
+            break;
+        case 5 : //gomme posee
+            cons_servo_main=servo_gomme_pos;
+            precis=2;
+    }
+}
+
+
+
+void init_stepper()
+{
+    //int arret=0;
+    int i;
+    while (switch_epaule==1) {
+        stepper_clk_2=1;
+        wait_us(10);
+        stepper_clk_2=0;
+        wait_ms(3);
+    }
+    stepper_dir_2=1;
+    for (i=1; i<2620; i++) { //2640
+        stepper_clk_2=1;
+        wait_us(10);
+        stepper_clk_2=0;
+        wait_ms(1);
+    }
+    while (switch_coude==1) {
+        stepper_clk_1=1;
+        wait_us(10);
+        stepper_clk_1=0;
+        wait_ms(3);
+    }
+    a_coude=-2940;//2900
+    a_epaule=0;
+    //stepper_dir_1=1;
+    //    for (i=1;i<2900;i++) {
+    //    stepper_clk_1=1;
+    //    wait_us(10);
+    //    stepper_clk_1=0;
+    //    wait_ms(1);
+    //}
+    //cons_servo_main=1800;
+}
+
+void setpos_ang (int a_coude_cible, int a_epaule_cible, int delay_ms)
+{
+    int err_a_coude, err_a_epaule;
+    float delay_1, delay_2;
+    //pulse_stepper1.detach();
+    //pulse_stepper2.detach();
+    err_a_coude=a_coude_cible - a_coude;
+    err_a_epaule=a_epaule_cible - a_epaule;
+    if (err_a_coude>0) {
+        stepper_dir_1=1;
+        dir_1_real=1;
+    } else {
+        stepper_dir_1=0;
+        dir_1_real=-1;
+    };
+    if (err_a_epaule>0) {
+        stepper_dir_2=1;
+        dir_2_real=1;
+    } else {
+        stepper_dir_2=0;
+        dir_2_real=-1;
+    };
+    err_a_coude=abs(err_a_coude);
+    err_a_epaule=abs(err_a_epaule);
+    //pc.printf("err
+    if (err_a_coude !=0) { //laisser imperativement !=0
+        delay_1=delay_ms*1000/err_a_coude;
+        //printf("delay1 : %f\r\n",delay_1);
+        if (delay_1<250) {
+            pc.printf("X:%f Y:%f\r\n",X_pos, Y_pos);
+            printf("delay1 : %f\r\n",delay_1);
+            printf("a_coude:%d a_coude_cible: %d err_coude : %d\r\n\r\n",a_coude, a_coude_cible, err_a_coude);
+
+            delay_1=250;
+            led_err=1;
+            //wait(1);
+            led_err=0;
+        }
+        period_stepper1=delay_1-3;
+        if (tick_attached_coude==0) {
+            pulse_stepper1.attach_us(&clk_stepper1, period_stepper1);
+            tick_attached_coude=1;
+        }
+    } else {
+        tick_attached_coude=0;
+        pulse_stepper1.detach();
+    }
+
+    if (err_a_epaule!=0) { //laisser imperativement !=0
+        delay_2=delay_ms*1000/err_a_epaule;
+        //printf("delay2 : %f\r\n",delay_2);
+        if (delay_2<250) {
+            pc.printf("X:%f Y:%f\r\n",X_pos, Y_pos);
+            printf("delay2 : %f\r\n",delay_2);
+            printf("a_epaule:%d a_epaule_cible:%d err_epaul : %d\r\n\r\n",a_epaule, a_epaule_cible, err_a_epaule);
+            delay_2=250;
+            led_err=1;
+            //wait(1);
+            led_err=0;
+        }
+        period_stepper2=delay_2-3;
+        if (tick_attached_epaule==0) {
+            pulse_stepper2.attach_us(&clk_stepper2, period_stepper2);
+            tick_attached_epaule=1;
+        }
+    } else {
+        tick_attached_epaule=0;
+        pulse_stepper2.detach();
+    }
+    //tick_attached=1;
+    wait_ms(delay_ms);
+    //pulse_stepper1.detach();
+    //pulse_stepper2.detach();
+    //pc.printf("Reelles coude: %d ; epaule: %d\r\n\r\n", a_coude, a_epaule);
+}
+
+void goto_2D_short (float X_cible, float Y_cible, int delay_ms)
+{
+    float allonge, deltax, deltay, alpha_D, arad_coude_cible, arad_epaule_cible, consigne_coude, consigne_epaule, erreur_coude, erreur_epaule;
+    int delay_loc;
+    // inversion matrice simplifiee
+    if (X_cible > 360) {
+        X_cible=360;
+    }
+    if (X_cible < 0) {
+        X_cible=0;
+    }
+    if (Y_cible > 145) {
+        Y_cible=145;   //110
+    }
+    if (Y_cible < 0) {
+        Y_cible=0;
+    }
+    deltax=X_cible-180;
+    deltay=235-Y_cible;//220
+    allonge=sqrt((deltax*deltax)+(deltay*deltay));
+    arad_coude_cible=2*acos(allonge/320);// inverser le signe quand passage a consigne
+    alpha_D=atan(deltax/deltay);
+
+    //conversion en consigne brutes (pas)
+    if (outil==0) { //stylo
+        arad_epaule_cible=alpha_D+(arad_coude_cible/2);
+        consigne_epaule = arad_epaule_cible*1120.5;
+        consigne_coude = consigne_epaule/4.4 -arad_coude_cible*1120.5;
+    } else {
+        arad_epaule_cible=alpha_D-(arad_coude_cible/2); //gomme
+        consigne_epaule = arad_epaule_cible*1120.5;
+        consigne_coude = consigne_epaule/4.4 +arad_coude_cible*1120.5-850;
+    }
+
+    //pc.printf("consigne_coude:%d ; epaule:%d\r\n", (int)consigne_coude, (int)consigne_epaule);
+    //pc.printf("X:%f Y:%f\r\n", X_cible, Y_cible);
+
+    if (delay_ms==0) {
+        erreur_coude=abs(consigne_coude-a_coude);
+        erreur_epaule=abs(consigne_epaule-a_epaule);
+        //delay_loc=0.5*max(erreur_coude, erreur_epaule);
+        if (erreur_coude>erreur_epaule) {
+            delay_loc=0.75*erreur_coude;
+        } else {
+            delay_loc=0.75*erreur_epaule;
+        }
+        setpos_ang (consigne_coude, consigne_epaule, delay_loc);
+        X_pos=X_cible;
+        Y_pos=Y_cible;
+    } else  {
+        setpos_ang (consigne_coude, consigne_epaule, delay_ms);
+        X_pos=X_cible;
+        Y_pos=Y_cible;
+        //cinematique directe:
+    }
+}
+
+void goto_2D_line (float X_cible, float Y_cible)
+{
+    float delta_x, delta_y, distance, x_decomp, y_decomp;
+    int nb_pas, i;
+    delta_x=X_cible-X_pos;
+    delta_y=Y_cible-Y_pos;
+    distance=sqrt((delta_x*delta_x)+(delta_y*delta_y));
+    nb_pas = ceil (distance*1);// 1 pas = 1mm donc pas de facteur
+    //pc.printf ("nb pas: %i\r\n", nb_pas);
+    delta_x=delta_x/nb_pas;
+    delta_y=delta_y/nb_pas;
+    x_decomp=X_pos;
+    y_decomp=Y_pos;
+    //tick_detach();
+    for (i=1; i<=nb_pas; i++) {
+        x_decomp=x_decomp+delta_x;
+        y_decomp=y_decomp+delta_y;
+        //pc.printf ("decomp: X: %f Y: %f\r\n", x_decomp, y_decomp);
+        if(precis==1) {
+            goto_2D_short (x_decomp, y_decomp, 10+70*potard_1.read());   //12
+        } else if (precis==2) {
+            goto_2D_short (x_decomp, y_decomp,13);
+        } else {
+            goto_2D_short (x_decomp, y_decomp, 9);
+        }
+    }
+    tick_detach();
+}
+
+void circle_2D(float X_centre, float Y_centre, float rayon, float angle_deb, float angle_fin)
+{
+    float pas_angle, angle_actuel, x_decomp, y_decomp, delta_x, delta_y, distance;
+    int nb_pas, i;
+    nb_pas=1*ceil (rayon * abs (angle_fin-angle_deb));
+    pas_angle=(angle_fin-angle_deb)/nb_pas;
+    angle_actuel=angle_deb;
+    x_decomp=X_centre + rayon*cos (angle_actuel);
+    y_decomp=Y_centre + rayon*sin (angle_actuel);
+    delta_x=x_decomp-X_pos;
+    delta_y=y_decomp-Y_pos;
+    distance=sqrt((delta_x*delta_x)+(delta_y*delta_y));
+    //pc.printf("decomp circle : X:%f Y:%f\r\n", x_decomp, y_decomp);
+    //tick_detach();
+    if (distance>2) {
+        //cons_servo_main=servo_stylo_lev;
+        set_poignet(2);
+        //wait_ms(100);
+        goto_2D_line (x_decomp, y_decomp);
+    }
+    set_poignet(1);
+    //if (cons_servo_main!=servo_stylo_pos) {
+    //    //cons_servo_main=servo_stylo_pos;
+    //    set_poignet(1);
+    //    //wait_ms(100);
+    //    }
+    //tick_detach();
+    for (i=1; i<=nb_pas; i++) {
+        angle_actuel=angle_actuel+pas_angle;
+        x_decomp=X_centre + rayon*cos (angle_actuel);
+        y_decomp=Y_centre + rayon*sin (angle_actuel);
+        //pc.printf("decomp circle : X:%f Y:%f\r\n", x_decomp, y_decomp);
+        goto_2D_short (x_decomp, y_decomp, 10+70*potard_1.read());
+    }
+    tick_detach();
+}
+
+void set_outil(int outil_loc, float X_loc, float Y_loc)
+{
+    if ((outil_loc==1)&&(outil==0)) {//gomme
+        set_poignet(3);
+        outil=1;
+        goto_2D_short (X_loc, Y_loc,0);//2000
+        tick_detach();
+        set_poignet(4);
+        wait_ms(200);
+    } else if ((outil_loc==0)&&(outil==1)) {
+        set_poignet(3);
+        outil=0;
+        goto_2D_short (X_loc, Y_loc,0);//2000
+        tick_detach();
+        set_poignet(2);
+        wait_ms(200);
+    } else if ((outil_loc==1)&&(outil==1)) {
+        set_poignet(4);
+    }
+}
+
+void print_lettre(char lettre, float taille)
+{
+    int fin_lettre=0;
+    int i_instr=0;
+    int x_temp, y_temp, lettre_loc;
+    float X_local, Y_local;
+    float rayon_loc, angle_deb_loc, angle_fin_loc;
+    lettre_loc=lettre;
+    //printf ("char: %d", lettre+32);
+    if (lettre_loc<0) {
+        lettre_loc=lettre+256;
+    }
+    //printf ("char: %d\r\n", lettre_loc+32);
+    set_outil(0,X_print,Y_print);
+    while (fin_lettre==0) {
+        switch (police_maj[lettre_loc][i_instr]) {
+            case 2 : // aller stylo leve
+                //cons_servo_main=servo_stylo_lev;
+                set_poignet(2);
+                //wait_ms(100);
+                X_local=X_print+taille*(police_maj[lettre_loc][i_instr+1]);
+                y_temp=police_maj[lettre_loc][i_instr+2];
+                if (y_temp>127) {
+                    y_temp=y_temp-256;
+                }
+                Y_local=Y_print+taille*y_temp;
+                goto_2D_line(X_local, Y_local);
+                i_instr=i_instr+3;
+                break;
+            case 3 : // ligne stylo pose
+                set_poignet(1);
+                //if (cons_servo_main!=servo_stylo_pos) {
+                //    cons_servo_main=servo_stylo_pos;
+                //    wait_ms(100);
+                //}
+                X_local=X_print+taille*(police_maj[lettre_loc][i_instr+1]);
+                y_temp=police_maj[lettre_loc][i_instr+2];
+                if (y_temp>127) {
+                    y_temp=y_temp-256;
+                }
+                Y_local=Y_print+taille*y_temp;
+                goto_2D_line(X_local, Y_local);
+                i_instr=i_instr+3;
+                break;
+            case 4 : // cercle
+                //X_local=X_print+taille*(police_maj[lettre_loc][i_instr+1]);
+                x_temp=police_maj[lettre_loc][i_instr+1];
+                if (x_temp>127) {
+                    x_temp=x_temp-256;
+                }
+                X_local=X_print+taille*x_temp;
+                y_temp=police_maj[lettre_loc][i_instr+2];
+                if (y_temp>127) {
+                    y_temp=y_temp-256;
+                }
+                Y_local=Y_print+taille*y_temp;
+                rayon_loc=taille*(police_maj[lettre_loc][i_instr+3])/2;
+                angle_deb_loc=(0.3927*police_maj[lettre_loc][i_instr+4])-3.1416;
+                angle_fin_loc=(0.3927*police_maj[lettre_loc][i_instr+5])-3.1416;
+                //pc.printf("angles: %f %f \r\n", angle_deb_loc, angle_fin_loc);
+                circle_2D(X_local, Y_local, rayon_loc, angle_deb_loc, angle_fin_loc);
+                i_instr=i_instr+6;
+                break;
+            case 5 : // fin
+                fin_lettre=1;
+                X_print=X_print+taille*(police_maj[lettre_loc][i_instr+1]);
+                //cons_servo_main=servo_stylo_lev;
+                set_poignet(2);
+                //wait_ms(50);
+                break;
+            case 6 : // point
+                X_local=X_print+taille*(police_maj[lettre_loc][i_instr+1]);
+                Y_local=Y_print+taille*(police_maj[lettre_loc][i_instr+2]);
+                set_poignet(2);
+                goto_2D_line(X_local, Y_local);
+                set_poignet(1);
+                goto_2D_line(X_local, Y_local);
+                set_poignet(2);
+                i_instr=i_instr+3;
+                break;
+        }
+    }
+}
+
+void print_lettre_fictif(char lettre, float taille)
+{
+    int fin_lettre=0;
+    int i_instr=0;
+    int x_temp, y_temp, lettre_loc;
+    float X_local, Y_local;
+    float rayon_loc, angle_deb_loc, angle_fin_loc;
+    lettre_loc=lettre;
+    //printf ("char: %d", lettre+32);
+    if (lettre_loc<0) {
+        lettre_loc=lettre+256;
+    }
+    //printf ("char fictif: %d\r\n", lettre_loc+32);
+    while (fin_lettre==0) {
+        switch (police_maj[lettre_loc][i_instr]) {
+            case 2 : // aller stylo leve
+                i_instr=i_instr+3;
+                break;
+            case 3 : // ligne stylo pose
+                i_instr=i_instr+3;
+                break;
+            case 4 : // cercle
+                i_instr=i_instr+6;
+                break;
+            case 5 : // fin
+                fin_lettre=1;
+                X_fictif=X_fictif+taille*(police_maj[lettre_loc][i_instr+1]);
+                break;
+            case 6 : // point
+                i_instr=i_instr+3;
+                break;
+        }
+    }
+}
+
+void efface(float Xl1, float Yl1, float Xl2, float Yl2)
+{
+    float distance_Y,pas, Y_loc;
+    int i, nb_pas, outil_old_loc;
+    outil_old_loc=outil;
+    set_outil(1, Xl1, Yl1);
+    goto_2D_line(Xl1,Yl1);
+    set_poignet(5);
+    distance_Y=Yl2-Yl1;
+    //nb_pas=ceil(distance_Y/5);
+    //pas=distance_Y/nb_pas;
+    Y_loc=Yl1;
+    //for (i=0;i<=nb_pas;i++)
+    while (Y_loc<Yl2) {
+        goto_2D_line(Xl1, Y_loc);
+        goto_2D_line(Xl2, Y_loc);
+        Y_loc=Y_loc+5;
+        goto_2D_line(Xl2, Y_loc);
+        goto_2D_line(Xl1, Y_loc);
+        Y_loc=Y_loc+5;
+    }
+    set_poignet(4);
+    //set_outil(outil_old_loc);
+}
+
+
+void print_heure(void)
+{
+    char texte_heure[10];
+    char texte_minute[10];
+    int outil_bk,precis_bk, difference;
+    int cons_servo_main_bk;
+    float X_backup, Y_backup,X_pos_bk, Y_pos_bk;
+    struct tm * timeinfo;
+    time_t seconds = time(NULL);
+    timeinfo = localtime (&seconds);
+    strftime(texte_heure,10,"%H",timeinfo);
+    strftime(texte_minute,10,"%M",timeinfo);
+    X_backup=X_print;
+    Y_backup=Y_print;
+    X_pos_bk=X_pos;
+    Y_pos_bk=Y_pos;
+    outil_bk=outil;
+    precis_bk=precis;
+    difference=0;
+    cons_servo_main_bk=cons_servo_main;
+    if (strcmp(texte_minute, texte_minute_bk)!=0) {
+        efface(325,107,359,138);
+        X_print=330;
+        Y_print=110;
+        print_lettre(texte_minute[0]-32,taille_glob);
+        X_print=345;
+        print_lettre(texte_minute[1]-32,taille_glob);
+        strcpy(texte_minute_bk,texte_minute);
+        difference=1;
+    }
+    if (strcmp(texte_heure, texte_heure_bk)!=0) {
+        efface(267,107,304,135);
+        X_print=275;
+        Y_print=110;
+        print_lettre(texte_heure[0]-32,taille_glob);
+        X_print=290;
+        print_lettre(texte_heure[1]-32,taille_glob);
+        strcpy(texte_heure_bk,texte_heure);
+        difference=1;
+    }
+    if ((outil_bk==1)&&(difference==1)) {
+        set_outil(1,X_pos_bk,Y_pos_bk);
+        //goto_2D_short(X_pos_bk,Y_pos_bk,2000);
+    }
+
+    X_print=X_backup;
+    Y_print=Y_backup;
+    //X_pos=X_pos_bk;
+    //Y_pos=Y_pos_bk;
+    cons_servo_main=cons_servo_main_bk;
+    precis=precis_bk;
+}
+
+void efface_ligne (int line_nb)
+{
+    float i;
+    //set_outil(1);
+    switch (line_nb) {
+        case 1 :
+            set_outil(1,0,112);
+            //goto_2D_line(0,104);
+            //wait(2);
+            set_poignet(5);
+            for (i=0; i<31; i=i+10.6) {
+                goto_2D_line(0,112+i);//104
+                //print_heure();
+                goto_2D_line(120,116+i);//113
+                print_heure();
+                goto_2D_line(240,109+i);//104
+                print_heure();
+                //goto_2D_line(360,107+i);
+                //goto_2D_line(360,107+i+5);
+                goto_2D_line(265,108+i);
+                print_heure();
+                goto_2D_line(265,108+i+5.3);
+                print_heure();
+                goto_2D_line(240,109+i+5.3);
+                print_heure();
+                goto_2D_line(120,116+i+5.3);
+                print_heure();
+                goto_2D_line(0,112+i+5.3);
+                //print_heure();
+            }
+            break;
+        case 2 :
+            set_outil(1,0,70);
+            //goto_2D_line(0,70);
+            //wait(2);
+            set_poignet(5);
+            for (i=0; i<31; i=i+10.6) { //8
+                goto_2D_line(0,76+i);//104
+                //print_heure();
+                goto_2D_line(120,81+i);//113
+                print_heure();
+                goto_2D_line(240,78+i);//104
+                print_heure();
+                goto_2D_line(360,72+i);
+                print_heure();
+                goto_2D_line(360,72+i+5.3);
+                print_heure();
+                goto_2D_line(240,78+i+5.3);
+                print_heure();
+                goto_2D_line(120,81+i+5.3);
+                print_heure();
+                goto_2D_line(0,76+i+5.3);//4
+                //print_heure();
+            }
+            break;
+        case 3 :
+            //goto_2D_line(0,37);
+            set_outil(1,0,37);
+            //wait(2);
+            set_poignet(5);
+            cons_servo_main=745;
+            for (i=0; i<31; i=i+10.6) {
+                goto_2D_line(0,39+i);//104
+                //print_heure();
+                goto_2D_line(120,46+i);//113
+                print_heure();
+                goto_2D_line(240,47+i);//104
+                print_heure();
+                goto_2D_line(360,44+i);
+                print_heure();
+                goto_2D_line(360,44+i+5.3);
+                print_heure();
+                goto_2D_line(240,47+i+5.3);
+                print_heure();
+                goto_2D_line(120,46+i+5.3);
+                print_heure();
+                goto_2D_line(0,39+i+5.3);
+            }
+            break;
+
+        case 4 :
+            //goto_2D_line(0,5);
+            set_outil(1,0,5);
+            //wait(2);
+            set_poignet(5);
+            cons_servo_main=740;
+            for (i=0; i<31; i=i+10.6) {
+                goto_2D_line(0,5+i);//104
+                //print_heure();
+                goto_2D_line(120,12+i);//113
+                print_heure();
+                goto_2D_line(240,12+i);//104
+                print_heure();
+                goto_2D_line(360,8+i);
+                print_heure();
+                goto_2D_line(360,8+i+5.3);
+                print_heure();
+                goto_2D_line(240,12+i+5.3);
+                print_heure();
+                goto_2D_line(120,12+i+5.3);
+                print_heure();
+                goto_2D_line(0,5+i+5.3);
+            }
+            break;
+    }
+    set_poignet(4);
+
+    //set_outil(0);
+}
+
+void retour_ligne(void)
+{
+    switch (ligne) {
+        case 1:
+            remplissage[1]=1;
+            if (remplissage[2]==1) {
+                efface_ligne(2);
+            }
+            X_print=1;
+            Y_print=77;
+            ligne=2;
+            break;
+        case 2:
+            remplissage[2]=1;
+            if (remplissage[3]==1) {
+                efface_ligne(3);
+            }
+            X_print=1;
+            Y_print=44;
+            ligne=3;
+            break;
+        case 3:
+            remplissage[3]=1;
+            if (remplissage[4]==1) {
+                efface_ligne(4);
+            }
+            X_print=1;
+            Y_print=11;
+            ligne=4;
+            break;
+        case 4:
+            remplissage[4]=1;
+            if (remplissage[1]==1) {
+                efface_ligne(1);
+            }
+            X_print=1;
+            Y_print=110;
+            ligne=1;
+            break;
+    }
+}
+
+void print_heure_initial(void)
+{
+    char texte_heure[10];
+    //float X_backup, Y_backup;
+
+    struct tm * timeinfo;
+    time_t seconds = time(NULL);
+    timeinfo = localtime (&seconds);
+    strftime(texte_heure_bk,10,"%H",timeinfo);
+    strftime(texte_minute_bk,10,"%M",timeinfo);
+    X_print=275;
+    Y_print=110;
+    print_lettre(texte_heure_bk[0]-32,taille_glob);
+    X_print=290;
+    print_lettre(texte_heure_bk[1]-32,taille_glob);
+    X_print=310;
+    print_lettre(104-32,taille_glob);
+    X_print=330;
+    print_lettre(texte_minute_bk[0]-32,taille_glob);
+    X_print=345;
+    print_lettre(texte_minute_bk[1]-32,taille_glob);
+}
+
+
+void print_chaine(char* chaine)
+{
+    int i=0;
+    int i_fictif=0;
+    int retour_ligne_loc=0;
+    int rupt=0;
+    while (chaine[i]!=0) {
+        print_heure();
+        retour_ligne_loc=0;
+        //printf("interp: %d\r\n",chaine[i]);
+        if (chaine[i]>31) {
+            print_lettre(chaine[i]-32,taille_glob);
+        } else if (chaine[i]==10) {
+            retour_ligne();
+            //X_print=1;
+            //Y_print=Y_print-22*taille_glob;
+        }
+        if ((X_print>345)||((ligne==1)&&(X_print>270))) {
+            retour_ligne();
+            //X_print=1;
+            //Y_print=Y_print-22*taille_glob;
+            retour_ligne_loc=1;
+        }
+        //i++;
+        if ((chaine[i]==32)&&(retour_ligne_loc==0)) { //determine si retour a la ligne suite a espace
+            X_fictif=X_print;
+            i_fictif=i+1;
+            rupt=0;
+            while (rupt==0) { //on fait avancer X_fictif jusqu'au prochain caractère espace ou retour ou fin
+                if (chaine[i_fictif]>31) {
+                    print_lettre_fictif(chaine[i_fictif]-32,taille_glob);
+                }
+                //pc.printf("Xfictif %f\r\n",X_fictif);
+                if ((X_fictif>345)||((ligne==1)&&(X_fictif>270))) {
+                    rupt=2;
+                }
+                if ((chaine[i_fictif]==32)||(chaine[i_fictif]==10)||(chaine[i_fictif]==0)) {
+                    rupt=1;
+                    //pc.printf("rupt 1 %d\r\n",chaine[i_fictif]);
+                }
+                i_fictif++;
+            }
+            if (rupt==2) {
+                retour_ligne();
+                //X_print=1;
+                //Y_print=Y_print-22*taille_glob;
+                //pc.printf("rupt 2\r\n");
+            }
+        }
+        i++;
+    }
+}
+
+
+
+
+
+int main()
+{
+    FILE* fileid;
+    int i,j,k;
+    char montexte[600];
+    float aaa, bbb, ccc, ddd, eee;
+
+    struct tm * timeinfo;
+
+    time_t seconds = time(NULL);
+    // ********* initialisations *******
+    //while(1){}
+    pc.baud(115200);
+    pc.printf("bijour\r\n");
+    tick_attached_coude=0;
+    tick_attached_epaule=0;
+    X_print=1;
+    Y_print=110; //110
+    ligne=1;
+    precis=0;
+    outil=0;
+    taille_glob=1.5;
+    appel_servo.attach_us(&tick_servo, 20000);
+    //myled=1;
+    //wait(1);
+    //myled=0;
+    //while(1) {
+    //    aaa=potard_1.read();
+    //    i=switch_epaule.read();
+    //    j=switch_coude.read();
+    //    pc.printf("S1:%i S2:%i potard:%f\r\n", i,j,aaa);
+    //    wait(1);
+    //}
+
+    //for (i=1;i<150;i++) {
+    //    pc.printf("i= %d",i);
+    //    stepper_clk_1=1;
+    //    stepper_clk_2=1;
+    //    wait_us(10);
+    //    stepper_clk_1=0;
+    //    stepper_clk_2=0;
+    //    wait_ms(1000);
+    //}
+    cons_servo_main=servo_neutre;
+    wait(1);
+    
+    //while(1) {
+    //    cons_servo_main=1800;
+    //    wait(3);
+    //    cons_servo_main=1200;
+    //    wait(3);
+    //    }
+
+    fileid=fopen("/local/input.txt", "r");
+    fread(montexte,1,500,fileid);
+
+    montexte[500]=0;
+    fclose(fileid);
+    for (i=0; i<38; i++) {
+        printf(":%d\r\n",montexte[i]);
+    }
+    pc.printf("Time brut = %d\r\n", seconds);
+    pc.printf("Time = %s", ctime(&seconds));
+    //set_time(1503151338);//set_time(1336478783);
+    timeinfo = localtime (&seconds);
+
+    //strftime(montexte,10,"%Hh%M",timeinfo);
+    //pc.printf(montexte);
+
+    init_stepper();
+    //setpos_ang (0, 0, 3000);
+    //tick_detach();
+    //set_poignet(1);
+    //wait(5);
+    //set_poignet(3);
+    //setpos_ang (-850, 0, 3000);
+    //tick_detach();
+    //set_poignet(5);
+    //wait(5);
+    //set_poignet(3);
+    //goto_2D_short(0,0,3000);
+    //set_poignet(1);
+    //goto_2D_line(360,0);
+    //goto_2D_line(360,140);
+    //goto_2D_line(0,140);
+    //goto_2D_line(0,0);
+    //wait(2);
+    //set_outil(1);
+    //goto_2D_line(0,0);
+    //set_poignet(5);
+    //goto_2D_line(360,0);
+    //goto_2D_line(360,140);
+    //goto_2D_line(0,140);
+    //goto_2D_line(0,0);
+    //set_outil(0);
+    //printf(montexte);
+
+    //wait (4);
+    myled=!myled;
+    //setpos_ang (0, 0, 3000);
+    //tick_detach();
+    //set_poignet(1);
+    //wait(20);
+    goto_2D_short (0,110, 1000);
+    tick_detach();
+    //goto_2D_line(0,134);
+    //set_poignet(1);
+    //goto_2D_line(360,134);
+    //set_poignet(2);
+    //goto_2D_line(360,104);
+    //set_poignet(1);
+    //goto_2D_line(0,104);
+    //set_poignet(2);
+    //goto_2D_line(0,101);
+    //set_poignet(1);
+    //goto_2D_line(360,101);
+    //set_poignet(2);
+    //goto_2D_line(360,71);
+    //set_poignet(1);
+    //goto_2D_line(0,71);
+    //set_poignet(2);
+    //goto_2D_line(0,68);
+    //set_poignet(1);
+    //goto_2D_line(360,68);
+    //set_poignet(2);
+    //goto_2D_line(360,38);
+    //set_poignet(1);
+    //goto_2D_line(0,38);
+    //set_poignet(2);
+    //goto_2D_line(0,35);
+    //set_poignet(1);
+    //goto_2D_line(360,35);
+    //set_poignet(2);
+    //goto_2D_line(360,5);
+    //set_poignet(1);
+    //goto_2D_line(0,5);
+    //set_poignet(2);
+    //wait(1);
+    //efface_ligne(4);
+    //setpos_ang (-850, 0, 1000);
+    //setpos_ang (0, 0, 3000);
+    //tick_detach();
+    //wait(10);
+    //cons_servo_main=servo_gomme_pos;
+    //print_chaine(ctime(&seconds));
+
+    print_heure_initial();
+    X_print=1;
+    Y_print=110;//110
+    //taille_glob=3;
+    //print_chaine("ROB");
+
+    //circle_2D(108,68,8,-1.57,-3.14);//98
+    //goto_2D_line(100,100);//90
+    //circle_2D(108,100,8,3.14,1.57);//98
+    //goto_2D_line(140,108);//130
+    //circle_2D(140,100,8,1.57,0);//130
+    //goto_2D_line(148,68);//138
+    //circle_2D(140,68,8,0,-1.57);//130
+    //goto_2D_line(108,60);//98
+    //set_poignet(2);
+
+    //circle_2D (114,88,6,-3.14,3.14);//104
+    //circle_2D (134,88,6,-3.14,3.14);//124
+    //circle_2D(96,84,15,1.57,4.71);//86
+    //goto_2D_line(96,99);//86
+    //set_poignet(2);
+
+    //circle_2D(152,84,15,1.57,-1.57);//142
+    //goto_2D_line(152,99);//142
+    //set_poignet(2);
+    //circle_2D(124,108,15,3.14,0);//114
+    //set_poignet(2);
+    //goto_2D_line(124,123);//114
+    //set_poignet(1);
+    //goto_2D_line(124,135);//114
+    //set_poignet(2);
+    //circle_2D(124,140,5,-3.14,3.14);//114
+
+    //X_print=165;
+    //print_chaine("T");
+    //taille_glob=1.5;
+    //X_print=20;
+    //Y_print=30;
+    //print_chaine("- MAKER.COM");
+    //set_poignet(2);
+    //goto_2D_line(350,130);
+    //set_poignet(3);
+    //while(1) {}
+
+    while(1) {
+        //print_chaine("Bonjour a tous!");
+        print_chaine(montexte);
+        //set_outil(1);
+        //wait(2);
+        //set_outil(0);
+        //efface(1,20,300,44);//110 134
+    }
+    while(1) {}
+    while(1) {
+        for (i=26; i<40; i++) {
+            print_lettre (i,2);
+        }
+        X_print=20;
+        Y_print=30;
+        goto_2D_line(20,40);
+        for (i=40; i<53; i++) {
+            print_lettre (i,2);
+        }
+        goto_2D_line(350,100);
+        //print_lettre(1, 2);
+        //print_lettre(2, 2);
+        //print_lettre(3, 2);
+        //print_lettre(4, 2);
+        //print_lettre(5, 2);
+        //print_lettre(6, 2);
+        //X_print=10;
+        //Y_print=10;
+        //print_lettre(1, 2);
+        //print_lettre(2, 2);
+        //print_lettre(3, 2);
+        //print_lettre(4, 2);
+        //print_lettre(5, 2);
+        //print_lettre(6, 2);
+        wait(15);
+        X_print=1;
+        Y_print=60;
+    }
+    //cons_servo_main=1800;//1800
+    set_poignet(3);
+
+    while (1) {
+
+        wait(1);
+
+        goto_2D_line(50,10);
+        goto_2D_line(50,70);
+        circle_2D(50, 55, 15, 1.57, -1.57);
+        circle_2D(50, 25, 15, 1.57, -1.57);
+        wait(2);
+        goto_2D_line(360,0);
+        myled=!myled;
+        goto_2D_line(360,110);
+        myled=!myled;
+        goto_2D_line(0,110);
+        myled=!myled;
+        goto_2D_line(0,0);//
+        myled=!myled;
+        //goto_2D_line(180,0);
+        //myled=!myled;
+        //goto_2D_line(180,110);
+        //myled=!myled;
+        //goto_2D_line(360,110);
+        //myled=!myled;
+        //goto_2D_line(360,0);
+        //myled=!myled;
+        //goto_2D_line(180,0);
+        //myled=!myled;
+        //goto_2D_line(180,110);
+        //myled=!myled;
+        //goto_2D_line(0,110);
+        //myled=!myled;
+        //goto_2D_line(0,0);
+        circle_2D(180, 55, 55, 0, 4.7);
+        circle_2D(180, 55, 20, -1.57, 1.57);
+        circle_2D(210, 55, 20, -1.57, 1.57);
+        circle_2D(250, 55, 20, -1.57, 1.57);
+        circle_2D(290, 55, 20, -1.57, 1.57);
+
+        //myled=!myled;
+        //goto_2D_short (180,0, 1000);
+        //wait(2);
+        //myled=!myled;
+        //goto_2D_short (360,0, 1000);
+        //wait(2);
+        //myled=!myled;
+        //goto_2D_short (360,110, 1000);
+        //wait(2);
+        //myled=!myled;
+        //goto_2D_short (180,110, 1000);
+        //wait(2);
+        //myled=!myled;
+        //goto_2D_short (0,110, 1000);
+        //wait(2)
+        //goto_2D_short (360,110);
+    }
+    while(1) {}
+
+    a_coude=0;
+    a_epaule=0;
+    aaa=1000;
+    bbb=0;
+    while (1) {
+        myled=!myled;
+        setpos_ang (aaa,bbb, 2000);
+        myled=!myled;
+        setpos_ang (aaa,aaa, 2000);
+        myled=!myled;
+        setpos_ang (bbb,aaa, 500);
+        myled=!myled;
+        setpos_ang (bbb,bbb, 500);
+    }
+
+
+    while(1) {
+        myled = 1;
+        wait(0.2);
+        myled = 0;
+        wait(0.2);
+    }
+}