RSRC LVINLBVW($ ($`@@ ,Nnܤ^c/ N֓ܤ^c/ ُ B~ikn]z7&LVINROBOLAB New in 2.9.4.viP9 cL P d-` cpP"@P@flg@oRt@eofudfP0RootFolderName p0dfd P0txd P0old P0ext8 P@@@0 cP"@P@flg@oRt@eofudf$P@0FileDataStructurep@0dfdP@0txdP@0oldP@0ext8 P@@@0 cP"@P@flg@oRt@eofudf&P@0MasterPathListp@0dfdP@0txdP@0oldP@0extnP"@P@flg@oRt@eofudfP0 FileLaunched x0dfd P0txd P0old P0exth!Wait until done`0name or relative path`0 Control Name`0 Control Name`0 Control Name`0name or relative path`milliseconds to waith!Front Panel Window:Open`!Wait until done c$@0 FileLaunched p@@P @!status @code@0sourceerror in (no error)@milliseconds to wait@!Wait until done@!Auto Dispose Ref@0 Control Name @SValue@0 Control Name @SValue@0 Control Name @SValue@2 appended path@2 appended path@2path@0RootFolderName($@@0FileDataStructure*&@@0MasterPathList cH c c< c<"b@Set Control Value Variant c@ c< c@ c< c@ c< c@ c  c c c@ dP``` d<']x@P>"ROBOLAB New in 2.9.43Bud1 IlocblobDataIlocblob!DataicgoblobImagesIlocblob!ImagesicgoblobMoviesIlocblobZ!MoviesicgoblobProgramsIlocblob}Programsfwi0blobicnvProgramsfwswlongProgramsicgoblobTempIlocblob}TempicgoblobTextIlocblobZ}Textfwi0blobicnvTextfwswlongTexticgoblob  @ @ @ @ E DSDB ` @ @ @ RSRC LVINLBVWo |`@A<ܮ$z< ܮ$z< ُ B~jo_{ $LVIN Autorun.viLVINBuildRoboPage.vi& p @!change?@@j@Intro Playing with Controllers and the NXT

April 24th, 2007

Chris, Chris, and Yves Table of Contents

#contents StartUpStartUp NXT/SysQuake Communication

To start with, we played a little with the new connection between SySQuake and the NXT using direct Bluetooth Commands. We did this by the following code:

use legonxt;

try

fd=nxtopen('/dev/cu.legway-DevB-1');

catch

fd = 3072;

end

// play a cos wave to check connection

for t = 0:0.01:6*pi

nxtplaytone(fd, 740 - 200 * cos(t), 0.1);

end

//nxtclose(fd); // close connection

First load the driver file, then open the NXT - after setting it up in the System Preferences on the Mac, and then sending out a cosine wave of frequencies. Note that if you closed the NXT it would close the connection before the music was played.

Next we started to play with a little LEGO car.

Open loop responsemOpen loop response Open Loop

The first step is to measure the open loop response. We did this in robolab - although the goal is to some day have it all run out of SysQuake. Below is a simple code that have the car move forward while measuring the angle every 10 msec. You can run it by clicking here - and then click on the graph to add new data to it. doggy.jpg DefaultProgram 1.viDataSet001.txt SysQuakeSysQuake Read in data file

file=fopen(getfile)

while ~feof(file)

a(end+1,:)= fscanf(file,'%f %f')';

end

extract columns and subset

time=a(:,1)

pos=a(:,2)

time2 = time(time > 0.2);

pos2 = pos(time > 0.2);

linear fit

Phi=[ones(size(time2)),time2]

theta = (Phi' * Phi) \ (Phi' * pos2)

plot both line and curve (theta is y0,slope)

clf

plot(time',pos')

line([theta(2),-1],-theta(1),'r')

Find difference and fit exponential

difference=pos-time*theta(2)-theta(1)

difference(difference<0)=0

plot (time,difference)

plot (time(1:end/4)',log(difference(1:end/4))')

and do a fit

theta = (Phi' * Phi) \ (Phi' * log(difference(1:end/4)))

define tau (response) and alpha (gain)

tau=-1/theta2(2)

alpha=theta(2)

and plot

clf

plot(time',(alpha*time+theta(1)*(1-exp(-time/tau)))')

plot(time',pos','r')

FitPlot.jpgNonlinearPart.jpgTotalFit.jpgexpPlotjpg.jpg Close LoopQClose Loop Thus we have the model and all that remains is to implement a controller which we did with the PID_ct.sq, which resides in the Contents of SysQuake. It has a front panel that looks like:

The second portion of the work was to have SysQuake and Robolab talk. As a temporary solution, we wrote a quick code that talks over TCP/IP - the code is below - you have to enter the correct IP address before running the program - and then SysQuake will send a number - that is Kp - and a new program is loaded into the NXT. Then you can grab the data and when SysQuake sends "data" these data will be sent back to SysQuake and plotted next to the simulation results.PID.jpgYves.vi #define PageTitle[TITLE,FONT]=TITLEFONT
TITLE is in font FONT
NOT WORKING YET2: .  StandAlone Loading...dpx40,<$6084|8<x<xLDHX t^(|@@P|T<x<x^VIDS Autorun.viVIDSUndo.vi4PTH0VIDS ShowPage.vi8PTH0VIDS ReadBook.vi0PTH0VIDSGetPathtoFile.vi,PTH0VIDSBuildRoboPage.vi(PTH0VIDS_RB2Globals.vi$PTH073POWX4D 3 code r7p9w> 3b1H"\8bP!|dx|CxbkA}hN!A8!@,@H,@Ha|i8`N !8@|cx<2`$A|N!A8!@,@K}t}ky@H0}t}kyAK@9$99::"H 9D9D"}kyAH"t:@,@H"hq|@H> 3b1"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K9H!9|8888Lb <W`sA|N!A8!@9H" }kyAH!"L1Q,@H"hq|@H> 3b1@"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K9L!8b<`A|N!A8!@9L"}kyAH :@,@H"hq|@H> 3b1X"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K9P98999ā > 3b1ؒ"\!888|Cx<`=4A|N!A8!@,@H9v}t|hAH(!b<a`̐A|N!A8!@a|i8`N |!<a`A|N!A8!@b:"P"!~xb<a`ԐA|N!A8!@b=GeatVa}i8!@N |!b<a`A|N!A8!@!b<a`A|N!A8!@a}i8!@N |!b<a`̐A|N!A8!@",@H0!~#x<``A|N!A8!@99|h@H0!b<` A|N!A8!@9ԁa}i8!@N 9v}t|h@H(ԑ 3b1"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K9T9\9\!4bL< `A|N!A8!@,AHP!88|Cxbk8A}hN!A8!@,AH4"}kyAH::"d 9`9`!8bD< `A|N!A8!@,AHؔ!8bH< `A|N!A8!@,AH""}kyAH9d! b<`A|N!A8!@9d"&}kyAHt9h"$:~x~в}t}kyAH@!98P88X8 ~x<`6 A|N!A8!@H8!88P8X8 ~x<`YTA|N!A8!@,AH9h"*}kyAH9l!8b <`A|N!A8!@9l".}kyAH9p!8b<b`hXA|N!A8!@,AH@9p"2}kyAH9p> 3b1 "\9> 3b1 "9> 3b1 Ȓ"!8888b<2`8A|N!A8!@!8P888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@Hp9t"3}t}kyAH(:,@H :,@H $:,@H 4:,@H <:,@H D:,@H L:,@H T:,@H \::""> 3b1 ,"8bĂ(Ubk@}hN 9}t|h@H9}t|h@H 9t"6}kyAH!8888bP<2`8A|N!A8!@,@HHXa|i8`N 9}t|h@H9x"7}t}kyAH,:,@H :l,@H $:t:"P"> 3b1p"8b,Ubk@}hN 9}t|h@H9}t|h@H 9x":}kyAH !8888bP<2`8A|N!A8!@,@HHa|i8`N 9v}t|h@H";}t}kyAH::"9|9||">}kyAH90:,@H $:,@H <:P,4D:""T> 3b1"\8bP0Ubk@}hN 9v}t|h@H9v}t|h@H9$}t}kyAH9H 3b1@"\8bP4Ubk@}hN 9v}t|h@H9v}t|h@H9"F}kyAH@:@,@H"hq|@H> 3b1@"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K9=TDaPTL""4:""Hl> 3b1"\!888P|Cx<`=4A|N!A8!@,@H$9v}t|hAH(!bT<a`̐A|N!A8!@a|i8`N |!bT<a`A|N!A8!@!bP<a`A|N!A8!@a}i8!@N |!bT<a`̐A|N!A8!@"`,@H0!~#x<``A|N!A8!@9`a}i8!@N |!<a`A|N!A8!@bP:"P"X!X~xbP<a`ԐA|N!A8!@bT=OAatrd9.h9x:"$"|=a(9$":,90=3a <98":@9D9a}i8!@N 9v}t|h@H Bb,AHb,AHH9"J}kyAH"L1Q,@H"hq|@H> 3b1"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K}ky@H ::"99"N}kyAH9|Wx!988P8P8~x<`TA|N!A8!@,AH 9"R}kyAH}ky@H ::"99"V}kyAH9p9> 3b1"!8888b<2`8A|N!A8!@9v}t|h@H9"W}t}kyAHh8:,@H ,:l:"@"T> 3b1"\8bP8Ubk@}hN 9v}t|h@H9v}t|h@H 9"Z}kyAH> 3b1"\!8P888bP<2`8A|N!A8!@,@HH 3b1"!<88|Cx<`=4A|N!A8!@,@H9}t|hAH(!b<a`̐A|N!A8!@a|i8`N |!b<a`A|N!A8!@!b<a`A|N!A8!@a}i8!@N |!b<a`̐A|N!A8!@",@H0!~#x<``A|N!A8!@9a}i8!@N |!<a`A|N!A8!@b:""!~xb<a`ԐA|N!A8!@b=VAatr99:""99":Ғ909a}i8!@N 9}t|h@HHBb,AHb,AHH9"^}kyAH4!8888bP<2`8A|N!A8!@a|i8`N 9v}t|h@HH"_}t}kyAH9T"}kyAH :@,@H"hq|@H> 3b1"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K9X<> 3b1ؒ"\!<88|Cx<`=4A|N!A8!@,@H9v}t|hAH(!b<a`̐A|N!A8!@a|i8`N |!<a`A|N!A8!@b:"P"!~xb<a`ԐA|N!A8!@b=RealV9a}i8!@N |!b<a`A|N!A8!@!b<a`A|N!A8!@a}i8!@N |!b<a`̐A|N!A8!@",@H0!~#x<``A|N!A8!@9a}i8!@N 9v}t|h@H( Д!8<~x<M`A|N!A8!@b9X"}kyAH "L1Q,@H"hq|@H> 3b1"\8bP!|dx~Cx<`PA|N!A8!@a|i8`N > 3b1 "\8bP!|dxb8<`PA|N!A8!@a|i8`N 9v}t|h@K}t}ky@H}t}kyAH|}t}kyAHH!8b@<2`+TA|N!A8!@,@K\,@H|qx Q~N a|i8`N 9 w> 3b1 "\8bP!|dx|CxbkA}hN!A8!@,@KX,@KL,@K(,@K0K9 wK9wK|rx|Qx~-UL9'~#x!|dx|CxbkA}hN!A8!@,AHa|i8`N |qx|Bx~(N P> 3b!KlP> 3b!KPP> 3b!K4P > 3b"KP;> 3b",KP8,> 3b"HKP0> 3b"dKP> 3b"KP P> 3b"Ka|i<` 3`c"N |qx9&}t|hAKHK,a|i<` 3`c#N |qx9&}t|hAKK|Qx~-> 3b#H 9'~#x!|dx|CxbkA}hN!A8!@,AHa|i8`N |qx|Bx~(N P<> 3b#KLPd> 3b#KP> 3b$KP@> 3b$PKP> 3b$K\P X > 3b$K P   > 3b%KP p > 3b%@KP   > 3b%|KlP   > 3b%K0 X > 3b%K X X  > 3b&0K   P> 3b&lK|> 3b&K@P> 3b&KP\ > 3b' KP > 3b'\KPl> 3b'KPP(> 3b'KP<> 3b(KP> 3b(LKP> 3b(K`Pp@> 3b(K$P> 3b)KX> 3b) 3b)xKpP> 3b)K4P> 3b)KP > 3b*,Ky}hN !K۩"(,@H81!8~#xb(kkk A}hN!A8!@",,@H81!8~#xb,kkk A}hN!A8!@"0,@H81!8P~#xb0kkk A}hN!A8!@"4,@H81!8P~#xb4kkk A}hN!A8!@!K"8,@H81!8P~#xb8kkk A}hN!A8!@!K!K}H\|= 3a7l}hN!A!8@~Cx<2`0ؐA|N!A8!@,AK4y}hN !K"Ē":""Ă"$,@H 11 "=GPaRF 9 9(}ky@H"(1q b= = = =====:9=a9 =PTaAB"x":""x9T,}ky@H",1q bT= p= x:|9:9=a\9`=PTaABd"x"X:"P"x90}ky@H"01q b= = 098:<9@9H=a9=PTaAB"x":""x94}ky@H"41q b9=a9=PTaAB̂"x":""x!K=9D8}ky@H"81q bD=@p:|t9x=@aL9P=PTaABT"x"H:"@"x!K%!KA!b<D` 3b1+5 > 3b1/5> 3b1/d5> 3b15@> 3b13В5D!8|Cx< `HA|N!A8!@y}hN |,oL (dDvt8  l  ,   h  l,hvpd4,hv<xl$l(`Pvh <+/ /0124 3 TP+/L/043# 4&@& H&&|%%* $&'0'()#)($( (\))L$`*<$$%%P''l33334(`l (dTL !!!"""8"T"p"""#3CODE rX7p(`q7.0b71Oldest compatible LabVIEW.?@>:<llpfPPRP@0 StyleSheet@@0data@Contents@0info~NI.LV.ALL.VILastSavedTarget0MacNI.LV.ALL.goodSyntaxTargets%@0Mac99ݽwp1 1`p     <DTHPD^9P884;~@0Folder^N p @!change?@@j@G@FSD@lBkUndo.viWD ReadBook.vi%.0f%.0f%.0f%.0f%.0fFPHP Autorun.viFPHPD^8~ rt&^^-4X>F\"<:cXXLlH wl\ p 4 7,  H||4Q4E || , x@d\ d1. ( ^ 10||4 L dPx4 N EuPx8hBT4 2 I }Px0  Ed<  P T  d 0 dd\" .d` ]x|4 d t@PldA ~H|<   $ T0 _ ~8hBPM@PldA ~x d86 ~bk@8 6 ~kHk,0 _ ~8 hBP<N | | | 0 rd& 8*0 sd 0 sd, *0 Ud .d8 hdB dR |0 rd' 0  !d4 |4 0d (k0 | |8 6 Pbrrx@PlLA Pb@+8h BM|0 _ Pb86 Pbrr0 _ Pb|$@PlLA Pb*0 rL' -0 zL& 8h8h B \ HN0 UL d1d8hLB R4 0L 0 sL h0 wL, -0 )L|4Q<j@L|,l 4 N  Yh8h B,T4 2 n}0  jd0AM $6,4 <,< 4|< P ..^BDHP Autorun.viLVINBuildRoboPage.viPTH0LVINGetPathtoFile.vi <PTH0LVIN ShowPage.viPTH0LVIN ReadBook.viHHPTH0LVIN_RB2Globals.vi;PTH0LVINUndo.viC\PTH0L BDHPD^&8M 9 yL~ r99^*^\#KcS,55H50( T | TH D1H. (4 &KKX8 p@x D 43 & " (43\   p43  p 43, .& `@43@ 43&.* P43 &. * x43x 434 ,tD @H4QH ,<p4 J  `]4  2  ]H0   8hB||440430&"  \ p  \D1 ,P?  < (  < 4 &K <O] P43 < 43 <  <9H |843 < ( 43 <   <  , @ ,4Q ,  8| , ,  LH0  L 8h LB p |4 J L `Xp4  2 L X(4 704/DYy  L t T40 `ri0@P64K6VF4/,  :Ph H ,  L T40 40 40 ,  ,42  THLiiL)2MA] WGS3p,H=<B0A4p0@ $lG|gtWT4 J$]Gl{`],P4 jy`W4 r`W84  `Xt,HL0LE(0$24 J 6o`X\4 B6`X0@P6l J<, L4 $pu`r 6hd !$HBdMulticolumnListbox (strict) v!h!t4! JB`WT,"ht "(h"0"=BOH "0"?BOH0">0"@" "6lJ" "X "68Kt@"PBB3 ""@"ABِ" "(X,"H((d1H "B@`0"3$ " @L8"t.L U`D#1p,8I@/@ # 4# &KmL$$0$`C.4$ B`P %4%3F %@0%*H $DAJE %B`4%@p %BP6`% %@@H`H%E\%E4%3XE % %@ %l 4%3H4%38G%L4%L0%$<%,%H8 %B`0%L24,%JxL%D%$ %@$4%  2x 4&QK8&hxB(&|0& x &|0&@<< l4& B<`X'<$''  ,'H(,((H,'L$| 'B`0'|2,'x  D'2| St ' P"!"4' K P[TL( ( 4(g P NStc4(Q"<K!O(|(",(!"8"l"4( J!D 1K`X8)h!DB!xl4)  2!D ?J] 0* !D <K,*!P!DP *@"""4*|#'d0*" d*!# #/W%x%VIp u+#+$,+#$$t$%( +#8-$D.t +#81$.t+$t0+#8#Q #0) +#8%H$t +#8$$t0+#8#R JWP0+#8%TJWP+$ +#8),%'0+#8$0S#0)+% +$D$%H$@+#8%#.W&=+%(<+O'8-&<9+&&&l+'8+h&B@+ 6&-))*4+ J&`# ,@@),'8',,@&X:&T,"Cc, P," P,",@#8,'%(,,'#8,$H,),&&=4,((!4,/)$0JE,),*<,)***+<++,t ,)`*L+< ,)`-t**,*4,0)`)3($0 ,E ,)`+\* ,)`**4,0)`)2( 0,E4,0)`+(0  E,* ,)`,,+<4,0)`*81$ E ,)`++4,0)`+-E ,+ ,)`5,4,+4,0)`,`/$ E,+< ,)`,,t4,0)`,( E ,,t4,0)`,, E 4,..p0,*H.('A JE4,/ /(p ,B-D* ,BP-D* ,B-D* ,B-D*,,---..T.t ,B@--D* ,@@H-t-D*,.T#\,-)E),*.tH,-tE,4,//'=KF,0,0$,00$0,$3 ,/p0X0$ ,/p00$,04,0/p/&5'=#9F ,/p10*4,0/p/%'%#!F4,0/p0D$% !F 4,/4p,,1-), ,B1*4,33p0,*H2#   ,B1*, .t3P,,x$<-1t ,BP1* ,B1*,,1t12`233P,,".2,, -2`,, '.T3 ,@@H11*,`-D1,3P0 ,B@11*H,1  !\,1P  P4,/4 ,4,4 ,4l5444,04l4",,4l/p)`$H,,4l)`H/p,4+4,5t52,,51-tH,54,$LxE4,$LF0 4,$L\G<04,$77$p ,h\,6HEH, 4,/85,8,8,88 ,8,9H88 ,8,:P9 4,08,8`4,08,8t4,9|:0 ,8 \<,6XFK @ L <D(B aC ;i 1 ;i , 84,:4;02 ,9H,:PD,2LX,-=> ??AH@h<- =$;8, , <4- J>L *L`S\@.P v>LB45? YH.R=DL=pX@\8. v>  5X X@0 6>  @ hhh0|,0>>?@8?L80h> B? <00 W>L 700 w>L :I0|@0 6>   ggg00 _>  580h>LB@?0|40Q>L:I@Z,0ABTBAx40 J@ :`P01 U>L 7L81h@BAA1|1|,1 ,-1=$41B8B01=$< 41 2@ =HP02 @ :I,2B:P9HL H2BAn1EH ;i D21$CC?_4^Z0 2C\DDC42 &KC\?m]&d3CD$Dx3C 3C\DD$433C\D[O_W 3C\6DK433C\E]?OG433C\E\?OG3D$3Dx,366686lG ;i 1 ;i 1 ;i 36836l,,,36FGaL ;i 1 ;i D31$HH0`8!@3I3I43 &KHH]&04IIIJ<JJKtK 4HHILI4I443HHH_ 4HHII 4HHJ\I443HHH<443HHJ(84J< 4HHIJ<443HHI8; 4HHK,J443HHJ64J 4HH6lJJ4Kt443HHK`74J 4HH68KKt443HHK44K 4HH6KK443HHK5,4HHC\4 4K Dx4Kt,4PHHC\4J ( @@? AAB A@?f8  F T b d Lucida Grande Lucida Grande Lucida Grande00RSRC LVINLBVWo | 4dRSIDTLVSRhBDPW|LIviCPTMDSTMDFDSLIdsVICDversDLDRFPTD0CPMpDVITSXICONlicl8DTHPHOBJTRec(STRGLIfphFPHP|OMIdLIbdBDHPHISTPRT FTAB x=pl ^ p. ~ Š&$G' sР_?@_< w_\ ~p__ `X` v@d ylu u, {Su8uuv8 uiv } vA w$ W wp qw wx |xT C x'xðyT yڠy |+ y @zXz Az]`{HI{ w{ }`|T|P |"}P }^@$} ,%~ x&~d ݞp'~(~ wb`)X* y`, yh-` u4 . Z/ |ߐ1`023 t4`8# n  ی 0` }0 ~!$#+ @o4\ P0 Autorun.viBud1s.txtIl Pages.txtIlocblobZ! templates.txtIlocblob!  @ @ @ @ EDSDB ` @ @ @,ROBOLAB: 2.9.4 New What's new in ROBOLAB 2.9.4. ROBOLAB, 2.9.4, New, Manuals 0 RL_home.jpg Chapter 1 ROBOLAB 2.9.4 Contents Firmware Download (RCX) Sub-Routines Floating Point Numbers Evaluate Expression Block Vernier Sensor Support Vernier Sensor List NXT-to-NXT Communication NXT On-Screen Text NXT Text Placement Additional Resources TitleSimple.jpg What's New in ROBOLAB 2.9.4 #pagename URL=http://www.ceeo.tufts.edu Goto=#homepage Goto=#prevpage Goto=#nextpage Stop= PageNumber.jpg #thispage/#totalpages TitleSimpleCOM.jpg What's New in ROBOLAB 2.9.4 #pagename URL=http://www.ceeo.tufts.edu SelectCOM= Goto=#homepage Goto=#prevpage Goto=#nextpage Stop= PageNumber.jpg #thispage/#totalpages ROBOLAB 2.9.4
Welcome to ROBOLAB This book describes the new features incorporated into ROBOLAB (TM) 2.9.4. On each page is a description of the new programming abilities of this software release and many include sample code to get you going.

To get started, click the "next page" arrow in the top navigation to progress through the book. RL_laptop.jpg nav_background.jpg
    Navigation
nav_home.jpg Goto=#homepage Return Home nav_prev.jpg Goto=#prevpage Prev Page nav_next.jpg Goto=#nextpage Next Page nav_stop.jpg Stop= Close Bookprint_button.jpgPrint=Create web-page version for printing Contents
Below is a list of the new features covered in this book. Click on a specific one to jump to that page, or use the "next page" button at the top right of this page to progress through them sequentially.

* Improved firmware downloading (RCX)

* Faster sub-routines

* Update to floating point number comparison

* New math functions for the Evaluate Expression block

* Extensive Vernier Sensor support

* NXT-to-NXT mail communication

* More features for NXT on-screen text

The last page of the book has useful links for additional resources. EditImage001.jpg Program001.vi Program002.viRL_home.jpg Firmware Download (RCX)
Admin_firmware.jpg Run=Firmware.vi In ROBOLAB 2.9.4 there is increased reliability with downloading firmware to the RCX.

Click the download firmware button above to download the lastest firmware to your brick. (This is the same option found in the Administrator section of ROBOLAB.) Sub-Routines
In ROBOLAB 2.9.4 the sub-routines have been optimized to run faster. Additionally, there is a fix so that sub-routines can be called from within other sub-routines.

The program below defines two sub-routines, one of which calls the other.SubRoutine.viSubRoutineLocation.pngSub-routine icons can be found in the Structures menu found on the main Functions Palette. Floating Point Numbers
In ROBOLAB 2.9.4 it is now possible to properly compare two floating point numbers.

The program below defines two variables and sets them (using "Evaluate Expression"), and then it performs a comparison between the values. On the screen is displayed the relationship of the two values.FloatingPointCompare.viScreenCompare.jpgEvaluateExpressionLocation.pngEvaluate Expression can be found in the Containers menu on the main Functions Palette. Evaluate Expression Block
ROBOLAB 2.9.4 has more math functions than ever before. The Evaluate Expression block now supports sin, cos, tan, asin, acos, atan, sqrt, abs, mod (%), AND, OR, and NOT.

Below is a program that evaluates a lot of these functions.EvaluateExpression.viScreenEvaluate.jpgEvaluateExpressionLocation.pngEvaluate Expression can be found in the Containers menu on the main Functions Palette. Vernier Sensor Support
Vernier Sensors (http://www.vernier.com/probes/) are used around the world. Now ROBOLAB 2.9.4 has extensive support for a wide range of Vernier Sensors. With these sensors you can program forks, events, wait-fors, loops, and do datalogging.

The set of new Vernier icons can be found in the Vernier menu under "User Libraries" on the main Functions Palette.VernierLocation.pngSee the next page for the complete list of the 43 different Vernier Sensors you can now use with ROBOLAB. Vernier Sensor List
There are a total of 43 different Vernier sensors supported in ROBOLAB 2.9.4:

Accelerometer 5g (m/s^2), Accelerometer 25g (m/s^2), Barometer (kPa), Charge +/-0.5V (nC), Charge +/-2V (nC), Charge +/-10V (nC), Colorimeter (%T), Conductivity 200 (uS/cm), Conductivity 2000 (uS/cm), Conductivity 20k (mS/cm), Current (mA), Dissolved Oxygen (mg/I), Electrode Amplifier (mV), Flow Rate (mm/s), Force 10N (N), Force 50N (N), Force Plate 850 N (N), Force Plate 3500 N (N), Hand Dynamometer (N), Instr.Amp. +/-20mV (mV), Light 600 (lx), Light 6000 (lx), Light 150K (klx), TI Light (relative), Mag. Field 0.3 mT (uT), Mag. Field 6.4 mT (uT), ORP (mV), Oxygen Gas (ppt), pH (pHx10), Pressure (kPa), Relative Humidity (%), Salinity (ppt), Soil Moisture(New) (%), Soil Moisture(Old) (%), Sound Level Meter (dB), Temperature TMP (deg C), Temperature STS (deg C), Temperature EL (deg C), Thermocouple (deg C), Turbidity (NTU), UVA (mW/m^2), UVB (mW/m^2) NXT-to-NXT Communication
In ROBOLAB 2.9.4 it is now possible to have NXT-to-NXT communication. This is achieved by first pairing the two bricks with BlueTooth and then sending mail messages between them.

In the first program below, the sender will send mail when the touch sensor is clicked.

The second program, running on the receiver, will beep every time it receives a new mail message.

Don't forget to pair the devices prior to running the programs. This is done using the on-screen menu.MailSender.viMailReceiver.viSender:Receiver: NXT On-Screen Text
For writing text to the NXT screen, ROBOLAB 2.9.4 now supports both "centering the text" and "bigger fonts".

These are achieved through the [/center] and [/big] tags respectively.

Below are examples of these two options. The next page shows how to position the text exactly where you want it.TextCenteredBig.viScreenFont.jpg NXT Text Placement
In ROBOLAB 2.9.4 you can now position text on the screen at a specific (x,y) location.

Remember that the screen is 100 by 64 and the (0,0) location is in the lower left hand corner.TextPosition.viScreenLocation.jpgLocationLocation.pngNXT Formatted Text (X,Y) can be found in the NXT Commands menu on the main Functions Palette. Additional Resources
This concludes the overview of new features in ROBOLAB 2.9.4.

For more information regarding the software, and for further resources including programming guides, activities, and additional information, please visit the following websites:

* LEGO Engineering:

http://www.LEGOengineering.com

The LEGO Engineering site contains more detailed manuals on using the ROBOLAB software with both the RCX and NXT, as well as classroom activities.

* The Center for Engineering Educational Outreach (CEEO) at Tufts University:

http://www.ceeo.tufts.edu

* The LEGO Education Homepage:

http://www.LEGO.com/education

* MINDSTORMS at National Instruments:

http://www.ni.com/company/education/mindstorms.htmRL_laptop.jpgRuling on templates: All must have the same set of boxes in the same order. Boxes with location 0,0,0,0 will be hidden and not available to the user. All must have the same page dimensions and header. Also all boxes must be on a separate line. NEWpagename
Type Text Here NEWEditImage NEWProgram NEWProgram NEWpagename
Type Text Here NEWEditImage NEWProgram NEWProgram NEWpagename
Type Text Here NEWEditImage NEWProgram NEWProgram NEWpagename
Type Text Here NEWEditImage NEWProgram NEWProgram NEWpagename
Type Text Here NEWEditImage NEWProgram NEWProgram NEWpagename
Type Text Here NEWEditImage NEWProgram NEWProgram Bud1%  @ @ @ @ E%DSDB` @ @ @{\rtf1\mac \f4\fs20 {\fonttbl {\f0\fswiss Helvetica;} {\f4\fswiss Helvetica;} } ${\footnote VernierForceSensor.vi} #{\footnote VernierForceSensor_vi} K{\footnote VernierForceSensor.vi} \b VernierForceSensor.vi\par \b0 \par \par \b Connector Pane\par \b0 \{BMC :tempc.bmp\}\par \par \b Front Panel\par \b0 \{BMC :tempp.bmp\}\par \par \b Block Diagram\par \b0 \{BMC :tempd.bmp\}\par \par \b \par \b0 } 6BM6 6(  3f3f3f3fBM6(C33C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C3333C33CCCGGG222222^^^AAA777999333000KKK666GGGC555TTTZZZ TTTCbbb!!!vvv]]]CUUUEEE333nnnnnnҗ###33CUUU !!!___QQQ3333CUUU777(((+++:::...%%%!!!3333CUUUHHH3333C,,,###,,,TTT...;;; fff,,,TTT...UUUOOOGGGBBB1113333CRRR]]];;;CCCRRR]]],,,###,,,TTT... fff,,,TTT...3333C!!!$$$///,,,!!!$$$RRR]]]CCCRRR]]]3333C###fffdddffffff000###!!!$$$,,,!!!$$$3333C ###;;; ######ffffffffffff000###3333C///"""'''!!!$$$;;;nnnrrr!!!$$$ ### ###3333CSSS]]][[[SSS]]]///"""'''!!!$$$nnnrrr!!!$$$3333C---TTT///JJJ;;;AAA===---TTT///SSS]]][[[SSS]]]3333C---TTT///JJJ;;;AAA===---TTT///3333C3333C3333C3333C3333C3333C3333C33333333C333333333333C333333333333C3333333333333333C333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C33333333333333333333333333C333333333333333333333333C333333333333333333333333C333333333333333333333333C333333333333333333333333C333333333333333333333333C333333333333333333333333C33333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333C3333333333333333333333333333f̙wwwwwwwwwwwwwww̙fC33333333333333333333333333333̙̙wwwwwwwww̙̙C33333333333333333333333333333f̙wwwwww̙fC3333333333333333333333333333333̙f̙̙̙̙C333333333333333333333333333333f̙̙̙fffffffC3333333333333333333333333333333̙̙wwwwwwwwwwwwwwwfffffffffC333333333333333333333333333ffwwwwwwwwwwwwwwwfffffffffC33333333333333333333333333̙̙wwwwwwwwwwwwfffffffffC33333333333333333333333333̙̙wwwwwwfffffffffC333333333333333333333333f̙wwwwwwwwwwwwfffffffC333333333333333̙̙wwwwwwwwwwwwwwwwwwwww̙fC333333333333f̙̙wwwwww̙̙̙C33333333333̙f̙wwwwwwwwwwwwwwwwwwwww̙f̙C333333333333̙̙wwwwwwwww̙̙C33333333333̙fwwwwwwwwwwwwwwwwwwwww̙fC333333333333̙̙wwwwwwwwwwwwwwwwww̙̙C33333333333̙̙f̙C333333333333̙f̙̙C33333333333̙fwwwwwwwwwwwwwwwwww̙fC33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̙̙̙f̙̙̙C33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̙f̙̙̙̙̙̙ffC333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333f̙f̙̙̙̙̙̙̙C3333333333333333333333̙̙̙f̙f̙ff̙̙̙f̙̙ff̙f̙̙f̙f̙ff̙f̙C33333333333333333333f̙f̙̙̙̙̙̙̙̙f̙̙̙̙̙̙̙̙̙f̙C333333333333333333̙̙̙ff̙f̙̙ff̙̙̙fff̙̙f̙f̙̙̙C333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙fC333333333333333333ffff̙f̙fff̙ffff̙̙ff̙ff̙̙̙C333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙fC333333333333333333̙̙̙ff̙f̙ff̙f̙ffff̙ff̙fffC333333333333333333ffffffffffffffffffffffff̙C333333333333333333C33333333333C3333333333C33333333333C333333333333333333C333333333333333333C333333333333333333C333333333333333333C333333333333333333C333333333333333333C333333333333333ffffffffffffffffffC3333333333333333̙̙̙̙̙̙̙̙̙̙̙̙ffffffffffffffffff̙̙̙̙̙̙̙̙̙̙̙̙,,,TTT...C333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙ffffffffffff̙̙̙̙̙̙̙̙̙̙̙̙̙RRR]]]C3333333333333333\\\\\\̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙!!!$$$C333333333333333sss,,,###,,,TTT...AAA777$$$CCC000KKK666GGG̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙###C3333333333333333%%%RRR]]]ZZZ$$$:::TTT̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙###C333333333333333&&&!!!$$$CCCCCCCCC :::OOOCCCvvv]]]̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙!!!$$$C3333333333333333???###ffffffffffffEEE333%%%...$$$җ###̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙SSS]]]C333333333333333$$$ ### eee666SSSPPPQQQ̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙---TTT///C333333333333'''///"""'''!!!$$$777(((TTT666222!!!̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C33333333}}}SSS]]]---???sssHHH̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C33333333333ccc---TTT///kkkOOOGGGBBB111̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C33333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙wwwwwwwwwwwwwww̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C33333333333̙̙̙̙wwwwwwwww̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C333333333̙̙f̙wwwwww̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙C33333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙̙̙̙̙̙C333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙̙̙ff̙̙C33333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwwwwwwwwww̙̙̙̙C333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙ffwwwwwwwwwwwwwww̙f̙̙C33333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwwwwwww̙f̙̙C666!!!,,,###999333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwww̙̙̙̙CQQQ 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙wwwwwwwwwwwwf̙̙̙C+++ !!!3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwwwwwwwwwwwwwwww̙f̙̙C###nnnnnn333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙̙wwwwww̙̙̙̙̙Crrr\\\___ !!!33333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙wwwwwwwwwwwwwwwwwwwww̙f̙̙̙C,,,"""BBB...%%%///"""'''+++:::33333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwwww̙̙̙̙C33333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙fwwwwwwwwwwwwwwwwwwwww̙f̙̙C!!!''''''33333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwwwwwwwwwwwww̙̙̙̙C33333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙̙̙C33333333333333̙f̙̙̙̙C33333333333̙fwwwwwwwwwwwwwwwwww̙f̙̙C33333333333333̙̙̙f̙̙̙̙̙C33333333333̙f̙̙̙̙̙̙ff̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDDDDDDD33f33DDDDDDDDD3333̙̙̙̙̙̙̙̙C33333333333333f̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDDDDf33DDDDDD3333̙̙̙̙̙̙̙̙C33333333333̙̙̙f̙f̙ff̙̙̙f̙̙ff̙f̙̙f̙f̙ff̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDf33DDDDDD3333̙̙̙̙̙̙̙̙C33333333333333f̙f̙̙̙̙̙̙̙̙f̙̙̙̙̙̙̙̙̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙DDDf33www3333̙̙̙̙̙̙̙̙C33ffffffffffffffffff33̙̙̙ff̙f̙̙ff̙̙̙fff̙̙f̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDwww3333̙̙̙̙̙̙̙̙C333ffffff̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙ffffffffffffffffff̙̙̙̙̙̙333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDwwwwww3333̙̙̙̙̙̙̙̙CfDDDDDDDDDDDD3333f33DDDDDDfffDDD33DDD33̙̙̙̙̙̙ffffff̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙ffffffffffff̙̙̙̙̙ffffffffffffffff̙f̙fff̙ffff̙̙ff̙ff̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwDDDwwwwww3333̙̙̙̙̙̙̙̙CffDDDDDD33f33f33fffDDD3333333̙̙̙̙̙fff̙̙̙̙̙̙̙̙̙3333333333333333333333̙̙̙̙̙̙̙̙3333333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙3333333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙ffffffffffff̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙f̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙DDDwwwwwwDDDf33DDDwwwwwwDDD3333̙̙̙̙̙̙̙̙CfDDDf3333DDDDDD33f3333̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙fffffffff̙̙̙̙̙̙̙̙̙̙̙̙̙ff̙f̙ff̙f̙ffff̙ff̙fff̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙www3333f33f333333f33f33f33f33333333̙̙̙̙̙̙̙̙Cffff33DDDfff33f33333̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙ffffffffffffffffffffffff̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙DDD333333333333333333333333̙̙̙̙̙̙̙̙Cffff3DDDwww33f3333̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDf33DDDf33333333DDDDDDDDDf333333̙̙̙̙̙̙̙̙Cwwwf33f3fffwww33f33333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDDDD33f33DDDDDD3333̙̙̙̙̙̙̙̙Cwwwwww33fDDDwww33f33333̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDD33DDDDDD3333̙̙̙̙̙̙̙̙CfffwwwfffDDDf3f3ff3DDDwwwwwwfff33f33333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙DDDf33www3333̙̙̙̙̙̙̙̙CfDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙DDDf33www3333̙̙̙̙̙̙̙̙Cwww3333333333f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙3333333333333333333333̙̙̙̙̙̙̙̙3333333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙3333333333333333333333̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwf33DDDwww3333̙̙̙̙̙̙̙̙CffDDDDDDDDDf33333333DDDDDDDDDf3333f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDD33wwwwww3333̙̙̙̙̙̙̙̙CfDDDDDDf3333DDDfffDDD33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwwwwDDDDDDDDDDDDDDDwwwwwwDDD3333̙̙̙̙̙̙̙̙CffDDDf33f33f33f33f33DDDDDD33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙www3333f33f33f33f33f33f33f33f33333333̙̙̙̙̙̙̙̙CfDDDf33f33f33f33f33f33f33fff33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙www333333333333333333333333̙̙̙̙̙̙̙̙Cffff33f33f33f33f33f33f33www33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDDDDDDDDDD3333f33DDDDDDDDDf333333̙̙̙̙̙̙̙̙Cwww33f33f33f33f33f33DDDwww33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDDDD33fff33DDDDDD3333̙̙̙̙̙̙̙̙Cwwwfff33f33wwwwww33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDf3333333fDDDDDD3333̙̙̙̙̙̙̙̙Cfffwwwwwwf33f33f3333DDDwwwwwwfff33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙DDDf333333f33www3333̙̙̙̙̙̙̙̙CffDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDf3333f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙DDDf333333f33www3333̙̙̙̙̙̙̙̙Cwww333333333333333333f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙www3333333DDDwww3333̙̙̙̙̙̙̙̙CffDDDDDDDDDDDD3333f33DDDDDDDDDf3333f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwwwwf33f33wwwwww3333̙̙̙̙̙̙̙̙CfDDDDDDf333333DDDfffDDD33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙wwwDDDwwwf33fffDDDwwwwwwDDD3333̙̙̙̙̙̙̙̙CfDDDDDDf33f33f33f3333fffDDD33f33̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙̙