From 65fdb435928e281b87de818f475eca967f3ee1a9 Mon Sep 17 00:00:00 2001 From: Fenoglio Date: Wed, 22 Aug 2018 10:26:37 +0200 Subject: [PATCH] added Arduino lib to handle coderacer activities --- Doku/coderace_logos.docx | Bin 0 -> 122098 bytes Doku/coderacerlogo.JPG | Bin 0 -> 20434 bytes Doku/codewerk.JPG | Bin 0 -> 11915 bytes Doku/filmsound.JPG | Bin 0 -> 10840 bytes Doku/ineltek.JPG | Bin 0 -> 11361 bytes Doku/makerlablogo.JPG | Bin 0 -> 13710 bytes coderacer_lib_methods.pptx | Bin 0 -> 39318 bytes .../esp32_coderacer_simple.ino | 81 ++++++ .../esp32_coderacer_analogWrite.ino_ | 253 ++++++++++++++++++ .../esp32_coderacer_digitalWrite.ino_ | 246 +++++++++++++++++ esp32_coderacer_wlib/esp32_coderacer_wlib.ino | 159 +++++++++++ .../olderversions/esp32_coderacer.ino | 246 +++++++++++++++++ .../esp32_coderacer_analogWrite.ino_ | 253 ++++++++++++++++++ libraries/CodeRacer.zip | Bin 0 -> 5249 bytes 14 files changed, 1238 insertions(+) create mode 100644 Doku/coderace_logos.docx create mode 100644 Doku/coderacerlogo.JPG create mode 100644 Doku/codewerk.JPG create mode 100644 Doku/filmsound.JPG create mode 100644 Doku/ineltek.JPG create mode 100644 Doku/makerlablogo.JPG create mode 100644 coderacer_lib_methods.pptx create mode 100644 esp32_coderacer_simple/esp32_coderacer_simple.ino create mode 100644 esp32_coderacer_wlib/esp32_coderacer_analogWrite.ino_ create mode 100644 esp32_coderacer_wlib/esp32_coderacer_digitalWrite.ino_ create mode 100644 esp32_coderacer_wlib/esp32_coderacer_wlib.ino create mode 100644 esp32_coderacer_wlib/olderversions/esp32_coderacer.ino create mode 100644 esp32_coderacer_wlib/olderversions/esp32_coderacer_analogWrite.ino_ create mode 100644 libraries/CodeRacer.zip diff --git a/Doku/coderace_logos.docx b/Doku/coderace_logos.docx new file mode 100644 index 0000000000000000000000000000000000000000..c786db2011f16a73e8bffbaf239586489d48b1f1 GIT binary patch literal 122098 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 yIs(`e)c%X>F~|U(jY{d1;^-eaL4gG6CFOgO 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 literal 0 HcmV?d00001 diff --git a/Doku/codewerk.JPG b/Doku/codewerk.JPG new file mode 100644 index 0000000000000000000000000000000000000000..3c57ca2fd31a03910d7ceeda4e948b153200f5e7 GIT binary patch literal 11915 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 literal 0 HcmV?d00001 diff --git a/Doku/ineltek.JPG b/Doku/ineltek.JPG new file mode 100644 index 0000000000000000000000000000000000000000..3b5a20b1edb20de3802945fe39ee8e042c2577b7 GIT binary patch literal 11361 zcmeHMXH-+$w%$lD9zbc*1(8nZO`0HtB1C$T8WJEv2rUwdf_RW7ARtAG9!L-i0g+|_ zRO&$l1SHZCDM}FtDq=u#H|o{%?z=y(@7?jnc;m7%*3MjO%{{;MeRGXH<`|1QM12Kt zn46fH05mi-z$NepP^UPSjBzL*0I;+KWB>qQ0_bRt0DC}-6&#o+pa441rU7k-!lIpj zfCm6LdKLr$MsSV|9P5D{5L^HsOgq+Y+f`s!fn5c571&i^SAqXT1U4 zJ^dxxuhj$>STztX(fzRRWoCS}Y1K6WAT#r){j;)Q%G*(Ix3c(8JVU#jcNN%GU{`@% z1$GtqserPglBTwzrna(@DEL%V)mGF3{@EM=m;*>45C{cC0V@ClcmdwPPBB8AViocW z3k%YQKmtP*ybu^TQo$R8hTyz{AW8~~5I{#C7X;QV$S_ej(iat|E4lLUk)$XJp)2XA zW~pcyWQ6oXnMQ^nZ6mGhyd(X+wGfi}dV5)PaN0O@5E>cgC5l4_1cqwkbj7|#*9PsK zX^5DfP6)zB+vb?bcMou+EB1Xa;o;#5;VKH45MPLrmX;PoQ5mAFEDw6fheia3dEw*( zL&d)bIED=M4nYNlp)i4>I|04m7;KoX7#52{X#05isKF5kHF>y~3PN5<3E?I0g-}tF zN2sVEG}M$dm3@@pV&CBr-apWTupt3ou@T-7WB?M43=9he)lhDra+mlXIV=iSrw|4go*r7kiMtZ&1?LY6uT7y*p* z^bGWLj12S)OpJ_7ES#)hjlsgr&cVjX$IX9$kDHHIKv?pifRKa`FQ1r#n1qzHteh;r zC`1J!qbw;SE3*@XhLMShg_(tmm6c0IkWWzNmmBplz{vy{0FAUXV!$3w8d^>oYAYZD zUPRJ^SC>1tm){%B9$Gqj21X`k7FN)qmIK&BLrc4dj+UOD4!pOdIRmZ(be#124k{gG z*l+E{C>G46d@iGyN!+mN3Aat(>LC?)NE|Z@4=>*Veu=}9QqnT2YG8q>rEPS~*aT{7 zW^QX|@8IasGdG<(9qPRmJ0e^7~G-%)Euui*V+%IBE43^R(Wo-m86 z*sOBHL;6^F4yjH_kawtkW%jQTi~Aoj`$6m{uMvQamIh27EhnH4P)w4|*YuM-xO(Fo z3`sncxW{ngasFF5av^3~?=IRsHJ4c;WlK9;I~1-PuIkf-(HE?Zx-VAKkGc4=UYVd+ zoWvy8L96-hrh1u00Uu!w920fvdRH`*ZB z_l{L0;F+@W^{TiVyQOD_9;7`tdt`Tp-8gzhqkY_JTmu$y$iEPYKYAjj`SSxR@JBHf zXcEUSaz?q@c9O#;<@#ZRBG5h$O)Bth{pQX(VFwEP9SRDqPxpbYyZ@b;h;j7P4xPpA zxU%hyv~-Z9#|LixPpx55xOJ~Dxru93;BoHfYk!UU74>V>&`JA$=IZXf+SMwoK*n~g zH*OZ3VWcytHl)jy+-wozI$JwG_#oU-XBe72l!oHry9(8`vuWL=@zBI&wKteH<;g34LJ_IJu}BWxt7`7ZLpr$fV2{0rrDl&p}FgdP!h8(Y7K~)pjZw(UDYk^^os+V<}rHh z(z6p5e?IScuMsnKV@rf@Ae!d3Kcr>h<=NxD+j-5(G3sLX=F-+E>jG|i`s&LIMzv-O zfLzBK_vKk#(W_-XjEr#wl}SXA@wQ)FUo%mD`F#~P~?$6&Ig zZC{PNxn@|SOsBQCO|vYneJ(IETbDs!o1BE-*V?B6bv=u%Dqjd$VD_ospER2$Dsd@H zK33m=-kd1G>S5bdVRUrbOA7kw^ovCu$%+bMg-7-LX`e3G9n^JaG#=frG|K;_Z!*98 z9vR!90pXv&bI+lDip@xWSq_)v3ab(?S}&Lbt_EIdN86dP&s@a8r8g~$t4 zbfm7R5b@f$u!A|8FGGb*BH;9X1r}E(jan+L_UD&bDSj%-E(mz`kc_Qu9LtFDF=+dZ zFHwwEcUAqR@i2;J z>PstF9g&^K59<+C#+#r=U@ZEg(q3bP<>9wv26omsycO3pO0Oy5Waw1-UYC)s;KK=J zbV;mL>YdNoD2~tE4`(u~-8|dP7IfHxE7dU8toP{0O8mC?LP{A<4?A94VVbf{JNU@J ze|9mcVKeD)U`5+acZtPjuP1=Dk+Ws)qt;V8eETJ5ia3BE=_atw=1-J8326UouuZ;BJl zJVFY+TW)KN3xo{xK&zDSIbC=;g!ccYiqDWA1dy4IKF_jj5ZoM zn-TLVxSIbrM&8OWU64kLLrzBqZZ=4L@$YUp zK$y>enO>8^&cUM{eV4Vy08Z$Bx$8o9sz9ka3Z!z`ub>Y>Y`G z$IYY_`ZTD0fbFjdsKPlqPqeUD;)DE`?y8u`9Yl;Pycz4uw51A8t&KNDucdl;u2_1JLww)e?n59(?O?oKD2MwE{!Oi4GH zX&&&~G`+yEK#uqcy?J&pZi%s)GJ7>Jq zq7&Y7uzSFs^d`QfezorIT~l>gH9WvPeYok#_TWHMGvw@~|GJTABJ2$$$0H`U{&a8= z6;RM#o+irol$8ySbzs8Jpy~RvnYpTEs+T=)$68rA#p;^1K?kRzuBKDk(%0ReE|BUv zdfe3qutnMvT`l>TgpVh0gpHbdzDK`v&PWumWk1{m1 z@H%uyuKVkl%!@m_0Mn89ecZ_(foxCqGiCiHHG`^O454Ywl#%)A6U%p=RoI((G6Sp3 zCbZ+Q;_GjXA6B#JVUt_>);a1S#qW97SJHU)-JH_(Jr^(Ho4e(2)LOMsqQ7@O64{ed zeu~!v;VhYXTX8EVr^HL(@9HPm|=5jLbR`jX*$bousp2wa&~H^f(^$E7N|NvxM3WCb?hN)7DOR= z1K)lgwbPRmX03|bG$tu5uSAbtNR=ONyXP~)K@qw=FmbO_m7UAg#1qW-ox2umvbuPH zK+g1E=swvhX-QU3^>H5#fOtO0kC@RMs*+Lk9DXdK)TuSypU%25-LkD%o8!iAQ+K5} zg2#!DT$8xZ#B$a?jk|8yCh{g@qlSt6_?4;m(GJ2Xcr!u~C0qy6F>;pZgVxb6-H5V( zP(MKQs^2#{QZ4Qk(klEJ?w?{Q(0X+6S~LH%WP%XUXGpWMynM?7zsSQIE-W%w^Tl@Q zhDCwJ<-CJWMAiF)3+-draA~?Hnu>u% z&2q6QL#;K-S9nI3XEZ)Acd9cLmkTmsQ2KalU8yz=H^+U@L9HY+c;wH|aUIQiVx*52 zx=LGGw?>Vz+J^=#1D+-pG{Is0jgr&87a(FUK0IvXHEn20CB{FLFO*mh*u39i#Xj#o zKv*2nd&HLc)`gf>CTLj)t-fy-Ct_$<$p5@e!bGRxdVh~nXluFc*)<0}we3#wF^C{( zn}-a7X&>GkzFJ*P|z@gs>b_unIzOJ$IJtc{wA#;XPt!pxQeeH7 z=*~rEXu6b#S$;=+SAPEd=1n5BV4!aFdWIFdp3_{TRWd+^lDWzqUt8sJReq`S=_kTP zFVgNy!HOTC0_k~0p=mnP8vz?7om=$YC8^w3To#Y(2_!Y=bhiL#x2m_VT`5GoU~Coo5Bnz3~o< zPqusyVR^IIMrg2D&hR2;Z)`-RTS=_WOY{2)u4IlE2g#?;mv^E{#|+`mmkt1_bsQ3x zU@{dfv-Wpjy%(pdY^RiCyixf~FGF=nM7#?X@Hu7U%^-2kX*gDqGb;y(DL>(qX=z_0F&!4Sp|9VuyXH*7 pGDqzC_h6Q|sK?_uPHYKHtyTf9!P+b{sngP^c-XDghu6 z2zZ720oZwpO+_ELEdXd}06YKy5CixiY2XshBE#LNJ%2wV{O-$+0W=HkJoiLkVG#HlBEh4*_k zL4&Ira$e#8W!J>T{%+$5g8?8e?r;0=%7XaKFM1c1#s9_}y3l+<;DW#ffeQi`1pX!f z77~_(2uVV~!fd#!kO)Lf82FFI06-0Z0WN?Czy@dn2*47s27VPI*m*J*drwbSh@ha0 zhk&IG!U`r}jc^w9v2+y_77!8ypmIL0xVi=A$z}z!gS*IZf3IugW`o1AvpWjupqlE z)ZNAw^5CA*pB}h78TLQd;_dA%;4LD6aJLf_mXeYZ6aou^!TdN6eh*(4PfH(u7Y~j< zC%6amuy%*LdcqMdY`-S7v_g1!%CLKR!EGS6mbPM6Ha24XR+b_*{KCREmi(4BBEtMO zA|f^tV#1POTVX5qKf~Kt{}tWU%iZbs*f!RJFejKZ%*E3KM?+YUUGR@Z|4+rlA^I!m ze~2Ha5$6L@aEDoX!tUX^?61w`7n0-$3+w#f4Hpmw3qu9}jUQC-7mR;d=>P1>|5LPN zp*GeK>tAa}xc?FUAD3zNJ>Ez z?kOrMtEj3y)X~+`H!w7^wt?B&*~1+?JiQ)y`}q1jeHI$_{6%;~Tzo=e((5n~;hMi(Vc*Cl*>Jba>GxJX+Ud8 zZAE}aKjTap)0TZEGF()27$|$P_MIJ^ZS?FjfF|-F-8^71;}2@7eO&6y9IFuI%+k#H z=G%vL2E3Ody?}XE#4X^Dz8qkVPGu#meA`%6le#6}<$J?tDr$u@$S=!_LlZjqND2AA z4>Ye1ztz!vYj@UO!3&2OkUhg!JqB9#XR$BJ)?Od8qA9pLw2n{B(?{ zf<#~2QxEDqbe+)TrdFS9;`Q7=zycxuOSJv@QOL0!tuxM3TRLM2nyLM#b+*FiN3=^v zvy6wnVxcL`gTzkSjp!NqPdThx64nQ6-*xq`DaC1O1$BR7aH^mUcfTLglHK@tCcj48 zWaVkSqa~V2%BJF_id{9?O7qz!f11S+Gvn$;7Im~rf#Ni?7+f=I8WPbWS+XF%8Ump#G)KchVRkom%~vcLhO=i?-B{1uUZ#uz+Ik z9TxJ|{-})GBVGfroxUqpZIFJ(vtUEIK4~3C``w$wApASStE(5Lv$Wf*dF`KHcp{; zQo2?&`!Rk;{ZUDyqvn8EoiPEK(1ZjwNLRF=v4hP@|A|!~>i{+sSf($dNzR_#Dy_Q76$S}aBtCeidz_z4iZ74@4 zEAA6!&KzWMCiD6}vSw&0V|4olf;l7L#dsI_o7hmT7 zC(cJ;i&09z=pI*^C*JFWHY<$sxfVP6yv6AG`BO2#E~vQ^Gld0Yyh_h#W6mYa@^{4- z_P#eaT&@{DN}X^rT$!me_BDvKc_h_OyIqOK0xXTAt3j$*;77WvE$jB+@nicRVDlqP z02a9EXCB(Ps5Q{I(Ml%Q(D)j(;+rL8mP zg|!)#0PY{}55}){@}sK^>z|#|@+0FvZ~N;85t*1x2N;xR>dyZ7BA}Y;=PX_35&I#}##(Hv;P{W)Jad*s1|NiptJ+Wf7*(#{doveMymRNvm=zO6R3%p~T#jKn+s$hXf zTFc1nYwgs<*Tn3~AEw_P$qp;fkhT9l0{?nwDtJFeZ_wF`m^P00O_GlO>1WCeH@yw& zrl38J)!D-p*7FeFNK7tzTI)`ODXZ!fo;nb_?N@^z8+x!dikh(EP>U#(<5;{sxALM5 zLQ{u2WjBxVBg`)vhmSGBvcKhKrr1*MburmWu0LK|GrNtj^YHep8ZA@h+jQkn7f#oNPV}Xq)HzihB z-<0Zc_GizHU9n5H%=c^saJ#VB;ZL22FH#a)gFTV=|D?L^Q zf_>JnsvKq$MZBYVuXuJEDf-!Jc_}jOLBpC%ZIGVygL3oE0fP0z z2j-;kljN#X?O7;9T7!ABQQ*)vYUfVrM_j#=cFu@FqX`Rl$<;sZ!t(O3$MTldz>$`u zpt9K4d+kykeqVN~!^ALhj<*k04`kG2B-f7y$vTj)?&>C)7XL*lA_Cy;Y7kvB3d_A2 z{WIOt!+R;b`k10(tFOln?`0TDudH5sVS}8+c&fKRS-Q9-!JJFJ2@kp$vD|i-ItwiU z`?lS^KAamKwWge6w6+J07;0^#+H`u0tU?Y`F>n~5%{P1Ibu2C?9MDerz|J%lW(hYQ z$#POPxq**`#M-LkgLM|?ZuNRfG)N3N1t`_>#r7RtA$bG2bvropWTk{aT#yAGH@-Ti zPTSsVr56F{z|^XS>N3rL8)Jdoe^$&>TwIKKoL^vsQY+JB@S@usQa8f_+0ck~L1v$u z=jR;?mG$;Lb!G-dm%|0V1Mn$_9;R2WAHMp|bL*y5CfKsh; zOlZEDDy+8ae1>f8yx-Y_PoX9y9%^rp94T`4nleU$A~^TP-wX=*#oc`=S!y$U2Frt+u~!U~1oR_K zom<{BQM<9ZNTDTjQ`<%FOzOF`L4v6==PH+e#sS2JT&u99_n%9 zp>&CGS6B6_+-#JlKVXqL$RrsA!&!ZD(qUBU_-+}dtHwm3sDU4G zk}14;opcPU>}gg0(es}3M-8Fz7ycnyL6*INELr1K$#2Kudyvi_NdwJ2C=y*fxm-7M z+5lLAk1d(B>5aJC0wdi$`h39_S5S2+dn~+dlgrTssKbnR!YK;L_o7T;Sit9cyiEkBboO{_#Fn-f8yP*c#24MbLLd7nR9`$+3lCWpl+_S zq%jfEY3BBnncudhC44i?0^Ks)Fm@=P-j$dDRsX`0tdpF9u1q&8=l9t|2(7-la)x!C zg~ZaH(mlJ_kS;gcm76IhFK0#VHXdIeK9dV@_A*v}vcDGxE|JkW5L+`RhVmA{Cwpp9 zKeLUEx*Z0Tm(Pk?Kc;PM#3bySvbHqRtD^mRUmQj3FUD+S zMqiwoKs{OSSxIeBle7olXzjDIO16Y5m!s2=h+C!h$F5ls1@G4%rD)W9tWzBet3n^G zpORhKle|X+p!q)A?Dhi2S?}{I^1qa7WaW0HD=~T2#?2D(Qj73Z`FTBTcbDwfPC3z! z5Dj$BVT7%wc0Um?cr!tiu(@7B29U-x?a9a{fQl8Zr!W=w>IRV0dXpG+yAP1uv~Z?) z5g|^X=G#@;kHid3eZp!`{VWza6_ms(|6u_~MAL+UZ{Mn^K0Ztp__=AZNx*XOE*$$=n&+_dHRf+Q^0wfH0ooU?5uzi9J*NQ&d_!$Fnw21L%S|~hY6{FBhRPO*#)X` zv(fJ!o!`RvL{_t5r=t&x^*u$tO(SJVAVbTtJ);oKPp*iH8@pedY!gbm&B&{o_i{o@ zDdpaS^2?Xpmy|# zxO-H~&1()pITr9(pChNbiMQqk1h|q*&cBvagiHnNGDn?afx|*XYlB$uncSF|7Ws@S z!YiMRiY!$xO#P9xRzFP_F@dH$Z^%_e+|iKmfLPtGUB0Qx5LC%0V9L zuC$nBvdiGKxrikL9>>D-;&bJ9e1rAX>bpZhvV-<$Bo-i8|G|g|TT-``Nb(Dh+vcvh z8cy;mPS+rj$VJM8wf((gBe_^zFX2P$OOb1WH>ui|-|oMKOT6oIYw?JBic8#4uVU$z zNt2YMN^h3*1O%fhG!@*Ix_ati>PS7ug0qo1g;`PTq@PCe5Yk^-++qtss$}5JW>q{UB^Yxig~)FT z^zs+0tn68ynNi(bj?z3gd_{c3Hgip9i}zIrNR<=MVW=%dY&q3CkY%WiHs0xzda5s5 z5*-@_<82yAPVg(?eHVs4MXy|#jqk_!c;~eK)>%ArOfkO;vcOuzh(mB8eFKZEClWgHm46q2BFo`VH`OF7zLrC%M}nW=wha@UD{f7`0=W6Gof zy6MK*CrXoo$#FIcwb)_ZFJ8S6{2?>r=)wW8Ot;m%s0xH zcJ`Jjy6Is~raZx!V(c4~+=~U8$=x$aQ=7}DTgRBL-sHJUw;#~shpq}@epE_13}r2a z*Om>Hh~hqZ^>4S@o2YK*c$MZ>YUp(<4&^iquTU6w1RKMxR3&wFfg~#x&>hY=06%3} zG?SsF=IdU-0*LmAHWk!VyT*fu3sBe-tC=#qhypbZzKb|Oo!%i3`!p z8|Spco|QoY>Tj-D#h?3r8DZM7$lob8x`o#Pi)?+(=xHWeF@SJB>@_pov_ZxZQcbq; z@zTKJ-z%mNFG@jqKlO74xlHfjvj#&-5t9#FIx^tU?I+r4gqrERj2kVCmDBB& zISSSgh53<;eZ>@&&IrfwT=h5N5+2kX${lycr8-MZvw|gOug+-YVcY}#uz>Qg#`32E zl0{_1x8!+!SQ!7hroN5(wV>_!ngY>Nvd~?LXjt5+Hp|$n8;_zEEck<^wRSBQ-DYan zZ{hXxAJmQ4v+Rsc^SMx|-`?!)v7#gVMkb|O9To6a7+7IW(-SY0dm)y*X^lcqGIgHG z+wZTr!Fj5Lm`eRvmgvP1(~8ub&%&c@8P%JMS?j(l@-*o?Lx zs1vSsbo7!C@17nG)0+gZUsE#FRWB(*i1vDzzuec^RZN4VPkeeJ8hDfUeF^2lz2i4i zD%$PSIVxR3G%q23fi$2tdkDwcV+hh<%Oy0oG^}_NoiVQ<#LF8HwXyg5Gk$R3iB(1N zA?o^2YsG}I+2?9APD1q;d_DVIg$ks|uN}zaXOvN)u2Ry*aN5=3`$R8i;3rk@=D)K* zg&ZeKr}+7)`ZP4#*its&0Uz4SJA%m>Y_5FUk(V)^?p^4oS&cIocbIfoD};`Dm>E`n z3Z3C#Y|U+-Fy=G9jgotGRa0LEMFVQ_slGEj)Kp=d{!nKZ|DyxMP!zf|C8?fu;0!QC*K*4nOzF6lP}yLmRa!hDFmwl!mtt zHkO}j>-&0zb933ZnN#<;#VE z#BFWYYax_1S3l{2g4c=E4*hQ7CGEn}+s4A7ESz+Ey)0EFd%tytK2!gpIxIr@)dhA< zrt`39+VT)3sJH8qoo%SOheAD1*l@A=_Ac$WfzmUi=UszaUpQ|y_3_r>*4Ob{*|1m; zg(FPBYva_vn53Akezb^c2uz2F)lsDU+$jg%ACJ{M4V)>Lc;Zxiz;DGp_#GX1S3QzG zLfWb-zN6X$V5W0I#JIbHTimw~x^Ce`?Q%`G7ueaoH(rCpyv}lbvdup;brj#h;0bOG zUK$f%aqA|Sqkdvw)K>BiEo0p}J7Hw{Gl#x`!I8|ka6_-!IGpTD;^Z7SCY2TPbU0Wa z|0I+KwBpDAek4F48#S7ZCM!TrFwPmTLrlcWjOF5X(+BzMtu#4dmn1Ayi4vKfXZ`xR L{NLErt8CjgR@t^~+qPHP#$S7PpK}`D^L+i^c6VOPoO8aJ z7jI<5h!GKErko@&2r>W|00aO400F@E1o}fIAOL^}Gynh+00fYxppCVov9+VFlAEou zgEp22oQM=0MPg6|M&Gj*a8zNnzDWL$iv&x@34}(FjP5&m|$=^Ssk&VcsbVK zCC*m!sDUd?usxhe2onV7#zhmMbnA0Rep#CVus#4R*G>U9uy%}rv-P9&lL^;4LnEP4%( z=w*i))d|ZJl?W*BFgXv_vh;h?VAV~$0u-M7W9F|x{Aqt){w`D#Zgf_{swo+_=%19K zl2h)UHWX9hl8{HFO)K0JMK6jRU&UYQRr6!bPIY2?h~U4NF@oCSWJqEf-dz!iHE$C! z_lSHMjcP`SWcS1g(zEV}>e=Ol9(4K=AF*n3Ho5}R*;MN3746jPoImw2Qe?J2#H9A$ zuNdfitCn(t`#r^N)OH>FXHKvvI7CVnmy!AV`Z2atn&^@Y{XNZ2Or3$&s8JC?t`fC1$GU6h+WJLUp^uk3vXG1PaI z>)IPzI?&Pnb^PDx{vRCD|7PnI@#_-64Di8MpxXo!UaaesgmacQLMNFcuK(^$vCF+`+f=UBc&N?zjQOl=V6s18 z6ZPk{bSkpVglGlbY8WB}Zq$2wu&)Xx-0?$Nf5dtIaU@_ru$StLEZMFhYb`s&`t8k_ z^P7HfiCj$60W^do+)1npn}D*JUs-NR`QyN9IXR3cu@?FBd)sLyvy2` zELEq8b#`^zm{u@OAzd6G97yf6zDiZi*zMVk$No=DxjoVHkN1#N86`~Z1 z7-ScK^fxhTw3V9_LG$phTw-Mur?|tf$9K21TGg{FnR*&`g(ZlQcx3dnIh8Rcpsn!X za!x(ug3^K}FwlFknkhOu6}l4RP~iniQR*Ue#F^loOZMWrK^X-DoHSPj&FxY6LYtO^ z!w}0@x;e+u4|?ERdD3+yp!cFSFqM1Q>Cq;qN(s-JL(>q_471)$QTIm{7Q>)>7%)I^ zsxb2&SwZTfK>SL|ckq=_UDkB}5t9(tc;p$p-1EuVDDjHJ3^o2P3s0ENq26$?Bjk~b z3jA8Z9kHP!oAnrvJVw_k=@HgmVH0vRc5$eM(^75X2T`(9+cqE=zfp% z>D)|a=URNp?Yp;vhum1oeKgLeolTn-I=k9yA|8yc;pw298P_liavT9_u5`Ugr+~Rt zy{Wk03|B?PfD9myIw1~=&CK|X(f~4`JMr<=vK_sSZ#Q=b%X!u1{Be0mMokS}q{fz| z?L8$XVEBu)3n5G+z`ib`x2$NMT!!3A8Psys?+hm6UL%{G`e>q}Qe`emM`dn*;$8?a zzc{-ott$}EZ6>G4;Fg^z)&BIwNIpb>KkqXecx@U?_aJi|BYzsx& zW9ko0BPaM)>sH-zIdqB~(kU#l`MMT63sq*i2;U}sZ+B}{uK(-Gy6{lT5_L1hhKZ4ZWzcJ}Q^#0Dyx)005MKb+CWM z>;H$;=b0bY>n!j+UwAbx@Ju-;z7)wutH~Qh!slXxzE(8x_cj5^W|9!XzmPA8sa{z; z5;|AJB&^fe@MIEJ>Kq{TMv;ZLZ=UyW1p7L@e6o-XquqWpwApZYG@0vR))VK?d)?iM z8@&|C{}4hFLLYoP0;QdNy7K<~V>L@BZZOhrzAE}=LMb$B(>TU9$WHmB=2zOmqR%BN z;C(o+(l`5?nwgAdxv9Mp+jybk>bQJknlyoWD1B-~ zxR6?8+e^5>MWOyVmH1Q*l?>a^N#q#M)lSQE@AX#qPIhAiQC+u)U!Jyn&~g#&)bf=o z^DJShalJS~ae+7cS_`Mpdg!H#g6d1at4Rry2TeqaWGJQ7?)4_P!wz#Rw!QJ$Z^?zX ztf4GWQ)O7Q#368BY3F&tEWMH3C((dlA=32iD23b}Jd^&mLM%%?i~G8Q{{&R!py^}g zLRheQ^P}w2x$Ps>PfhE9Juj(6^^ z(%KbWUB?w4>(>c%1-|2E?tZJa&538_8Q)k3+bM z&z^XwBnRr4IeSy=QBvJcZb9rb#IZd+QnkdzLZ#IOP=#vgaFDD=p(CEJ)hhQAEQ1ux1Hyh} zJ*BW%eX7rnoH^LPv=dqiK;&liV?2itY6v#eN{Or6v)2`|02f$@t4`K=MX_~+$`d~31jvV+xWdeuP zZ0e5oA*@I`pPmEc!7m@E;B;Rcy=K63y$;9~Kxd0#Sg?$mOn`OBv$?1pp%^;-epm?L zzO0BEg&Lsm6W^L+LMb{GAOl}?{70=&<-2+d34=6G0c;$r!auY@U$cW>q^!fb+Z#Nq zT8!%~rO&SQR=t!<8OBdiV|p0n`fX7+j$~++I)bu5+>rOgXWkCRfj>2VNR33w+{ipq z)j)zyFq?!sB+n{JiMWx11k>o|z?f+QTTxN316uK6%{&q}Y_|A=w*XrEuFuPC@7+Vs zD_&dsYAQCkL$+L0c(hx5pr}yl7upB3DaTy)Nsv5qqU%`iJxKZ8`S-#j#R4BJJqG`v z2cH0Rn6A?7v!eu0Y|J0mCjbov-dhsTx;S=5WOq%5Q3*|3F2zqHB&6@Wlb56?rhc%J zV=dcLh|SFW0C4x!QFKcG=^aeJJvvFVV?EwFf9FuMm#kTvcISuD3(4|Un40M|0z3nJ zpBA-M#WMwQ0O&SJYNM(v;lXf#AX3b?r4ko1#F2ANK5X2Y4#(`j4*ZOH@puaUrVHQ! zx8_lmPkUxN9zj3OaeKR|U(Xp)vr6`?B}Fd|U7f36pIL*{(9XU6gHvbv)*X2J){3lV zLy*^Aa2ZeJQn1eit1Mor<&5(E1sKT8WmBhpeipESdl}aMvGIA;dFHaUtFB>e)~RiC z%COHgpU1ciL1k_eNj#k~Tsi=X(Ws1>S6j@=rL?g$*gbW3ku#$#v^JW{r!$AHe;CDq zby42&=i+w%(~bB&8+5m|MqGY?zUw_7K~?#UTt2N^TwBITx6iy~+MX1bUX5dfn3)PD zZ}fe-DW;lTifHDsKmoB%B_1F zbVJ%V8ZWk8^m166*`%}jH3Aqg{$-q3V2d5sxI-K;?lb&T=Zcc~$Bx||Ui2ox!`L6g zn$BX3cFZA4H9seylI3$f3V zmrs8e6F>U?DkikAar!PuD+5BAoDh0@h3^5Q57xlei4XEl*3)PG1NOZ>KDFw7r1M=B z4A44)HB|6N()BX0m^Z417g0e>?@@<$#QW3HA1~}@waf;zqFrs{gyp#`(Cwo+3s<0- z2*%+@Q^e8c0$USHRS_m}JQU8#)=KWJ_&9$Kj{XuO(+p_oBKj~4sd5O0?d2l9eGv`Z zn^or^GL;A#Tu@xXKXmbFQW{4DEVEiT-+cUsY5D)Z6gRH23W{g#|Wphgs6Ay3D?TbDpvQ_~SN#8Z-$ zMm9`8QfGQ|Jv~>t4d}dD4%Vz4#l>c2_|86_2U5#5unQz7Lpd@QhG6GHWY=rtRj%sz zlO1&EJu(3gseiIl06rGDEbWyP)7oJ7LJZVG*UCaR$-ZGos-c6k5$diOrvV ztjex4MFKc$HbqisD%43!tp>*%zi^xLYz$(YdK{Zhk`HTRd|8o`VTDr=aZ(wK{iv&N zDU7SEG@M&9vf%n52Y_;<3?Dry)TGj9$NqbexkkALx zx7al9;b|CC6HhSgYpT_(%H|b8=ix5o~)n0Zra9VOGp zM_0uZ21T#NBzZh8QgiX76o?nVpFT7QcLf-4tDS#~(HhHqsB@5R+Rx8Gn^Y%7% z=EE_!XfW07Kx1w_lO??Yo67BjX~r{^J4z4>7k^jsOerIVl|Sk5H&PfM@r( z>4KQ}1QUnKrlJ&U6BRpb~oIJUh}BE~FYc3%KBc zQ!x+2`bwxyRk-@-jbRRm_Mp4n{`i!ddOuzAFEh)*M18zgK;Tb?VL@sLK_ib+K}530 z(EhA!AIw9|d*CM)%|o)8So(JWDDD`!+YD+;X29jchtVcrs@`U8F*lC@9#%M;>){|4 z6JpamR8F;l7|lrI+$_B~F6$fZT*aDt;n$YI`*GffJ-`Ina%&D{mx;x)Q)^Uax6+g! z5w_UwAi^>~grlsWg3v?A8}0PSvW`Ond3@xLet4ePRo@xXzSy|@dDewEmI{NWW)<;C6LU{c7!4UU;1d>v#l5jbB)m=mL=GV5nk^UX{XqI zEmu`0IbikWq(in1MzYk8Alxga%?n%`X%_Q0*#2RrR~RSw8L|Y(1HN5V=D~1PU61Fv zA~!5eBtmo`oD2TZ2E`xJ6yoozHel$T1~&VkKc6H_3ox5Gom!p!=}z_3<^B2wj?M5v z@AWC|c4bQB(Kq8_Hy}W+m_~^C1}}Wd0fEUYksk|+AkO5Wk-lXNM}0Yz)zk`KXBGZg zzS<-LRM~3HS|f`cnX8NChpATgpd#p#w;xiQXyfY9aA~ga;H9`g*O-iUg!5#N)Ue~NW~7hDsn>(=XR@LsxlU;Hzil~_(cPm$YbQN_MU2)Mxxpy zvMD_(rER+>^Qto&yYa%&CiihSd4 ze-5ecSyG1CHgz{p%S5!Cr_ia-Sb>c6by?tlPNNFMHnWGRj?jRR{#~)7ls=9-!IAVd=+Q#Zxd}#FobvD`t24!4+CC=NtbN z$C)$Uu~FJ_V5nyf%iE}x14I!D;`zG$V^2kem$~o|#{fWh5`@8YMPxGWmiH5!KP@?A zzH@iFtp$PF3h)brEj&WIeoRFdEQ=y7-EeKp{-2-Tpbc`#tWXMlQ{gWXzkR)yAEcJ~ zMUY(~MEN8879{1+4VQ0g5QMuvZ>8W{$|U-Kn2C5TBV1OxL}UxVt%jOVk^n_#0lXQR zgUYHLHhse3!v%UlxO8pu1z+#Oe72zuB_6~t-2+4%?V}p1T$8Ca;5I*Z!BeoU5PEMI zydHMDe*!1SQVDRO>PtP>on9_wJxEwgOHlJdRs!g=GQ&3!f`c;1#2KH7=;^cC$DbTp z(1mE6S>q!rObwTv!F8Md8FOf%7%}S~nU$XY5f>y}1v4DAG7VK#QbaaokEK?YxUk$+NkPG8JQWXPO6Z9+_Lq$)#Wnw)&ar7=9Pi_w=bwS~ zqJ4$qblEm$@^i1Wf3B%WGELu1^7bKKNP~m%Qc-UW*g+2ZJ_~ab$&}qn|S(An=R_d&v9J>Ux?pEm0<_z`HZk7-Cg4$)Hmp=&sWb_w% z`j~<6;`Vmy*){!Rq|P1M$~BeMx~jJ>P6VfRDUusebA=8e;3N;P)^_Or7jiYNIvU3* z^4;&?-aX9ol3Ct9%y&=E7#z@l5=XhE)cbMkpY#W9K*^i+toj<_<%!|=&NtCV3($pD z2-OrbU-NkIxuScl9i`PZQ5^6V=E8w!AlUiYNzD(VE*<`^65k%O8;^HD;Eg2l5M7&3 zDi9~Rl8!@e^iS(Nl@T7``4qzY_(rDxj9YQ{!^zU1002_o<2-_Y!qNUNgeKHBzo&c1 zU4IYv^jso^Ph-YTkzX&s3e0OA;d;azsil1K&6dsOb8PC4S8Ce3#Iub;5{)>e*W5Ib zo`>>I`undkuJ&i+vbZ)El4_6g=+;fF_mIY!ToamwSGA@mb#;tG(?sah6>G|@o;Nyn zJ74b4*KM*Ki@lUH>eHP`V6JEHi!H5b3(sXt>v?o<(;mpIhOwS)X2a9OTTqtk1!|Ue z+N(?k>N?aX$A++%BLtV4BZPn76-=r!+Z^l&U5AVJY}1WbWp_A*xSoMr^+xGciuCcLM!0k&>q+X0`58 z4RZWzp&~o%vd)8|AtK^IQa>@sp1qCHbRRGOcbC46&tEoAyen)W(CN?YpwvE5z~C&uwCtntzm0>A~fCpRIwvzo~wQ49hey^ogIm+D9ig!L84-y zy6@0KAL*@-oYD%bm?bw`eKH>>PC%&2Qb{TP`NTMnv8L1Nbgi)xjQxq8Xf9&Kbn4y)Q11OiC=&fMCMo#k%3nymjHmiL1cCK z2qflzyxvoCm-9```-~C6VUvh9^%2isX{45dTRJ%oG+&U)ID1uQ0abElUMN>VyMCT4 ze{__@ws>y0DX$wDE1P2tr^i+8Q>*_Wb7E4WS7&)Zzu(T;X%iLFo|(PcFn?i~8)6i) zVCR)*Zws&0cwyM9j4s;p2y5+&lT;tDWAGYki!y{zRUZ&xg=Z0l6R4`rgQ^2+KX7)r zTNqeYfrIz=#l>(gkPc~ z&Pr9a$N2yns0VG%2L%W>+(2~DNaUog)D~Gu%T&F(6$|A%+UgiyH2dN8CgnVC!JSAE zS$t)GWE6b)@3xTXe(RkAco9y05wf`;YBjxHzhUX9bgZIfIuztd>Z7dy-5+VpV2aB7 z3g96LQIHbE`Wl`gXzT|e2b_9qGLSZVxPjI$_-Z!wj(9qpm+UdAD2 z313^wSV9&42BkZ-`;{9@iXkU!XHsZ~=z6dVc~!n=pu9cK?&fQ--=c%6NG9Tq{UWEq z9qAA8MhM(=JL_451~17&x6^O3EaJ8&|7A7nAsjvICAhjbd3 z+E)+A*`tBThx{8H4rWbd0>egf0F^87edQY z{ya(uhH^Dmc|o`Ac~>LsxWc1$iLvxypJz!iGyX`g?WcULtSZmk>2aZ8Ew^ItF$cn{rJ;;_onGrlU8bncosKZq%m-kNTpP$w|3=K z=Y%F_JS!TaOu2lOZPqXw&0Q;pm-H$Mf+kc!NnS+n<74Gqd98@Bi1-AFGxOZeTq-TQ zhi(fxbb>n3W!~Dy4sOF=tD~=x=Eekzk>gH=?+oFk1lr}%H-oq3r4h&JB<03b2Dw(K zZN8RN-N6||SXGDpMqTNXs>LxQN9E@T=7wuM&z6dR7WFm+UCu`{2{0MO#-jJ5WlI_*0;qhmIXCetgf1(2!aq^qIk=No}sZ=#}xJ`u$97;3Pj^E8ahTBfO)>14G3VQiifRh(U2!TMp#G&MUkGK?(6K81O8n<6bXhSDg zC(j^4%ebsBSD7MMfQbW6Jr^v-6J?<&{J}tGnQ!~O;UuUgqz1WWGw0YXledIFG5Qa(gv%!c}>*tPrec z6LoDKb+XUv_yUu(ouXtbQHFfi)s><+1vNIiAU_w^;5v?d-JrAuiT#Inn7;JMQ8xLRb8-Vays*w7ro4lrB zZHmVQ{n&SnrRCfff7-8&ulEWPnrlxcgzLGd484!snwZcd<-$5ABC?QgnA-(oe7+Fi zd_nDQgxQvSJs-nRPzmso;dtg2Kq;iA0sYtk0|GorCkWL-_Un<7US`ZaG`fBfZ$7Zp z+r;BWH4c&<;M5D^rC!^@S(8>qlz3|+J;&X-jHqO!uT@wFBo7$|_vQzDhLB%1O-b=J_Ij1j^=}*UR9^cGyn z!jDtrWJ_4!xdyd4a5-WQ)S_3kJ1xqsXly1~k28wX5_pU2! z9C`1D*E-6~C?)OL1w}MG*D9j3iqVKygVQcvByz`0nPR7`WNDh>%cS#-Wl`R*`!eqH zv3Iu4UrTF%k!_q(#g`IikG70|>XItvE_2L{VV;ts$`oKyP7UJA?`3(-$H07_JUf?*?FYZOJCfEgx zP8E@s^R%r0c{b!|f{mt#iP~?OHx#l^mfDOFc($v7M}|BhI2}YDgu*1)O|ac{hpMqHSB@(!vPgc#wGP)6d$JAA z3qs3bFXnj&)2kQ0H75rc;A&!t7>&J(eHQx*kyfuV6o{+(l%I%-0uliloYa zQkBFRIBYvN1$8ADV?Qt4xqs3><|-Lw-$2ZJ`|Bf8j{SCtn8t1AUP!S^(EYu5JOdPC zo>__M`aI<^Q8!=wT9(+uoVEfWz*o}$IRN;d=1Qw z@1#o&J4sBgJ>EJ1?8+|cIsk9@IJYG*o1Q4=3Uy7^CzB=cvzm{HCa{-xN>RS#v|?vf z8|st;o{Bjn7RNzQ+C$`zK2ru!HCGUML{Rdg+L)SQ1MEBD0lW8)Nsi^JLyYi7Y?yYk z_wr~fxU}sCWeyvrcUsH-SPV(aN zS`|s2?Mumh>8JK>5@dx^XJ$_!LiL_7M1R5#Yw(~E=OBjKBw8SE zePN^E5_TLLr)$?+@hqIWYbz^UAmDb$_2q*^`^BZ;KQjj!1`}dJBF|vJ08OlT_Imfk z)lA4PEoNpsfj1vBV`0+A1v2q-0s0go^pl4(hNA>_4J4|~46 zKZS8T-@as<)}XIP>b@IpTG`0SVvA15_Ms1^_JtgC`BQ^H#X>+7iepb9*3qAuGjvws zqIYDwuN}#jt`*hzgzDMA&ydm-)4~Dc$?R;6DAL7S)dasNCh#;Ax+gT*u&R(GdHo@C zE@2)!FSagDT^Q!|jsECU^>^>wBBby?b6M; z!ar$}qn236W{@EmRdMlk#AK@XnB~+cGPJsHM$QyhKu%><*V{Hg>pV-JNVtzpv}6y< zY{>+W(L=8(>CeyazsuyE^M2Ztjc62m2#iW`4m7J79^nr(m)W6&qoM10< zTUJ2yk<9YyQoQ|sq0Mc1y9!sZn`n-oZy9V=!z;tED}w62Tk>%p6%7mxV2a?tAk1?RjMd3 z4B(*V4L3ZKdw-)6!aOsx_WLu0OgT|1{7T)X?%@0gPEn-9#MU&& zw%{djM+CL8vf|{6xCTn)zT+pj9MOh*w%l_HacE^v_KJvEI}&h6m?20)n6VmpZLR6= z+=!v>rY3;Q_HwPk9Bp@t0N8{gp7ObJ5h|)4DZUDPEjx0p!A2dk_a-oho5@1faG;F!*&8DXxF zt97PUAS)E-K46t+Zb!*bYyo&cbQr9M-_lALkr|q#9 z*tj4(;2x2#1&15iezKC0Ae%6jm`Z zzd(rfWr&lh2ug1)la1Uy#jqx9loE#PHKuYr60n=XOYCI%F=FpL zi!x}!wdZdyMrvwpoetbZd_AXau{rw^MsBsBeyJWK1uABtFpbitM1Hm?$!)|KR#LcT zC@NIdk@E^)hW*L*Eq*%-&5D==d=_BmB#VRq-W&(>A>GQP-AXvT`fANrml^k-*awb! zS%Jx`#Uc#7XJCR2!@$U8w~K<0A%FzoqbH-oyK}HL`&0O(gE(?p5#_OXdWrP3(%`j9 zV+rLM3IDilzvDvlv>Wuf9L4H_Vv_?+Gj1#|*Mwj{7F8P6PJ0x-dmg|=ZfRVe> z#j&-*OqQ?$OS(HAqLnbsLme@kC(|VHrmTtfn=}7%GG$#bs#UplFgksphMlQ{%|Dvf zHV#2(MC9K*OOo7H;#W*%NZROayp#7>qM`eMCJ7~ z8t^g_2IflRfY*c%I7JTBGDH*cMqY%4Zei|*%t8$u3)^UWyNxw-g8D4%Z}ips_sGG%d@zn{Awq3By!4vblZ#EP?7xfULu^$ zFF_IvDq~Fa}83xJuLA02lfbNr)}>B-qo8ZL6T^Auf^ePOEBR5 zK2D16at*uuwoIxlF(V0~J^uJ;@4Va6M*kNeB+!qempZA|)Rg$~2o7ZuT5j2OYK+t~ z>Q&Rwfzc1rGs@ppCdK1$%B3P&S3DGWjIq3Vkde^`9#>T3LWwlC8{s(dL$?d zLyb-X$p|xTq{fRqmFB+@8gS98Ho*xSr(D~_#NrO~HUR|M@GEjXm1~Q}(aGbv=DIyU ztMeW=dgDC;Q*1-*(>W8@H*z;FVC~H+30%BHDZhT;yTC%;ph*JgBG>^sM6`5@U^g{1 z)x03waucM8aN3T5PSG5+fV1~du_}p^2jy@w939 z_9#Mt##YW7TQzNbsy~R9SSe$^6XtM;esPM68(po=662^dAg+@hg~$6E%e#wxQU8#W z^RsW3N7H$+iHv1Q6xeD#fN=Y^@bUX>wRV)zn`!3pL;6Y9H{Y-69E@+%Fn(*1vpw2H zYA!v~q`NiotK`JHM7evvj5jj-^BtBrqm zijX(aPIw{K<`IR%^CDMzLlGkY#IYC5(KbgBhx1jc6*6iw@%cUrwrBI&-^IHMh)LY` zMEC5{Ky-|V6c!G>G99YPx!pat7N$f-a!=QQ(Jo)Ah}QC`${+80J`PF17o5P7nvHc_ zD%ou526lLO-fu!gKR)GBWbY!ZE3qr{aUSo0T?&=DuiOM{5v6&~ojT1P>W#_Lwf<>Bo&ILF ztI9CYqHZc5JUu~OHAvbdyqE;*fQw8k5jnOFMw-~|s7NfqNx(lFp68#$tu%Jp={n*P z>x(q(d4SgA?ZqFpg?9BdLlw#Z4eelPCs?H`sLA1?Ftz8m2c9XSG-7p>Y*cle9Ekj_ zhbb9KMje$>Z9d=$%MJ=pgWmJU-(UFT4M2oE;^z=WL_Dh^P{Z_{S^jmAYjKY$e(N^9QRk0sqOLU92M5JC?t?p!CnGy|Y>rHN^Wj$9dUnZHhn|@@*$t>;B+e1$DqA<<5 zv<>YNOsQXqgJN|dfH{kQIc)Y}0HOkhoX8j_8DR>U09^xV3xm+UpYoAal>5&OJaC-J zoR|qbcWu9FOBgXS*Bod)KuO>M&mBP-02xB7Oj5add`KqncQ%m|3r0QH!jI{*Lc3#6 zs&@p;4TV3*@|(Gqkb;{dgla1G&+k3fZew{pZ{t9N$^%x#~YQyi(r>B{X=bQCw_=D?FWISoMBawNkUPyg3j6)H3jd%p z{up@Ti~ij+zrp?Ic*p#gQ1M*-|4k`9r`6tz{Yis})BAl{D3UAC+7*d8mWsN?>k|I8 z4Yi`ZT_DRCA8$Zrr$A;E4lo`iJby6k@a%Pb9qN5^%Qc-*SeD*E{U~BPjKf|QI!;U@ z^CZ%ZD~T^6GcO{HXl$JOD1ugo(Yf(;6N0vAoj_8Z7hylkfthdSoZmUyVO73)(-L+} z8IzV-rx5gMrLyF{j>b5Lf+8LMF| zUw&b8WWES(w#Z_pT!{%|XsXLx+F8=je4*~<>Fue4oAu6Pf4<{h+P-V1`-X>S9HuDL zdg)qzIxkgtv++5jG~B3Aq)hEoR-S(^<4zK^%I}vQjT9s6I zcx)7lX2eQ9Ip0E?ZohOnV7z5v7@KN>6rUw+c<2Fl1{&7mI~EJjM-JG9r3a4~%nl1t zjOca3%D2wNRf)F0wY_!Y7h2@5JmkY9BmXN8x*EqOg@}W3vOWziUSeJ9VZRN}%CK=9 zivo3JUqJ1WJ|BLz+(z(mwLQS*{%02t-cE0@72+x$!js5y#>%+EL0pkQVtKN?e0Z`3-1Rz)-@| zOTfxRNvM=U*&7f#P%3cTP?q!_Y8+uy@b#@+$t!wK^;dtO67-%2b0hz?;0cqA)WK|+ zt_Pz6N2O8&=HM~L(t}xnyQCRloalpM3|4MYJs2q6WrD!Hb6c=Qh;b(O@z|OQ-THjo zN4#sojk8ad7EPuUE`IXokUk9nhyWB2n&CP}2p4(--u@-^&q_^Yv)K~aKCL_tJqFRK zLW(ZuMK!VE1W2y?{W8vDOmXuW)JkW&hu`)Tbm~uT`JgqRS?lY~&;$;vE58*yZx@0t z=}A<}D6y_ca^4TkiA&!O-JQAhaPnKB{Nz9Ri0-*MYQK;m1h65pU-;Zd$dK)#yxrMAgJF%Cv>jhj=HfCQ0_rb!kZ#2>U2K5Qf?okhikvrn1d2xPaN7&o(qb?CUUvdLCDj{~W3$K0j_ZC2Uf&Y9lF7G^ zR1eU4lr3lBIyk+z0kl`?WVS=QD((V}kr*brGU^@NK$RCpY-9F6GJ1~l zr5lSMTfsA;L1F_)P3Q;?J$PjA_$p+U6anr*|B+%wM`6a27G)8ZJi@j(u5VdJk6PH-mbEAuAmB;xlc$$WdN65wiAw$da@gP(9n{r8bIJ@Ko zXm@NT1c@Fp2Tm+!dkB~uV}|aijdFhgZos9*BD?XS$N<-S*ZZEQ@2$zwBgHaBy)4`y z?zpT=pv5&WFl6IFNX(0VHqL}r8y-H`{k)ETrkDo0U$oQl4}?wKfnJ==!8_D4J)8tf zAS1>PL?B!+Z1@=d9ne_d?P1!ZzJxhAx&-Nj!nT6NC98Bp9-sHOoUNDln{1m{gLA`Y zRr?i}_0vTp5M04r2**@J$dQ409WfEVg49@gc<<0+5pEP>*2R3zW<^=$tkO10#kXl1 zM-M<6B1LRI5v@!t__MH6rMkK$IUl3<<>?A<9OV#6s)UUt>D-I5NT&AOa)P0!-Rjei zuYV}o`}*AZz4e`No}vDETKW6A!3h=3zi9La-3&Lx>#>;U3G;{){X#zZ&Wgwdt#2|L zZmxS$9w{z3SY1Lz{>P+DU3_ffft>*w{SU0`7%}Zl$t{QJU6k$4?ouj?X<^-_$+2Ll z<)(j8zEq#{(*1;AQ~6ir%NWn~mUs8(LyF60U3EB;vl+N~DRY|lsLG?vnDrkvudaRO zGqi8v%Y)VWxA5hGvMN)cCg#^gn|ASX~J#pNN^I1otDsbuwblv zJ4u_jdWqY#QRZ5Q#xT!EN*tFXNF}*$&s5r}hGw7gaSY<3Q6O7aDQK}q149N}UpqNo z^+<4A`^VHn#p)MnTg0Un`q%tNYt5Lzu&iCvPp{OC35$AGq~qf2Gq&=?2 zBkS%8L)7$xB*aK59OJTG+5Cy5fVSq?fQTMED+824Jx+>yVCkU>uB<40hg>mWK|gmh zeW!))H^tMx7B!{IL+3i8J2pKcjZSOVxsewRSiPAN43o%EMzGdU!8=EjFr(sV%5`)` z1P3Q2i}6Tdazjf}d8$Fd#W~`smhsfSRVrzT^0!MUrhDO3g898s@J?VR496{{Kj%NT z3-*8C2ae`maykLnxKt=$X`Dp;04QS1W%KKCh+E^1P_mIMafip;A$QalnO{cZBT(k; zR2EZfTnsCn2OoBLBJ^J=D>9myTXB&OrRWh_#(V_~)k6oE?oTX02IUFAJYrF$A2n9L ztLVT5;l(P*y*AZW|67r9)Deo&di^j? zLr1m6g^c5!pBE9ELb(YFAZ!f*A;JJbAkqT|4;deYH_YShHEUIfuKe`W6G*vC-NF6{ z8u(Oa>G5RQtUQ`-Qer{tji1r6NV^}zR)_!w$WM#UlZzkD0?Ee~hA+-a5%#f6rlmb8 z6Y?rPHA}^WwfCZq9ghye00R)_2|@S+xMo!k4O~CbIQ_Y6^I2hd0Q74i0}mPCKEZ{g)cUn{I{^!u|L(=2g=OM@*xXd}mE0 z6W2GcMTY=!P+`Gj+0SpI;Mh#pBO#+eP@*AW1@v7H*bSj{7MgwA6EDR5?s3Is$uGPX zXJzP7rOHZP1x|Y0n&lDiiZXF!i5${GjFrBvR@Sj$JL}_p9;*wt{U{?NSX`q93~SlQ z@T%~@Vi@C$`(m^Olg;?riZwJ#%oT-IhG;}ot^Epn+li={jHW)t^(Nz4zuCf~4d=A9 zSZXQ)VhsWECFU(T#)SDZW3eTNh&n&NTUtDeEyrsc;jy==A)U>)w|*MH&1;hxm53XC ziUMVg<<`Ytf!Q!b7o_`0RiIr5yDD&zh0+nSHuJE5uSj>5UpC{a&t@XAB8GFe9Dz~~ zhm{51NkLY0^+aCd!LkCc;^Ffaa@$>(XZIo%CZn1~x#Z{oxBmtvgC^k5?M%ZJv4OQvx*23`q zP&kI|VqF7zzb2vF{RGVpJqj=rSLZ|t!zUc++$8smXd22eFrSTIT%(t0dcH1FTPyk5 zngZ;=QY5NRy@pPhz9915vxGMi70Z`t@MdDSb6BbZ^Tm5siD*}769{qcLdk$HkX2DH zd`8>J?YSiulYrart&Z{-bZv5PWXI?2gd>gLp*VSGls2T%`GK*TFToTd+6DKIbNf zv(G;J-ap@aHT3*?X1YFVb*-+hs$R9$XJWCp9;N|HC=$lNiQ<-I$dQd z#XHNbHs(Nu%i3>u#7a&@^)eG?_&FA-@vx>1LgorWx)JMabU76ti&rj0>f;Pl7BkUN zQ5YhjL@SjUtr;iy*e4DfL4GT8fU#jt$=Fm zcKbb`W7CWILeAl^Rj9gMUkMYAQC@3fRAZv|wK-C6HNBlbPNP*k=GBnN{(KO4?#Lmt zF8`x9sS4=*44gp}d8?Sid8S%~&kk4kZOjJE)k^7_^)s4c*kM~7J*^E1707%=-PH~;+UwC>ADj_wNGB3Pw#MG~Ch1@AYf#urHb^x^?rXmy8&ba|zdOw`22TYW z3gob-9Gbgm7t!Ywur~d3M*&hJtP`yuLk3>#|9&<9TnYS#o$DWl3_nJYF~U$X&!iH9 zz^ygt=NMfI#hprJ{$c2f%%V3^sqgCj)0QE2oy&YbZzutO58d1C+7U@0*5lGk8Eaax zm!rHS7nQ$4EaBt$%Yl-x+%Y**<~8yXWr=u75$%xNv3xVJk*Li>S;!#!yDGVw+lR}GjZLF%N$;1fM$ekPhSPd&gn-p@KT zT^-(iPs}&itRjUTUSF(>pzqL-(x)h(uUI-Y23ylK*=ndwrP43i^!2=$Exq*%RO)c9 z=IDC%yA#n|4<+qw8>IIL9oz%)H1vF`1;j5j+0V^L&vM6Zxv1WucOi74kea|CK%t%~ zNYg|GW4{k*BzCgiCn`|Han~{OAFA+tJMcFLGkx|!Z?Ia_-0Eu`Hol17t(E`(FFLgko1K}LY2 zNKUmR)hOHUynIi2tO{IFjecXGd3u;|20YD2Hg(Q>LVLsS0_Q-4O`F%_?a_<0*7&{X zM@|%ZA{iff2$6yONN`n#`(#-2=xlKN&vOPzS1G=}YFp@WGR-LaL~@Hi(Vn)pl+1sH zWB-X~qKjzEg?ZR$A=l>pY)`VTz8HFJs@hl1N(g|E2YiCH0Sq8uAFH$_gb;x8vZ(^} ztt++*K=9kaS0n)J4dXt*cXT=M08r0xC0c%NT)CuusrIlE>#g$W0?}RI%6UAXDPtnC zorC7d6uTJyCb`6uX?!tUVB6!_rHN4!?z-HgQZ*0FQKIOahb~Myha-)54mXAv@7IO) zUQ_0v>2(|^$hT?%gan;P1?K{@tInr*$?*^q>=W9W7to&H66CCU_Tt8{FTMJiT>$s- z$y2oGH{)s0XSDthRY)>rU2qHF(q$2yS;%<0(#?FzJ{ogTM;c!jC5QPkqmo4rdR(my zXC+tohzl}syWa-58sEH&M*qZ_41;204aG-Fx-eA%+C9LA$nF_TxB+}ElgX!^w7Ly* zm>Fh8X^gxQRCtIw*mtsQfsK*!!t=+j8jHgTS1N%sgF9ybrWRalltzwKHs9R(49k6w-kycmc9sZg z7$_r@5ARo{UM0|EpDK3VbP0vdz~4iy6qJ?LDe05OS{(2@hc7~;61ORx(Mi1`4nI`B zq>2e~xlZ6FHsEq)(rUgw-{y(I&Y5RRKNFV0zC|Y%Lyr_XgbtQ5M26z8jKOb+d!F7% zfk1R2G`Yj`rpj^gC=3$Kk088$y}*fh-CMJ^rFPyqCahTFLw@uOq-&-{f;|oLUGJ+2 zfEWpvs{)GOZuCmXK+bbDfWVg(>zH)@DRw%%Yhx1zI<%S z@~IvRQR@;7vK-bi9dBVo5u$9HVehG9zybf8Z#vR;z9ff8p{2ks)i zTK}I;L7uk$s3M@&U!pDu%pBDEL(s4g!cQ#I%*$wCeDg<`1=+FvqwV)e$-7W2?2Qn9 zLmc%bYWrCJJS>sZc(pXo;;iu{?kc(KMlWrNsk^f`%lCVhR|Xq3FUw5K6;w}+oalgK z0~47(9%BUcUHkMcWr-k5wqib6IZ^ns)b*2wA*?ECU~Xd!CU5FYu{8Ug(#(3Y$0aFs0WI2V}PMU}bYKWeQbLI6NMll-@wW zTA2*(rEmiL0+rEsVukYVE((Kbv<%tg{n_eU^Ec-+n1cp&@;6$*th&!iiYY3!-$mH5 zhwzPiGRl`|s55a(i455eiO=;fO>3(nPOv-5-j zz4x+O#d=PUh-RB*rpj(mdX9HkgU_f&>89_ScWiWT zDis3dsL)^pPG|wWAY8VAlrFR`XdsWtCG~tUTbRQ`^ zs9hg5TTu1dCh|f?X~bse8(jlLpm{ulg_@r#p~=`Tytk$}PzSR?&Wvii^%bb;U#feh z3zKv?-PWzO&jsZlI_cIgozqw2`JUf9zD|SI8gha`YFn~kS5ipKxUF&L$QM8LF}j{% zbI&i&pJWKnx{Yj!VH{j%JKB_Xs56SIP$`RR1I!@KE>sAO0`_*2+P;l!1TjM=WyPH; zGgapN0sNvOt3lO_#7neUJJ4YtogBYJp31AgDcBq1do+DIi?Zo-)2RitiA{>j-9XDaCb=+v8D4S!D&DD|{l|zK7pa*YVd&eYaiKm>PEBmg^3NZlQ2cpqs@bhHjLsVbrd>9OTLH{~|=R8055$XV+w*_J` z{2f|d`zQRY0}2VFE+2cIY78KCH^QiO!@zDOa%`V1L}PC!BsDj_Ho zB|LV%gE%%j(mM`4!G6>d<2AA+qcw6ga|6-DiHYNha{szzETtc;1@*{n?#h#V>EsZ? zjhw%R^AMb<4c`?Ec_pIB7v{KIyA8r^opGgO$!vvG&pUi>od-Q(epP_ArCpi2NGIW- zuDr^0w`8Fs02=*WMbGO_$S8Ru#@X32Y|%82lZo41>1BK61?I=BviZ0Z)uEAxitkAs z?F%aST?>?cqQNYzGfB6w!#@00v}^_w!PjYRrWesl#reZh$s03Ll)5j5)E_>TrqxZ_ zlTKKa@q35f#Lz|R6?cg$Mt7{%+w;RRs)LrVrVqlaTZavM7UZP5t$@!W%Co_tcg9Ni zf+M+03xRR3N~BQ;tgP_O6u()_9Kb+$h4}ThTYdWx_Nc<@*0OGoEK#|ZUaH6ic6%iL znCp1moMIG%-*vE2YUQA<5e7z+*|`H{I8;u~O>=NKakC}OXC41g!K8yXqtmaeH;SC* z$bHBy&tZR!05Y|f?8?byVsZL@F`%} zp~27MGx){>}*jF zxSx0XUB*XQ%2X@F3+#fo4cNQN^UXTy$sb&rqO4U7^X39=grpBTT4xIXybJ%o_j2{~ zQP4jf2mimsmyOxyEUgaEqp&`bUp`))%#5v#U;KRkX@tG6J`{$}iP4JvT>!z+^^Sc# zigHOW>cA>?(I_PS1Hon`Z*HxL5rw;}4D5%ENvZ7U1f6Fs7xI!2h-~NM0w$!{GLONM zctF-F_C+r%p{zY9&GEaX3ArOazLqJi78gAIJsia#@r9}ZRmnOi!_066f|`BLjJq*8@0t7(qNC=J%;re9tJ4i)ZVYfL=!~EZPppK@ARE4o zXK@v*2!D&Pt5l?&3PlyHwC*B7vpABb>V1ECC~1uxR-VMly<+$>T5^@cg_mJ~xK59# zV4As&L35Caiu$!%zcoBWcb9*Hwjyy;gJ*36)>mFJ4)Ph*%=`sKJ>D`JZoKemzsU8M zwU-*L;Cf#o_NF{*b*#(ez#x|=wD z_JJ*(!K?KspJUKBwxB7{m1js+b*5ZUqPi}yJaJyT@Y50IiQ;;<5 z66@F0PZQ;;3C9@9gTkt0#AnTFVQr|{-eB^>Py}6Ax`Qi_*WlY=;i4Gow=}RKD?@_P zNjQwklJ|trg2}GfEA?dZuZ4kN8>W4D2THSr;M&esFhi^ z`uf$)B`>NqqGTlx(n&KSgH;EVHXH{je)2c4hz7_g*A7;vrh(vX3z>_CEr`j?QYldh|kkr|l*+@c1|lDmjmLb*ErR=u4BJQ6WV9Pdl7h>f%Qa|V zTTuk7pht*iL-FdIknHv=GRd&>l{X~2Yi4WxQ3#t663UH{tc)f&nzsPsF{EJJDMv&N z2C$$PhcMkeEAWy(04L3tIbga4pNcoxoI_4x89_v4&Yudn0O?WM{}utaM#zpVLy| zc+tau%~6HRE;9zWIj7jXAhG zH$8_0$n}Wa)Z$@x;mL_wUYz6Emg!u8J1;hpkr*!r37fE_3r`8=e8J;=AD}T8SYd{z z#+LV83v1VO2h*NQT~H^aN%pIFKq~A`<@p=3*3-j4&zB=f->c|?HrXj>!cJ;L$kLbX)dn=d9^anu{^w%4$!opoD(W?2>alPW zA>z2?XDcK&bNsq^-?do=!daG}=%w{`6{;R!?Zp|w$x!#yIajzgRX$B_;t41?42>6> za$m$bv!qF9jW~*qe{xHpVdnRitJshJOu`4-Lp=>UvZGCcusJ<2?rYe2J)dGI%-Wu= zVNb5jP@i)-O}Ur@7!j)ARjBIYeOGdsB5Ohzy0cY${@}ozEBJD!MQ-sdkR#S)7>rC# z#_{3W?!8x#a>^CEip1{Hp!1OOrvVohy}Vd zhwfoYBG#+g70VWl+5xA8fX*eG8JdjFJn>>*X?Vl?ZCG4&@2aD)2d*wHy!IBoYiMiB zuPJEJlwq*rD?D6vKjADbYQDZ%sEe)`?9j+xF6H2<6{?;;#7?s*R50_XmCe>X+g*G+ zKn{GVqF1PWk)~0u@G+jRd}UHH_HC~EN1k{|U{O6jU*Wx(xnI%uDL_bg?ZSxw0Qj+ihHwBQTSIvVTRTV4Ji1EKpk8J={SU@xw z00N8*0FDX01gHL0S*cAqtu|I zy+OYNAW@;vNSR+jqbumcklACfyoKcYd#wMm_<`#}l&MvNQ?jHUDfkE$sLqcQYKEx*^ zCMBojU9lo=ZBl>&^uJvtf7 zJ6H^%nC!}SIC56SV@v~wv1eEmY^#(fKScW}+20e)@Bbv({|NR=u6Y0gD8>soDg-J( z0C4{%Cp5d>3RYUzj@Gg?>_>}p1(NE z4|Gzh!at;}PgG2ia&D|sKz*09h&@E{Rct=je?!90KBaP{H6kS{5{& zdhaUyN?Q6>?$cND%BgUp9BwxJigcJ^Ig4?3xI0R#cir*aO6fc_C9NJjmg5g%pA>Y^ z1kB<06!N>=SNkIKIWijKx6*CE+ze?5d^a!AYojCGZ>s&6taTp7r;qn$G>kt5dU{i3 zy1HXt4h64qktbh?mfppZE5ebt0^&#X&kE}lbojh)Mb$f8vFFYigfxYlo2oyXD~axG z;ItcS#SUr+mf!*^Nx+f7W{;P92st~$wb{}|=LgkgJTLo{5sXANX~8QEB(wE&z-+dc8k z(VR08Rd8)C&zGD#DW|uUaX$x>0@^M+)eHv4?&U1+hmYXd_U#yB`j`#$iYP6|l*|L}0<|F%Rk0>dlfH%+o#$_LS;UpsPZ#TZ zzVIevU_O)Md8YxmY^3Yj7cjeyy`NAWWjw!?O1+h0;QnwEJ8YWZR;BC!-GQWuc&CQ@ zHF0db)l8dJ^K)%o^%(o}!Un&2CuOF1aL?cst%~UKexm`s^d`c$rz^f5EtqR~R|lxh zIc{O<6U4$%#*szVh6G<%)giey*;w+oL>LGgGVAo_EX8GPv8H%WziuENi{w5D;zz zG5xI^cf!Z47bq2bt8hGAf?!cCs{%X2+*u*QV#Gs-WzVv{iNietK{c6K!=I|}?PKk2 zNOipxV*PfAO}1L}vW(mN_A>r8KD3?7N4Gu_bYEnxoaXAbM*tz|iA(CohEZqk7w15n zaz=*zHFbn9M&=~qZ*7+d!~rBL@%9klR-p7AaU| z?)l$lay&Jql2;;c2f{{TX|95W5)qpt=CtfLzqkQ15<6Pa6Fc!TXMrMLD)Hm_$LwqM zksRc+Pcro|0no+Y>^(H7g__fkgyT@86n zao5?qWs2PnFW1(V2CqFhmE|RehetOmkOp?zA?}ybqNC#HFCj*YTk0|`P1z@>FGt(i z7yL9s$iwNRS1}>DA+~rFu&L8%2mzl!UGQ!?+@Vh)@Xg^d*bNS_@T4O)4n@&CHr)Hf z_C9Mtp&~VLQsx7V^ofYU6+|MCPzG~7iP3V}9pj(U`0_s6Bz}zSF6k(o2QF!8cUdF2 zx`L^gk24X;f1by!j0;aQEs&9KZk~)MwG^(gQ-VVnsYl-Nl`AjbR$$+%87F;5Z==Tu zlM*Sain|zoGOLH)!`}^UqoAh2|Cz6Av$pxjlqLf>EMa|!5i2Nt_jv%Kl{C?pIU|=x z$3ZWB@7?5fJ|fqlueZYcR}p@*M?x2^(|WUF9s*GIbKc@*NCK+`Z?{>nZ2v%e!$GXQyZN zE4@BwFJ9Yv(BH+a4kg^WGL!?+!IHSVV)pGPqmm{yT7&ePzi0-GYwQ_>7p7K984tV| ziey<7?BSono1dp04nwNI)whyh#c&TbqNO8};#l*R({Zq{mObTcP-?86S~aHqV%^x- z8C=@0RzY1L<=6)%OE*kksc%RTg23tVyuuF-Pt7n?+3AeMC9cMXfO)$RhHEXWs(z9! z#%lUIgy_Q?@?hImr_bc}M$}ujF?Q}G=)HZ=bVt=@_0!ho`X##Tt7p@eYGGuAyKVe- zm=Xr!6t3%IS9Y&?nRKMgOGOy7(H0~bc)Mb$=EEvKcu)BEjvQx7PEDj46ikP!Y9dXX z=Z#&!F|xHHVV-86qPaBCjMFgt<}nX5XJp;C4^d?sTsCUgU#h;>IbGU(Jz~t(2M38s z*Xqti9@kTVNY;TbR=CC>lE95qib_r6waJ}W=M#(o=Iae5AZ@9wIDI4*tF1^Gw;5qe z1~v+%!lULtL9+Q7KZr-UJ2zg0_RCe-@^0oD);`(n;=Jb0jJ=z^Xx_TjgUq~7?us=I zLkEKW#5<8M0eGyo{GpeXH`Z`Xp(o8<^0L!1nM^hgu0(oZ^`GAaliFvbg**4v6V{eG!s;OEYuW`#g}_77erjVC7aY;rZs6a3fhsqr zY;Jw;-a06;h|j5!QA@yDgC{nxW!nFSh3Y6pnn*4y{4DB=H?!hEu>~E1Fpuv5i1TB7@@oD$XR<+h#_OlMzWT zkGh=Ls2a0V3I;L~vwT%@m$5X6Q8Winur$1FHukViY_t%zdxv(TNOj@^GlRh7&;&49 zIi4yO9-_5UV50@P24$y4evN&%FI%snGTnRppmx~08 z$0OWGTUt@*kzLI;xpMJ2?qMDGxAx3F=)ngKu>^gPcNf z28)YJ4)$ur!P^3tUB;a1t67GTXCD5S@lbKxS^JDfz>6)%PzN`~DO|ZsCvlQG6K*ep zyPl%+@7}T|jiZKNd{`_)re%|ZL|=uYaP?h00=U`x<$-0Y@{zADt;wW5UiuB1h!4B> z`!3qQ8@6+`bNk5PY;BxEZl9B+koF$5kQ3MR<9jM{xA!6-gWVqn7v z3)Bg9*tb7Y&~_7DIvZkHT-q{_4vnjL6Bi5MZaavQr2!Y2s(ntao$~rVbI^%}En9X} z5V_`TWT=}5$x?QFWl^JpJ5(GYxO`KZX(uMVlm~UG8ofipcDuG^>Z=6XTXj>1HpJp4 zU!0qY+!XTTd0=mq=CXDNO$-G?iy9OD>*tV$2qpdtrsR+a0IM+(41mIuO+_WFP-o{< zmeCe!5J5@=7sknGfIOxlLr^sW(AJZfagB9Bb68LrZ&eVv^et+!kIYuyaly1zuDg=K zX&Ei-*0o`ZVSY|BS&{2l7h&UF55O;X=G_R4%W*+IHZ{eUN5CoOa6;&cGa+@)UU2C} zDjZp?P}34&m1v-D+5t)0hi@+tTKo} z?fC@pvY3|6mUI8a{nqQi|7}N16T!-geWt$RDA>=N{Er*`-`}9LB@Wjs<4X-9E%R~3 zw+xCGPFY|GOe(A|UZB?H+hTT=g`=PorwC_N3~-SkY)50m01K&YF7pe3yO%6;i#=Pw zex|*Ka<9l&kOc2~OFabuW-6S~+OJLa*dTHG8shz;)%^WtsTmi=JPvYSGW);L_^x}h zr5nR||Lk;^p8;F3c&E`qi104w3dSkRJztau4NE}FD8mDWqijv27PT(Z;zeNla_w?I z*0n%0f*{nD;UYrmGVH+rl$1L?KCa^6O2SftFS{mUsPY-+BR;Wf4Gg+E^*KUaom1^B}ap& zUJg~P>5WS_q*s|4hnmM}HcnN2-VJg>X~i(P3@yp%K<}!q%d?iv&f(!n5=_ z!V3Gy&m%Vb^(|AYYI&0+^+6b0rh!*pO`6na!0!*pO~;XO-XCSW`O1?WSprx* zc1SPLhiS!|IrVKJk2}ys2;1nGkR(W?=_aq;@6 z1@xXTs+N_%*ofVFegJ7zJcRLax4(mehTP?~eWsj;-+KFZk;wu2y8K1;By`pbgRa)F z`?|ZG86B*N@)>LezMlS%@ZxO;+OvwUa3LI>`?h>(zs>Md#(7$(B-oY5c5|&73~eDc zxpLTn^{qfmlz((abgvT04?T#-94j0i6^dnzl;br**l;RhJA&Ftkrb_y;;R%@#5Hwr z2|}#dIKL6(&-I@i*S^LV{xWIwrJ?G~Cd2FyA%gDy99Z+N3F7btgnx}G`^1oJUTS7z zbK*^E(Ien>t(l8sG83?Z$En-( zZ9H2B>bS|5*pmZStv-_YwEk;)X8-W@io0SdA4K!Zx&ugg>vs#hF|lgmpi?O;0Ra)d ze)dT}{=)jTDpuW4;aq1TA|0GTbBv%`_i8Kc!dcCV$I4nz<4o?v499e=PE8ym#0O>h zq0MMGp2$(w-fim04@cLpoxI=46s%w-ZpDuvFnOe;*dop@Xa-Y6EJ3-(7@px+n=Ih? zA+4q#blb6Z)2Z^b3k}SCY>dxuIDwg`f-|?=aEfSN&b+P?-^u)Zv0do?sr&*;|I*DG zXi?;x9&Uxq6MRYhf`5CwSZsw5Z!tY9NYhpSw8pW4X3p@l`(DCP4@79D`ms&S8ZL>q zVZ7Znw}vyxc#W-+NVtzELtJ|!Ed!(xao3cizry>DxFp3;#grsXM6+XV^SNRyENz=+bKK*53FGsH{ng zlSS{q&3DheRovmdCb|$|s5j^fLAF4oi7UX!bvL3>Yq{!4r^(}KFd>84co60lfQj$# ztYsQcke0z;qkb(XGhuROwd!eJ9lb+GH2bYH+^~+1=iM9XK_E`1`BX%}>)xn?UHl>C zM}X>;rVU(=%G`P1M}eA)kKyC^_?}6L{8}z&FOtcj9C|rXva0~NTzhE-r8{4+E5;V_ zx=iYneVAjY9I6PoZr)LoZ&UALj~c*wA?9fA##lTzen`a_myKil)X9@T?{4LTe==&r z)un~W!|yUB|cH`9#n#v|6?z9hvr#Cj8pPQDq5<8giyMflR=S->^1qKoEr?7axzp^D`0AJ~c?oWz;q4S+&mMLL?iwVQ2?YXc(KqnOWeiNg)Nw zjl5>fZk84~D-?p{#`8laiIIsN;S8(^)95~i&#|wY9FO!gsVUM>STm1zq>zK0ZpB_$ zqib?6o{4VfLP6?nIEfr|bCm|EXfB%D^45orAQN4$Ex)I*LcG%kV;JTsm#ofS*nLA^ z@^StK-)E{X{(fa)wim(9C4kzOr3bgz=h)BuIR@%$g6ZS0?c;3m!3)q3UUS^tVq-0W z4*CKgjKw=tf)vzzFksE)BE zkHb<(N}9lduSstpIGkru3QU!%9IK@x6x(-wpnU`g)pH_|HJLF|(@t>9LoW_BzUkww z8|~RFNx2F(8ef^TIpQag%F_ViCe@@^@fd=ALVZOkE6Bvm2XDpuX$A7F%waA?iTnCq zSWQSga!lSUoVu9$9(=T3b=|kj{!^Yd(9MpDId0XjM=wgG1Zwt{&6axWiH*$hysLx{ zt7Jx!#G?RLLT#r0+C$}0`;4D*gL^38$)Qv}6yJ3M10m5TQ}ZBZU~qc}3`d=lsUlrx z@Gb?IDZ^{t$|YovCA$nvgGO%;v=EVQ{mUS^4; zJRMs9jn6ceQEVPE?S4|?o4`QJ{TtqBrde|TiIb!8&+xeAt#ze?iTwC#bL)tg!u*DW zXGWwXr*E54?pa54%Y`S*v6=G&JaSpq_Z_)J5@TXwVTtArVPtE2cP?F-EnNbxW&7J+ zBp@tXikYc;r9t7GL+Uy6U7qaeTkjit`fRk8w5|w;&cDC>;EF9pl)rLo%PT=3J&GA` zL}i^9yTObEEy_)%5lQm`ZF%^+V%}0g zw%5)IA$zQ767SH*Eb|WcyMxp3ja8B2J!xVheQp!^w+LgIa6q6I+o^ke|}S0maFhV8$^+;mGM#A(nUm3TqqvCjg=E&Ujt! zOwA1=Z(wt9->l6FXejs1gZQHI5wL8~Ku9&CWZ6651}_^5G$50~%ExuqWur-zjef)cFdoA z21{HE9+yMb4PnS{Rt|2RTcsxwYWB^4#ode3W%pexg^izVg2Wm|w>rLH&YE%!DuCtC zyJveum7Kz8drv2@NWCuGkfBja#%!1?1>*hdv<(%?a{sNM@9-h)C428s-)#0S?{QSe zG+fM05;d*+mnD>>7u3LFrk_+)n#v-4hY3g?=$^C~=wSwda5$AOwBci=87 zkyJ7gKATjWD&cflB4v$`_u8`aWEQv^;t(gDpVOvF#nsu&eLOI9_QqxARsXS&;XEsFVKU^TqAPJ2+)H(7SO^WRM0m+LVEv* z!2I)R<&TBwrQ-^=KoS(d%9X?|GS(3!6GvnjS3Dts`8ZKQ@jX~?H(UxctT?b}*N50~ zoOY3|DCN?L#Hq*CE;W^!j}m#@-FOQx8WTDs&6D-xjlBPD6Q7oUCk!*P0ZVmhJMvEZ z(B)ZSL|G|lJ>9E-r0+wNm81J~3jT($bwa&YVnu)^#?yj9J4hxJQu>-M3`S|A;D&ywHEuWYGF2AxU$AYibGlx+_&?KvJP9SABjzph zFm1-|DCYb=PF=O7@X~T}oVGpj$^+#MB9kBxQN!*iA}toWy5^n8XB$1y2{aCd?F#Eu z=V7%_N5AE82aLk!^rALXJ{w~-dR@!Go*AyU1*<5oO-Lr(2YR0iAWceT%z<5k)vV0r z-*fF&heIAb(^56L>%I=GBBngTv$X`pT5fPNE=Rs4K0A;D)y%&e3D4d~M3sVmsRL~w zzbZfL&Pm_E%J_|wyOpuykJ>{RltA)h!Vz3;32`-h@Md_eK!NdSDK#sTy#%M|5mU{;7^5<$JfXX1Sux%Z;I(+ZtVI$iWwd& zWBZi}A?PUXk~n9fJ^?OXL1DDOyvZ&J638bh-8V_4K#+C3xBa$FqY{D|@AhJ^r@LB2 z8OsWpsFoddCs`K|3YPK7sHa%0O2Z0YT*32VuTFt5VI<>>*fppXq z+7xk0yxH(smWe%QrhDTVH+LYThJRN`6E+oGXHcE3gF?Ea0${=Z$Lhh**1`CPI+El- zg3)9FK!^N)JB7!N$$n+R2s)DSdY^xlODF9&gcE|t7@kCFz_!4C0ESoZVov9Obt2=% z+|&+DgRSGT&7=G9pv^Le^r+6nf5e+6ii0kM?Jc>dm6ko za02u}W-a)RD%Ko-#ba6Zw<*o2u#u$i!9P?dox}21AxZ1MU}TF!uZp%&{VGyJ=yE>Y zk5pP*tcr*?xlMiTeR)2v#r~oAFcd-(y}c-o@jcrFW|Fkj=GQ?lA9dnn?qwH0p1h#X zU|Tg3#INR7)NkM7W!-CCrL*ptJeVh-buJ!;-|>`TBUl;TSD3ewHX70mgv&vZ9f%oW zh~`EkY*Q4R1b3h0IM&HKd~_j(6JDXqz6A&N0aqUM`9)g2nJMeTzH^w~is{>n-`lPu zW{(|r&ORHbI=`_^e)!Y&r3-x26BneX)Sy)sD8K8fzMb9wud2T;&pf4en|VQ$7S&w= zwJ-jp5%OVJV$WgiVIwFBJan23JtvK4=F?;ImL~*uqMWUIkl1LHHFVur&)j(4RvX%1 zRLr!4rHNUZth#YMgJ4QlHVajEOJsy0?r4i+leDnZ!{YZtE?>Jk5?-@{ibU~hL+c*- z8v8LtG-gC{R!U%_YE{x^Q3vh)r(mlLLumL^?`8k&Zw72B!pDMo7$09v!3UMCoeMtF z7F(%YZP)J@c6n5aGf1Sb5v|1pXF!}xz1&<6JE2CcmDf^@@0LcpMJ;D`oCc=(0k@(_ zDz8@1!h(dIq>VV+&UR#KtWv@Rcm(IORmfhx!3=S#va6!Kxki?DN9q#I1t*RYIS=T> zmb&XGs~0Slf6gSQESuSB(2`+Unj!?#MHPp)wJ(t-b?`3#HbCuN>2|uf(;)BYIRIB3 z+wHC$Ju{$P*5hM(S|H4hJl-=+4SY5=)eNm>C|6y%IFebT{EoD|^^?$#rfkR8Q9U>> z)(3*xR+J4&Y5`GQnw>qiD7qREysQ+Xk3K@^Yy~X*wLBu@E4Geb0Oy=nsYDt_K$lPI zk9jRbL;2n59Wxf~h*+Q~GHUB(2@h74i=av2?Ry-G!mgk%gROC z;(mt(8B|>bACNGPJbmIoMX!{Row;*=E(2D)-b_Ck_Qkr@^TdsX;ACRoDY2x!?v|vh z71VnF(e#6XGXQ?|B$o$qF3Lc^i6Z>b8~LR|KlU_V+uAr8+c@bex!V~#YX7*xpzC04<@n;KZT!=WhFat`ZJ@({#MCDFEgJxU2a1#U zqeuJGyWGD-NBn7a{--p2Ms^qk5NQh^Olielavb-Nyex{L>ZRAL9MQJ&i#A_sRMoY5zO&UlE=Eiu|vI_Q3f&A^(cz`&XyqUr%%d{@)?9{vXO52QuaT?^XCK>g>}pKaJh`OFxnc ze}iF zWY;fV8qHtxe%8}d+|#Htzi>2+e~tU8P)~7BBS!qfHL?6P?oS)rr@qsF;Q(B};r?08 zKP%(63VvF;r;by9;S>db!~L`E{;h6*YT{GeQ@@12a6%$~jr+MY?J4f5KdN82WU0T# z{q#=t6!+AF%`aRXXa?l36#3_k0Px z|J*u?>HZ1sxAx$V%Ko)h@G1G}io0J0mC^fy{B-@@AB6wBeBl>C$n-xhW_VhRr&Ei+ zAbb9Q6yske8lPr=I=l5Ndtu-|r1;mluBU*fGf2Mx0YQHN{$)PtY4(4e%=ncV0N@J# t?Hv4bYU644e;r@`o_! + +#include +#include "esp32-hal-ledc.h" + +//----- Werte für den Ultraschallsensor ----- +#define US_STOP_ABSTAND_CM 15 // Wenn der gemessene Abstand kleiner ist, hält der CodeRacer an + +//----- Variablen, die wir brauchen um uns Werte zu merken ---- +long abstand_vorn_cm, abstand_links_cm, abstand_rechts_cm; + +CodeRacer coderacer; + +//---- Hier startet der Code zum Einstellen aller wichtigen Dinge. Setup() wird einmal ausgeführt. ---- +void setup() { + // Monitor + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. + + // CodeRacer initialisieren + coderacer.begin(); + + coderacer.servo_links(); + delay(10); + coderacer.servo_rechts(); + delay(10); + coderacer.servo_mitte(); + +} + +//---- Hier startet unsere endlose Schleife - die immer wieder von vorn angefangen wird, wenn wir am Ende angekommen sind. Da ist unser "Fahr"Code drin, der den CodeRacer steuert +void loop() { + + + // Abstand messen -> nach vorn ... um zu sehen, ob was passiert messen wir immer ... auch wenn der Racer nicht fahren soll + abstand_vorn_cm = coderacer.abstand_messen(); + + // Abfragen ob der Racer fahren soll oder nicht ... + if(true == coderacer.start_stop()){ + + // Abstandssensor schon verstellen ... dann hat er das bis zur nächsten Messung auch geschafft + coderacer.servo_schwenk(); + + // Ist die Bahn frei? + if(abstand_vorn_cm < US_STOP_ABSTAND_CM){ + // Nein! Der Abstand nach vorn ist kleiner als erlaubt! + // Racer anhalten + coderacer.anhalten(); + // Nach links schauen! + coderacer.servo_links(); + // Abstand messen und merken. + abstand_links_cm = coderacer.abstand_messen(); + // Nach rechts schauen! + coderacer.servo_rechts(); + // Abstand messen und merken. + abstand_rechts_cm = coderacer.abstand_messen(); + + // Welcher Abstand ist größer? + if(abstand_links_cm > abstand_rechts_cm){ + // Links ist mehr Platz! + coderacer.links(); + // Servo in die Mitte Stellen + coderacer.servo_mitte(); + } + else{ + // Rechts ist mehr Platz! + coderacer.rechts(); + // Servo in die Mitte Stellen + coderacer.servo_mitte(); + } + } + else{ + // Ja! Die Bahn ist frei + coderacer.vorwaerts(); + } + + } + +} + + + diff --git a/esp32_coderacer_wlib/esp32_coderacer_analogWrite.ino_ b/esp32_coderacer_wlib/esp32_coderacer_analogWrite.ino_ new file mode 100644 index 0000000..e647667 --- /dev/null +++ b/esp32_coderacer_wlib/esp32_coderacer_analogWrite.ino_ @@ -0,0 +1,253 @@ +#include +#include "esp32-hal-ledc.h" + +//----- Werte für den Servo ----- +#define SERVOPIN 16 // Pin an dem der Servomotor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define SERVO_45GRAD_LINKS 136 // Wert um den Servo 45 Grad nach links zu drehen ... der kann je nach Servo anders sein +#define SERVO_45GRAD_RECHTS 45 // Wert um den Servo 45 Grad nach rechtss zu drehen ... der kann je nach Servo anders sein +#define SERVO_0GRAD_MITTE 90 // Wert um den Servo in die Mitte zu drehen ... der kann je nach Servo anders sein + +//----- Werte für den Ultraschallsensor ----- +#define US_TRIG 35 // Pin an dem der TRIG Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_ECHO 34 // Pin an dem der ECHO Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_STOP_ABSTAND_CM 10 // Wenn der gemessene Abstand kleiner ist, hält der CodeRacer an + +//----- Werte für die Motoren ----- +#define MOTORRE_SPEED 2 // Pin an dem der SPEED/ENABLE Pin des rechten Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_FWRD 4 // Pin an dem der FORWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_BACK 0 // Pin an dem der RÜCKWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_TEMPO 150 // Geschwindigkeit Motor1 ... ein Wert zwischen 0 und 255 +#define MOTORLI_SPEED 17 // Pin an dem der SPEED/ENABLE Pin des linken Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_FWRD 18 // Pin an dem der FORWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_BACK 5 // Pin an dem der RÜCKWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_TEMPO 150 // Geschwindigkeit Motor1 ... ein Wert zwischen 0 und 255 +#define RACER_LINKS_MS 500 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach links zu drehen +#define RACER_RECHTS_MS 500 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach rechts zu drehen + +//----- Werte für die LEDs ----- +#define LED_VORWAERTS 26 // Pin an dem die VORWÄRTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_STOP 25 // Pin an dem die STOP LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_LINKS 27 // Pin an dem die LINKS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_RECHTS 33 // Pin an dem die RECHTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. + +//----- Variablen, die wir brauchen um uns Werte zu merken ---- +long abstand_vorn_cm, abstand_links_cm, abstand_rechts_cm; + +//----- Objekte die wir haben. z.B. den Servo ---- +Servo myservo; // ein Servo-Objekt anlegen, um den Servo Motor steuern zu können + +//---- Hier startet der Code zum Einstellen aller wichtigen Dinge. Setup() wird einmal ausgeführt. ---- +void setup() { + // Monitor + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. + + // Ultraschallsensor + pinMode(US_TRIG, OUTPUT); // Ultraschallsensor: TRIG ist ein Ausgangspin. Es wird ein Signal zum Ultraschallsensor gesendet + pinMode(US_ECHO, INPUT); // Ultraschallsensor: ECHO ist ein Eingangspin. Es wird ein Signal vom Ultraschallsensor empfangen + + // Servo + myservo.attach(SERVOPIN); // dem Servo Objekt "sagen" an welchen Pin am Schaltkreis der Server angeschlossen ist + + // Linker Motor + pinMode(MOTORLI_FWRD,OUTPUT); // Linker Motor FORWARD ist ein Ausgang. + pinMode(MOTORLI_BACK,OUTPUT); // Linker Motor BACKWARD ist ein Ausgang. + ledcSetup(15, 5000, 8); // channel 1, 50 Hz, 8-bit width + ledcAttachPin(MOTORLI_SPEED, 1); // Linker Motor SPEED mit Kanal 1 verbunden + analogWrite(MOTORLI_SPEED, 0); // Linken Motor sicherheitshalber ausschalten :-) + + // Rechter Motor + pinMode(MOTORRE_FWRD,OUTPUT); // Rechter Motor FORWARD ist ein Ausgang. + pinMode(MOTORRE_BACK,OUTPUT); // Rechter Motor BACKWARD ist ein Ausgang. + ledcSetup(14, 5000, 8); // channel 2, 50 Hz, 8-bit width + ledcAttachPin(MOTORRE_SPEED, 2); // Rechter Motor SPEED mit Kanal 2 verbunden + analogWrite(MOTORRE_SPEED, 0); // Rechten Motor sicherheitshalber ausschalten :-) + + pinMode(MOTORRE_SPEED,OUTPUT); // Rechter Motor SPEED ist ein Ausgang. + digitalWrite(MOTORRE_SPEED, 0); // Rechten Motor sicherheitshalber ausschalten :-) + + // LEDs + pinMode(LED_VORWAERTS, OUTPUT); // LED Vorwärts ist ein Ausgang + pinMode(LED_STOP, OUTPUT); // LED Stop ist ein Ausgang + pinMode(LED_LINKS, OUTPUT); // LED Links ist ein Ausgang + pinMode(LED_RECHTS, OUTPUT); // LED Rechts ist ein Ausgang + + // alle LEDS aus + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); +} + +//---- Hier startet unsere endlose Schleife - die immer wieder von vorn angefangen wird, wenn wir am Ende angekommen sind. Da ist unser "Fahr"Code drin, der den CodeRacer steuert +void loop() { + + // Servo in die Mitte Stellen + ServoMitte(); + + // Abstand messen -> nach vorn + abstand_vorn_cm = AbstandMessen(); + + // Ist die Bahn frei? + if(abstand_vorn_cm < US_STOP_ABSTAND_CM){ + // Nein! Der Abstand nach vorn ist kleiner als erlaubt! + // Racer anhalten + RacerAnhalten(); + // Nach links schauen! + ServoLinks(); + // Abstand messen und merken. + abstand_links_cm = AbstandMessen(); + // Nach rechts schauen! + ServoRechts(); + // Abstand messen und merken. + abstand_rechts_cm = AbstandMessen(); + + // Welcher Abstand ist größer? + if(abstand_links_cm > abstand_rechts_cm){ + // Links ist mehr Platz! + RacerLinks(); + } + else{ + // Rechts ist mehr Platz! + RacerRechts(); + } + } + else{ + // Ja! Die Bahn ist frei + RacerVorwaerts(); + } + +} + +//-------------- Funktionen und Prozeduren ------------------------- + +void RacerAnhalten(void){ + Serial.println("RACER_ANHALTEN"); // Meldung am Monitor ausgeben + // Rechten Motor abschalten + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor abschalten + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide ausschalten + analogWrite(MOTORRE_SPEED, 0); + analogWrite(MOTORLI_SPEED, 0); + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, HIGH); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); +} + +void RacerVorwaerts(void){ + Serial.println("RACER_VORWAERTS"); // Meldung am Monitor ausgeben + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + analogWrite(MOTORRE_SPEED, MOTORRE_TEMPO); + analogWrite(MOTORLI_SPEED, MOTORLI_TEMPO); + // LEDs setzen + digitalWrite(LED_VORWAERTS, HIGH); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); + +} + +void RacerLinks(void){ + Serial.println("RACER_LINKS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, HIGH); + digitalWrite(LED_RECHTS, LOW); + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf rückwärts stellen + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, HIGH); + // Motoren beide anschalten + analogWrite(MOTORRE_SPEED, MOTORRE_TEMPO); + analogWrite(MOTORLI_SPEED, MOTORLI_TEMPO); + // Warten bis der RAcer sich gedreht hat + delay(RACER_LINKS_MS); + // Motoren wieder auschalten + analogWrite(MOTORRE_SPEED, 0); + analogWrite(MOTORLI_SPEED, 0); +} + +void RacerRechts(void){ + Serial.println("RACER_RECHTS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, HIGH); + // Rechten Motor auf rückwärts stellen + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, HIGH); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + analogWrite(MOTORRE_SPEED, MOTORRE_TEMPO); + analogWrite(MOTORLI_SPEED, MOTORLI_TEMPO); + // Warten bis der RAcer sich gedreht hat + delay(RACER_RECHTS_MS); + // Motoren wieder auschalten + analogWrite(MOTORRE_SPEED, 0); + analogWrite(MOTORLI_SPEED, 0); +} + +void ServoRechts(void){ + Serial.println("SERVO_RECHTS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_RECHTS); // Servo auf den Winkel rechts drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoLinks(void){ + Serial.println("SERVO_LINKS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_LINKS); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoMitte(void){ + Serial.println("SERVO_MITTE"); // Meldung am Monitor ausgeben + myservo.write(SERVO_0GRAD_MITTE); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +long AbstandMessen(){ + long abstand_cm,echo_dauer; + // Messung starten - ein kurzer Pulse "HIGH" wird zum TRIG pin des Ultraschallsensors geschickt + digitalWrite(US_TRIG,LOW); + delayMicroseconds(2); + digitalWrite(US_TRIG,HIGH); + delayMicroseconds(10); + digitalWrite(US_TRIG,LOW); + + // Messung der Dauer in Mikrosekundenmeasure bis das ECHO Pin vom Ultraschallsensor HIGH wird + pinMode(US_ECHO,INPUT); + echo_dauer = pulseIn(US_ECHO,HIGH); + + // convert into cm ... 344m/sec is the speed of noise - thus 34400cm/sec ... or 34,400cm/milisec ... or 0,0344cm/microsec + // the echo has to go the distance twice - forth and back - so the duration has to be the half of the measured one + // distance_cm = echo_duration/2 * 0,0344 or distance_cm = echo_duration/2 / 29,1 or distance_cm = echo_duration * 0,0172 + // distance_cm = (echo_duration/2) / 29.1; + abstand_cm = echo_dauer * 0.0172; + + //Messwert am Monitor anzeigen + Serial.print("ABSTAND_MESSEN. Der Abstand in cm ist:"); + Serial.println(abstand_cm); + + return(abstand_cm); +} + +void analogWrite(uint8_t pin, uint8_t speed){ + ledcWrite(1, speed); +} + diff --git a/esp32_coderacer_wlib/esp32_coderacer_digitalWrite.ino_ b/esp32_coderacer_wlib/esp32_coderacer_digitalWrite.ino_ new file mode 100644 index 0000000..61b78fb --- /dev/null +++ b/esp32_coderacer_wlib/esp32_coderacer_digitalWrite.ino_ @@ -0,0 +1,246 @@ +#include + +//----- Werte für den Servo ----- +#define SERVOPIN 16 // Pin an dem der Servomotor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define SERVO_45GRAD_LINKS 136 // Wert um den Servo 45 Grad nach links zu drehen ... der kann je nach Servo anders sein +#define SERVO_45GRAD_RECHTS 45 // Wert um den Servo 45 Grad nach rechtss zu drehen ... der kann je nach Servo anders sein +#define SERVO_0GRAD_MITTE 90 // Wert um den Servo in die Mitte zu drehen ... der kann je nach Servo anders sein + +//----- Werte für den Ultraschallsensor ----- +#define US_TRIG 12 // Pin an dem der TRIG Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_ECHO 14 // Pin an dem der ECHO Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_STOP_ABSTAND_CM 20 // Wenn der gemessene Abstand kleiner ist, hält der CodeRacer an + +//----- Werte für die Motoren ----- +#define MOTORRE_SPEED 2 // Pin an dem der SPEED/ENABLE Pin des rechten Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_FWRD 4 // Pin an dem der FORWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_BACK 0 // Pin an dem der RÜCKWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_SPEED 17 // Pin an dem der SPEED/ENABLE Pin des linken Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_FWRD 18 // Pin an dem der FORWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_BACK 5 // Pin an dem der RÜCKWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define RACER_LINKS_MS 200 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach links zu drehen +#define RACER_RECHTS_MS 200 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach rechts zu drehen + +//----- Werte für die LEDs ----- +#define LED_VORWAERTS 26 // Pin an dem die VORWÄRTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_STOP 25 // Pin an dem die STOP LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_LINKS 27 // Pin an dem die LINKS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_RECHTS 33 // Pin an dem die RECHTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. + +//----- Variablen, die wir brauchen um uns Werte zu merken ---- +long abstand_vorn_cm, abstand_links_cm, abstand_rechts_cm; + +//----- Objekte die wir haben. z.B. den Servo ---- +Servo myservo; // ein Servo-Objekt anlegen, um den Servo Motor steuern zu können + +//---- Hier startet der Code zum Einstellen aller wichtigen Dinge. Setup() wird einmal ausgeführt. ---- +void setup() { + // Monitor + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. + + // Ultraschallsensor + pinMode(US_TRIG, OUTPUT); // Ultraschallsensor: TRIG ist ein Ausgangspin. Es wird ein Signal zum Ultraschallsensor gesendet + pinMode(US_ECHO, INPUT); // Ultraschallsensor: ECHO ist ein Eingangspin. Es wird ein Signal vom Ultraschallsensor empfangen + + // Servo + myservo.attach(SERVOPIN); // dem Servo Objekt "sagen" an welchen Pin am Schaltkreis der Server angeschlossen ist + + // Linker Motor + pinMode(MOTORLI_FWRD,OUTPUT); // Linker Motor FORWARD ist ein Ausgang. + pinMode(MOTORLI_BACK,OUTPUT); // Linker Motor BACKWARD ist ein Ausgang. + pinMode(MOTORLI_SPEED,OUTPUT); // Linker Motor SPEED ist ein Ausgang. + digitalWrite(MOTORLI_SPEED,LOW); // Linken Motor sicherheitshalber ausschalten + + // Rechter Motor + pinMode(MOTORRE_FWRD,OUTPUT); // Rechter Motor FORWARD ist ein Ausgang. + pinMode(MOTORRE_BACK,OUTPUT); // Rechter Motor BACKWARD ist ein Ausgang. + pinMode(MOTORRE_SPEED,OUTPUT); // Rechter Motor SPEED ist ein Ausgang. + digitalWrite(MOTORRE_SPEED,LOW); // Rechten Motor sicherheitshalber ausschalten + + // LEDs + pinMode(LED_VORWAERTS, OUTPUT); // LED Vorwärts ist ein Ausgang + pinMode(LED_STOP, OUTPUT); // LED Stop ist ein Ausgang + pinMode(LED_LINKS, OUTPUT); // LED Links ist ein Ausgang + pinMode(LED_RECHTS, OUTPUT); // LED Rechts ist ein Ausgang + + // alle LEDS aus + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); + + // Servo am Anfang in die Mitte Stellen + ServoMitte(); +} + +//---- Hier startet unsere endlose Schleife - die immer wieder von vorn angefangen wird, wenn wir am Ende angekommen sind. Da ist unser "Fahr"Code drin, der den CodeRacer steuert +void loop() { + + + + // Abstand messen -> nach vorn + abstand_vorn_cm = AbstandMessen(); + + // Ist die Bahn frei? + if(abstand_vorn_cm < US_STOP_ABSTAND_CM){ + // Nein! Der Abstand nach vorn ist kleiner als erlaubt! + // Racer anhalten + RacerAnhalten(); + // Nach links schauen! + ServoLinks(); + // Abstand messen und merken. + abstand_links_cm = AbstandMessen(); + // Nach rechts schauen! + ServoRechts(); + // Abstand messen und merken. + abstand_rechts_cm = AbstandMessen(); + + // Welcher Abstand ist größer? + if(abstand_links_cm > abstand_rechts_cm){ + // Links ist mehr Platz! + RacerLinks(); + } + else{ + // Rechts ist mehr Platz! + RacerRechts(); + } + + // Servo am Anfang in die Mitte Stellen + ServoMitte(); + } + else{ + // Ja! Die Bahn ist frei + RacerVorwaerts(); + } + +} + +//-------------- Funktionen und Prozeduren ------------------------- + +void RacerAnhalten(void){ + Serial.println("RACER_ANHALTEN"); // Meldung am Monitor ausgeben + // Rechten Motor abschalten + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor abschalten + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide ausschalten + digitalWrite(MOTORRE_SPEED,LOW); + digitalWrite(MOTORLI_SPEED,LOW); + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, HIGH); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); +} + +void RacerVorwaerts(void){ + Serial.println("RACER_VORWAERTS"); // Meldung am Monitor ausgeben + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + digitalWrite(MOTORRE_SPEED, HIGH); + digitalWrite(MOTORLI_SPEED, HIGH); + // LEDs setzen + digitalWrite(LED_VORWAERTS, HIGH); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); + +} + +void RacerLinks(void){ + Serial.println("RACER_LINKS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, HIGH); + digitalWrite(LED_RECHTS, LOW); + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf rückwärts stellen + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, HIGH); + // Motoren beide anschalten + digitalWrite(MOTORRE_SPEED, HIGH); + digitalWrite(MOTORLI_SPEED, HIGH); + // Warten bis der RAcer sich gedreht hat + delay(RACER_LINKS_MS); + // Motoren wieder auschalten + digitalWrite(MOTORRE_SPEED,LOW); + digitalWrite(MOTORLI_SPEED,LOW); +} + +void RacerRechts(void){ + Serial.println("RACER_RECHTS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, HIGH); + // Rechten Motor auf rückwärts stellen + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, HIGH); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + digitalWrite(MOTORRE_SPEED, HIGH); + digitalWrite(MOTORLI_SPEED, HIGH); + // Warten bis der RAcer sich gedreht hat + delay(RACER_RECHTS_MS); + // Motoren wieder auschalten + digitalWrite(MOTORRE_SPEED,LOW); + digitalWrite(MOTORLI_SPEED,LOW); +} + +void ServoRechts(void){ + Serial.println("SERVO_RECHTS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_RECHTS); // Servo auf den Winkel rechts drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoLinks(void){ + Serial.println("SERVO_LINKS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_LINKS); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoMitte(void){ + Serial.println("SERVO_MITTE"); // Meldung am Monitor ausgeben + myservo.write(SERVO_0GRAD_MITTE); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +long AbstandMessen(){ + long abstand_cm,echo_dauer; + // Messung starten - ein kurzer Pulse "HIGH" wird zum TRIG pin des Ultraschallsensors geschickt + digitalWrite(US_TRIG,LOW); + delayMicroseconds(2); + digitalWrite(US_TRIG,HIGH); + delayMicroseconds(10); + digitalWrite(US_TRIG,LOW); + + // Messung der Dauer in Mikrosekundenmeasure bis das ECHO Pin vom Ultraschallsensor HIGH wird + echo_dauer = pulseIn(US_ECHO,HIGH); + + // convert into cm ... 344m/sec is the speed of noise - thus 34400cm/sec ... or 34,400cm/milisec ... or 0,0344cm/microsec + // the echo has to go the distance twice - forth and back - so the duration has to be the half of the measured one + // distance_cm = echo_duration/2 * 0,0344 or distance_cm = echo_duration/2 / 29,1 or distance_cm = echo_duration * 0,0172 + // distance_cm = (echo_duration/2) / 29.1; + abstand_cm = echo_dauer * 0.0172; + + //Messwert am Monitor anzeigen + Serial.print("ABSTAND_MESSEN. Der Abstand in cm ist:"); + Serial.println(abstand_cm); + + return(abstand_cm); +} + + diff --git a/esp32_coderacer_wlib/esp32_coderacer_wlib.ino b/esp32_coderacer_wlib/esp32_coderacer_wlib.ino new file mode 100644 index 0000000..a537ae2 --- /dev/null +++ b/esp32_coderacer_wlib/esp32_coderacer_wlib.ino @@ -0,0 +1,159 @@ +#include + +#include +#include "esp32-hal-ledc.h" + +//----- Taster ------------ +#define TASTERPIN 17 + +//----- Werte für den Servo ----- +#define SERVOPIN 16 // Pin an dem der Servomotor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define SERVO_LINKS 140 // Wert um den Servo 45 Grad nach links zu drehen ... der kann je nach Servo anders sein +#define SERVO_RECHTS 35 // Wert um den Servo 45 Grad nach rechtss zu drehen ... der kann je nach Servo anders sein +#define SERVO_MITTE 90 // Wert um den Servo in die Mitte zu drehen ... der kann je nach Servo anders sein +#define SERVO_SCHWENK_LINKS 135 +#define SERVO_SCHWENK_RECHTS 40 + + +//----- Werte für den Ultraschallsensor ----- +#define US_TRIG 12 // Pin an dem der TRIG Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_ECHO 14 // Pin an dem der ECHO Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_STOP_ABSTAND_CM 15 // Wenn der gemessene Abstand kleiner ist, hält der CodeRacer an + +//----- Werte für die Motoren ----- + +#define MOTORRE_TEMPO 205 // Geschwindigkeit Motor1 ... ein Wert zwischen 0 und 255 +#define MOTORLI_TEMPO 200 // Geschwindigkeit Motor1 ... ein Wert zwischen 0 und 255 + + +#define MOTORRE_SPEED 2 // Pin an dem der SPEED/ENABLE Pin des rechten Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_FWRD 4 // Pin an dem der FORWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_BACK 15 // Pin an dem der RÜCKWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_SPEED 21 // Pin an dem der SPEED/ENABLE Pin des linken Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_FWRD 22 // Pin an dem der FORWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_BACK 23 // Pin an dem der RÜCKWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define RACER_LINKS_MS 200 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach links zu drehen +#define RACER_RECHTS_MS 200 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach rechts zu drehen + +//----- Werte für die LEDs ----- +#define LED_VORWAERTS 26 // Pin an dem die VORWÄRTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_STOP 25 // Pin an dem die STOP LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_LINKS 27 // Pin an dem die LINKS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_RECHTS 33 // Pin an dem die RECHTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. + +//----- Variablen, die wir brauchen um uns Werte zu merken ---- +long abstand_vorn_cm, abstand_links_cm, abstand_rechts_cm; + + + +bool coderracer_activ = false; + +//----- Objekte die wir haben. Der CodeRacer mit all seinen Pins in der Reihenfolge: +// servopin, us_trigger_pin, us_echo_pin, motor_links_frwd_pin, motor_links_back_pin, motor_links_enable_pin, motor_rechts_frwd_pin, int motor_rechts_back_pin,motor_rechts_enable_pin +CodeRacer coderacer(SERVOPIN, US_TRIG, US_ECHO, MOTORLI_FWRD, MOTORLI_BACK, MOTORLI_SPEED, MOTORRE_FWRD, MOTORRE_BACK, MOTORRE_SPEED, LED_VORWAERTS, LED_STOP, LED_LINKS, LED_RECHTS); + +//CodeRacer coderacer(); + +//---- Hier startet der Code zum Einstellen aller wichtigen Dinge. Setup() wird einmal ausgeführt. ---- +void setup() { + // Monitor + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. + + // Taster + pinMode(TASTERPIN,INPUT_PULLUP); + + // CodeRacer initialisieren + coderacer.begin(); + + // Einstellungen für den Servo machen: winkel_mitte, winkel_links, winkel_rechts, schwenk_links, schwenk_rechts + coderacer.servo_einstellungen(SERVO_MITTE, SERVO_LINKS, SERVO_RECHTS, SERVO_SCHWENK_LINKS, SERVO_SCHWENK_RECHTS); + coderacer.servo_links(); + delay(10); + coderacer.servo_rechts(); + delay(10); + coderacer.servo_mitte(); + + // Einstellungen für die Motoren: motor_links_tempo, motor_rechts_tempo, drehung_links_ms, drehung_rechts_ms + coderacer.motor_einstellungen(MOTORLI_TEMPO, MOTORRE_TEMPO, RACER_LINKS_MS, RACER_RECHTS_MS); +} + +//---- Hier startet unsere endlose Schleife - die immer wieder von vorn angefangen wird, wenn wir am Ende angekommen sind. Da ist unser "Fahr"Code drin, der den CodeRacer steuert +void loop() { + + + // Taster abfragen + RacerStartStop(); + if(true == coderracer_activ){ + + // Abstand messen -> nach vorn + abstand_vorn_cm = coderacer.abstand_messen(); + // Zum anfahren muss das Tempo höher sein - also jetzt wieder Tempo runter ... + coderacer.normal_tempo(); + // Abstandssensor schon verstellen ... dann hat er das bis zur nächsten Messung auch geschafft + coderacer.servo_schwenk(); + + // Ist die Bahn frei? + if(abstand_vorn_cm < US_STOP_ABSTAND_CM){ + // Nein! Der Abstand nach vorn ist kleiner als erlaubt! + // Racer anhalten + coderacer.anhalten(); + // Nach links schauen! + coderacer.servo_links(); + // Abstand messen und merken. + abstand_links_cm = coderacer.abstand_messen(); + // Nach rechts schauen! + coderacer.servo_rechts(); + // Abstand messen und merken. + abstand_rechts_cm = coderacer.abstand_messen(); + + // Welcher Abstand ist größer? + if(abstand_links_cm > abstand_rechts_cm){ + // Links ist mehr Platz! + coderacer.links(); + // Servo in die Mitte Stellen + coderacer.servo_mitte(); + } + else{ + // Rechts ist mehr Platz! + coderacer.rechts(); + // Servo in die Mitte Stellen + coderacer.servo_mitte(); + } + } + else{ + // Ja! Die Bahn ist frei + coderacer.vorwaerts(); + } + + } + +} + +//-------------- Funktionen und Prozeduren ------------------------- + + +void RacerStartStop(void){ + if(digitalRead(TASTERPIN) == LOW){ + if(false == coderracer_activ){ + coderracer_activ = true; + digitalWrite(LED_STOP, LOW); + } else { + coderracer_activ = false; + digitalWrite(LED_STOP, HIGH); + } + delay(100); // Taster prellen ... + while(digitalRead(TASTERPIN) == LOW){ + // do nothing just wait ... + delay(200); + } + } + if(false == coderracer_activ){ + coderacer.anhalten(); + coderacer.servo_mitte(); + digitalWrite(LED_STOP, HIGH); + } else { + digitalWrite(LED_STOP, LOW); + } +} + + diff --git a/esp32_coderacer_wlib/olderversions/esp32_coderacer.ino b/esp32_coderacer_wlib/olderversions/esp32_coderacer.ino new file mode 100644 index 0000000..61b78fb --- /dev/null +++ b/esp32_coderacer_wlib/olderversions/esp32_coderacer.ino @@ -0,0 +1,246 @@ +#include + +//----- Werte für den Servo ----- +#define SERVOPIN 16 // Pin an dem der Servomotor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define SERVO_45GRAD_LINKS 136 // Wert um den Servo 45 Grad nach links zu drehen ... der kann je nach Servo anders sein +#define SERVO_45GRAD_RECHTS 45 // Wert um den Servo 45 Grad nach rechtss zu drehen ... der kann je nach Servo anders sein +#define SERVO_0GRAD_MITTE 90 // Wert um den Servo in die Mitte zu drehen ... der kann je nach Servo anders sein + +//----- Werte für den Ultraschallsensor ----- +#define US_TRIG 12 // Pin an dem der TRIG Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_ECHO 14 // Pin an dem der ECHO Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_STOP_ABSTAND_CM 20 // Wenn der gemessene Abstand kleiner ist, hält der CodeRacer an + +//----- Werte für die Motoren ----- +#define MOTORRE_SPEED 2 // Pin an dem der SPEED/ENABLE Pin des rechten Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_FWRD 4 // Pin an dem der FORWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_BACK 0 // Pin an dem der RÜCKWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_SPEED 17 // Pin an dem der SPEED/ENABLE Pin des linken Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_FWRD 18 // Pin an dem der FORWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_BACK 5 // Pin an dem der RÜCKWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define RACER_LINKS_MS 200 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach links zu drehen +#define RACER_RECHTS_MS 200 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach rechts zu drehen + +//----- Werte für die LEDs ----- +#define LED_VORWAERTS 26 // Pin an dem die VORWÄRTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_STOP 25 // Pin an dem die STOP LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_LINKS 27 // Pin an dem die LINKS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_RECHTS 33 // Pin an dem die RECHTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. + +//----- Variablen, die wir brauchen um uns Werte zu merken ---- +long abstand_vorn_cm, abstand_links_cm, abstand_rechts_cm; + +//----- Objekte die wir haben. z.B. den Servo ---- +Servo myservo; // ein Servo-Objekt anlegen, um den Servo Motor steuern zu können + +//---- Hier startet der Code zum Einstellen aller wichtigen Dinge. Setup() wird einmal ausgeführt. ---- +void setup() { + // Monitor + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. + + // Ultraschallsensor + pinMode(US_TRIG, OUTPUT); // Ultraschallsensor: TRIG ist ein Ausgangspin. Es wird ein Signal zum Ultraschallsensor gesendet + pinMode(US_ECHO, INPUT); // Ultraschallsensor: ECHO ist ein Eingangspin. Es wird ein Signal vom Ultraschallsensor empfangen + + // Servo + myservo.attach(SERVOPIN); // dem Servo Objekt "sagen" an welchen Pin am Schaltkreis der Server angeschlossen ist + + // Linker Motor + pinMode(MOTORLI_FWRD,OUTPUT); // Linker Motor FORWARD ist ein Ausgang. + pinMode(MOTORLI_BACK,OUTPUT); // Linker Motor BACKWARD ist ein Ausgang. + pinMode(MOTORLI_SPEED,OUTPUT); // Linker Motor SPEED ist ein Ausgang. + digitalWrite(MOTORLI_SPEED,LOW); // Linken Motor sicherheitshalber ausschalten + + // Rechter Motor + pinMode(MOTORRE_FWRD,OUTPUT); // Rechter Motor FORWARD ist ein Ausgang. + pinMode(MOTORRE_BACK,OUTPUT); // Rechter Motor BACKWARD ist ein Ausgang. + pinMode(MOTORRE_SPEED,OUTPUT); // Rechter Motor SPEED ist ein Ausgang. + digitalWrite(MOTORRE_SPEED,LOW); // Rechten Motor sicherheitshalber ausschalten + + // LEDs + pinMode(LED_VORWAERTS, OUTPUT); // LED Vorwärts ist ein Ausgang + pinMode(LED_STOP, OUTPUT); // LED Stop ist ein Ausgang + pinMode(LED_LINKS, OUTPUT); // LED Links ist ein Ausgang + pinMode(LED_RECHTS, OUTPUT); // LED Rechts ist ein Ausgang + + // alle LEDS aus + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); + + // Servo am Anfang in die Mitte Stellen + ServoMitte(); +} + +//---- Hier startet unsere endlose Schleife - die immer wieder von vorn angefangen wird, wenn wir am Ende angekommen sind. Da ist unser "Fahr"Code drin, der den CodeRacer steuert +void loop() { + + + + // Abstand messen -> nach vorn + abstand_vorn_cm = AbstandMessen(); + + // Ist die Bahn frei? + if(abstand_vorn_cm < US_STOP_ABSTAND_CM){ + // Nein! Der Abstand nach vorn ist kleiner als erlaubt! + // Racer anhalten + RacerAnhalten(); + // Nach links schauen! + ServoLinks(); + // Abstand messen und merken. + abstand_links_cm = AbstandMessen(); + // Nach rechts schauen! + ServoRechts(); + // Abstand messen und merken. + abstand_rechts_cm = AbstandMessen(); + + // Welcher Abstand ist größer? + if(abstand_links_cm > abstand_rechts_cm){ + // Links ist mehr Platz! + RacerLinks(); + } + else{ + // Rechts ist mehr Platz! + RacerRechts(); + } + + // Servo am Anfang in die Mitte Stellen + ServoMitte(); + } + else{ + // Ja! Die Bahn ist frei + RacerVorwaerts(); + } + +} + +//-------------- Funktionen und Prozeduren ------------------------- + +void RacerAnhalten(void){ + Serial.println("RACER_ANHALTEN"); // Meldung am Monitor ausgeben + // Rechten Motor abschalten + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor abschalten + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide ausschalten + digitalWrite(MOTORRE_SPEED,LOW); + digitalWrite(MOTORLI_SPEED,LOW); + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, HIGH); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); +} + +void RacerVorwaerts(void){ + Serial.println("RACER_VORWAERTS"); // Meldung am Monitor ausgeben + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + digitalWrite(MOTORRE_SPEED, HIGH); + digitalWrite(MOTORLI_SPEED, HIGH); + // LEDs setzen + digitalWrite(LED_VORWAERTS, HIGH); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); + +} + +void RacerLinks(void){ + Serial.println("RACER_LINKS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, HIGH); + digitalWrite(LED_RECHTS, LOW); + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf rückwärts stellen + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, HIGH); + // Motoren beide anschalten + digitalWrite(MOTORRE_SPEED, HIGH); + digitalWrite(MOTORLI_SPEED, HIGH); + // Warten bis der RAcer sich gedreht hat + delay(RACER_LINKS_MS); + // Motoren wieder auschalten + digitalWrite(MOTORRE_SPEED,LOW); + digitalWrite(MOTORLI_SPEED,LOW); +} + +void RacerRechts(void){ + Serial.println("RACER_RECHTS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, HIGH); + // Rechten Motor auf rückwärts stellen + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, HIGH); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + digitalWrite(MOTORRE_SPEED, HIGH); + digitalWrite(MOTORLI_SPEED, HIGH); + // Warten bis der RAcer sich gedreht hat + delay(RACER_RECHTS_MS); + // Motoren wieder auschalten + digitalWrite(MOTORRE_SPEED,LOW); + digitalWrite(MOTORLI_SPEED,LOW); +} + +void ServoRechts(void){ + Serial.println("SERVO_RECHTS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_RECHTS); // Servo auf den Winkel rechts drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoLinks(void){ + Serial.println("SERVO_LINKS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_LINKS); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoMitte(void){ + Serial.println("SERVO_MITTE"); // Meldung am Monitor ausgeben + myservo.write(SERVO_0GRAD_MITTE); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +long AbstandMessen(){ + long abstand_cm,echo_dauer; + // Messung starten - ein kurzer Pulse "HIGH" wird zum TRIG pin des Ultraschallsensors geschickt + digitalWrite(US_TRIG,LOW); + delayMicroseconds(2); + digitalWrite(US_TRIG,HIGH); + delayMicroseconds(10); + digitalWrite(US_TRIG,LOW); + + // Messung der Dauer in Mikrosekundenmeasure bis das ECHO Pin vom Ultraschallsensor HIGH wird + echo_dauer = pulseIn(US_ECHO,HIGH); + + // convert into cm ... 344m/sec is the speed of noise - thus 34400cm/sec ... or 34,400cm/milisec ... or 0,0344cm/microsec + // the echo has to go the distance twice - forth and back - so the duration has to be the half of the measured one + // distance_cm = echo_duration/2 * 0,0344 or distance_cm = echo_duration/2 / 29,1 or distance_cm = echo_duration * 0,0172 + // distance_cm = (echo_duration/2) / 29.1; + abstand_cm = echo_dauer * 0.0172; + + //Messwert am Monitor anzeigen + Serial.print("ABSTAND_MESSEN. Der Abstand in cm ist:"); + Serial.println(abstand_cm); + + return(abstand_cm); +} + + diff --git a/esp32_coderacer_wlib/olderversions/esp32_coderacer_analogWrite.ino_ b/esp32_coderacer_wlib/olderversions/esp32_coderacer_analogWrite.ino_ new file mode 100644 index 0000000..e647667 --- /dev/null +++ b/esp32_coderacer_wlib/olderversions/esp32_coderacer_analogWrite.ino_ @@ -0,0 +1,253 @@ +#include +#include "esp32-hal-ledc.h" + +//----- Werte für den Servo ----- +#define SERVOPIN 16 // Pin an dem der Servomotor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define SERVO_45GRAD_LINKS 136 // Wert um den Servo 45 Grad nach links zu drehen ... der kann je nach Servo anders sein +#define SERVO_45GRAD_RECHTS 45 // Wert um den Servo 45 Grad nach rechtss zu drehen ... der kann je nach Servo anders sein +#define SERVO_0GRAD_MITTE 90 // Wert um den Servo in die Mitte zu drehen ... der kann je nach Servo anders sein + +//----- Werte für den Ultraschallsensor ----- +#define US_TRIG 35 // Pin an dem der TRIG Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_ECHO 34 // Pin an dem der ECHO Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define US_STOP_ABSTAND_CM 10 // Wenn der gemessene Abstand kleiner ist, hält der CodeRacer an + +//----- Werte für die Motoren ----- +#define MOTORRE_SPEED 2 // Pin an dem der SPEED/ENABLE Pin des rechten Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_FWRD 4 // Pin an dem der FORWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_BACK 0 // Pin an dem der RÜCKWÄRTS Pin des rechten Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORRE_TEMPO 150 // Geschwindigkeit Motor1 ... ein Wert zwischen 0 und 255 +#define MOTORLI_SPEED 17 // Pin an dem der SPEED/ENABLE Pin des linken Motors angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_FWRD 18 // Pin an dem der FORWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_BACK 5 // Pin an dem der RÜCKWÄRTS Pin des linken Motors angeschlossen ist. Was vorwärts und rückwärts ist, muss probiert und vielleicht umgesteckt werden.'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define MOTORLI_TEMPO 150 // Geschwindigkeit Motor1 ... ein Wert zwischen 0 und 255 +#define RACER_LINKS_MS 500 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach links zu drehen +#define RACER_RECHTS_MS 500 // Die Zeit in Millisekunden, die der Racer braucht um sich 45 Grad nach rechts zu drehen + +//----- Werte für die LEDs ----- +#define LED_VORWAERTS 26 // Pin an dem die VORWÄRTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_STOP 25 // Pin an dem die STOP LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_LINKS 27 // Pin an dem die LINKS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. +#define LED_RECHTS 33 // Pin an dem die RECHTS LED angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. + +//----- Variablen, die wir brauchen um uns Werte zu merken ---- +long abstand_vorn_cm, abstand_links_cm, abstand_rechts_cm; + +//----- Objekte die wir haben. z.B. den Servo ---- +Servo myservo; // ein Servo-Objekt anlegen, um den Servo Motor steuern zu können + +//---- Hier startet der Code zum Einstellen aller wichtigen Dinge. Setup() wird einmal ausgeführt. ---- +void setup() { + // Monitor + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. + + // Ultraschallsensor + pinMode(US_TRIG, OUTPUT); // Ultraschallsensor: TRIG ist ein Ausgangspin. Es wird ein Signal zum Ultraschallsensor gesendet + pinMode(US_ECHO, INPUT); // Ultraschallsensor: ECHO ist ein Eingangspin. Es wird ein Signal vom Ultraschallsensor empfangen + + // Servo + myservo.attach(SERVOPIN); // dem Servo Objekt "sagen" an welchen Pin am Schaltkreis der Server angeschlossen ist + + // Linker Motor + pinMode(MOTORLI_FWRD,OUTPUT); // Linker Motor FORWARD ist ein Ausgang. + pinMode(MOTORLI_BACK,OUTPUT); // Linker Motor BACKWARD ist ein Ausgang. + ledcSetup(15, 5000, 8); // channel 1, 50 Hz, 8-bit width + ledcAttachPin(MOTORLI_SPEED, 1); // Linker Motor SPEED mit Kanal 1 verbunden + analogWrite(MOTORLI_SPEED, 0); // Linken Motor sicherheitshalber ausschalten :-) + + // Rechter Motor + pinMode(MOTORRE_FWRD,OUTPUT); // Rechter Motor FORWARD ist ein Ausgang. + pinMode(MOTORRE_BACK,OUTPUT); // Rechter Motor BACKWARD ist ein Ausgang. + ledcSetup(14, 5000, 8); // channel 2, 50 Hz, 8-bit width + ledcAttachPin(MOTORRE_SPEED, 2); // Rechter Motor SPEED mit Kanal 2 verbunden + analogWrite(MOTORRE_SPEED, 0); // Rechten Motor sicherheitshalber ausschalten :-) + + pinMode(MOTORRE_SPEED,OUTPUT); // Rechter Motor SPEED ist ein Ausgang. + digitalWrite(MOTORRE_SPEED, 0); // Rechten Motor sicherheitshalber ausschalten :-) + + // LEDs + pinMode(LED_VORWAERTS, OUTPUT); // LED Vorwärts ist ein Ausgang + pinMode(LED_STOP, OUTPUT); // LED Stop ist ein Ausgang + pinMode(LED_LINKS, OUTPUT); // LED Links ist ein Ausgang + pinMode(LED_RECHTS, OUTPUT); // LED Rechts ist ein Ausgang + + // alle LEDS aus + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); +} + +//---- Hier startet unsere endlose Schleife - die immer wieder von vorn angefangen wird, wenn wir am Ende angekommen sind. Da ist unser "Fahr"Code drin, der den CodeRacer steuert +void loop() { + + // Servo in die Mitte Stellen + ServoMitte(); + + // Abstand messen -> nach vorn + abstand_vorn_cm = AbstandMessen(); + + // Ist die Bahn frei? + if(abstand_vorn_cm < US_STOP_ABSTAND_CM){ + // Nein! Der Abstand nach vorn ist kleiner als erlaubt! + // Racer anhalten + RacerAnhalten(); + // Nach links schauen! + ServoLinks(); + // Abstand messen und merken. + abstand_links_cm = AbstandMessen(); + // Nach rechts schauen! + ServoRechts(); + // Abstand messen und merken. + abstand_rechts_cm = AbstandMessen(); + + // Welcher Abstand ist größer? + if(abstand_links_cm > abstand_rechts_cm){ + // Links ist mehr Platz! + RacerLinks(); + } + else{ + // Rechts ist mehr Platz! + RacerRechts(); + } + } + else{ + // Ja! Die Bahn ist frei + RacerVorwaerts(); + } + +} + +//-------------- Funktionen und Prozeduren ------------------------- + +void RacerAnhalten(void){ + Serial.println("RACER_ANHALTEN"); // Meldung am Monitor ausgeben + // Rechten Motor abschalten + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor abschalten + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide ausschalten + analogWrite(MOTORRE_SPEED, 0); + analogWrite(MOTORLI_SPEED, 0); + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, HIGH); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); +} + +void RacerVorwaerts(void){ + Serial.println("RACER_VORWAERTS"); // Meldung am Monitor ausgeben + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + analogWrite(MOTORRE_SPEED, MOTORRE_TEMPO); + analogWrite(MOTORLI_SPEED, MOTORLI_TEMPO); + // LEDs setzen + digitalWrite(LED_VORWAERTS, HIGH); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, LOW); + +} + +void RacerLinks(void){ + Serial.println("RACER_LINKS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, HIGH); + digitalWrite(LED_RECHTS, LOW); + // Rechten Motor auf vorwärts stellen + digitalWrite(MOTORRE_FWRD, HIGH); + digitalWrite(MOTORRE_BACK, LOW); + // Linken Motor auf rückwärts stellen + digitalWrite(MOTORLI_FWRD, LOW); + digitalWrite(MOTORLI_BACK, HIGH); + // Motoren beide anschalten + analogWrite(MOTORRE_SPEED, MOTORRE_TEMPO); + analogWrite(MOTORLI_SPEED, MOTORLI_TEMPO); + // Warten bis der RAcer sich gedreht hat + delay(RACER_LINKS_MS); + // Motoren wieder auschalten + analogWrite(MOTORRE_SPEED, 0); + analogWrite(MOTORLI_SPEED, 0); +} + +void RacerRechts(void){ + Serial.println("RACER_RECHTS"); // Meldung am Monitor ausgeben + // LEDs setzen + digitalWrite(LED_VORWAERTS, LOW); + digitalWrite(LED_STOP, LOW); + digitalWrite(LED_LINKS, LOW); + digitalWrite(LED_RECHTS, HIGH); + // Rechten Motor auf rückwärts stellen + digitalWrite(MOTORRE_FWRD, LOW); + digitalWrite(MOTORRE_BACK, HIGH); + // Linken Motor auf vorwärts stellen + digitalWrite(MOTORLI_FWRD, HIGH); + digitalWrite(MOTORLI_BACK, LOW); + // Motoren beide anschalten + analogWrite(MOTORRE_SPEED, MOTORRE_TEMPO); + analogWrite(MOTORLI_SPEED, MOTORLI_TEMPO); + // Warten bis der RAcer sich gedreht hat + delay(RACER_RECHTS_MS); + // Motoren wieder auschalten + analogWrite(MOTORRE_SPEED, 0); + analogWrite(MOTORLI_SPEED, 0); +} + +void ServoRechts(void){ + Serial.println("SERVO_RECHTS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_RECHTS); // Servo auf den Winkel rechts drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoLinks(void){ + Serial.println("SERVO_LINKS"); // Meldung am Monitor ausgeben + myservo.write(SERVO_45GRAD_LINKS); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +void ServoMitte(void){ + Serial.println("SERVO_MITTE"); // Meldung am Monitor ausgeben + myservo.write(SERVO_0GRAD_MITTE); // Servo auf den Winkel links drehen + delay(1000); // Kurz warten, dass der Servo die Stellung erreicht +} + +long AbstandMessen(){ + long abstand_cm,echo_dauer; + // Messung starten - ein kurzer Pulse "HIGH" wird zum TRIG pin des Ultraschallsensors geschickt + digitalWrite(US_TRIG,LOW); + delayMicroseconds(2); + digitalWrite(US_TRIG,HIGH); + delayMicroseconds(10); + digitalWrite(US_TRIG,LOW); + + // Messung der Dauer in Mikrosekundenmeasure bis das ECHO Pin vom Ultraschallsensor HIGH wird + pinMode(US_ECHO,INPUT); + echo_dauer = pulseIn(US_ECHO,HIGH); + + // convert into cm ... 344m/sec is the speed of noise - thus 34400cm/sec ... or 34,400cm/milisec ... or 0,0344cm/microsec + // the echo has to go the distance twice - forth and back - so the duration has to be the half of the measured one + // distance_cm = echo_duration/2 * 0,0344 or distance_cm = echo_duration/2 / 29,1 or distance_cm = echo_duration * 0,0172 + // distance_cm = (echo_duration/2) / 29.1; + abstand_cm = echo_dauer * 0.0172; + + //Messwert am Monitor anzeigen + Serial.print("ABSTAND_MESSEN. Der Abstand in cm ist:"); + Serial.println(abstand_cm); + + return(abstand_cm); +} + +void analogWrite(uint8_t pin, uint8_t speed){ + ledcWrite(1, speed); +} + diff --git a/libraries/CodeRacer.zip b/libraries/CodeRacer.zip new file mode 100644 index 0000000000000000000000000000000000000000..e2eef3da780bf34d4fa35cb257775dcc6d2637e4 GIT binary patch literal 5249 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