From ad5d8228f947ee9e8789dbb73c4d76c613efba6e Mon Sep 17 00:00:00 2001 From: Fenoglio Date: Tue, 10 Jul 2018 15:50:17 +0200 Subject: [PATCH] Added Fritzing parts and some code --- Fritzingparts/my_parts.fzbz | Bin 0 -> 99673 bytes coderacer.fzz | Bin 49260 -> 49290 bytes esp32_coderacer/esp32_coderacer.ino | 246 +++++++++++++++++ .../esp32_coderacer_analogWrite.ino_ | 253 ++++++++++++++++++ esp32_servo/esp32_servo.ino | 52 ++-- esp32_servo_sonic/esp32_servo_sonic.ino | 6 +- esp32_ultra_sonic/esp32_ultra_sonic.ino | 49 ++-- 7 files changed, 568 insertions(+), 38 deletions(-) create mode 100644 Fritzingparts/my_parts.fzbz create mode 100644 esp32_coderacer/esp32_coderacer.ino create mode 100644 esp32_coderacer/esp32_coderacer_analogWrite.ino_ diff --git a/Fritzingparts/my_parts.fzbz b/Fritzingparts/my_parts.fzbz new file mode 100644 index 0000000000000000000000000000000000000000..de719ee74718ef2f4e6722b85c8542f62fbd718a GIT binary patch literal 99673 zcma&NV|1lY+vXj+W4oh{xntWlI@+<_amVi1wr$(CZQJQ2lm9)>J@+%SX3hJ4*lX3k z&Rw|nTE9A~&N@m#8XN*01Ox;Igx&j82E;O@(+?a3MEM&C2*TG>Yd1YR0|zHZdJ}iU ziKG=98d2n+s~Fed8J!+co(={|K5^tBG9@rY%x0?xr3-{{!wJLKyZd^1e2HBN7#3pB zJ^KflrO$WO1ze)vp2cNW;6L>mCwPWf;!UTY+2SWGGPgG9qf|a_`jYhUm#ndAh7Hvb zvu0Q2r{uF!G8Nf{t%4pRJPO>hMcfBz2a-XfHqWv{1bW2wGxkKj$Cwsu@p)>pF>14y z@fZ)!9=TEm!}00xnW#77z3%OvJlWJ(z4ovXzW&@+W%NLGC9M2D=?JEzjVJ^)o&sG- z8aJaqj@)}u;F9LaOSlp$mBTu0I@^E zwgCg!T4q+66!4RnCp>HM1zt0&z*_3LfRzC>#Opfmp*uPOf&W(fr+O zX)&5^)cfa(c-(mWvSScH0y#pT0Ty)=Zlaii2e&p@60t8`Wc;4+J$jp7{t{tML?9Xk z3`-X#8x=CQo8mIPneOwT82&s-SZs;ARvZZD(Ct|VV30PfNwjgnFa>bYGql=5p% zIV@y$pSXG*7|@7COi7Vxc7RiK$!dK2I?cSL|3DxJm6kQ8vX}JWP0u7NoRRvC#2^!z zDlbgM5gkHFi0X;&Z>!~;SRZh48Taso4Y(N5;7>or)`+WYmBhtB!Ak!Oz~bVBM92Xo zgW`u%iV@WmjNUa3nmgH7v{Z=Ky* zqi?pc>W+lL>Fs_|A+A6{TjO-1M;&hwh_RP>+2l;N2tPI;#EH=5zU#xOD$4mdUSRA+hV)YUk1VrJB)qg;x7m-k5V$xGFwze~N zFmQ5qFxE4$G18N8wl;S%H*(WcHnwrJb?~|wyxR?Etl6w_AbT-Xe+nG)qB=LIP}2LcHp(jA7ntiphT*UFpF)K>EWW=g zCDM*zaU%LvzUwRWak4lDnNs%M6n)+zR0uBS(q4XB>xc65OO!z$^VmC@u^g4X`ZR#-7pA-u5vF1XA%#PU36(kZ* zEWkY|GUEOR#UHH%hmQsw3^UMUTPh1x2NLOi=}kwrtF4Rq>^#QHc+?w}!EuLUD;Ls*)QZr50n~{Fg0${t}Hf-l+OD^>f$7-bnqe zb?Q=jI0W_VE{$dblw#hbz2)cC>`<#1f$oW1WKD;&KU{2IM~@_Z?H{J9Ca*c(tqZ+w z6%lF`fE(OwauzXEAD{hrcA=7r)R?)GkM&C&G)K_A;v$$XVl#{u=F}=j?ZZ*W%&I8K z59yyaXU5ib6nP?{a_Q$r@lKj?0ThyFnPkWi_;u)L*E(s;M2@E{NX1j8JP+sd+m@6zhuR~b$wrzBX@(zQrk7TbDs74R^<&8pGMq5Qd>-Bp(6&rzlXvFR zTIO@M-F6z*gQJ%evq-Sj0bUt(F7Dvk7a3&hzjQ#(*XoEN4?UI-@x=}HIe7LJk#)x6 z5)U-x}I9{7J?2 zmY7?&Mb#?#Hw!hxQO+qmxF|ThR2x}Tfi4kp#D<>p=rPvOhKlnjBQ~wSOWc7}`V3op zg9z3A1@Av-i}}Y(((8Z*_oIb zS&dDY0YFwGc6JjE6BbTZMk6*x4mJ)BL&JZto=}&z-D5-U#5(>>?6gW~b(50>IuPC{ z7Jjdgy=?s`p|C&vojMduwCL>Pb+(4K%V=%z|3x!RlqOM zlwA-((m%5kxAf0%ceZh~&m5mO!R>4os-V;rE}t(Q!31FPbLKiS_FMx_smO;n+DjhJ zSY+gbq5Z^$l8l?Q#0CLUTw_M)btKm@F`xT}2ZVnzJ`D)*>OtJRk>x~Qg9kpy`o(gTtQ~fa1_;@SaiYcvkGe~pJ;y^eDQ)VUR!%Rh1 ztsw%3`kh=lq#xx7@7JX2xY2ivl!S=H0hw`1X^l}hKbAoep~8(hW{#1zsXv)r>~LEm z@V#?jeb#}&I=v{&ZU%zIy)b3Eg$qJkP zVfW9oXsjDec#@k(kvj6@W;)vMR-8Y|N+P)tj6m`PP0d4kzvEg@Thp2>IVEk-9wcl3GDDiVQve}snn}P?NJDkfJ zD;AGOR6bOZj=|IVk@&qFUt+F=ywyuxf4{`Ak6w{{bnJ@{?KeH2mA<~}S;Fu1voGPl z(*u4Lggq_cd*vO{?{4L`fR7C_AvOJe{CoTRKcwn>k!qjHyJGQ0YVMZ^^ZlQsDmd60 z8tVxg7+M+Y>9KKsLCMC*&T7oUYRG27$Suk!x(oUP#lw ziSOt6%0;9WE2g<5EXbC5(COGV_~6vXg@ust|n7Rh} zWqAHo+&{)qAuYSzBw=erj&Db;P2bf1^!#+d(j*${@{|aZs^`p>k$j&!=dD0lMzqda z;i#{%gzjf~PB`;#Zh{!%iwqqz2&lOR2epddq20sD(e3vd6A?R1m{yyjX8ll`kOF|- z2gm-YWG2}o!3x!y|TPSK0)U+R^Bcm?M|i8@;@ zMk%mS%rt;%*@pt0bk({`QDx$ymugQw0UO7q`cbGmL!? znN-8{8;Sm$D0>8KpI}AW-r>F82U6mhg7vrPBt?Ev#u85MsTGc&J&UescZWIx{kzc$ zqizWO!7$LIy~QD%z?%XdH`TPAerQ_xx7ct`yp+!+J4m~o>GMY_`^Kt}egqX*9rd>4 z&9MF2=F2qG@4QvA>hP)l3mb~^aU0@Sd?|QWF{dU1E;fiGje~@(&Tlu}{$dP|O=RC6l%hhfe?l0-`4m0)qK( ziba(bSeWS~%w>$7Ol|+QAWqj--eW`e*?Pf9Z9f+lMkP4l0?rx;YbM7AeviIbi;Sbp zE&+OY`qp-J-jcIN&zCNk>q*d#EXMGO*6`7|@_*LA4#UeUp#+*{nU&pzUfbbRh&($z zp4{x*Iz68p-GnxUs=0NKaG|UqrLb1Xn>lIaVQK>;dY5=&e%wlh!cvVT*no}F%8 z(>2t7r{7aA?s61Z9I{n-(w*M!l7+d&!s;&Q5Ou~(Zw-HFz2Tv>vo@+)IjV~4{S|pO zSX_p-p(c2f6zlb@+m_rD{!Eb@-!$A@e(WpZxnMX&F<8Z}%V|;B?!vIg$5pG<)IQ;lW>L-`kGs zk6OAXT9V&i5k6?nsa#4A`nq8*6os=bv5XL?EP<$quTk3tu zqgxIHuh`MN0~YzT{f}7BM}HoxSPu6C*c*0x;vxUPW&la#j?ADKi5JCFEeOq*K_qpf zz2FZt2Jk8<*^JB)WTRXO4#_-X1};C5F=N6pL~0iB%Oac`w97a%*-MHnZP7HznPb~s zl}1*?+xzU6vfLkRqVlv^qU+_UcZ_Lr!@y|rkCKQ68{hK~z*fAMd~1fCFmtCTVji)( z`x=`A`K(I6x2A}aws@%3P;64n7$T<(s%kTQripCq>shHnFZd1v*d|#mjxAX@%%||< zd8zABoS~B=r>;@oUk#V_+HxxE5u~f0=IFkC(d(ttJTjwsM>iFGbY)+BLn;)!l_t|a zBvoF3El-A6t&=h3JX*ahfzhskeHA12)rE%Dg@IA6)!+r!5`0iRoK+?Do67FC)n6w; z$S%h5_MXM7+QTu`TIfJMtclM4HoHfhAlJvhcu=qM&G01npOnmJKM|M*=5a`#fBGGH zN*@S^8l#UXichQ%7$3iJbUeBUxWzgSCuyo+trDOr>Q?Zb0wkD3Gg;ZZyYU|W4r-NK z49?I##>r6JQ4Y^O{eCG0@t9K1++l(g zDav{NVIBOoe@)t3RPS|Md-U(`c;TO5CEc zT>lLt${H)iT79Z9yuZVy;WYd@M3Iz758}+LD`=&2umBj+- z&7(!TFi*R%NV_oa=6BT19P-T^;dWsH-D#Oor)4s%BeXE_UjY)o@{72Ia=B~sxgEaB z1!bC`Gm4T}$Qh#0%34kci@E*oEpy)#lZ76q63aEEX^p z)>Y;%tktXXc{?&UNOlL&HRttfDHBI?8|lMa<26;R>pFEQHGWIx^5}f89r!<^mUYD@ zprTFi`!=kO^0uZ+A?-}xuvjVS!w#B@EB15g>97_o=o6AVKmV|e98A2NpT0pJ%CZ+; zd1lCB0iq3&tVQmw6HW_84w>!eDXM zRV)oE)&M0#-hC?1xGRLic!7m|j-|iCP~D)nJ?rhe=v}g}{*JLOxF3Gf(Y@UPGUnl1 z@dTE%317cyS$q`!Yz3y!WSa75nqxg(yP0#~6rQN-bdt$mx{h+fw>*(vUlsIW2^bOD68X>tC9-$Y$Isj`Kj=_$qU4W)tMS2g6x#Bx;axFO# z9w8CFnigwWi{8$>MZmJfDJqYP)o478L1qjRY79~%5#EXptGQk$yGf^XVeZ{Fxeidc z2Ijv8M%x70Xald)N;lm`w=jAFnm|{$0Or2{Mq38is0Od2MK^78s>mBk6}2i zLX_p_7J1vqc|bzS__$U0oD)9y!?Np_WKc?DqM(i-{gX-Cc|fO>rf{q5AuDeHU2UAW z96Pbvu(3C+1zk;srd;44b4=6C!G9QQPL;{O%uu5;Y^9a@a8{M6q6}=Io@Z!FV}$V! z1`9S#ka2l(MU5f-9}H!@vd^PToH-39{~AM$!LSuvn#ZV!g%1T2EZA_K18!nBEs`xJ zI@CV1fui>KOd- z8|*&|3aYQ%++1$Zhkw{`?WE$drs{C1gXcx?|{R1aScpl3a;rfhNf>l>fZ@sw5f=ei! z7vn*T`r8|Jl{GTsqEI#i!HlRsv@+dSnqIgTk5ZZ+j4@9HZJg<}ug1HIaMMh4{vzH~ zooShym`2)Ueoss`4P2rX=y!_9=aU=6d>279k%* z%dV3k09$pROSO3$#Rm^j^Fdt+<%J&kCN!d)WjBd%3J^v~Y$#YmEL4s9Cg#8SEWjlHGo4(VCOjm zvyTlm3HmMbyppS+TMgl&LvDOvjWwOZ2@06>Sr3^AgI#}3IxL|&;wpdYXMk- zwfF7Z6MZHlI_IiJx(3sVXJ}= zsp;Hl(eYAi8T>M%Ox7P}Y$xXU?%co$u?631oo)_QB}6y z+a^Yw0?pVknV?(;g)P2C;Fw-e$)iy_)qqNwu6x04MpB?IZG)_TrCS}}xcA8Jg9Qb% z^?Et3TNFclBfBb#_^+Jis#WeWef=p^2KY)rwUDqtP@a8S9XI&vr+fpe#F5UvKpX@s zdDm(=2ghMAZP&;pJOuoq#)-7ci8$3CUD{>^d#fxopA3l`KgcJFh456*Yb^%HTK_ow zrcxtB=<#aUpsp`DUo6h4)F!AeWjJM(dSB_}5>iZC^>r8S_)7*^-CnscW)VEYo-8iZ z{|2CjrdTaE{evA?-F#`OsJK`t8R#vX7G_w_H+2fKro$T|P8<=)5T|A7G1gn__V81^ ztO-=ZI8aSKQL?GDcQTXhkMfX~d#{3OfVS&lKJcAM$c{9sdURTEW zn7aXkSF(uzcW5U3+X@lXMJA?O&*BM^@KwU=p)!WcVaQEAC64wRMK%T8e7{esh=A;Y zz{I8rOXxTcn*UbAj z;C5?Cb!%DokU%-<&rBo$(`brvO9?H&mB}U6P*q{>Wp9yB=a9c?!jMabG;+cuP=$bU ziF+*LU!Z^zP(pJpBROS*9cPm(h-4v9rYfc0Gi7^`WS_D~eS;+@f5~q=Axl^x1Ec_I zn6lYW6dqFYgG6Fud6d=wv7@v~S9G=hyay5RAs5-^}$Y$*#uMD7=}#xvGz;J-=Oe!(!&E z=r1tzwHpu|N?{sqx{wbd40q>_G9+OWNHP7}ZpE=y9L(+YkByjaS zBVsjjX-Qug;kY>mI%)2XAK8YuU{}oD#r#ojaKdKn8&mdP&}9VuD_Dy3BUFlLD+`;) zkG)09{~0hbm1n4SM$K1Qmzb-Y*c@qoSabMSQ>Nlr@7$r%kHM(n_vg!By{u)^vG@B# z;-#89&#)K$tW__fn>Dhm`^9V{r)?7gO2B?Eag{3$k#rd$;GS>$)wlI>BA%f@614c% zLaRg74E`FcDs}q3b%n{5(TGhQIs5omV;{_k7B=~|V1Tb74gOcpw%Q#-k)T&4a-eJ{ zYieI(Dt2B|5=K~6@^Df2K4sNDdI(OnQ+03(k87+UrFNibi>-c^Vtve=s58;=ETssm zqFPz}yexxBo0|GipR3ia7}dKT&s#)_3(NRYI~shU1lr2qzS0x zzs?jL$&K5p>Q6IKBOv;>dV{KSms}&%3{mGnqC#t^@bINL3 zgj3~bOsAQF)60+09-0yO)LO`SjBjAQy?|V+HlHp++eu#6ldK%FKQ2t5Y3Yf-Th2

BrX1&l_-J=yQNfqc-+RKnGIoTf-W|f9Ht5`~DQr1My%P^3fJ&Mu0Jh&$x zm`>$EO$aThik2z?Q)E5l-^BOtnTASF(Dn@>yc98^NU58jmOl(qZ#FP10RBDWc=OIacYXk!?%93 z(^KM)*iGnL&I#;}vSFQ$R)k868NeS|j=5u5Eg^Fg!ify7oLr?rVIyK0cjeJD} zlZup`4bI*4FC**(Sm>FhLkjoz&N)z-_;OR|_ay&;6rS{BLV_QpqJ@bq)bByBscy&2 zt8UNqfpBC)mEnXv=zUf5>wR?r!z^FXsNSd5xU1IB==CEuhr_f& zfj>K7XM$g60)>CHqFr{tJa^NmmNyWL20+3`h6ED*I!nL~8f5|fHfaUmaKKG>GqaP+ z`6v3VGCFACRZa-}Nk+h*8}D0XI@B*h+;wF$WHMPn{~x&q57){F;J;+L{n+u~Gt(h$ z2{GGWwW9KGG}PKZM@D-ZUj$Ij;gqf|B&_*1UQ9nh{sR@%*J5}^-lqox0tCbm2?Rv$ z-%!cRh>8$1F>|=G0f;4;g^6WtZES&N4z||D#3JU7c2)*%dWMEy$5}vD03)X{yD=Mp znF+|w%*Y1(N|^&#IGI^Z^qBv(Ojeh5{K}bkys2k%s3e7DOT@$)Yo(|;D9K;+qj6r| z=YvX0hzO&?z-TA3yj=bC4ta&K9zZj9M+w~++Gu)nVIsYn0HWqW7c$e&-l+{SYKIi~ z!nkqq+j_Nntz9;4BFMLk1UxYbAM7#n3=vh*4;BL-h&Je3>&1?>@<~GCC9rYtWCoo$ zAH0f|VACtzM%~9Rv@)_yQ)~n_<|@4`IO|FRV+>geiNAY{0bL@;eCD{80rD(AA$9Bs zWPh+H&BaJGpx!u*wvIOxUpbjJuH|$N=xjYsbT?>bz4~5Y*Zl~ck+FY=fZR|uHk>=g ziL_1T?W;#<0;ajT`ti6|k>&&~$%G@zYV5|0g7Hl_j|aVlKT3oK$Qz#4HUEXECZw9$ zhAA=WlM!S;=_;NROkA<&RnqA3s4`SC%D+R%9FRtV6zW?WWyS%w{z7Ms+yiC;;*C^hiQU+StCSY?j%Tx ztTaG%xFICPH>ZORpv8m-8sG^{j9iG{-WbkDI-&lOjWr(tw+`S6pc-M>eNVbTO@EyBHO_X3D2XRDztwrz~-BK8zQLhhaHo1_Q_4yX9 zQr@AUl9^*Gs;1Fa<;8T z&mGfiZBFPH#fK_1=LaBs` z#;TsvT9oK@%fuYA7QkoUjsKL?$8Lp5a_$0b4AqDK!`E5F_=s3yg+r6?wox@>ydmIV z4Vxsn1bPzlz{C#u22t+iyPkRSBf?Fc?2g*oBqFyUeIurj&OfUWn+p^c0b zVm_H-HEG&Ck6w?)vtQ{o=b&Z3uWJ=}XSeq^i}D?hRb5OG+MHDADGViWL=|y@t3YN8 z86d`%;-k?vzc`T&GznsiZZ<^z$$O|ufL$1VAORRA&C<3#_pNT!$uolI8TWyDI!G>vdYDv(zMNb-F zi!j^MVUs)j*lzQm1JH5b)$$)ly6}hSMS-p0%GY+@NW6R1`Q>%FpgVmqKxP1`kMV^C zj}qY6wtwsPwB5Lh_iPeEUU0tCn)X@LeK3&^y=}`EQ4G=3f&~GCG$5@;^?QFIOAuzb7CCNhLkU z|FXldGqV_fO)?xtEJjR*MnHBp6M&(CkulJS^=r}r0RQXUd@M4J5q(4bl%M#~zeW~B zUCv}iQT!yg^fj4|xlywG7ByOCuBr+aLMT%tZ$<_)#__5p3OLz8dH-RHif5@APc24lwc8?Dz1380%z;q(9^SEz zjBKzh<36?!i4d6qS@kzJ7!<+T6y)<1uDTrl_=-|vwee1qv3b|%!6TsrRm>Waylm%& zZYkB8bg!&WMyZrUO+i7R`34ibu}&M6S!Bh}YN^TSZ!;MeTY@4zi_=`{qCDDas=D4_ z+b=IGhJK<0QmU9!sL@!d->RfQyo3b5Z8-O08hdQMXFBtq-1(N-l(5@Qwb_+g?$;K_ z#wuVQo>S(s+y|CKlQXF3o|tksA9#7d z|D<{0G1IuA^_m^z)qYc8)1nKKS{8az$@7sT0F?N53u~aBynw-D!(Fz-pfP`MNhZdI zVC8|qPVy7M78MzV`5vsl)E6U;jAC;fuuQ!Kf0u2ex3=uP&R_GxC+w4{)^OJc;WBuKfoQ zY{xMRxOK-AsS}yM86{&jsAEUiLXSHZXWEhpdGQoMQlcmUDZ3~a&YUiAMIY??IN)* zu0`pJXOFQ7*a22#= z-3^VkDu>4p*jBRN)8D(~gfA`Ox#w(74t9yydL-gX2;K$D5PkkPGa3|sg7k1EILpxCs1vWK{Y88c5!C-^?c1x9u==R;9emp66yt7B)z zHjZ649qKH^hdl3Z8}_Rb4tC;6>SJ%c723Cnk5Fz#5K`&h0HoVUvHfw5taq;ij>`)I zhw+1_agc(tvF&mFc_b!yOsfp!_QrDUHhIjCS)4y&YQF{i1gkY@t@m5OEmwZU*!e{> zxq-J+Z%J9Cx5e|Y5~vs2JUmKMrKRr%#w32yE38d%pF6hz+~31=-cD zB;yUqtiVlH?L4fRGwj>XH|bA`4y+@%5|>7!uM4}Ap(M5Ybf7d~7_pn|o7y5J zpAF)10x~li5J`74JaFWB=`{#H{t-`+k3l0sRK}taOr5DBpFo-WUcHP_w;i`>f1@q#LV2A2M*Mso4Hirj2 zb1#C7Gto7+n?PT`5^V}Y z!jxrj=yBi-~X=&1;KGiRpF%dXE=wFb@s8I)l8RVJ}ZfVbA zu#QE&TZlP7P+uTO@5LYY4XaTVKD^B7+?aL(W-mV8pmfN(0r5TBWH4W5(f=V^>JE`5 z49!NS6wjyiVGP40o|RY0if}Zdom+~{*rIkhJNr>|I3LCpWiyNyc^bPaU<&%%vy}(I zi!Tezb@VdKNLCJuop_Iavr|T=CFefo248a8%f=`riOP3@8|}+ABq=CbM;~KU(a3AJ zSl!EDGE9P#u6UQcYhg|HMFL57uF>=?@?+zV-2$V5X`}+Gb1u~TIT=QARrjg8q8as? zOc+VsSxN$p(N{v%y^)Nwg4z9Lqy>s^++lHjqy2>Bq`HTyc^*Q^$SqBYS`)yBL2WoS z6ebY5(#pXgv4-+anIdD%3ij4$zKz)Kyn+H`A_ zLR_<LvHyfM`Gtlve|Chnh*SRhrtdy$t8&xSVKR_=$ZR-a^zi}sMXJ1R4*>xOQTb0iQRDe)5p;C9FVpRM6P9%g>p>0AaV z5D+Iy5D@b(*>H3*r8jgiHZU@@{SuD<-)?3-z5i6w(=#w&WCgI8aIl)N01bhhKu%^8 z6JrhoV?$$r5eqvj3;kCw7h2Mec^t@{N9xu4%*vJlx*_7{;|5KI7Kk1z;uk4CR&_nm zV6iffOSaNH2!z$Vajt_6#z*?|r#25y4O$jDDZiiFCI9@;jF-%$lkuxIAEq7MBh#iE z@A~*_=2obvW`G%No;ebja&Q>DR`w#FX#7`cxH`7xCSApHPuWFJY{wt4Sy6WSz53$l z$TS`x6puyo)?uL8q^^EkK%(oiN}Xz2m=JRH##YEyfN7?2AgvadRgpv0&tW3PG{`n? z&5C64P)x3Mo!-CTZU9#(ZkbZPxX^oFLr8Jc3n5Jp!D=hW7;~krZ28@%oqUI=k>QW#Bda?*NYRH94NBJpB}`wCYw_ zwjC*I34ZY7mW~W;N_7S#hqHPY?P2EMv?QFV2OO(pqr)G0QnUAQTKR&Dj;Sgo?F(P- zFgmz4-x;5J56UAKX@9~Bi?~vlI;DXQ#s?r=+7m&hW@mN?XXjZvdlOILPB^UuDP>s_ zI�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 literal 0 HcmV?d00001 diff --git a/coderacer.fzz b/coderacer.fzz index 28930e3be84166c436a519e078df3313e0965c20..3aae5450753e595af21427dd7be1ae50af6cb6a1 100644 GIT binary patch delta 27922 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

_Uc;`b#uAqD)=X9 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 KZr}lCF#iKUG8_c} diff --git a/esp32_coderacer/esp32_coderacer.ino b/esp32_coderacer/esp32_coderacer.ino new file mode 100644 index 0000000..61b78fb --- /dev/null +++ b/esp32_coderacer/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/esp32_coderacer_analogWrite.ino_ b/esp32_coderacer/esp32_coderacer_analogWrite.ino_ new file mode 100644 index 0000000..e647667 --- /dev/null +++ b/esp32_coderacer/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_servo/esp32_servo.ino b/esp32_servo/esp32_servo.ino index 3aa29e3..4f73e46 100644 --- a/esp32_servo/esp32_servo.ino +++ b/esp32_servo/esp32_servo.ino @@ -1,24 +1,44 @@ #include -Servo myservo; // create servo object to control a servo -int servo_angle = 0; // variable to store the servo position -#define SERVOPIN 14 // Recommended PWM GPIO pins on the ESP32 include 2,4,12-19,21-23,25-27,32-33 +#define SERVOPIN 16 // Pin an dem der Servomotor angeschlossen ist. 'GPIO' muss man weglassen -> also 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 + +Servo myservo; // ein Servo-Objekt anlegen, um den Servo Motor steuern zu können void setup() { - // put your setup code here, to run once: - myservo.attach(SERVOPIN); // attaches the servo on pin 18 to the servo object - // using default min/max of 1000us and 2000us - // different servos may require different min/max settings - // for an accurate 0 to 180 sweep + + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. + + myservo.attach(SERVOPIN); // dem Servo Objekt "sagen" an welchen Pin am Schaltkreis der Server angeschlossen ist } void loop() { - for (servo_angle = 0; servo_angle <= 180; servo_angle += 10) { // goes from 0 degrees to 180 degrees in steps of 1 degree - myservo.write(servo_angle); // tell servo to go to position in variable 'pos' - delay(50); // waits 15ms for the servo to reach the position - } - for (servo_angle = 180; servo_angle >= 0; servo_angle -= 10) { // goes from 180 degrees to 0 degrees - myservo.write(servo_angle); // tell servo to go to position in variable 'pos' - delay(50); // waits 15ms for the servo to reach the position - } + ServoMitte(); + ServoRechts(); + ServoMitte(); + ServoLinks(); } + + +//-------------- Funktionen und Prozeduren ------------------------- + +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 +} + diff --git a/esp32_servo_sonic/esp32_servo_sonic.ino b/esp32_servo_sonic/esp32_servo_sonic.ino index dda472e..c090017 100644 --- a/esp32_servo_sonic/esp32_servo_sonic.ino +++ b/esp32_servo_sonic/esp32_servo_sonic.ino @@ -2,14 +2,14 @@ Servo myservo; // create servo object to control a servo int servo_angle = 0; // variable to store the servo position -#define SERVOPIN 14 // Recommended PWM GPIO pins on the ESP32 include 2,4,12-19,21-23,25-27,32-33 +#define SERVOPIN 16 // Recommended PWM GPIO pins on the ESP32 include 2,4,12-19,21-23,25-27,32-33 #define SERVO_LEFT 45 #define SERVO_RIGHT 135 #define SERVO_FORWARD 90 -#define US_TRIG 13 -#define US_ECHO 12 +#define US_TRIG 12 +#define US_ECHO 14 #define US_STOP_DISTANCE 10 long distance_forward_cm,distance_left_cm,distance_right_cm; diff --git a/esp32_ultra_sonic/esp32_ultra_sonic.ino b/esp32_ultra_sonic/esp32_ultra_sonic.ino index 337664f..db6431b 100644 --- a/esp32_ultra_sonic/esp32_ultra_sonic.ino +++ b/esp32_ultra_sonic/esp32_ultra_sonic.ino @@ -1,39 +1,50 @@ -#define US_TRIG 13 -#define US_ECHO 12 +//----- 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. -long distance_cm, echo_duration; +long abstand_cm, echo_dauer; void setup() { - //Serial port - Serial.begin(115200); + // Monitor + Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. - //Ultra sonic pins - pinMode(US_TRIG, OUTPUT); - pinMode(US_ECHO, INPUT); + // 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 } void loop() { - // start measurment by a short high pulse of 10 microseconds length at the trig pin ... + + AbstandMessen(); + +} + +//-------------- Funktionen und Prozeduren ------------------------- + +long AbstandMessen(void){ + 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); - // measure the duration in microseconds of the echo pin HIGH - this is the time the echo needs to be back at the sensor - pinMode(US_ECHO,INPUT); - echo_duration = pulseIn(US_ECHO,HIGH); + // 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 - distance_cm = (echo_duration/2) / 29.1; + // 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; - //print this result at the screen - Serial.print("Distance in cm: "); - Serial.println(distance_cm); + //Messwert am Monitor anzeigen + Serial.print("ABSTAND_MESSEN. Der Abstand in cm ist:"); + Serial.println(abstand_cm); - //wait before next measurement - delay(250); //ms + //Kurz warten, bevor evetuell wieder eine Messung startet + delay(250); + return(abstand_cm); }