Laboratoire SUPINFO de recherche en robotique

NXT Tutorial

PNG  IHDRA> pHYs+ IDATxly} v .ZHQ"bɒHdLfd$Lɜ33dƙ؎=q$(eG3HHK) b۷tw揪_U_ȏ޽U[m3~Nʅ, A0 BU;čAԃRCDF%UQU5e,5LcZ]l.d,X<k,0"c`q"H5FFk`d-ŴS)dfa0 QRjx.SwP =:S`ۀEJ',!k[870puY91vqȊ6&<ݝc<S5kׯpWl-1W5aUS kvXk rj'd6 q>ߍv1_:o's5y!NVY(1ycPւ!.kp 0P#5րP;K32@ Iw08a3m:9&8qqYA@2N0`q80~gt.Z+CFr<jA*GnkUBft'dƯUH+KYji( "@-^I16pbp* ;1 6Fa<3>8)Zm</JLҎcXf\mbsbF8(k+`8rLh9oyo/N"9YQ 1%X! $0bmFjqsNrj个 @f YQ;C]`]X\E(ZlPʼnsa⨱ qD!C1.+r8gZlQ.XB'iBe`G*RcP;,js5l8"S81TNKx`g'V"x\S n'oqblNq 0 Pn@톴;:ur\RU% ux<k,Xӟw> s^^9GauC XS*}U6Ve+K,8d N:*h1q}~9&h$ z~7**[fm`z17g% 6?txCYYvcAj]>SLD8& #!C%ei6Ϣ@4m )Jdf N4cM@DF݅$, rX|nVF@rH`!ːF$.k06ZQp̆)cClD('DtT! 6|Zì&x$AQE .Ψlͮ_WLu;0AmR[' !~~8 hag"uy4񡭱Qz^I5;Qc7}D-mP_$ k5LlB\Ex?&^}B1(G<]@y-@PИ&*Y/c(M\0A5KSGef'W'MBDȳTZ.V㘨9W)ˬ¢] M* !5;x õ'gD%XZjqЄͩ*ۣShlXn҄Sƛ+L70N/4ibjrH.Vz#X(MBI*تfF^Zr. m}D4'lzƪYI%pb҂ŏ}/nF.=CUi>O**LAI =lf0w1)&$! JEgm% BH5-U\I2ii@?Y (UM ʚdBh5)y(scR m P ~L( 6:_pfHvo5#Qhj5?,%IfImGEN|2a(Vk~ޢHP5]h 4ğ*b2tHMDJuB 2= X3h7HU==T|&N`2lJy%v? ƄH5'.kj\xiguZ$D3CMVrJ+zE"1}ىx3S1umL*=E#/#)7U~M4AD7옢DaVV L(+$(t5o<H50̨hA@d#ǂFVTc0 ;XIaRo4;m 4xTx?`4IGD]Y P4lIύc'"DŽpAQƓ$8. @у6R$0)TbfI{28`"OM7Yu&$iTdśMrꚅH@E$?”IiksAH} E^E֧"tm^+|-|n3}jUSBTWB&^XۉNHؼiMM2 !MX0V" VT18sz_ÇRP^+<|-!-=AlSQÊG7idf͒8%EWȌ27-O7X*q!C!B[=,u#`œJ. ӱTvL0]i/QYKy цDQʚx;V_$ WE`B1LfAKhjOb=(OܚBVو$4LsYy9^,* EDGfY{f *6֍L;h=5HPNFcMXj<+hָ(t. 'E&ޖӘ0 5D0Cؙ~LQHf\LfM} " iIJ*1K26 tc9ZM--|(g P֑bK4& +cTfժ#j10_c"-hQ6L;ZW&&<FKVZ oZo0[pL܋ ~wLUb\I`(RH@U p/Q']V :ѪA( B=8:q-O*] OLy !($ꍄBc`jr"i'͒i*DX m`Ry̋4׉igK4W{RA3TrbYހgYU(gRD.m4̐PsFFPE!%lH*FBF)Q NLo1TT5 J1h1BR7c( ֻ !ih&#&T/6j4DŽf;1%D2F;Ah…Q*YoT0RA4tQqLJ nTkifRMxF jRk >&+G[$m0)M\¿щ˪xTZkZ`mj5H: 0pFQ XAH4GcU!ZD['-"m%&*s9h&eÛy1WFK(咮O6(%!.> uU[KdV5 &J AI4<ɱMI|I*tZ lhƄ֌漼 (^麌Ґi5&m·ĪhzLU6Ki-֗ hgbI&Ih+0urvjkÐ*^ 5 E067ToW4 ]l!kߖD^X"-1ˋVM];jW6Yp6q4 ŪلZQdYs^& @㣤4̞ÚZ4IlXD6wSb75hKI%YI%ӀBi =*Cat{1UͲVU-#蘚ip"v'GI Dċ1e~L"2a|4oF: `8hsQtN?}yEkgqDhQw5gLW&]10e1RѶ Q;H.iMFrq Af")2ijhPsH)q)QjWb;H3^J2E!/L(ͨom=FXF*@0J tM'5X=uQ(Jj# DR3QK@@C -TI גr UUc3 (mOsuckumօvRX:"Vyyt/E ^x4ϓi7J{-%B&s5MV)-yk^84WI&Ye0ܢv)"C#ʵ`:Eq!_s\Pu|F\1H&?QZHÑAݔ0!>IO 5Mqk6):JD4S$~e)Jhks0DAio% QL5 ~W@0FUh\sMtiģhB WL)%]}jݐ!JMft#>$MNV'#SUϡdYPOE->@5͝ 7j熀ڄl&BORrͪjz&[+8Fs =a)\C _P]l0z=饚]iއþ _͌Nܣi%x&tdȓWnK ko$M*, )tSIdIfqiZԸ?kހlȳ2? xEH4$ͷqT:.]M*Myc,w P{qUuRhw2Ѫ5h4I+5]yOl&9I+(2!24K2KIUuAcer*ֱ&A\p0R&q1AE5 "QF1_WxfwcD'{!B%#NW5Mqa?2Ń_;BKy)rHܕR%а0ZQ ~O];QR u_Iv5: Z Od@ig 2_K`6I3Z$6hk 7or"V.]h4+15ɦaR4 q"IЁf؋?Q:KH^-=$%MŁ>6"Ѳӓ F$gXUMYr̆[)!=rh!yYR#.0ZUɖLmL`s+y6*R\mPX&ChUu\5|2OOpﰶ[Y̨Y @}V73ṺlAt^H# WP}QyW-4Q2O/5!ۧG<&āC0$j~h &.;o6&*Վt4Hӡ37D 2hf1aYhCRlƼk,//hǤ/ iȈ:i-3cГ 5`#h:#I"h;llq!oziPut}WzU0kYkm$J'y%&.# eLk=%X3zM T  ᙰ:35S)^}U3щA-baJ %1HU};gUYʳOs;I^B۟ո+0 s%xlt[fv) dEH"1ZZ L %UƆ0ɲ< wEAL! mu4,(`vx;4Q#PnNES D<1܂j?(dhms5 #.yq|ujIG],Y3HEY$ZeQt.s, } {52s쮇ٹTv2K&wI6s|p(1`C(~ !:?LF-Ĩ`|4Y\xҘ/༖Hd$$"Vz܈{B-Av1/Yj&jh8'N#Ք' 8u;82׮kW).LYDiiI u&+ @5*RT"q>q6ya`ÜA޿B:quctk|Dk8pZ&BnaC%ڎ\;B;)*AĨP1N|70gǵ%~=dY_BsH^FǗ49 :MUHAt^t>Cj Q,Qod5<'r2וZ|4aUc&"h;A IDATžuMBϜ mLn a|jq!W`X O򽹻7_yR]o>cGIϤ5k`Q_D 28MS4r*# 2*@:dL$ /ɏC_< 2m5z.D'sl} =J=`ÎB QASF'Q ͝)y,i,!'Hghl Z&#۠¼2!>#x.Iu|yQ-6nw,.>q01X W8uO(*Lha#&VŠM$"1AlKRI NR?ۑe9VVހfߤ"Y\"|2+[$C Ԥ>u2 Bd5ʐhnn%p J#kIt¿ysO~GmoqڂdeiǾU:uygfbzw4ia-HFM9AHg1wξ 4X·HCQ&k%1Hc[H6A5a!EMW=83S{O.o|^~yn,Γwpw/||kV˟@?"\bd).mJ2IkP0Vՠh+JjB696!6 6KSѥUe6MmD4OC~T"'F3 L26%.6[3·43Obks`l# G𖷽V<竽"{}|7nFN6>\ܨm_oL 1? 0&>ST%diD @iҫhD"y_Y4yDTFY eIQ%V*9*#?A*mG3T0 uC%*Ff+W⋯p"ǎ߆p .\}O?`jǨozNI| F~SJ95 BF^K0&mA;Ἢ J:7pܨ`|Ff*)L/2%VVOs~vKM NA]Yz'5~"&R.O/3=='?Q~ϻhZo+.y) J&_& ~ Ph (ѷ JHxעeQʺ9Eggxΐ /a'c\~NM3Ʃ ?&t[?ƔeIUU5qUUKphwαŕ,3WyassYF &s{ śگ6?W2GO|G ?_tav&Vf ^Q4y#kZt~_=GYvȝ6wͩONA ܋qB!Y 7k4 pV5UYG"1 p]U 5!S.eYuƉ‡Y1b!7VKEj`HUz?}lnu¡CWhaQf.gzء`D#9Jh,WӀ-oa ^;\]s8lm!ݳGs]-b!2pOt0J!yk#vvC]'r\Y&torU̙{"/y:>_⩧ yŵK~nRoOr[)+ǡ{NJZ|fdF@I*+\]SH phW3l>^X8gjǥ81v_Yf m(NxW+ϰƨ8<=0wiR-e쎰YFg{g;k84~T?I"ibhԳ3s'?F/~pLV^Pی,h  CݐM[([u( _Rs|ˀ2- G<6]?%r1u/;ŀFoxbgd}fqyLo{["@LAȳ,_'a_._;{v8׮]gT 6%Ӽ*VrBdīd}mVTgmUYʡu}ͅwpqlmX8@X`@3*EI~Op0D’Yn+=9iz,ur!w@/S9˙38uǏg*|i:eU:t02$EKu Cyӛ+g;n,~;')>^eM?CjuqU&!h%֨ `b}D/gw_s{aWO#=K_zS|Ïpc$4wW5^_qknw^~w5u6eYa+ZEvxTr%^|UV6yNq}'iNKƣqL;ϳpKN*n,>gVɳIh_?v{Cy8 Ir17e9k?Wr>zn ._17=E~m) .npܧr/?gnnKdYCy7;CnKץ( qy{N~ۻ((5&*c gTjݛ%a|%>eNƁDICgik|K_~']/cnXbcciyg7{Pj,Qx\qY?w9_eSWx5w 6qw0͵[pog|Dv'i`cYxe3;ͲF%?q/2E1ߥOwԆ,Rw8~|Wʍk7Ȳ.ȱu9p Wn2 O~GId4oTjYJq2s{8SO|W^dn>9VWV/p;)1bzG! q[[[H5oxݝQc h%WxO]n  mWr!UŅ Ny7]j-Y[]g*d03k]_җ'>g?{|NCg˲[0y_W_pSm۩._g3|gcsawŬQf:gV9r(K!fN]ylfknfWX|^;g^gdScʲfgg^.]vNg;Z.ՕOo4N, d6>ĵK 3==KKTu͡C 찺:7]c0Pc._\e<R#fggq&3}Mf\V wF%0lnlx5u{-z3淞nuyݹctgҟ99.Zt3㵗_w7q[?h쨆;ٿ1}9z`p裼C'Np.ѐ-~,77c~^mq1WMU\]Z'贋;U0ճ9qI]w9pvr#tF;l-^d07`,={g~?AʺZ0g/2k3 "bv^8hL(pNſS:|~<}ygϜ&ܼ`Ç >s%y?|~#h#!?udcc8rvׯtZ}8_Ļo>M: 7}7Uї]\|5 uAOmg^fU3[up?ƏOķ /S?—~ȟ st{67V(cw4c]U+n "^q|OO0-`p۱c8tz.ɋ9vvvȲF;]F..Y]]fwg *Xv6W>.bslmxNw6 qα“/-{OQnc>[csj8O=X¹!ܒcn^<Ϟ^6׵c{k'hwͥUsemڭ6N+| ?w~wG>//qMʪd/\ p VF8n>P{U$Y^[re|u8ˉaaqVV8qQy2o6~G?X\gmuXߠ,DZYkX٤<˘?y1e׷w\Upp 'k3G5.#wdYNXEQ0 ZC<Ü|>0K>G?n`j6[ Xb}m3=`qjŋx `o~= 3j{?wgO?,7Νcߣm3ݟa;nTqǏOq`r<ǟ]mя~ oȑ# vG gν*{fYYYe8m9u\mn~3\x+5U9f><'OSw Qס⊣2~#y2EQptW]'{ ~yy?u~.]Fw8fY>o,/q!Baiq#G IDAT)W펂JWo2Y^nuVWyyp?җ~e)gPc"7/5GQd>7|2p7X[}W_yFqտjcsQTGY`̹7/0b=a3]ty #f\9xZ._kLOu1\x;g}u{L1=3<0Oaw8СC9W/^`4O? h?8{c},Y13?AxlmmScDZGq&=ɳu:>"(tG\7;M1e=;}sN:38cf.]w{ _Cテf3u5bwBU>rǎp!UYO0c`őq8eJ F{1z;z焍m^Ͻn>qG>N_z zawsZ-Oss,_~ÇƬpUn,o:lC0uU‹/\EeewرQU=Ԑ_כ=Kz\~o[w_zo4@$HlܴQIbbOLxhM8~#hyf3 %R(CR ht7ުɓu!{~Kٷy /~pߒOWW}.,s<#,BBvH)g/S/=GGL/brwH"@۶ v h0?JÀ{| Y})W] ?ϼ 2o/x< Qs1CmT|; )vYykSUUH[T_Xfo/=5n??@~||b>g>_2[ ]ߑgE.ԉf6c:"/+6ti>??O {'dͱbTWM:GQd#8 MRf &G[(6k18sa׫,C899KR$lpFok|/ؼtÏzPR6r ֖lxnb%.U2-C/59Mi,Cߋ+(CjTR=/='4 iw!r|M&Wؾ{繄EFBg̬NW8::ld2u6v,˱e1_Xt9f{{uzDXy?tT3:g򃟾#4\Ynk,69:<~pΫٹOsrl6,EA۶r@(7{Ox!}o|+_70oL&5Y^jp=2iD=z􄺪8==`mm(0Y;M~||,3<#3uo1 =/9łߦiq/Vn^>y;4mǷ~7OOy7QOULG1%W\~{_>`R88|F^rg-o\71o>K_x|t] loo2]m< kK/+;C~K=KNmvo186i0h<XMWVyJI}p4mGUl6']08>:^a1;fmo>8av~ ܸzm~[|[ܾX9uU]bus=gGOA2Ȳ~yj}`um}6z峌}''Eb12߾LJ}=~$"ڌ_ w=Đv-ݼ1pS~ӷywq_]xGܽݽ=~n m~W>nޢȽ'28)_Zgrzz.20Κ[oѯ||/Asoq 3-1rM)Fo fuMf3o}ٌ'L$/ʲ .]hUق٘wONOY' ~sc\#qx3JhL;S!y8喺*LWx(r^z%sۿ湭f2]a{f<;8bֿ|Sdec2m =~C~?myrtJULOgypXq[EEn ?o|锵uA Ueg3c1F,Fgg3YBﱽhT &pc*g ]UG` u]RGY /A5f `21f1WWF1)y]e4p@4ad2"2Iy ]tLWWaqbe;،sn*'Y&m}m3t*g"Xos]ʢC`396bg7 LWM]Mte>}kk_ o?^ŹC>uy` _#~|$g?OukE1084pL&5I+*K^U<# mۂ1LcV.Ivα7,W~u؞?_9b>f:݂#7(67X B<fy0YFUlmm8>>ap5e}6֦,*X,xiJ7taTܞo~aumJU36y嗸v7$ HzUUŸ]Wߡ,Jg''xzF9oԟ{/U_nj3lNᳫhE?<+s& ,TWe)rKuu|U@v<}*_Rl8F'-/fKl_Ycc%7^{uFG喲(hN}|!ǣHeQK+Lr Wr߀&kNOEkÎS|$7عq̪ӮeextrVLSszߚ9̑\gܸ~,٦,s4g%n ;L#f LNӜsB9M~:`hۆ<O$,kkLloa~5~u~ lK{\~ܴ* 9jcR|oNkkSwOQׯ_+yW!g33)Xxvȹ%~1pZ^Rcjv?K=> ΕdY޷k3FuIR+\d,<ϸw?b<S++6X[_M2 =<{fo2 gOu6Y]>]a{{ < -ONŰ5Zq%^xE9{|FQ\|~ev)1?ug Fc__\vW.N lRWԣ1e)Rl&c?0?q;3 >>$kelɸs&}WW`LLWW$HnoO'#&J& 2qG)ҫ0g:e4a:?qONu sr;@]SVQ9[ U{>YfyxsUYgN'?)@q]:r4=Y4V xO\8Iؓ'ԊSve9gL+ $$$SVEV3WԵDEi676ȳ\_f._3]>ʋTM"kE`9.4EcZq۶*K;7V|4{g7|x>b4G5јu66VWRl,p4+r겢꺦m?]Q oly1Pk˚dL=&܆x'u{bo/A@55HFՋ,Y)fqJK|]ד@H@{ΑYCQduA% U{owKu Hg~m:TW%ԣ2 ,sʲ|!!n9kS}'Ocwߢ(1?W|FRR6E)S%3?o1s[_ɨG y~]C&ԌZ.e!%!YRZ0֘wZm޷\:\QF YLˬ*<6 tyԙz`^Is-*8߿#O]2=n`dedzH[Rgwє 9I撅z#lQB FѸС scWCەR#T 뽴390jV,]'k׻̺aP^β|ɩn5؁NyCx%Y.-Е= ͤC;IDAT J2, zAʹ6EtrGI C|¢"jkf秬ml!ӈsXi!s|(sqI>kɂZYeY ofcaA:@K@ېi9_5&M?dayu+K*w1_uo|7zr|HK> /[ymw=$E3_0>:$`T(E x<$k蓩~Uw0tɒ3؃sRN Dyx7"ߘLBpX,߫< (v˵w~ґnaMчgQ@+c1_Qrަm%vpqbƀsb+ΛhLHhDn[F"l ʹF\0Xdt H/N]%>l;%DŽpF5q^m LKm )d6̓\סD!v%;jh/Qb1Kr;PT%&J5l %h^?J A$y./Ļxahv "V?iGԨZ*E}$U9uGYv"EqzWR6)auՃ'8 NPoNKY7( <(St$F/":Te(k5#T@وq(ŢaaPw)Au9`k͢ӽO?ql2W Xm$,i,EfRe80j" qM0إE|QA _Y:ibܻ3r/h̫p7I]'w%#^H,rV 1D\V݁xTE\-O%.VlFG&yI.˕\@쒍d-qX4-mLK #ùRKtt!Inp>g*=&"}s #/Wy/Q <paHp@S2W푈%pUVFn>":teX^jubّ9 k:p.wUPؤib!ZVkTِX :4G2 q1YT.'9T4 OꭨjEfrO8 :q6:@3AaIL \0-uCꘫ: k Edީa eb!>O7~+˲6OluDAbOlQF+ #oKHb8#I*a 0;ë')hP>c9?&T!Kb=UKubA褷wpw*UMR;kIF#$ 5lm&jWĠW?".+i]zQ谷8(:~}>< 8򨬌(e$ ͆G ﴄ~ I#wIh.fI7GUt'~ *ӏI[rO/KnL2/{)LdQu*.G 2;0u-E|*$Jal 5.CԜĘ<][@xVT*xB7;;CE 8H kM>֫U v"jPD )<֤;N3IۣaL g(c0/+RcȝmnXҦĪ-Wc9Z.ݘ)R. OLz{Jl OB$,t2e]]rfgH~%{ )AT~O#àŻ-FS3㇚ x;^R;pUNO$>.E-S_l^lj甀wR*PYP/eq˖~p.Jރ'xk(.*ˢ6+2{xԲ'奂21Ta麿dSsamQ-P6dA H>H= U@p6'a% \ѫI(ŋ1D$xfp%,] u6DKh%1"UZq[_H\&{UKj${~IZL'|W$/K*:F4IN'WjF:]|s8kJ4qMm ԻB?<+s麕hI&DPcՅwpzRI%LU>:Ǚ=5^pY-ɝYV)UzHrѦHr;`Å*^Tj\ 1B454TlhůZ΋4)O ȫzGN{b0f)9Zdlx%%z z'"Va1AhgSb"5z]JgDr +Ar`(!"M-)TZbh:&P<4IuEZMA}@ƻA!SF} ^j&o P*X"ڣ ILMN!TicR5N`l>՚s> "/D?Z7z[@$t1,,jQ\(LfdA2#H!:DѦ@dp7\̠'duRDնk6&@Ue0K&p0X5"e |EMG|/j!Z אL7:>ͿØ[#LrΥ /I?xEP$.{DiL Muv]؋&IKEQimYD:iɂ-ﲾ IꂞAu_g^:5  7A=Si<ϰj0qNRJkP2>d6LdăYztJg^B_(u.f\ddZ x:oEP;6^:=8ߩkNJ&WT(0 ҇opśSO)~bBtǘ$|Qx3ѣK=f=QRRI`oR8>;d&|炊A=XZ"a5{t́eyQ ݤd)=S[1;_x. {V9ox$g=FIZ2O(Xu]3G7=\DYBu4( "^,zg]$NfD?r"+&(.*ޯƆfp$AW aaJP6Rp !IsI U-A&# }EdG׊)Ykb s`|6J {?;jy~|1Si%_ ހ [EhSEy%$ iAlEjT"H^xS OEs5ؘFU #&$OA %$Lq"agi߫?Dc<^g#}ο 2"4Mh3,mX=aVߨ5xCdeAF8 THP1$'ȿK cIS[ tHJz72I$@zgɜJD%3hE,'2nϲH[7.L"_ ƯorI~[J6w3x<YMY-wP#ngxzr@^5$,ڿI3UR?_P4PM@vl9[x)xf@ #؇q}! >${(/O૨‚Ts. ~YB:#G]e'Rd1xQMto vBW>.Kɥ\Hq[rScL@|'Jl|*_v~*Wdɽ:R j5U~A*51[R(fF\}%܀LkZu#5.WX\! G-XJ ip7:$ɉL1 RboM4>JpCMʩD JA|%Iyא%$eT˲Y42%TDF>0O*&}_#E^Qksz6cwYJI5/Cf5 FR&&$ƗSܚ̗[ ozmN ɹa >j@(Q1=8=^E3N2ɘNЀpz2 z^IENDB`NXT Tutorial

15 sept, 2014

 

Bienvenue dans le monde de la robotique.

 

Souvent les gens se disent que la création et la manipulation des robots est très ou trop compliqués d’utilisation… Pas avec la technologie NXT !

 

Tout d’abord qu’est-ce que le NXT ?

 

Lego Mindstorms NXT est un jeu de construction et de robotique présenté par Lego en 2006.

La construction du robot se fait a l’aide des célèbres briques de lego.

lego

Vous souvenez vous des legos de votre enfance? Vous pouvez donc monter et démonter vos legos  autant de fois que vous le désirez jusqu’à se que votre construction soit vraiment parfaite.

La gamme Mindstorms NXT nous donne un grand choix de création et une grande liberté d’expression.

Dans ce tutoriel, nous utiliserons le logiciel ROBOTC pour programmer notre robot.

 

De quoi se compose un robot NXT ?

 

– D’une brique NXT qui stockera notre programme.

– De Servo-moteurs qui géreront les déplacement du robot.

– De différents capteurs (capteurs de couleur, sonars).

– De pièces Lego pour assembler le robot.

 

La brique NXT

brique

 

La brique NXT sera le cerveau de ton robot.

C’est dans ce centre nerveux que tu enregistreras le programme que le robot devra exécuter.

Elle comprend un microprocesseur d’une résolution de 32 bits, une mémoire Flash et prend en charge les technologies Bluetooth™ et USB 2.0!

Caractéristiques de la brique intelligente NXT :

  • Microprocesseur 32 bits ARM7.
  • Prise en charge de communications sans fil Bluetooth.
  • 1 port USB 2.0.
  • 4 ports d’entrée.
  • 3 ports de sortie.
  • Alimentation : 6 piles AA de 1,5 V (non incluses) N° 9798 ou N° 9693 Pile rechargeable au lithium (vendue séparément).
  • Tu peux connecter jusqu’à trois briques NXT en même temps mais tu ne peux communiquer qu’avec une seule brique NXT à la fois

 

Les moteurs et capteurs

moteur et capteur

 

 

Les moteurs

 

moteur et capteur

 

Les moteurs disposent d’un capteur de rotation intégré permettant aux programmes NXT-G que vous réalisez de maîtriser avec précision le nombre de tours ainsi que la vitesse.

Cette fonctionnalité intégrée vous permet d’estimer avec une grande précision les déplacements du robot, du bras articulé ou de toute autre architecture que vous concevrez.

 

Les capteurs

 

Il existe donc 5 sortes de capteurs NXT :

  • Capteur de contact
  • Capteur de son
  • Capteur de lumière
  • Capteur de couleurs
  • Capteur de proximité

 

Capteur de contact :

moteur et capteur

Permet au robot de ressentir son environnement et d’y réagir.

Ce capteur de contact permet de déclencher des actions en réponse à une pression physique.

 

 

Capteur de son :

moteur et capteur

Permet au robot d’entendre et de réagir aux sons.

Ce capteur de son pour NXT est capable de mesurer l’intensité sonore de l’environnement du robot. A l’aide de ce capteur, votre robot peut ainsi se diriger ou fuir vers les zones de plus forte ou plus basse intensité sonore en fonction du code que vous avez réalisé.

 

 

Capteur de lumière :

moteur et capteur

Grâce au capteur de lumière ton robot peut différencier la lumière de l’obscurité et également mesurer l’intensité lumineuse d’une pièce ou de différentes couleurs. Il est capable de mesurer l’intensité lumineuse d’une pièce grâce à une échelle de gris.

 

Capteur de couleurs :

moteur et capteur

Le capteur de couleur permet à votre robot de distinguer non seulement le noir et le blanc, mais également une gamme de 6 couleurs. Cette nouvelle technologie peut également détecter la lumière réfléchie et ambiante. Utilisez-le comme lampe de couleur, avec sa lumière rouge, verte ou bleue !

 

 

Capteur de proximité :

moteur et capteur

Permet au robot de voir, de mesurer les distances, de réagir aux mouvements ou de trouver un objet.

Il détecteras sans contact tout objet entre 1 cm et 255 cm.

 

 

 

Le logiciel ROBOTC

 

Vous pouvez relier votre ordinateur à votre robot soit par un câble USB, soit par bluetooth.

Pour relier votre ordinateur au robot via bluetooth il faut :

– Cliquer sur le menu »robot puis dans « NTX Brick ».

– Cliquer sur « Communication Links Setup ».

moteur et capteur

– Dans « Search selection », choisir « USB or Bluetooth » et cliquer sur « Repeat Search ».

moteur et capteur

– Puis dans « NXT Bricks Reachable via Bluetooth or Wi-Fi », sélectionner le NXT que vous voulez reliez via bluetooth et cliquer sur « select via BT ».

moteur et capteur

 

Nous allons maintenant parler de code.

L’interface de programmation Robot-C étend le langage de programmation « C » au contrôle des moteurs et des détecteurs d’un robot par des variables spécifiques.

Commençons !

Au début de votre page vous verrez que une ou plusieurs ligne se sont déjà configurées :

#pragma config(Sensor, S1,     touchSensor,         sensorTouch)      //le capteur S1 sera le capteur de contact
#pragma config(Sensor, S2,     soundSensor,         sensorSoundDB)    //le capteur S2 sera le capteur de son
#pragma config(Sensor, S3,     colorSensor,         sensorColor)      //le capteur S3 sera le capteur de couleur
#pragma config(Sensor, S4,     sonarSensor,         sensorSONAR)      //le capteur S4 sera le sonar

A la place de touchSensor, soundSensor, colorSensor ou sonarSensor vous pouvez donner le nom que vous voulez aux capteurs.
Chaque programme RobotC contient une tâche principale  » task main() » qui est délimitée par des accolades {} en début et en fin.

 

moteur et capteur

A l’intérieur de ces accolades, vous écrirez les commandes que le robot devra exécuter.

 

La commande motor[] permet de démarrer un moteur choisi à une puissance désirée.

A l’intérieure des crochets vous spécifierez le moteur que vous voulez configurer, en fonction du port sur lequel vous l’avez connecté :

motor[motorA]

motor[motorB]

motor[motorC]

Ensuite, vous choisirez à quel pourcentage de puissance vous voulez avancer.

Le moteur peut aller  de 0%  à 100%.

Exemple : motor[motorA] = 50     // le moteur « A » avancera à 50% de sa puissance.

Pour inverser la direction, il faut utiliser des valeurs négatives.

Exemple : motor[motorA] = -50     // le moteur « A » reculera à 50% de sa puissance.

wait1Msec() permet d’exprimer une durée en millisecondes pendant laquelle vous voulez attendre (temps durant lequel les roues continueront de tourner).

task main()
{
   motor[motorA] =100;

   motor[motorB]=100;

   wait1Msec(4000)

   motor[motorA] =0;

   motor[motorB]=0;
}

les roues tourneront à 100% de leur capacité pendant 4 secondes, et s’arrêteront ensuite.

 

- Le capteur S1 (le capteur de contact).

 

Il possède 2 valeur .

Quand il est inactif, la valeur est à 0 jusqu’à ce que le bouton poussoir du capteur soit actionné, cette valeur passe alors à 1 et repasse à 0 quand le bouton n’est plus actionné.

La commande SensorValue(nom du capteur) permet de récupérer cette valeur.

Par exemple si vous placez le capteur de contact à l’avant de votre robot et que vous voulez qu’il s’arrête lorsque il touche un obstacle :

#pragma config(Sensor, S1,     touchSensor,         sensorTouch)  

task main()
{
   motor[motorA] = 100;
   motor[motorB] = 100;
   while(SensorValue(S1) == 0)
   {
      wait1Msec(1);
   }
   motor[motorA] =0;
   motor[motorB]=0;
}

« while » est une boucle qui veut dire « tant que »
Tant que « SensorValue(S1) == 0″ (signifie tant que le bouton n’est pas actionné), le motor A et le motor B avancent.
Donc tant que le robot ne rencontrera pas d’obstacle, il avancera.

 

- Le capteur S2 (capteur de son, aussi appellé « soundSensor »)

 

Il relève une valeur allant aussi de 0 à 100 suivant la puissance du son qu’il capte.

Cette valeur est relevée avec la commande « SensorValue[] ».

Par exemple :

#pragma config(Sensor, S2,     soundSensor,         sensorSoundDB)
task main()
{
   while(true)
   {
      motor[motorB] = SensorValue[soundSensor];   
      motor[motorC] = SensorValue[soundSensor];    
   }
}

while(true) « tant que vrais » veut dire toujours donc ici le robot avanceras plus ou moins rapidement selon la puissance du son qu’il captera.

 

- Le capteur S3 (capteur de couleur)

 

Il permet de détecter une couleurs et réaliser une action selon cette couleur.
Par exemple, imaginons que je veuille que le robot roule et qu’il s’arrête lorsqu’il rencontre du noir.
Il faut savoir que les couleurs sont de bases déjà pré-enregistrées dans le NXT (BLACKCOLOR, BLUECOLOR, GREENCOLOR, YELLOWCOLOR, REDCOLOR, WHITECOLOR) et que le capteur de couleur doit être orienté dans la bonne direction et à environ 1cm du sol.

task main()
{
   motor[motorB] = 100;   
   motor[motorC] = 100;
   while(sensorValue(colorSensor) != BLACKCOLOR)
   {
      wait1Msec(1);  
   }
   motor[motorB] = 0;   
   motor[motorC] = 0;
}

Le signe « != » veut dire « différent de ».

Donc ici on peut voir que tant que la couleur détectée et différente de noir (BLACKCOLOR), le robot avance.

 

- Le capteur S4 (sonar)

 

Il peut capter une distance allant de 1 à 255cm.

La commande SensorValue(nom du capteur) permet récupérer cette valeur.

Par exemple, si vous placez le sonar à l’avant de votre robot et que vous voulez que lorsqu’il détecte un obstacle a 20 centimètre, il tourne à droite pendant 3 seconde puis qu’il reprenne sa route et ainsi de suite :

 

#pragma config(Sensor, S4,     sonarSensor,      sensorSONAR)
task main()
{
   while(true)
   {
      motor[motorA] =100;
      motor[motorB]=100;
      while(SensorValue(sonarSensor) >= 20)
      {
         wait1Msec(1);
      }
      motor[motorA] =100;
      motor[motorB]=-100;
      wait1Msec(3000);
   }
}

 

Nous nous sommes rendu compte que lorsque que le robot devait tourner, cette commande n’était pas très précise car la distance sur laquelle le robot tourne est équivalente à la charge des piles du NXT. Au plus le parcours est long, au plus le décalage sera élevé, le robot ne tournera donc pas exactement comme vous le voudriez.

motor[motorA] =100;

motor[motorB]=-100;

wait1Msec(3000);

Pour résoudre ce problème, nous avons utilisé la fonction nMotorEncoder[] qui permet de récuperer le nombre de degrés parcourus depuis l’initialisation. Cela nous permettra par exemple de dire au robot d’avancer jusqu’à ce que les roues aient effectué une rotation de 90°

Nous utiliserons aussi la commande nSyncedMotors qui synchronisera les 2 roues

Un exemple vous fera mieux comprendre, reprenons le code du sonar :

#pragma config(Sensor, S4,     sonarSensor,      sensorSONAR)
task main()
{
   while(true)
   {
      nSyncedMotors = synchBA                     // nous synchronisons le moteur B au A
      motor[motorA] =100;
      while(SensorValue(sonarSensor) >= 20)
      {
         wait1Msec(1);
      }
      nSyncedMotors = synchNone;                  // on désactive la synchronisation des moteurs

      nMotorEncoder[motorA] = 0;                  // Etant donné que le robot est toujours en                                    mouvement, il faut 
                                                    réinitialiser cette valeur à 0 afin d'assurer le bon point 
                                                    de départ pour les  90 degrés.
      motor[motorA] =100; 

      motor[motorB]=-100;

      while(nMotorEncoder[motorA] != 90)         // tant que le moteur n'a pas tourné sur 90 degrés

      {
         wait1Msec(1);
      }
   }
}


Voilà,

Imaginez les possibilités avec quelques bases en langage de programmation « C ».
En tout cas, les possibilités de s’amuser son infinies !

Ce qui est intéressant aussi, c’est que le robot est capable d’exécuter des montagnes de lignes de code en moins d’une seconde !
Et lorsque le robot réussi l’objectif que vous lui avez donné, cela ne vous apporte que du plaisir.

Je vous souhaite une aventure dans le monde de la robotique !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>