From 66cca07ea613a39ec53f818a0ebdaf085195ba0d Mon Sep 17 00:00:00 2001 From: Forest Date: Tue, 9 May 2017 16:29:35 +0200 Subject: [PATCH] suivi moteurs --- .../mbed-os-motor-control-serial_ARCH_PRO.bin | Bin 0 -> 33748 bytes Code/KirbyTrack | Bin 0 -> 18920 bytes Code/KirbyTrack.c | 254 ++++++++++-------- Code/KirbyTrack.o | Bin 0 -> 11056 bytes Test moteurs/moteur | Bin 8973 -> 8981 bytes Test moteurs/moteur.c | 2 + 6 files changed, 138 insertions(+), 118 deletions(-) create mode 100644 Arch Pro bin/mbed-os-motor-control-serial_ARCH_PRO.bin create mode 100755 Code/KirbyTrack create mode 100644 Code/KirbyTrack.o diff --git a/Arch Pro bin/mbed-os-motor-control-serial_ARCH_PRO.bin b/Arch Pro bin/mbed-os-motor-control-serial_ARCH_PRO.bin new file mode 100644 index 0000000000000000000000000000000000000000..910443a366a8b2954fb93b7480257797501d5798 GIT binary patch literal 33748 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%0DUka6R2q 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 literal 0 HcmV?d00001 diff --git a/Code/KirbyTrack b/Code/KirbyTrack new file mode 100755 index 0000000000000000000000000000000000000000..4a8218a85265d4eca30406f6102b013af176b86c GIT binary patch literal 18920 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 p1qO5sdNXdhR&`|t{^^S0n(height; - width = frame->width; - step = frame->widthStep; + // get the image data + height = frame->height; + width = frame->width; + step = frame->widthStep; - // capture size - - CvSize size = cvSize(width,height); + // capture size - + CvSize size = cvSize(width,height); #ifdef SFML //Intialisation de la texture @@ -77,21 +81,21 @@ int main(int argc, char* argv[]) } #endif - // Initialize different images that are going to be used in the program - IplImage* hsv_frame = cvCreateImage(size, IPL_DEPTH_8U, 3); // image converted to HSV plane - IplImage* threshold = cvCreateImage(size, IPL_DEPTH_8U, 1); + // Initialize different images that are going to be used in the program + IplImage* hsv_frame = cvCreateImage(size, IPL_DEPTH_8U, 3); // image converted to HSV plane + IplImage* threshold = cvCreateImage(size, IPL_DEPTH_8U, 1); - //Controle couleur + //Controle couleur #ifdef KIRBY //Setup Kirby - int iLowH = 139; - int iHighH = 179; + int iLowH = 139; + int iHighH = 179; - int iLowS = 48; - int iHighS = 255; + int iLowS = 48; + int iHighS = 255; - int iLowV = 101; - int iHighV = 255; + int iLowV = 101; + int iHighV = 255; #endif #ifdef ETOILE //Setup Etoile @@ -112,129 +116,143 @@ int main(int argc, char* argv[]) boucle = 1; #endif - while(boucle)//while(window.isOpen()) - { + //BOUCLE PRINCIPALE + while(boucle)//while(window.isOpen()) + { #ifdef SFML - boucle = window.isOpen(); + boucle = window.isOpen(); - // on inspecte tous les évènements de la fenêtre qui ont été émis depuis la précédente itération - while (window.pollEvent(event)) - { - // évènement "fermeture demandée" : on ferme la fenêtre - if (event.type == sf::Event::Closed) - window.close(); - } + // on inspecte tous les évènements de la fenêtre qui ont été émis depuis la précédente itération + while (window.pollEvent(event)) + { + // évènement "fermeture demandée" : on ferme la fenêtre + if (event.type == sf::Event::Closed) + window.close(); + } #endif - // Get one frame - frame = cvQueryFrame( capture ); - - if( !frame ){ - printf("ERROR: frame is null...\n" ); - break; - } + // Get one frame + frame = cvQueryFrame( capture ); + + if( !frame ){ + perror("ERROR: frame is null..."); + break; + } - //Binarisation du flux vidéo - traitement(frame, hsv_frame, threshold, iLowH, iHighH, iLowS, iHighS, iLowV, iHighV); - - // Calculate the moments to estimate the position of the ball - Position_moy(threshold, &posX, &posY); - - //Dessine les informations de tracking sur frame - Affichage_Tracking(frame, posX, posY, width, height); + //Binarisation du flux vidéo + traitement(frame, hsv_frame, threshold, iLowH, iHighH, iLowS, iHighS, iLowV, iHighV); + + // Calculate the moments to estimate the position of the ball + Position_moy(threshold, &posX, &posY); + + //Dessine les informations de tracking sur frame + Affichage_Tracking(frame, posX, posY, width, height); #ifdef SFML - //Affichage SFML - /* Clear the screen */ - window.clear(sf::Color::Black); + //Affichage SFML + /* Clear the screen */ + window.clear(sf::Color::Black); - //Conversion de la frame en image smfl - if(image_CV2SFML(frame, imFlux)){ - printf("Erreur conversion OpenCV-SFML\n"); - break; - } - - spFlux.setTexture(txFlux); + //Conversion de la frame en image smfl + if(image_CV2SFML(frame, imFlux)){ + printf("Erreur conversion OpenCV-SFML\n"); + break; + } + + spFlux.setTexture(txFlux); - window.draw(spFlux); + window.draw(spFlux); - /* Update the window */ - //window.display(); + /* Update the window */ + //window.display(); - //sfSprite_destroy(sprite); - //sfTexture_destroy(texture); + //sfSprite_destroy(sprite); + //sfTexture_destroy(texture); #endif - //controle_moteur(posX-width/2, posY-height/2, height/6); //Envoie commande moteur + //Mouvements moteurs + printf("-PREMAJ_ANGLE...: %d %d\n",width,height); + maj_angle(posX-width/2, posY-height/2, height/6, angle); + controle_moteur(angle); + cvWaitKey(50); #ifdef CONFIG - affichage_config(frame, hsv_frame, threshold); //Affichage du flux vidéo et de ses traitements + affichage_config(frame, hsv_frame, threshold); //Affichage du flux vidéo et de ses traitements - if( (cvWaitKey(10) ) >= 0 ) break; //Arret capture + if( (cvWaitKey(10) ) >= 0 ) break; //Arret capture #endif - } + + } //cvWaitKey(0); //Fin programme - // Release the capture device housekeeping - cvReleaseCapture( &capture ); + // Release the capture device housekeeping + cvReleaseCapture( &capture ); - cvReleaseImage(&threshold); - cvReleaseImage(&hsv_frame); - cvReleaseImage(&frame); + cvReleaseImage(&threshold); + cvReleaseImage(&hsv_frame); + cvReleaseImage(&frame); - return EXIT_SUCCESS; - } + return EXIT_SUCCESS; +} -/*On se rapproche de (vecX, vecY) si la position se situe en dehors d'un cercle centre sur la camera*/ -void controle_moteur(int vecX, int vecY, int rayon){ - int val_pwm[2]; +void maj_angle(int vecX, int vecY, int rayon, int* angle){ + //On ajustera coeff fonction du rayon. Si la cible est à une distance 5*r, il sera 5x plus rapide que s'il était à 1*r +//double norme = 1.0*vecX*vecX + 1.0*vecY*vecY; + int coeffx = vecX/rayon, coeffy = vecY/rayon, l0, l1; + printf("-MAJ_ANGLE...Valeur maj_angle arguments : %d %d %d\n\tAnciens angles : %d %d\n\t",vecX,vecY,rayon,angle[0],angle[1]); +// if (norme > rayon*rayon){ //Si la cible est en dehors d'un certain rayon - /*Lecture valeur*/ - FILE* fichier = NULL; - fichier = fopen("/dev/ttyACM0","r"); - if(fichier==NULL){ - printf("Erreur ouverture fichier\n"); - return ; + //Ajout d'un angle moteur pondéré par la distance + angle[0] += coeffx; + angle[1] += coeffy; + + //Majoration - minoration des angles moteurs + l0 = limite_moteur(angle[0]); + l1 = limite_moteur(angle[1]); + if (l0 != 0) angle[0] = l0; + if (l1 != 0) angle[1] = l1; + //} + + printf("Nouveaux angles : %d %d\n",angle[0],angle[1]); +} + +int limite_moteur(int val_pwm){ + int MAX_PWM = 130, MIN_PWM = 30; + if (val_pwm > MAX_PWM){ + return MAX_PWM; } - - fscanf(fichier,"%d,%d",&val_pwm[0],&val_pwm[1]); - - fclose(fichier); + else if (val_pwm < MIN_PWM){ + return MIN_PWM; + } + else{ + return 0; + } +} - /*Ecriture nouvelle valeur*/ +void controle_moteur(int* angle){ + + //Ouverture port serie + FILE* fichier = NULL; fichier = fopen("/dev/ttyACM0","w"); if(fichier==NULL){ printf("Erreur ouverture fichier\n"); - return ; - } - double norme = 1.0*vecX*vecX + 1.0*vecY*vecY; - - if (norme > rayon*rayon){ - if(vecX >= vecY && limite_moteur(val_pwm[0])){ /*Ecart sur x plus important*/ - fprintf(fichier,"%d,%d",val_pwm[0]++,val_pwm[1]); - } - else if(vecX <= vecY && limite_moteur(val_pwm[1])){ /*Ecart sur y plus important*/ - fprintf(fichier,"%d,%d",val_pwm[0],val_pwm[1]++); - } + perror("fopen failed for /dev/ttyACM0" ); + exit( EXIT_FAILURE ); } + //Ecriture angles + fprintf(fichier,"%d\n",angle[0]); + fprintf(fichier,"%d\n",angle[1]); + + //Fermeture fclose(fichier); return; } -/*Verifie que les valeurs envoyees aux moteurs sont correctes*/ -int limite_moteur(int val_pwm){ - int MAX_PWM = 255; - if (val_pwm > MAX_PWM || val_pwm < 0){ - return 0; - } - else{ - return 1; - } -} + /* int image_CV2SFML(IplImage* imcv, sf::Image imFlux){ @@ -251,11 +269,11 @@ void traitement(IplImage* frame, IplImage* HSV, IplImage* Binaire, int LowH, int //Binarisation - //CvScalar valinf={LowH,LowS,LowV}; - //CvScalar valsup={HighH,HighS,HighV}; + CvScalar valinf={LowH,LowS,LowV}; + CvScalar valsup={HighH,HighS,HighV}; - //cvInRangeS(HSV, valinf,valsup, Binaire); - cvInRangeS(HSV, CvScalar(LowH,LowS,LowV),CvScalar(HighH,HighS,HighV), Binaire); + cvInRangeS(HSV, valinf,valsup, Binaire); + //cvInRangeS(HSV, CvScalar(LowH,LowS,LowV),CvScalar(HighH,HighS,HighV), Binaire); //cvSmooth( Binaire, Binaire, CV_GAUSSIAN, 9, 9 ); //Legère suppression des parasites } diff --git a/Code/KirbyTrack.o b/Code/KirbyTrack.o new file mode 100644 index 0000000000000000000000000000000000000000..52cf8808b7c9071da330729317d54b54d8863f69 GIT binary patch literal 11056 zcmb_i4{%h)8Q)7l140uNgsO!TVkHP?f`9?3laM@lkvq619x$nR9G92mwU@i}@-8IQ zC^V++_IYiFLW?t0Gb5crYsb`52Pi^M%Z~we~J9$*`-k0Ta5s_TvUXm#Zl#r!!GI9wMOUOKOJ>%v;8QaX@ z`Aoo_QCfkmxN#7AQ8R$}ziNk7AIpm|g6*MJ!>r+l) zKNnZSFZ6nqL+E{O#`}x&fmd$&o+~$%qh{NYa&t#lxfwWY`VOgPAf=iKw0*dodh_$j zX?cDQU7xSecN97xI)v&Jm~#Nk>Qw3L0yYB&%tR-)HQTyP-?7q+i9B-Wm=(vtSS$Rd zulwXLpM7>2?Z5H??e9%3DmZKU4wy2}se)emy6Nl0u=n-;dyy-}pg%$o zdQ{qLjT@7#F+8(UsJ2}3F;^rT&)@`N&8`ge4ljDF$H=-gv%T#U$?fR<@Ax?A&4e!r zUW%bkDx;D-EM(@&`Ip&@Y#%A4Z6h=>Oat$!)Hi4KOC^pjFLO6>t+tUOa0b)7|#=HV|Y0QVq2JI$PF20nKE-l{MOH{C+Tg;4e>V+$bz z5AIP?k4%S&ap`(i7;A&V*rn+#LOVo++$wDwR-rAlA*b;tGcRGWrc^XBu`mNl63%gJ zz;TA5fhnc|#v(JL03BulcCJqkY9}AKeIwnV8Z0{wdr7xS14pUvNI6xy%BknBwYl5Q!_!mBY&ek%tdm)c%6Apmo1jR*>3*IM@O%*S%el*xBbRgM zC_N}0MyVgA1t<+bt0B&|T<=pxd6|U}nO(>nLMacWVU*k`jlv{3iZ+4|Fsr@!ZV+JV zdh?fp0Q1?KUkC!k!|`4+^a``^Bo3Uk1OXd5iB6ohDy%r6!97p~M!*On1#86sGo>;Gd=pwwm9R^u zq%P;?VKg36Kw3Tk4F)JgC{G!cv3|C6hJ=E&V};-tL^ zL2ZhUJ?`czJ!_xVuzIH=40FP`lZK(G2!m4*20oLJcH1qxZFBXrix3Eim9<}3a{!m3 z4SDk^77P$uANYS%q2lhmJdoM0>^#hQ3 z$DdQp4zx=(t?ubuSR)6wBSIg*WpZ#QmtmzGtmpEA(i7kkDLtM8zbB@_5B-anW9=`Y zhtqO@{1i;__LtC6DC~y!~=Uu`bVy+lH6w{RD>B0Z zCR3H-2$(ThZ-0fO++FdkB6-AS1P{J`-7#MH+mHS*12!1f&X}NWod<6xiu8g z5^;A!=$pY%v@W8#L-D#qgBCTK+`Jt&olzPM>sqwQ%{b|*nKQ`dSfW`AC0gt?WH-69 zMr*#)Fj`B?e1$}b$FUz|$C(?odbnQK;-og#s72kiAw8nixNBo^_k?C>c3CWH#A6ZS zjqO&6s@K)4C{{7C3dOBVgx{*IWP=_J>2ZyeK~Ul$=5HSNo4AF*^NnR?>)cBNyAn|& z;a=q__N-p9GQmnkj})!)6t40V6<9cHFqb!T?WrWLmOR(Zv#!nQgf)H(;P_x-dFhw( zzL!-t`shw9oP}1*r33UcVpDhN3<@nS}(bKg{b#Fcz`pKd?K>(_z5Y5m!&U84V65Qp>*{-pbVE8TuQufH;({&Kqh zL0;cHq24mk4cNoHemcGig?_a?J3Ez~*3rc|Uz2sTuxf%jdU*Xjx!!NpBSbt+tqn$K z7vx6V%Ik#`*CHX0p|u#qQxh^m#IviZi7>zutiC(k?2qYDL)X*Lns9TKzDJXgVnD*7 zNGM(diFo2MOAk}5M|C3@ipN8(#1oD+;PNA$Xw1+&8#f15G#R1rx1a@@pw$Q2dMBQ` zcr4M#%>JT3zXAo)6-ruN372pVW4Zwzj2#XECXqX}S1lTm+uta)o2tEklJ@f_Y3~LM zhxQtHU3&v=iAFg&=#?4aBq;3=>HZ8L($&8oMZO(KjrpM)qbl(`xkh7wx?moJlXq? z0FIc=e3CQUYT&mu5b@{gNGk|mg2x`e?Fd4$^X+8=IFpTke*tSw#5m*lqf4T_z&ij# z6AR&y(@x(1av20!xFhl(NtjH1oVS-Tltnv%Kg}_F{5pC2AzK4szi9s?2$T6g#QhiX zNB{9%D%uPGaqqCl9w5?)WJt%XEd6UUhxuc-9m(~$SwI?|Zsqv?#r?RXPyJPJ1)4I-A{CPsA*K`WTn4 z#9?+x`epyJ$#rR-5WWIJ7T7<)tJwPzFdsZF;FoX(BF;4&S8e#iT+eL2&e?kvFihEO zrC753n@#YB>*|!vX4Yi*&hlg%Ww$2JL|X(v33rTB||?&l20S!E@GKLf?Z zBolwJui=;a_0oJ`XEea@B8M*lkTU5l5GTX&>@*qv4+s2`1O5r%XwO4@DzY;dV7V}U zlj*+^aO7{|n*clG0Uyt7hSI1?{^KiXCB~_#ph-Re2D|T%mH8RfZywY zS2*B)2fW$=Z*ai(I^Z1+_)i@0BMx}C1Af8*?{UBf5r@Z~-gn@C>VT6?dVE*w193P_ zd%`4GU1fNSgFzim?z#cRRYk!d9JLKS97IG9Mf5#TibdhWxF%Sm!KXkX%*usutPfUi zhGTziBovK$i??m5EU&7lR+I_w+6~?Q=AdLy5iD)h0K)Ctq2`%1wAKnH)!6H{Qgz7ZtXiYd4 zt<~%NdR0*TBaK=-9*aX|QK1nJ>4t`%9sae!ipB_QR#g~;|2j*^TIr89L0BLj4Y5{< z2TF^ANGL9?#gBUEG01|fN9!aS>LHDB_)Mw=^4j!;1HgU^XVGe~5x?^_&~Lz90ifaL zZD80YtrhFngwpD{H+EZrU#Ug3P!j}+-IZhj5s0F@B6jzTH4XX`DVofZ3 z%|=-)0^xzLwuV^Ds0X1US_#)5S`}#sMIx~hu8Yzajy%!0}wqVY6T z8`n_vW*DHFZF;mOwi`;;II(!`3bF3$W4kSDp;C{BBiP2PM{yW8R~f~6tSPt)TwGNF zleDZzX(qv7O;apb53>}wlaR_SQn)1)g!zMW#Y*_yf(e(_m*E+MyDv<|2tvX)UFI!F zh&U%8|0Z|@ee+S+Ktg zd?5&epD*EZziT)y{1WHadn7)7@(Dd{67H7p0}_6#gg-CgizOW2TbM+@g;tTAllV&j z6a8L?jzYpLA0C0vm+;#p{8kCaF%|q`3BO&!H%Pe54@>w`i64{j0tx?)1O9yn{O=qW zaqxpKOcx}+9EXMc{fyPi;1PbUbikt=7y9uWhp9#4FM+bqbKb^(k+BJR-G+<#_ok%h z4oS~HZTwfco?(eEua|$>_;|jaMpC8d4ocqF_rz9NjFa-WP3CF+35cnGsewT!Q?10bb z=U?o1mBimJ;j1P5F^-FPicbtG@$sxE?CEmg|H6jn@OA#Iq~~r)Pp^$H`aNgEXLCKT zIp}%U#us`n*zg;;o)HH<+5CKMk3)_PU%>Uu<~YV#_AB4U7xom`@P%BD$3c%`;|o3a z+wdh^&lU$gF&n>t^9_kFkMAQk{tC`-ci<;&eEfSVO#2=9Pulpxo~I=~zKg|td)~$u z_8fEI_t^Nto>v|CxAPBv9LM=mzx5K1-}u6wQxd*b!dLM_gI$kT!eu>m4)}`_zE0AA zLBeG_$0c0We-ln*NNA6Yhb3Ir|Ad6g`hP9qvYtOU;Pd$X3id1OzfZzt{SQgFtiRO( zKP%y~{tr2hX7Mc-#9J53yMz#5yuc2tPoH!oyPoE%!Ue<`duD<;zR6cb{3tqvCDa zq-Hu82gS!HDF#2yoArmligQV_GtSLrVFm#{p+QU#N0bPuABc~MCOdv9%6uVk_#SRC zI!w}q<8l{x`7oE}gICj(u${#C@C#`)w~YaU^cqb04ADppS@088&T+o3D$0UR(!f#V z3DD&w5PXD7@)5T>gOJh*(QGHxusfKhg*QE1QumOX2|tIj=_n5bXerB?f($*}+<(ID z@&Ji@<{$&4cIQ%`CWRpxIhqr6=?dwons_5zf}E^7$Grz$-6Jm1;1%cvt$YB?VA`v@ zJ`3$-ns_zU){A4B!m_m5OnLZ74Z&kaEMII1esWdC2fu0L2wv1&Fu9sNu4b19Ceh4$ z%~h@0$>QV8DLl+{HJGc;!_}cu)jm7m8dxV+6eR#y{8Lff#0L!w0d_+Dmw+;$p4>Nu zTiDHXYz23-R(g6FkFr}UJ+R43f=;de2JI@yQ(Z*s)@rDO;A(|6gnzJ2Xj*jUU#78M z>p(v7sMbN3)Yj}4&Iy-%g6*2kZrx?K+ALdU6 zEKY%}7i}eegnW3!RD=Q`jVe7A!k@s3fi#NR($5GD<5bxo>cDr(ZvoY^NizNIK%FT; XQRVR34O9UIe+6C9hP+~X#enKJ8`eb9 delta 776 zcmZ`%Ur19?7{BM<&2~3)n>n@3^j45A=Gt;GR}bA`*Ih!;XhVByMfI2n?jdTd7zJZ2 z)33lD1wndBxCKVB`6pUERP+!SO03YhRu2n;uK4Hn-A&e02hRC@zwgiQJLls(=+1QC zYa@%J&M7u*qDm_~`YC618Oy|Fow<n#7v*AgebXI z$rmu1ROr~dv`{cV7M4@<*jC9FF#)esZuM@`7L02M2gacX^@6lQxq&UJn>0q zYIqu6SnLNwU0uhyw#dcU)!`WDb9cIrwtEAy67@RE4(X%iG?BPkjv-?Zv>jo6I3aEM z;F`^E<#!m*mYmdg2-dei!DeCqeYbU+pN;N(zNi$a57DF-ZZ-PJdwAA(k_^B)o*pT% zH$jLGKGzwz>4WvADdK^NeIuCYZO#!Mel<7H_*IQ9S4f96 I)H2EZ1+Rl1J^%m! diff --git a/Test moteurs/moteur.c b/Test moteurs/moteur.c index d8d2a7d..9473680 100644 --- a/Test moteurs/moteur.c +++ b/Test moteurs/moteur.c @@ -13,6 +13,8 @@ int main(){ int angle[2] = {0,0}; int coeff = 1; + printf("COUCOCUOCUCOUC : %d %d %d\n",1/2, 2/3,5/2); + while(getchar() != 'q'){ //Ouverture tty