From bc3f6ef3f633c9c451ab6788b899343940474d07 Mon Sep 17 00:00:00 2001 From: d4rks70rm Date: Fri, 3 Apr 2015 16:01:14 +0100 Subject: [PATCH] new file: LEGOPowerFunctions/examples/bulldozer/applet/HardwareSerial.cpp.o new file: LEGOPowerFunctions/examples/bulldozer/applet/Print.cpp.o new file: LEGOPowerFunctions/examples/bulldozer/applet/WInterrupts.c.o new file: LEGOPowerFunctions/examples/bulldozer/applet/WMath.cpp.o new file: LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp new file: LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp.o new file: LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.eep new file: LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.elf new file: LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.hex new file: LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.pde new file: LEGOPowerFunctions/examples/bulldozer/applet/core.a new file: LEGOPowerFunctions/examples/bulldozer/applet/pins_arduino.c.o new file: LEGOPowerFunctions/examples/bulldozer/applet/wiring.c.o new file: LEGOPowerFunctions/examples/bulldozer/applet/wiring_analog.c.o new file: LEGOPowerFunctions/examples/bulldozer/applet/wiring_digital.c.o new file: LEGOPowerFunctions/examples/bulldozer/applet/wiring_pulse.c.o new file: LEGOPowerFunctions/examples/bulldozer/applet/wiring_serial.c.o new file: LEGOPowerFunctions/examples/bulldozer/applet/wiring_shift.c.o new file: LEGOPowerFunctions/examples/bulldozer/bulldozer.pde new file: LEGOPowerFunctions/keywords.txt new file: LEGOPowerFunctions/legopowerfunctions.cpp new file: LEGOPowerFunctions/legopowerfunctions.h new file: LEGOPowerFunctions/legopowerfunctions.h~ new file: LEGOPowerFunctions/legopowerfunctions.o new file: sketch_apr16a/.DS_Store new file: sketch_apr16a/sketch_apr16a.ino --- .../bulldozer/applet/HardwareSerial.cpp.o | Bin 0 -> 14500 bytes .../examples/bulldozer/applet/Print.cpp.o | Bin 0 -> 22992 bytes .../examples/bulldozer/applet/WInterrupts.c.o | Bin 0 -> 5764 bytes .../examples/bulldozer/applet/WMath.cpp.o | Bin 0 -> 7076 bytes .../examples/bulldozer/applet/bulldozer.cpp | 35 ++++ .../examples/bulldozer/applet/bulldozer.cpp.o | Bin 0 -> 6044 bytes .../examples/bulldozer/applet/bulldozer.eep | 1 + .../examples/bulldozer/applet/bulldozer.elf | Bin 0 -> 20517 bytes .../examples/bulldozer/applet/bulldozer.hex | 105 +++++++++++ .../examples/bulldozer/applet/bulldozer.pde | 44 +++++ .../examples/bulldozer/applet/core.a | Bin 0 -> 98054 bytes .../bulldozer/applet/pins_arduino.c.o | Bin 0 -> 3156 bytes .../examples/bulldozer/applet/wiring.c.o | Bin 0 -> 8944 bytes .../bulldozer/applet/wiring_analog.c.o | Bin 0 -> 6704 bytes .../bulldozer/applet/wiring_digital.c.o | Bin 0 -> 8412 bytes .../bulldozer/applet/wiring_pulse.c.o | Bin 0 -> 6592 bytes .../bulldozer/applet/wiring_serial.c.o | Bin 0 -> 7144 bytes .../bulldozer/applet/wiring_shift.c.o | Bin 0 -> 4224 bytes .../examples/bulldozer/bulldozer.pde | 44 +++++ LEGOPowerFunctions/keywords.txt | 74 ++++++++ LEGOPowerFunctions/legopowerfunctions.cpp | 167 ++++++++++++++++++ LEGOPowerFunctions/legopowerfunctions.h | 104 +++++++++++ LEGOPowerFunctions/legopowerfunctions.h~ | 104 +++++++++++ LEGOPowerFunctions/legopowerfunctions.o | Bin 0 -> 17684 bytes sketch_apr16a/.DS_Store | Bin 0 -> 6148 bytes sketch_apr16a/sketch_apr16a.ino | 76 ++++++++ 26 files changed, 754 insertions(+) create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/HardwareSerial.cpp.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/Print.cpp.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/WInterrupts.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/WMath.cpp.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.eep create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.elf create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.hex create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.pde create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/core.a create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/pins_arduino.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/wiring.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/wiring_analog.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/wiring_digital.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/wiring_pulse.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/wiring_serial.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/applet/wiring_shift.c.o create mode 100644 LEGOPowerFunctions/examples/bulldozer/bulldozer.pde create mode 100644 LEGOPowerFunctions/keywords.txt create mode 100644 LEGOPowerFunctions/legopowerfunctions.cpp create mode 100644 LEGOPowerFunctions/legopowerfunctions.h create mode 100644 LEGOPowerFunctions/legopowerfunctions.h~ create mode 100644 LEGOPowerFunctions/legopowerfunctions.o create mode 100644 sketch_apr16a/.DS_Store create mode 100644 sketch_apr16a/sketch_apr16a.ino diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/HardwareSerial.cpp.o b/LEGOPowerFunctions/examples/bulldozer/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5aa3bdc95c97379753de9eedabd269fce2d4fce5 GIT binary patch literal 14500 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 literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/Print.cpp.o b/LEGOPowerFunctions/examples/bulldozer/applet/Print.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..562e130148f41e93eeb2e825a7cf74ea419dc3ed GIT binary patch literal 22992 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 z ze;{)LLbeEVFWMnCAHe1dVg4m(#y+rje~N^$BJ9qXWXbD5GRj#5`_aM+z~jXp?#x7C z&b3)&`ARZJcsBIKWbs)^hR@63r%Cvi;N@b^`mPj)nYq%_U+d|AK|T-$kUNE$_Cd1b z^&}Zi-i80?h5PlwdPrtvA#Vw@{2z$TXxMxrJO%s>nHxBSf1*xKfcGU!Ui*=eS2gTM z3AcgAl3|aRDH7&5pFx(dXQv7COnw%5bg(`zB*W*!@KYzuudGdC!*RYs^ru39DH%TT zGFJ$5NZjn{Z}s$#k`ICb3I3zlunapyzX|%!ML!RE zetotHydk}W`MqKgd350a05be*$#zdY4b^9UjqB-!k2^p4m*o7QhK3Hb>DYqHf+j_8Z3GQ@h?aOHk>=` z8{PK{glT`2Fzt^Qru|GZ0WwFJHu%e*;{ zzc~UL9oFvu+edRfF?3^qe~zM9;JjkY&&MwJ_WNSz(U1mxNi(H-r=5cgWaBD1Q-V zUOR>9=PO}$N32(1&m{eY*(N!{W5C16vez6e%({;gX5A+Wv;4;iyLKigpoE+*%)H!L zJrS(oWuiX``o+R$f}4aFgD)0t1pi2Q1^7zgOTg{I*Me^lZU^5gd=vOi;rqbu44=R{ z0e)2U&w-y2-VA<0_+#+v!k>ZvSD1UEJI{}R60(DO;m?KHR=b7S{(Z4u>N<~qV8}6T z@J|3aW_ykhW_unc%=YBmh(VdaJ0DL5nB#|Waal|0E6#)v+N<8TVOwX&nlm3919N>? zMtgqQgs|P^>p*`1@w?w}c@3-+#|1RENi=f@{HLc;Zv=0jbABn=|ol!4p3bACMJz;_MvAm3ZRP4sBrC--LH3 zo<5kvl(l&F5xyR*{l1Po6(5kh@WiJ%H22^YOBloP{3xFIbbLU5gC~BnL-QtC+HEU& zMxg(YEPi%@S)Tj&rXEaj{V3z#Z=b=4v!k4eYim89ux(X8nk@GZ6FmJS@*sRbn7!K1 zB+Hne@97tiIdC8qc+|d{EZ>(~JpD2<3kbOckJ_&$%NXnQ^w*Q6U)Fp2JIJy>{>sxo zOdf&{$kTY#|0c40k9*D2ze$$%f8Wz@Bg-DN%hP{B=HP|6v!AqcriEVi5qI{}_NQLP za6Vb|qsg+)Pw@1U$O$-yO!M^a95^D-&-e8195^!2^Hck}moV2WHizn2bTak4W708D zC`|oSPtV~<8|pcKbZnd>OnsHdi-imDUgGh^!bNyrD~y+0_vn*;ZWcZHR$;?{sv`pC?TF8jtIQSsvc|s6BswhfMoUvdod|g{MKk-eY%GhYi15 z@UBPgHww>({i`1H=UB91-){5RoynoU0eW{17k0ll17>><#$v>@--6v;E_f(>@GeR7 z<X(6e-$X73&lesEKkkgpj)pW*59XS8nK1QNdV1dV=$decF#GFQ z9`pA-Xv6m8eURF}?Ah=RNY{|IN|+~+VdY1Bj-c^w8xu-XF<>VAYB9h zB+Pn!?D1#9Y){@9sr>+9+Vh@B*UYiPoa0kG{WM|P&+&M^XU{t$U1QxnGuB(?yG-=t z6~dfHyjN2DPGPp&I*->2GcE6rbgh0|I1~C!9zQS4c79Ws>+5FWk>G8@`QQ(QM}v7M zrT+P^HInJa-8qBl$K5%D>4*QO4{hkDNSJ1VMp{nQK75AUjU z54ud4?ceV4T4A;i@3YkYm!1vpvsC}Qr{`UjO&}rUec=M|M;`AI{yX%%!?FngBukj~ z!#y4;yaM_O9#0Z}4*FAtxyH{H=DN>uR+UU0tD$YhB9e>nPLSm+#Q99-92rfPHXJLQz?*5bJtqjW=_Zk- zZI2aB;5~(my_hl$51IE@Gs)8C+#ATO(;Tv#!{-arYyp{-fE42)v)&8Iat^N$X8o$k z(nqzzv+-^u%Q?J7nEscMnGmu94|x#YKP1aJ{1V{=-mA&dr&kMe?zfTU9NsBR|JRcf i_<-Dm$0l$_MLVoB;1T$Mtj9xUJKRB*F>seK{rn%FWH~Yb literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/WInterrupts.c.o b/LEGOPowerFunctions/examples/bulldozer/applet/WInterrupts.c.o new file mode 100644 index 0000000000000000000000000000000000000000..2905e40bfdcaaf9d6fa0fb8ebd64220a0eaad0ef GIT binary patch literal 5764 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 literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/WMath.cpp.o b/LEGOPowerFunctions/examples/bulldozer/applet/WMath.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a1af1e2396c4b0902848eb0854aa4c4e78cc236e GIT binary patch literal 7076 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 literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp b/LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp new file mode 100644 index 0000000..b2b27b1 --- /dev/null +++ b/LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp @@ -0,0 +1,35 @@ +/* +example for the 8275 bulldozer + +*/ +#include + +// IR led on port 13 +#include "WProgram.h" +void setup(); +void loop(); +LEGOPowerFunctions lego(9); + + +void setup() +{ +} + +void loop() +{ + lego.ComboMode(BLUE_FLT, RED_FWD, CH1); + //delay(100); +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp.o b/LEGOPowerFunctions/examples/bulldozer/applet/bulldozer.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..989a084e8bba36a4c018a9b752a6d929a691efe7 GIT binary patch literal 6044 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 + +// IR led on port 13 +LEGOPowerFunctions lego(13); + +int timeout, count; + +void setup() +{ +} + +void loop() +{ + timeout = 5; // 5 secs + count = 0; + while(timeout > 0) + { + lego.ComboPWM(PWM_REV4, PWM_FWD4, CH1); // 50% speed + delay(100); + if (count++ == 10) + { + timeout--; + count = 0; + } + } + lego.ComboPWM(PWM_FLT, PWM_FLT, CH1); // stop + delay(1000); + timeout = 3; // 5 secs + count = 0; + while(timeout > 0) + { + lego.ComboMode(RED_FWD, BLUE_FWD, CH1); // turn + delay(100); + if (count++ == 10) + { + timeout--; + count = 0; + } + } +} diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/core.a b/LEGOPowerFunctions/examples/bulldozer/applet/core.a new file mode 100644 index 0000000000000000000000000000000000000000..73a482f3753294e6f803cd5229447ed87af718c7 GIT binary patch literal 98054 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 TClt?h#4oJgAGx=@sgS<`RWbD@ literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/wiring.c.o b/LEGOPowerFunctions/examples/bulldozer/applet/wiring.c.o new file mode 100644 index 0000000000000000000000000000000000000000..51c88a4bdd3c20fdaf54192b940bf1f8168987a9 GIT binary patch literal 8944 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 literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/wiring_analog.c.o b/LEGOPowerFunctions/examples/bulldozer/applet/wiring_analog.c.o new file mode 100644 index 0000000000000000000000000000000000000000..113b8fb96ae7c3a5aeda003cb9a766a1b7e34176 GIT binary patch literal 6704 zcmcJTU2Igx701u)+K#c!hwX*{abZa*&=7VF1xg$eK$HLtAO{+fR8E%b-Nn1fde_}u zW4}<{*9uJ+~~IpteHQ-dWq$iotf^fhO1NB2$dn)X6@l z&c$O*t5vOTTh%7gK3_QY4%f~h$p`|4{E2Ar=g7bLx^oK|^owcWEwt|oyc;||<|5RX z$(6L?Krbsox3MDB&=?ef)*NWfffht-G);}Bxhd#%PPO0AiO9=n>U)~m_W(^=ngg!| z<^e`kf#((Aq@hes%zS!MTC({OF$=AVwMK-hD%#&xx4(y=1W~rwW|MY%SutB|cWsP9 znarEnu^#sz@($YqOF-O#SW{&h-NN@LpcvE6_#L#EF1naTeksVH^WL;0+7bkSKT|4XB&d%25 zNBXu*?5xl2tj~7Vm&g}VMO*g?h3!MWW(t^!xR>*?`GIJHxmzqHk%ZASU-B4|p%~W@ z!sMrRW02sO-GG*AIYZ0awZsZ2^=LUu%ZQeD)Y)xI8>tq-tMi<$dVOgl)Z4q%-`3k6 z>iuq2|8f5H_O*5W*?JovPc{>|8xrgy;18!v#y!Ya=py9`_P0~d4V@SjdEwNVsb{91 zIPjfCCn^V|Ji1TH$#MmE(9w@%EHb)B){O3zldWqiE%%9<(`nSmo;?V@IsLKd^rT_UBFUx&#T?wPE&vI^kpZ`cZyM$(SvqmllbO-XBN zl4QkXDi}f_O_H9VTe}n3h-a-$lB<}!+uEzsC)U^6?W&jow_Ubk25Y+Yo6u|Z$^L)q z4s;N_%=?*h(1ML%TWVLTkjf=e!f%JQc}d|1B2XVKWJ)PXqgkNG3)MF85pK*uTrZWTSn}?Fj3}i}PHjZs9UdqQynZZ;c-n(Io z4CjiOfm|vXNnpqQq_)@k&DEL6Y(6&-sSbi4{S8|miL8q(i+(=3bix$JF|)%X=S`5gL!<5YCde?KPc;$tbl`GN3%N(5-si>EP4GXONF3JTPmgYlq8z; zN}fdfi$!3ne;6N*{{BL0w?qr6tf!_-ZdZPSA)Cpi)W9fFI}LW}g2of7kZLzsgN*Zs zpdp-`a|f`i;0@XigHdMli3uYb8t%`*2T$RQ+bejvfjXNt1z|83x6aV2$DJVVCpPVa z^KrG>ucI~>7yW`$j6FxQCJ@$97U1G3@m79(^=uoUe=fgHP_cEZp<8CvVkq1OtXS-U zq4pAsoW!{k(>FF~?x>g0?~7%bSQdj!MQuN>t;47ZjrStr(U0*k<<)qtXkgpGEGfiW zNKmnL{AuIHyM%Z<;lp^$2RnZ=HJ%;Qam0JV27w=uS354dwm|tOl5<|2AMG?buZ@gN z#d^W;Y1nPQTtDWv8}AZ2cn3BsPH1cLOV{2YS8uqL;R!Rt`0hxkhyCZ^-Vw;v8?ylR zhn*naXQ1D&wbZ#E)%L!tH)>3$t2fr*UK>;Wc-$3W|J-qE5)OXYRt;f)R;nue{hyUp zLpb=w>FAhTN5a8R&8j6F{LplCW@b&oerCBkSEwdonI&6lsvo_tPJdc;?n@mQ|9;gu zC++z0`%TqX`Sq=GT6OL<9eAD}sm_9V@zXl}H+A|=zxm?v?c3IGh{pxc8{cSQvk&Xm z_4;LLa0s8<0iXA!3i+y%%*PY?p}lecXb_K6&8ECUoQH(^Fa1qNMeBg?eSpD79>=vU zJi&bI@l7iNZ#*C8&gfEe4>8!A-bKlGj=TdU-yg$`05TVs;pPkByHB5oG2x4q`TrAs z_h{dU@PyRKR7N zSC^If@4xqzS#?#J@vkc{1oN5Lb}4w0@(OUf@*40=R_LK|YjPe2SSCtQg_bML+A5uO6KBoL_@Tl_lz-N?S0{>9? zC*U6|zX1kHgRV8#&+667}eTLM27-iY9A5lB!6+=R>U0U<6UbakJcLB={#BDmPE m6~knJ__?9n4Bh4%Lz5ZXkEwCEW{kNCr5|5ocF_*zTKo@QE-~By literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/wiring_digital.c.o b/LEGOPowerFunctions/examples/bulldozer/applet/wiring_digital.c.o new file mode 100644 index 0000000000000000000000000000000000000000..5003c75b5e769b9846624ec0b3196727a9551106 GIT binary patch literal 8412 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 Pc$PXm#)m10*@piBuggR+ literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/applet/wiring_serial.c.o b/LEGOPowerFunctions/examples/bulldozer/applet/wiring_serial.c.o new file mode 100644 index 0000000000000000000000000000000000000000..e7ed21667b319046b29560b036f59d73efe35926 GIT binary patch literal 7144 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 literal 0 HcmV?d00001 diff --git a/LEGOPowerFunctions/examples/bulldozer/bulldozer.pde b/LEGOPowerFunctions/examples/bulldozer/bulldozer.pde new file mode 100644 index 0000000..8fc14bd --- /dev/null +++ b/LEGOPowerFunctions/examples/bulldozer/bulldozer.pde @@ -0,0 +1,44 @@ +/* +example for the 8275 bulldozer + +*/ +#include + +// IR led on port 13 +LEGOPowerFunctions lego(13); + +int timeout, count; + +void setup() +{ +} + +void loop() +{ + timeout = 5; // 5 secs + count = 0; + while(timeout > 0) + { + lego.ComboPWM(PWM_REV4, PWM_FWD4, CH1); // 50% speed + delay(100); + if (count++ == 10) + { + timeout--; + count = 0; + } + } + lego.ComboPWM(PWM_FLT, PWM_FLT, CH1); // stop + delay(1000); + timeout = 3; // 5 secs + count = 0; + while(timeout > 0) + { + lego.ComboMode(RED_FWD, BLUE_FWD, CH1); // turn + delay(100); + if (count++ == 10) + { + timeout--; + count = 0; + } + } +} diff --git a/LEGOPowerFunctions/keywords.txt b/LEGOPowerFunctions/keywords.txt new file mode 100644 index 0000000..b331d90 --- /dev/null +++ b/LEGOPowerFunctions/keywords.txt @@ -0,0 +1,74 @@ +####################################### +# Syntax Coloring Map For PowerFunctions Library +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +LEGOPowerFunctions KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +LEGOPowerFunctions KEYWORD2 +SingleOutput KEYWORD2 +SinglePin KEYWORD2 +ComboMode KEYWORD2 +ComboPWM KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### + + +CONTINUOUS LITERAL1 +TIMEOUT LITERAL1 +PWM_FLT LITERAL1 +PWM LITERAL1 +CST LITERAL1 +PWM_FWD1 LITERAL1 +PWM_FWD2 LITERAL1 +PWM_FWD3 LITERAL1 +PWM_FWD4 LITERAL1 +PWM_FWD5 LITERAL1 +PWM_FWD6 LITERAL1 +PWM_FWD7 LITERAL1 +PWM_BRK LITERAL1 +PWM_REV7 LITERAL1 +PWM_REV6 LITERAL1 +PWM_REV5 LITERAL1 +PWM_REV4 LITERAL1 +PWM_REV3 LITERAL1 +PWM_REV2 LITERAL1 +PWM_REV1 LITERAL1 +RED_FLT LITERAL1 +RED_FWD LITERAL1 +RED_REV LITERAL1 +RED_BRK LITERAL1 +BLUE_FLT LITERAL1 +BLUE_FWD LITERAL1 +BLUE_REV LITERAL1 +BLUE_BRK LITERAL1 +CH1 LITERAL1 +CH2 LITERAL1 +CH3 LITERAL1 +CH4 LITERAL1 +RED LITERAL1 +BLUE LITERAL1 +NO_CHANGE LITERAL1 +CLEAR LITERAL1 +SET LITERAL1 +TOGGLE LITERAL1 +PIN_C1 LITERAL1 +PIN_C2 LITERAL1 +CL_C1_CL_C2 LITERAL1 +ST_C1_CL_C2 LITERAL1 +CL_C1_ST_C2 LITERAL1 +ST_C1_ST_C2 LITERAL1 +INC_PWM LITERAL1 +DEC_PWM LITERAL1 +FULL_FWD LITERAL1 +FULL_REV LITERAL1 +TOG_FWD_REV LITERAL1 \ No newline at end of file diff --git a/LEGOPowerFunctions/legopowerfunctions.cpp b/LEGOPowerFunctions/legopowerfunctions.cpp new file mode 100644 index 0000000..281e335 --- /dev/null +++ b/LEGOPowerFunctions/legopowerfunctions.cpp @@ -0,0 +1,167 @@ +/* +LEGO Power Functions protocol for the arduino. +20-04-2009 +Version 1.1 + +Changelist: + - Changed the timing in oscillationWrite from 13us to 9us. + - Forgot to set the ir-pin to OUTPUT + - added support for SingleOutput the "Clear - Set - Toggle" + +This code is based on the code of Bob Kojima 01-19-2008 + +I have modified it to work on the Arduino. + +Roland Wiersma +*/ + +#include "legopowerfunctions.h" + +int _IR_Pin; +int toggle[4] = {0, 0, 0, 0}; +int delay_code1, delay_code2, messagecount = 0; + +LEGOPowerFunctions::LEGOPowerFunctions(int IR_Pin) { + _IR_Pin = IR_Pin; + pinMode(IR_Pin, OUTPUT); +} + +void LEGOPowerFunctions::SingleOutput(int mode, int step, int output, int channel) { + int nib1, nib2, nib3, nib4; + + //set nibs + nib1 = toggle[channel] | channel; + nib2 = 0x4 | mode | output; + nib3 = step; + nib4 = 0xf ^ nib1 ^ nib2 ^ nib3; + + message_pause(channel, messagecount); + pf_send(nib1 << 4 | nib2, nib3 << 4 | nib4); + + if (toggle[channel] == 0) + toggle[channel] = 8; + else + toggle[channel] = 0; +} + +void LEGOPowerFunctions::SinglePin(int mode, int function, int pin, int output, int channel) { + int nib1, nib2, nib3, nib4; + + //set nibs + nib1 = toggle[channel] | channel; + nib2 = 0x00 | mode; + nib3 = output << 4 | pin << 3 | function; + nib4 = 0xf ^ nib1 ^ nib2 ^ nib3; + + message_pause(channel, messagecount); + pf_send(nib1 << 4 | nib2, nib3 << 4 | nib4); + + if (toggle[channel] == 0) + toggle[channel] = 8; + else + toggle[channel] = 0; +} + +void LEGOPowerFunctions::ComboMode(int blue_speed, int red_speed, int channel) { + int nib1, nib2, nib3, nib4; + + //set nibs + nib1 = channel; + nib2 = 0x01; + nib3 = blue_speed | red_speed; + nib4 = 0xf ^ nib1 ^ nib2 ^ nib3; + + message_pause(channel, messagecount); + pf_send(nib1 << 4 | nib2, nib3 << 4 | nib4); +} + +void LEGOPowerFunctions::ComboPWM(int blue_pwm, int red_pwm, int channel) { + int nib1, nib2, nib3, nib4; + + //set nibs + nib1 = 0x4 | channel; + nib2 = blue_pwm; + nib3 = red_pwm; + nib4 = 0xf ^ nib1 ^ nib2 ^ nib3; + + message_pause(channel, messagecount); + pf_send(nib1 << 4 | nib2, nib3 << 4 | nib4); +} + +void LEGOPowerFunctions::pf_send(int code1, int code2) { + + if (code1 == delay_code1 && code2 == delay_code2) + { + if (messagecount < 4) + messagecount++; + } else + { + delay_code1 = code1; + delay_code2 = code2; + messagecount = 0; + } + + cli(); // make it uninterruptable + start_stop_bit(); + + int x = 128; + while (x) { + oscillationWrite(_IR_Pin, 156); + + if (code1 & x) //high bit + delayMicroseconds(546); + else //low bit + delayMicroseconds(260); + + x >>= 1; //next bit + } + + x = 128; + while (x) { + oscillationWrite(_IR_Pin, 156); + + if (code2 & x) // high bit + delayMicroseconds(546); + else //low bit + delayMicroseconds(260); + + x >>= 1; //next bit + } + start_stop_bit(); + sei(); + +} + +void LEGOPowerFunctions::start_stop_bit() { + oscillationWrite(_IR_Pin, 156); + delayMicroseconds(1014); +} + +/* +The IR signal is 38Khz +1 pulse is 26 microseconds (1/1.000.000) +So the delay should be 13us, but because of internal delay 9us is more close. +I have timed it with a scope. 13us delay equals about 28khz. +10us is about 35khz. I have not timed 9us but i think its close. +*/ +void LEGOPowerFunctions::oscillationWrite(int pin, int time) { + for (int i = 0; i <= time / 26; i++) { + digitalWrite(pin, HIGH); + delayMicroseconds(9); + digitalWrite(pin, LOW); + delayMicroseconds(9); + } +} + +void LEGOPowerFunctions::message_pause(int channel, int count) { + unsigned char a = 0; + + if (count == 0) + a = 4 - channel; + else if (count == 1 || count == 2) + a = 5; + else if (count == 3 || count == 4) + a = (6 + 2 * channel); + + delay(a * 16); +} \ No newline at end of file diff --git a/LEGOPowerFunctions/legopowerfunctions.h b/LEGOPowerFunctions/legopowerfunctions.h new file mode 100644 index 0000000..ba790e3 --- /dev/null +++ b/LEGOPowerFunctions/legopowerfunctions.h @@ -0,0 +1,104 @@ +/* +LEGO Power Functions protocol for the arduino. +20-04-2009 +Version 1.1 + +Changelist: + - Changed the timing in oscillationWrite from 13us to 9us. + - Forgot to set the ir-pin to OUTPUT + - added support for SingleOutput the "Clear - Set - Toggle" + +This code is based on the code of Bob Kojima 01-19-2008 + +I have modified it to work on the Arduino. + +Roland Wiersma +*/ + +#ifndef legopowerfunctions_h +#define legopowerfunctions_h + +#include + +//SinglePin & SingleOutput modes +#define CONTINUOUS 0x2 +#define TIMEOUT 0x3 +#define PWM 0x0 +#define CST 0x2 //Clear - Set - Toggle + +//ComboPWM & SingleOutput pwm steps +#define PWM_FLT 0x0 +#define PWM_FWD1 0x1 +#define PWM_FWD2 0x2 +#define PWM_FWD3 0x3 +#define PWM_FWD4 0x4 +#define PWM_FWD5 0x5 +#define PWM_FWD6 0x6 +#define PWM_FWD7 0x7 +#define PWM_BRK 0x8 +#define PWM_REV7 0x9 +#define PWM_REV6 0xA +#define PWM_REV5 0xB +#define PWM_REV4 0xC +#define PWM_REV3 0xD +#define PWM_REV2 0xE +#define PWM_REV1 0xf + +//SingleOutput Clear - Set - Toggle steps +#define CL_C1_CL_C2 0x0 +#define ST_C1_CL_C2 0x1 +#define CL_C1_ST_C2 0x2 +#define ST_C1_ST_C2 0x3 +#define INC_PWM 0x4 +#define DEC_PWM 0x5 +#define FULL_FWD 0x6 +#define FULL_REV 0x7 +#define TOG_FWD_REV 0x8 + +//ComboMode steps +#define RED_FLT 0x0 +#define RED_FWD 0x1 +#define RED_REV 0x2 +#define RED_BRK 0x3 +#define BLUE_FLT 0x0 +#define BLUE_FWD 0x4 +#define BLUE_REV 0x8 +#define BLUE_BRK 0xC + +//channels +#define CH1 0x0 +#define CH2 0x1 +#define CH3 0x2 +#define CH4 0x3 + +//SinglePin & SingleOutput output +#define RED 0x0 +#define BLUE 0x1 + +//SinglePin functions +#define NO_CHANGE 0x0 +#define CLEAR 0x1 +#define SET 0x2 +#define TOGGLE 0x3 + +//SinglePin pin +#define PIN_C1 0x0 +#define PIN_C2 0x1 + +class LEGOPowerFunctions +{ + private: + void pf_send(int code1, int code2); + void oscillationWrite(int pin, int time); + void start_stop_bit(); + void message_pause(int channel, int count); + + public: + LEGOPowerFunctions(int IR_Pin); + void SingleOutput(int mode, int step, int output, int channel); + void SinglePin(int mode, int function, int pin, int output, int channel); + void ComboMode(int blue_speed, int red_speed, int channel); + void ComboPWM(int blue_pwm, int red_pwm, int channel); +}; + +#endif diff --git a/LEGOPowerFunctions/legopowerfunctions.h~ b/LEGOPowerFunctions/legopowerfunctions.h~ new file mode 100644 index 0000000..1aa8dcc --- /dev/null +++ b/LEGOPowerFunctions/legopowerfunctions.h~ @@ -0,0 +1,104 @@ +/* +LEGO Power Functions protocol for the arduino. +20-04-2009 +Version 1.1 + +Changelist: + - Changed the timing in oscillationWrite from 13us to 9us. + - Forgot to set the ir-pin to OUTPUT + - added support for SingleOutput the "Clear - Set - Toggle" + +This code is based on the code of Bob Kojima 01-19-2008 + +I have modified it to work on the Arduino. + +Roland Wiersma +*/ + +#ifndef legopowerfunctions_h +#define legopowerfunctions_h + +#include + +//SinglePin & SingleOutput modes +#define CONTINUOUS 0x2 +#define TIMEOUT 0x3 +#define PWM 0x0 +#define CST 0x2 //Clear - Set - Toggle + +//ComboPWM & SingleOutput pwm steps +#define PWM_FLT 0x0 +#define PWM_FWD1 0x1 +#define PWM_FWD2 0x2 +#define PWM_FWD3 0x3 +#define PWM_FWD4 0x4 +#define PWM_FWD5 0x5 +#define PWM_FWD6 0x6 +#define PWM_FWD7 0x7 +#define PWM_BRK 0x8 +#define PWM_REV7 0x9 +#define PWM_REV6 0xA +#define PWM_REV5 0xB +#define PWM_REV4 0xC +#define PWM_REV3 0xD +#define PWM_REV2 0xE +#define PWM_REV1 0xf + +//SingleOutput Clear - Set - Toggle steps +#define CL_C1_CL_C2 0x0 +#define ST_C1_CL_C2 0x1 +#define CL_C1_ST_C2 0x2 +#define ST_C1_ST_C2 0x3 +#define INC_PWM 0x4 +#define DEC_PWM 0x5 +#define FULL_FWD 0x6 +#define FULL_REV 0x7 +#define TOG_FWD_REV 0x8 + +//ComboMode steps +#define RED_FLT 0x0 +#define RED_FWD 0x1 +#define RED_REV 0x2 +#define RED_BRK 0x3 +#define BLUE_FLT 0x0 +#define BLUE_FWD 0x4 +#define BLUE_REV 0x8 +#define BLUE_BRK 0xC + +//channels +#define CH1 0x0 +#define CH2 0x1 +#define CH3 0x2 +#define CH4 0x3 + +//SinglePin & SingleOutput output +#define RED 0x0 +#define BLUE 0x1 + +//SinglePin functions +#define NO_CHANGE 0x0 +#define CLEAR 0x1 +#define SET 0x2 +#define TOGGLE 0x3 + +//SinglePin pin +#define PIN_C1 0x0 +#define PIN_C2 0x1 + +class LEGOPowerFunctions +{ + private: + void pf_send(int code1, int code2); + void oscillationWrite(int pin, int time); + void start_stop_bit(); + void message_pause(int channel, int count); + + public: + LEGOPowerFunctions(int IR_Pin); + void SingleOutput(int mode, int step, int output, int channel); + void SinglePin(int mode, int function, int pin, int output, int channel); + void ComboMode(int blue_speed, int red_speed, int channel); + void ComboPWM(int blue_pwm, int red_pwm, int channel); +}; + +#endif diff --git a/LEGOPowerFunctions/legopowerfunctions.o b/LEGOPowerFunctions/legopowerfunctions.o new file mode 100644 index 0000000000000000000000000000000000000000..04e634830c26382d2eef9a5f9bc20d846e5e66ee GIT binary patch literal 17684 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 +#include + +Servo servoMain; // Define our Servo +int fwdSpeed[] = {PWM_FLT, PWM_FWD1, PWM_FWD2, PWM_FWD3, PWM_FWD4, PWM_FWD5, PWM_FWD6, PWM_FWD7}; +int revSpeed[] = {PWM_FLT, PWM_REV1, PWM_REV2, PWM_REV3, PWM_REV4, PWM_REV5, PWM_REV6, PWM_REV7}; +int curSpeed = 0; +// IR led on port 13 +LEGOPowerFunctions lego(13); +int val = 0; +int setSpeed = 3; +int irPin = 12; +int count = 0; +int buttonState=0; +int fwdRev=0; +int stationPin = 2;//9; +int buzzerPin = 11; + +//irPin - conta as voltas +//ledpin - pins com leds +//count - variavel que conta as voltas +//stationpin - para o comboio na estacao +//buzzerpin - apito de saida de estacao + +void setup() +{ + Serial.begin(9600); + pinMode(irPin, INPUT); + pinMode(stationPin,INPUT); + servoMain.attach(10); // servo on digital pin 10 + pinMode(buzzerPin,OUTPUT); +} + +void loop() +{ + if ( digitalRead(irPin) == 0 ) + { + count++; + delay(3000); + } + if (count <= 1) + { + Serial.print("Estacao: "); + Serial.println(digitalRead(stationPin)); + + Serial.print("contador:"); + Serial.println(count); + if(setSpeed>7) setSpeed=7; + + if (fwdRev==0) + { + curSpeed=fwdSpeed[setSpeed]; + } + lego.SingleOutput( PWM, PWM_FWD5, RED, CH1); + delay(100); + if (digitalRead(stationPin) == 0) + { + Serial.print("teste"); + delay(1000); + Serial.print("teste2"); + lego.SingleOutput( PWM, PWM_FLT, RED, CH1); + servoMain.write(0); // Turn Servo Left to 45 degrees + delay(2000); + tone(11,2000,1000); + delay(500); + } + } + else + { + servoMain.write(90); // Turn Servo Left to 45 degrees + Serial.print("contador:"); + Serial.println(count); + count = 0; + } +} +