From ec2b6ab07a9b40c8bf17d0af6189cb8bd6e2d07c Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Thu, 2 Jul 2020 20:23:48 +0200 Subject: [PATCH] testtest --- test/andi/.v1.py.swo | Bin 0 -> 16384 bytes test/andi/.v1.py.swp | Bin 0 -> 16384 bytes test/andi/check_remote.sh | 13 +++ test/andi/v1.py | 174 +++++++++++++++++++++++++++ test/andi/v1.pyc | Bin 0 -> 5845 bytes test/initialize.py | 187 ++++++++++++++++++++++++++++++ test/initialize.py.bak | 186 +++++++++++++++++++++++++++++ test/initialize.pyc | Bin 0 -> 7437 bytes test/manual-test.py | 4 + test/old/old_initialize.sh | 28 +++++ test/old/old_rotate_output.sh | 53 +++++++++ test/old/test_input.sh | 27 +++++ test/output/.output_manual.py.swl | Bin 0 -> 12288 bytes test/output/.output_manual.py.swm | Bin 0 -> 12288 bytes test/output/.output_manual.py.swn | Bin 0 -> 12288 bytes test/output/.output_manual.py.swo | Bin 0 -> 12288 bytes test/output/.output_manual.py.swp | Bin 0 -> 12288 bytes test/output/old/output_manual.py | 41 +++++++ test/output/old/output_manual.pyc | Bin 0 -> 1677 bytes test/output/old/rotate_output.py | 27 +++++ test/output/output_manual.py | 156 +++++++++++++++++++++++++ test/output/output_manual.py.bak | 156 +++++++++++++++++++++++++ test/output_manual.pyc | Bin 0 -> 884 bytes test/test.py | 4 + test/test.pyc | Bin 0 -> 170 bytes test/test_displays | Bin 0 -> 7992 bytes test/test_displays.c | 91 +++++++++++++++ test/test_sound.py | 4 + 28 files changed, 1151 insertions(+) create mode 100644 test/andi/.v1.py.swo create mode 100644 test/andi/.v1.py.swp create mode 100755 test/andi/check_remote.sh create mode 100644 test/andi/v1.py create mode 100644 test/andi/v1.pyc create mode 100755 test/initialize.py create mode 100755 test/initialize.py.bak create mode 100644 test/initialize.pyc create mode 100644 test/manual-test.py create mode 100755 test/old/old_initialize.sh create mode 100755 test/old/old_rotate_output.sh create mode 100755 test/old/test_input.sh create mode 100644 test/output/.output_manual.py.swl create mode 100644 test/output/.output_manual.py.swm create mode 100644 test/output/.output_manual.py.swn create mode 100644 test/output/.output_manual.py.swo create mode 100644 test/output/.output_manual.py.swp create mode 100644 test/output/old/output_manual.py create mode 100644 test/output/old/output_manual.pyc create mode 100755 test/output/old/rotate_output.py create mode 100644 test/output/output_manual.py create mode 100644 test/output/output_manual.py.bak create mode 100644 test/output_manual.pyc create mode 100644 test/test.py create mode 100644 test/test.pyc create mode 100755 test/test_displays create mode 100644 test/test_displays.c create mode 100644 test/test_sound.py diff --git a/test/andi/.v1.py.swo b/test/andi/.v1.py.swo new file mode 100644 index 0000000000000000000000000000000000000000..1f82b1719840e7803ebcd8cc986815c361251e3f GIT binary patch literal 16384 zcmeI2TZklA8OM*4sJXaC-8^~YWJWXHrf0UhW@o3TaRwJJF<@d6a{ zxZOu1|3vB~=?ORN_$SWP7Nh;c6IlzZfK}i!DR4|IIkoEC>`n6cYwo>FKCK(8fK|XM zU=^?mSOu&CRspMkRp3fdAdP0k3j{j@pMaMbUf{Ty^9Ri}KlZQ+SOu&CRspMkRlq7> z6|f3e1*`&A0jq#j;0jg1?FexrvA?fckmOq01v~*A%^?lo#4Q6xC;JpJ>`H4un+4X;hF1*0X`3BU=!A08D0nfxfUJZ zr|@0)EIbGi+y$?Ne_bQQZ{Z1e1kQmE8}NQugKOaFmkaSEd;>lWJMeaRBfJ4-;K`Q> z@fCOoJ`DGR1IOSmFBRfP@Hl)OA~+4p@ch+6JO>xy%Md~f-UK(n)$pgQg!nN$2491Z zK^r~@r(qthhwI?qw1a2h+wd*;4D3N0ZUfa$ZiTT!%H1&W0{2jWd?YNsnWzq4rq_%QQdVRm5?v)!<97h!UVOmPkxD@$eS>7V&<-)=` ze{YfM=3ca@9k{{Wp4-tjWtH7lFP0>b{NpES=&WK)n(DHYdGD8?pS#!gyKXQk-u#IQ zIqhw42VP$0QpY@N=z#T~BCPvkKlM~x6}jVY?@Wj-_tVT|%R-$f?O_=Ny}hIQ?-zZz z@>CA|n-G3766S`gmb~P0LDn`a(&RrUW$dN9afm0*vl^WB!)P~^UL5!0iVSz-tpQWYMKn1RA=*y8~7bR-OqEa$XZ1%Qde7@r zzRL}g?1t$I%v&vcbO^mI8N1=Or(b^F{ruTmRd3?Ol72kDwJvv~$cwXH(Bw7dJL_gt z58~ztbJyv9nAV{K&Q}*Vbe;>lMvF6{KpwQ=t?o`r}eF-eqi>66)Re z-f@IjwTH>U<_;!DOTr1^ayN_D)N$91N`c#LbzFJ2p_+xn+gVl2`P#fxGU}nVB30+Y zq(G@=PU&?RI=ZeNsw#4Ru9{CAbSITCi*WR$qBURMa2lIJ&q#**DLozW(?m-+F(mb3 zj>klxmp!Ds3mA%NVzu^1-Jv9OuHt#&~|%1v&-!}{r53liEfSj9xhZ1$h zIaQq3>-wA*Mm?wvT&ymui_u9NRvS#39EQT01E(tTB+vu@e)sG2ig zoO&G-$?&MDVsVJnA+Oqs$z$B4PN;Rv>b2=6lv$fBZ5|fGaHeEDAV#LOqco>P{0zvh z1R$**{RUe|zp>Cc)lQW~alJ;wB5yz>t)8XM#a7(w%GB?oO*iVr%#Z@li-ftznt0?( z6x@r1TL1r&_3%enE35VY&HVh8wY^&ZKL(G&H{o;e04%}lVFv!m`u-`n2tRZcr!f58vbceYyXEJfHgP{&yx33a1nk6KZNhVm*9)=DNym91AABntO8a6tAJI& zDqt0`3RnfK0#~F0YK=d5h`|eWo_+8!dsccANSo-L2EA9&zbuyN=1Y!BUL1M>R7$el zv*NZK`*5Q_LJbjCsCwYJP{K zR9hYD6NdV5m8}e&$|uTS0%$$`ud-?J$vg@8L zu|ra-^95`$rTzw4Bs)NKz2CIuhVA`aZ&m$N8~KiWXVg3XqjIVOjc7>w$aa?qz~MqU KuBcXn*Z%>BdD)2o literal 0 HcmV?d00001 diff --git a/test/andi/.v1.py.swp b/test/andi/.v1.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..c8f970322da55ffe3b7953a330b548e26ac91439 GIT binary patch literal 16384 zcmeI2O^6&t6vr#kBz`1*B!UMK%iV;XNoF_QyZDuNOZ9z;YUD1jgb5y3<75FrPn=tWVYl87FRUQ}|BpdcdX|5aDd?Ci|!u1PMz z8uHtju736E)xWB%s;g2k9(iyFAMP7q_}s$S$u)=fi$9mKqt`IzyOg;2XVP>tFr92^GA6nOn-w}KbcHNNymE1(t73TOqi0$KsBfL1^&pcT*x zXa%$aT7j!n0o!5hdc;0R8vr=}r#*mQZ)WT(a0Z+PC%}tf0z3xp19ySHZ({6Qa1MM3 zUIQW64R(R`;Ey$o{S3YXUx1ImY4AQc4&DOCz^kAP_Je!DD9C~gSO*yRWi?|zg7e@@ za0(m)FM+4P<6svU1$Tlq;IA7Q`yQME&w&TPM)2DWhylC_o&_ba4QvG)zzXm?ggFB~ z0I!2rz(Ft$)`Ml>hwD%;a2z}jLLh(xwt=cb2)2W*fPwSZGWISw1ggLUw}Fe;#Q7SW1V_LO7zg)&4PZT3 z2N?Ji?f(gQ8@vpj21QT++X3~D0U$q|hr$!ZC?ASaSyZAFzSGPRle|(ZTewK!I|HLq zI>#92wTiO0JumOLq3_wVVJeL~D&28QZj{2`rZj1X)X{MQ{uGWCmq<{9$`DuCQZdnRs)U<9RKhY=43qrnB?g)HLnKs z(nZlN+g`hPlRKnGR4tV}k<>ZmsCzk-%XuTBM*}w!6jFvyxuvN#VI?jgIVm4U*;dsB ze0$aDrMm9WWaPX}*x|hJ#;GNe%JN=rPGq<$yqohtM75v-Pxu`-T9;e#YY`VgPz^G? zQbn`M#;^Ar;dD{t-7dOVHR8o7QG7D53do}c^9O9tb=+t+DK*2*3?D?}Q7hCdGr#pN zqdG}D{kQtWEp~aesXsI7`Kb4)c5UN?_-uA;&^?%0WgZnyPY38F6G-nK%?=qk6VHYShW23^%BWFrFpVc0;@1 z3I5Pt8Igc03+FeR^NY&d?9i%FZZg@S*fbv-<3>Crs)@;qXo90q8ae8dQ9h_)Lh2Ce zo_#x)5UcdiKG?)T`)HA|O}I#n<5g{3w*8c6mkW-~XL8gnIK0hJHG9k+PBO~*G{b3d z!6JZEQ$I24VBRR(a-PcYo^B&qD9Ax7#HzuPi-@;YOj9ux&{6 zV7A7DK(Ba6$q>*KQ`=^(PsMFlK5hjgGy+_pUvylg#9d2zkl}RhTB=)hj^LmOs&etw zp>JY-r^f8;pjr{};*G+QYfUKz)>u2Lj#_KAcOmVjU92WcyWNMeR`Iv_ZWS)52gKfT ztgEYwU7F`|(YN{yb69##73@&tZO6f~$F+*`S8G9xdiIzclt@=5d)1g4J@MbPX-vU= zYpC%%o0Y%uz|akI&c(Wu{lPn_5!YpfcHbIr8N&m!RF*Fy7g6C)v3vI!fH58WxYdPo5 z?HBbff+5KqO0&lG7-D2ew?S581})7dgKC*aZW(Hn{c3=9ktc-D)J5E}eV0SCX`j*i z{~dTwr}uVx|EDwm3wXCb2hM_z!5ct;onQcTgH>Q9xPW}$fK%WoI1I>F0Q5&IpcT*x zXa%$aS^=$qRzNGD70?Q31^(9x(2fpH{^+GNW%L<_+8*Td56k2>wls|o8|A(noh;_< zAQ*S$*}|OL$-c82Z;jH9PA(^IVopvH$3aN)lz7Z{b|ZHnNxuL9 literal 0 HcmV?d00001 diff --git a/test/andi/check_remote.sh b/test/andi/check_remote.sh new file mode 100755 index 0000000..c2ed5e3 --- /dev/null +++ b/test/andi/check_remote.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +#echo "hello world" + +cd /home/pi/firmware/flippr-code +OUTPUT="$(git pull)" +if [ "$OUTPUT" != "Already up-to-date." ]; then + echo "repo has updated. compile now..." + cd /home/pi/firmware/flippr-code/FlippR-Driver/build + cmake .. + make +fi +echo "repo on track, nothing to do here..." diff --git a/test/andi/v1.py b/test/andi/v1.py new file mode 100644 index 0000000..c7fdaed --- /dev/null +++ b/test/andi/v1.py @@ -0,0 +1,174 @@ +import wiringpi as wp +from time import sleep + +i2c_addr = 0x21 +base_addr = 81 +pins = range(base_addr, base_addr + 16) +pins = [22, 27, 17, 19, 13, 6, 5, 20, 21, 26, 1, 12, 16, 4] + +""" has to be inverted +pins_segment_select = [81, 82, 83]""" +pins_segment_select = [83, 82, 81] +pins_segment_select = [22, 27, 17] + +""" has to be inverted +pins_digit_select = [84, 85, 86, 87] """ +#pins_digit_select = [87, 86, 85, 84] +pins_digit_select = [19, 13, 6, 5] + +#pins_display_select = [89, 90, 91, 92, 93] +pins_display_select = [1, 20, 12, 16, 4] +pin_run = 95 +pin_run = 21 +pin_lt = 88 +pin_lt = 26 + +high = False +low = not high + +""" +def init(): + wp.mcp23017Setup(base_addr, i2c_addr) + for pin in pins: + wp.pinMode(pin, 1) +init() +""" +def init(): + wp.wiringPiSetupGpio() + for pin in pins: + wp.pinMode(pin, 1) +init() + +def init_ones(): + for pin in pins: + wp.digitalWrite(pin, 1) +def init_zeros(): + for pin in pins: + wp.digitalWrite(pin, 0) +def init_high(): + for pin in pins: + wp.digitalWrite(pin, high) +def init_low(): + for pin in pins: + wp.digitalWrite(pin, low) +def dec2bin_high(dec, digits): + bin_str = format(dec, '#0' + str(digits + 2) + 'b')[2:] + return map(lambda x: high if x == '1' else low, bin_str) +def dec2bin_low(dec, digits): + bin_str = format(dec, '#0' + str(digits + 2) + 'b')[2:] + return map(lambda x: low if x == '1' else high, bin_str) +def toggle_run(): + if wp.digitalRead(pin_run) == 0: + #print("enable RUN") + wp.digitalWrite(pin_run, 1) + else: + #print("disable RUN") + wp.digitalWrite(pin_run, 0) +def toggle_lt(): + if wp.digitalRead(pin_lt) == 0: + #print("enable LT") + wp.digitalWrite(pin_lt, 1) + else: + #print("disable LT") + wp.digitalWrite(pin_lt, 0) +def check_decimal_for_validity(decimal, lower, upper): + if type(decimal) is not type(1): + print("input not a decimal") + return False + if decimal < lower or decimal > upper: + print("decimal out of range") + return False + return True + +def select_segment(decimal): + #if not check_decimal_for_validity(decimal, 0, 7): + # print("input error, no segment selected") + # return + values = dec2bin_high(decimal, 3) + pss = pins_segment_select + wp.digitalWrite(pss[0], values[0]) + wp.digitalWrite(pss[1], values[1]) + wp.digitalWrite(pss[2], values[2]) + +def select_digit(decimal): + #if not check_decimal_for_validity(decimal, 0, 9): + # print("input error, no digit selected") + # return + values = dec2bin_low(decimal, 4) + pds = pins_digit_select + wp.digitalWrite(pds[0], values[0]) + wp.digitalWrite(pds[1], values[1]) + wp.digitalWrite(pds[2], values[2]) + wp.digitalWrite(pds[3], values[3]) + +def select_display(decimal): + #if not check_decimal_for_validity(decimal, 1, 5): + # print("input error, no display selected") + # return + wp.digitalWrite(pins_display_select[int(decimal) - 1], high) + +def unselect_display(decimal): + #if not check_decimal_for_validity(decimal, 1, 5): + # print("input error, no display unselected") + # return + wp.digitalWrite(pins_display_select[int(decimal) - 1], low) + +def unselect_all_displays(): + for pin in pins_display_select: + wp.digitalWrite(pin, low) + +def select_all_displays(): + for pin in pins_display_select: + wp.digitalWrite(pin, high) + +def toggle_display(decimal): + select_display(decimal) + unselect_display(decimal) + +def read_pins(): + for pin in pins: + print(str(pin) + ' --> ' + str(wp.digitalRead(pin))) + +def digit2display(disp, dig): + select_display(disp) + select_digit(dig) + unselect_all_displays() + +def num2seg(num, seg): + select_segment(seg) + select_digit(num) + toggle_display(3) + +def fancy(number,disp): + num_arr = map(int, list(str(number))) + num_arr = num_arr + [0] * max(0, (8 - len(num_arr))) + if len(num_arr) > 8: + num_arr = num_arr[:8] + print(num_arr) + num_arr = num_arr[-1::-1] + + for j in range(5000): + for i in range(8): + select_segment(i) + select_digit(num_arr[i]) + toggle_display(disp) + sleep(0.001) + +def al(number,s): + num_arr = map(int, list(str(number)))[-1::-1] + for i in range(5000): + for segment in range(8): + for disp in range(2,6): + select_segment(segment) + select_digit(num_arr[segment]) + num_arr = num_arr[-1::-1] + toggle_display(disp) + sleep(s) + +def ini(): + init() + init_low() + toggle_run() + + + diff --git a/test/andi/v1.pyc b/test/andi/v1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5001a97f798bdea95f93e8010d15c16acc95671 GIT binary patch literal 5845 zcmcgwTW=gm8U1=LcE*V>iIdpQb#ies8#YVgWr2k#8*M@ykk(q-h#*VZ(Rive>11x6 zZYMU1C8PuiUU=ktgy|D2xs z```Y!QMc?jgYz96$)5rlDR2!hs_-^H*Idl+^o4db4NMa9ka%a#?PBO&gmMM7kBk<&zd8XH1J3? zF#~2BOj5KBJmrLK;6a!W@}zCxiL;c^v~A2-G-F3L@azS9jTOyVG-t023t3bfGc8Fu zX6}>}AUZ7txXws9VeYJyljhDzSul5A%A&cllqGW)q?|H$QOap^m!zCAcUj6=bIVfB znY$w8yt%7V%H}FkE|_~q%0+Y6q+Bxh4Jnt+y(?we+;u5eXs7kcdoW!5Z~WFOu%4ww z8nPKh-S`5p{Fq{n;v~gsilY?s6w?$F6ud1yPH}?b6b0vtk5CjS)+s`YD#gzri*8Do zFXCR@ZhRWAN9lHVwHtR*j_AhiB%SoiCmk30mFIm&1t*h8xTxnh-|Oz`uDBhim(i1O z!4^yf)4`kgmvM=xZGbwkr@2wolW(HtlS2uafRwqo5vR50!(N~jk{wGXn-el-LWn^bfHXgDiII_=^ zxbfrwTmz~&_Qu%9gv*iUhp{-5c)_(oq743ye(+UZJzorq;h0y$4t$c)?x@>9DFF#Z&CsAIWLTA zuAiN&z3sM7IJ{}>66l3#r_pFe988E=f>(+9}RWB(jk1?p=fThZi}Pmd8@JqeKa>n!ECz3KvWv@am6IWdMb8yZ1FpEXHNOKSPQNQ;78ZY=uq8CLUlU=< z^It+&c$LG+Ue}E$iitEMN|QZeo1H_NGNNdWf%C`~{rrXpAchcRaHPd0c=%vN1fT6U z=?FuM4sGt@q}#0RW{VKkxSfvVc0TGL8)uU|!B7=$E6BEAE98)yvyd+V!%8ln91D&W zX}djOR%>jJz=NvI#DLLdbd28)gA)?EHD+%oNP{pL!9}*m;$o#6;Hov7)r`6XZr?9x zUv0Pk-@{|{9k9V;D#%D11-G*g92d-k-lbHgEYeT;0kW8PM_)-fa?S4=_{tP=GwV@& zsb^&cC!+@w_Su;V>Szc6Sr&lrK-sy$)N$`oMQ>nz34?KY%$F$sYCtRVIdCpfP-p;1l|X;GRc^PjkQ`zEmTb;a_28 zjvEk9n{bG>cX3a66GBv~jFB4!EHcMfXX8t+vdT(E<7;#bUJ5~E9~I9+b`c7ZWqA55 z5}B{#9vsK7`K%~}@1PwD;rq}$LSATZw*(M{Wh_9JUyND7^)wPyo#v z6SI0B1Az!mR87{)z#1?$zT4uRh>B zd3_Jc+b>aJacSov>mFWGFxS0DKeWBP?c7n9roZ=S#r6t@jo?cS3DQHH3XLV1w=|#= z-*AeYB-r|`J=}Vgy)thdyK zd`v@B$@} z6N5mXlq!tBOfj^`pdu-?hAX_v6c&Dqf@LNA9>raX`xL7X zqGBjUNFj_{t&ZDnMz=|QvIcP^n9EII&pRL7z}|PZcr1ScE&ZW?vQ#Qe=1TdIzsV9h VOH-x8r3w5MvcF=fSeh*z{tq2?NCf}@ literal 0 HcmV?d00001 diff --git a/test/initialize.py b/test/initialize.py new file mode 100755 index 0000000..a26bd61 --- /dev/null +++ b/test/initialize.py @@ -0,0 +1,187 @@ +import wiringpi +import tty +import itertools +import sys +from time import sleep + +class Test(object): + + def __init__(self, i2c_addr, base): + self.i2c_addr = i2c_addr + self.base = base + self.pins = range(base, base+16) + self.init_component() + + def init_component(self): + wiringpi.mcp23017Setup(self.base, self.i2c_addr) + for i in self.pins: + wiringpi.pinMode(i,1) + wiringpi.digitalWrite(i, 1) + print(self.pins) + + def write(self, pin, value): + print(str(self.pins[pin]) + " " + str(value)) + wiringpi.digitalWrite(self.pins[pin], value) + +class Test_Display(Test): + def __init__(self, i2c_addr = 0x21, base = 65 + 16): + super(Test_Display, self).__init__(i2c_addr, base) + self.pin_dic = {'d0' : base, 'd1' : base + 1, 'd2' : base + 2, 'bcd0': base + 3, 'bcd1': base + 4, 'bcd2' : base + 5, 'bcd3' : base + 6, 'bcdLT' : base + 7, 'disp1' : base + 8, 'disp2' : base + 9, 'disp3' : base + 10, 'disp4' : base + 11, 'disp5' : base + 12, 'disp6' : base + 13, 'run' : base + 14} + + def write_number(self, number): + print('Writing number: ' + str(number)) + wiringpi.digitalWrite(self.pin_dic['bcd0'], bool(number % 2)) + number = number / 2 + wiringpi.digitalWrite(self.pin_dic['bcd1'], bool(number % 2)) + number = number / 2 + wiringpi.digitalWrite(self.pin_dic['bcd2'], bool(number % 2)) + number = number / 2 + wiringpi.digitalWrite(self.pin_dic['bcd3'], bool(number % 2)) + + def select_digit(self, digit): + print('Selecting 7 segment number: ' + str(digit)) + wiringpi.digitalWrite(self.pin_dic['d0'], bool(digit % 2)) + digit = digit / 2 + wiringpi.digitalWrite(self.pin_dic['d1'], bool(digit % 2)) + digit = digit / 2 + wiringpi.digitalWrite(self.pin_dic['d2'], bool(digit % 2)) + + def disp_select(self, number): + print('Selecting Display: ' + str(number)) + for i in range(1, 6): + if(i == number): + wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 0) + else: + wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 1) + #sleep(.1) + + def run(self): + wiringpi.digitalWrite(self.pin_dic['run'], 0) + #sleep(.001) + wiringpi.digitalWrite(self.pin_dic['run'], 1) + + def toggleLT(self): + sleep(.1) + wiringpi.digitalWrite(self.pin_dic['bcdLT'], 0) + sleep(.1) + wiringpi.digitalWrite(self.pin_dic['bcdLT'], 1) + def clear_disp_select(self): + print("Clearing Display") + for i in range(1, 7): + wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 1) + + def test_digit1(self): + for i in range(0, 8): + for j in range(0, 10): + self.select_digit(i) + self.clear_disp_select() + self.write_number(j) + self.disp_select(1) + self.run() + def test(self): + for k in range(1, 6): + for i in range(0, 8): + self.select_digit(i) + for j in range(0, 10): + self.write_number(j) + # self.toggleLT() + self.disp_select(k) + self.clear_disp_select() + self.run() + + def test123(self): + self.clear_disp_select() + self.select_digit(0) + self.write_number(7) + wiringpi.digitalWrite(self.pin_dic['run'], 0) + self.disp_select(1) + + def manual_test(self, display, digit, number): + self.select_digit(digit) + self.write_number(number) + self.disp_select(display) + self.clear_disp_select() + self.run() + def test_digits(self): + tty.setcbreak(sys.stdin.fileno()) + self.write_number(3) + for i in range(0,8): + self.select_digit(i) + self.disp_select(0) + self.run() + sleep(.5) + def permutation_test(self): + self.select_digit(3) + self.write_number(0) + functions = [self.disp_select, self.clear_disp_select, self.run, self.toggleLT] + i = 0 + for permutation in itertools.permutations(functions, 4): + print(str(i)) + for function in permutation: + function(3) + print(permutation) + i = i+1 + raw_input() + +class Sound_Test(Test): + def __init__(self, i2c_addr = 0x22, base = 65): + super(Sound_Test, self).__init__(i2c_addr, base) + self.pins = [x + base for x in [15, 14, 12, 10, 8, 9, 11, 13]] + + def fire(self): + self.write(7, 0) + + + def stop(self): + self.write(7, 1) + + def init_component(self): + super(Sound_Test, self).init_component() + wiringpi.digitalWrite(self.base + 12, 1) + + def fire_sound(self, i): + self.write(0, bool(i & 0b00000001)) + self.write(1, bool(i & 0b00000010)) + self.write(2, bool(i & 0b00000100)) + self.write(3, bool(i & 0b00001000)) + self.write(4, bool(i & 0b00010000)) + self.write(5, bool(i & 0b00100000)) + self.write(6, bool(i & 0b01000000)) + self.write(7, bool(i & 0b10000000)) + self.fire() + a = raw_input() + self.stop() + + def rotate(self): + for i in range(22, 78): + self.fire_sound(i) + + """ + def init_flipper(self): + init_driver() + init_display() + init_sound() + + def init_driver(self): + i2c_driver = 0x20 + base_driver = 65 + wiringpi.mcp23017Setup(base_driver, i2c_driver) + + def init_display(self): + i2c_display= 0x21 + base_display = 65 + 16 + wiringpi.mcp23017Setup(base_display, i2c_display) + for i in range(base_display, base_display+16): + wiringpi.pinMode(i,1) + wiringpi.digitalWrite(i, 0) + + def init_sound(self): + i2c_sound = 0x22 + base_sound = 65 + 32 + wiringpi.mcp23017Setup(base_sound, i2c_sound) + for i in range(base_sound, base_sound+16): + wiringpi.pinMode(i,1) + wiringpi.digitalWrite(i, 0) + # set fire to 1 (out) + + def """ diff --git a/test/initialize.py.bak b/test/initialize.py.bak new file mode 100755 index 0000000..86d17e6 --- /dev/null +++ b/test/initialize.py.bak @@ -0,0 +1,186 @@ +import wiringpi +import tty +import itertools +import sys +from time import sleep + +class Test(object): + + def __init__(self, i2c_addr, base): + self.i2c_addr = i2c_addr + self.base = base + self.pins = range(base, base+16) + self.init_component() + + def init_component(self): + wiringpi.mcp23017Setup(self.base, self.i2c_addr) + for i in self.pins: + wiringpi.pinMode(i,1) + wiringpi.digitalWrite(i, 1) + print(self.pins) + + def write(self, pin, value): + print(self.pins[pin]) + wiringpi.digitalWrite(self.pins[pin], value) + +class Test_Display(Test): + def __init__(self, i2c_addr = 0x21, base = 65 + 16): + super(Test_Display, self).__init__(i2c_addr, base) + self.pin_dic = {'d0' : base, 'd1' : base + 1, 'd2' : base + 2, 'bcd0': base + 3, 'bcd1': base + 4, 'bcd2' : base + 5, 'bcd3' : base + 6, 'bcdLT' : base + 7, 'disp1' : base + 8, 'disp2' : base + 9, 'disp3' : base + 10, 'disp4' : base + 11, 'disp5' : base + 12, 'disp6' : base + 13, 'run' : base + 14} + + def write_number(self, number): + print('Writing number: ' + str(number)) + wiringpi.digitalWrite(self.pin_dic['bcd0'], bool(number % 2)) + number = number / 2 + wiringpi.digitalWrite(self.pin_dic['bcd1'], bool(number % 2)) + number = number / 2 + wiringpi.digitalWrite(self.pin_dic['bcd2'], bool(number % 2)) + number = number / 2 + wiringpi.digitalWrite(self.pin_dic['bcd3'], bool(number % 2)) + + def select_digit(self, digit): + print('Selecting 7 segment number: ' + str(digit)) + wiringpi.digitalWrite(self.pin_dic['d0'], bool(digit % 2)) + digit = digit / 2 + wiringpi.digitalWrite(self.pin_dic['d1'], bool(digit % 2)) + digit = digit / 2 + wiringpi.digitalWrite(self.pin_dic['d2'], bool(digit % 2)) + + def disp_select(self, number): + print('Selecting Display: ' + str(number)) + for i in range(1, 6): + if(i == number): + wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 0) + else: + wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 1) + #sleep(.1) + + def run(self): + wiringpi.digitalWrite(self.pin_dic['run'], 0) + #sleep(.001) + wiringpi.digitalWrite(self.pin_dic['run'], 1) + + def toggleLT(self): + sleep(.1) + wiringpi.digitalWrite(self.pin_dic['bcdLT'], 0) + sleep(.1) + wiringpi.digitalWrite(self.pin_dic['bcdLT'], 1) + def clear_disp_select(self): + print("Clearing Display") + for i in range(1, 7): + wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 1) + + def test_digit1(self): + for i in range(0, 8): + for j in range(0, 10): + self.select_digit(i) + self.clear_disp_select() + self.write_number(j) + self.disp_select(1) + self.run() + def test(self): + for k in range(1, 6): + for i in range(0, 8): + self.select_digit(i) + for j in range(0, 10): + self.write_number(j) + # self.toggleLT() + self.disp_select(k) + self.clear_disp_select() + self.run() + + def test123(self): + self.clear_disp_select() + self.select_digit(0) + self.write_number(7) + wiringpi.digitalWrite(self.pin_dic['run'], 0) + self.disp_select(1) + + def manual_test(self, display, digit, number): + self.select_digit(digit) + self.write_number(number) + self.disp_select(display) + self.clear_disp_select() + self.run() + def test_digits(self): + tty.setcbreak(sys.stdin.fileno()) + self.write_number(3) + for i in range(0,8): + self.select_digit(i) + self.disp_select(0) + self.run() + sleep(.5) + def permutation_test(self): + self.select_digit(3) + self.write_number(0) + functions = [self.disp_select, self.clear_disp_select, self.run, self.toggleLT] + i = 0 + for permutation in itertools.permutations(functions, 4): + print(str(i)) + for function in permutation: + function(3) + print(permutation) + i = i+1 + raw_input() + +class Sound_Test(Test): + def __init__(self, i2c_addr = 0x22, base = 65 + 32): + super(Sound_Test, self).__init__(i2c_addr, base) + self.pins = [x + base for x in [15, 14, 12, 10, 8, 9, 11, 13]] + + def fire(self): + self.write(7, 0) + + + def stop(self): + self.write(7, 1) + + def init_component(self): + super(Sound_Test, self).init_component() + wiringpi.digitalWrite(self.base + 12, 1) + + def rotate(self): + for i in range(22, 78): + self.write(0, i & 0b00000001) + self.write(1, i & 0b00000010) + self.write(2, i & 0b00000100) + self.write(3, i & 0b00001000) + self.write(4, i & 0b00010000) + self.write(5, i & 0b00100000) + self.write(6, i & 0b01000000) + self.write(7, i & 0b10000000) + + self.fire() + # sleep(1) + a = raw_input() + self.stop() + + """ + def init_flipper(self): + init_driver() + init_display() + init_sound() + + def init_driver(self): + i2c_driver = 0x20 + base_driver = 65 + wiringpi.mcp23017Setup(base_driver, i2c_driver) + + def init_display(self): + i2c_display= 0x21 + base_display = 65 + 16 + wiringpi.mcp23017Setup(base_display, i2c_display) + for i in range(base_display, base_display+16): + wiringpi.pinMode(i,1) + wiringpi.digitalWrite(i, 0) + + def init_sound(self): + i2c_sound = 0x22 + base_sound = 65 + 32 + wiringpi.mcp23017Setup(base_sound, i2c_sound) + for i in range(base_sound, base_sound+16): + wiringpi.pinMode(i,1) + wiringpi.digitalWrite(i, 0) + # set fire to 1 (out) + + def """ diff --git a/test/initialize.pyc b/test/initialize.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9fc694f3fb2fd8be6faf3c4f8564100c4a5a304 GIT binary patch literal 7437 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 literal 0 HcmV?d00001 diff --git a/test/manual-test.py b/test/manual-test.py new file mode 100644 index 0000000..ac10c86 --- /dev/null +++ b/test/manual-test.py @@ -0,0 +1,4 @@ +import sys +import test + +test.s.manual_test(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/test/old/old_initialize.sh b/test/old/old_initialize.sh new file mode 100755 index 0000000..a4e906c --- /dev/null +++ b/test/old/old_initialize.sh @@ -0,0 +1,28 @@ +#!/bin/bash +gpio export 14 out +gpio export 15 out +gpio export 18 out +gpio export 23 out +gpio export 24 out +gpio export 25 out +gpio export 9 in + +# missing driver board + +gpio -g write 14 0 +gpio -g write 15 0 +gpio -g write 18 0 +gpio -g write 23 1 +gpio -g write 24 1 +gpio -g write 25 0 +gpio -g write 8 0 +gpio -g write 16 0 +gpio -g write 20 0 +gpio -g write 21 0 +gpio -g write 2 0 +gpio -g write 3 0 +gpio -g write 4 0 +gpio -g write 6 0 +gpio -g write 13 0 +gpio -g write 19 0 + diff --git a/test/old/old_rotate_output.sh b/test/old/old_rotate_output.sh new file mode 100755 index 0000000..4eb15a1 --- /dev/null +++ b/test/old/old_rotate_output.sh @@ -0,0 +1,53 @@ +#!/bin/bash +shopt -s expand_aliases +source ./.bash_aliases +mux1 1 +mux2 0 +for(( i = 0; i < 8; i++)) +do + echo "Activating Latch $((i+1))" + let "a = $i % 2" + let "b = $i / 2 % 2" + let "c = $i / 4 % 2" + ma0 $a + ma1 $b + ma2 $c + for(( j = 0; j < 8; j++)) + do + echo "Activating Pin $j" + let "d = $j % 2" + let "e = $j / 2 % 2" + let "f = $j / 4 % 2" + + fa0 $d + fa1 $e + fa2 $f + sleep $1 + done +done + +mux1 0 +mux2 1 +for(( i = 0; i < 5; i++)) +do + echo "Activating Latch $((i + 9))" + let "a = $i % 2" + let "b = $i / 2 % 2" + let "c = $i / 4 % 2" + ma0 $a + ma1 $b + ma2 $c + for(( j = 0; j < 8; j++)) + do + echo "Activating Pin $j" + let "d = $j % 2" + let "e = $j / 2 % 2" + let "f = $j / 4 % 2" + + fa0 $d + fa1 $e + fa2 $f + sleep $1 + done +done + diff --git a/test/old/test_input.sh b/test/old/test_input.sh new file mode 100755 index 0000000..feda9e2 --- /dev/null +++ b/test/old/test_input.sh @@ -0,0 +1,27 @@ +#!/bin/bash +while : +do + for(( i=0; i<5; i++)) + do + let "a = $i % 2" + let "b = $i / 2 % 2" + let "c = $i / 4 % 2" + gpio -g write 14 $a + gpio -g write 15 $b + gpio -g write 18 $c + for(( j=0; j<8; j++)) + do + let "d = $j % 2" + let "e = $j / 2 % 2" + let "f = $j / 4 % 2" + gpio -g write 23 $d + gpio -g write 24 $e + gpio -g write 25 $f + sleep .01 + x=`gpio -g read 8` + if [ "$x" -eq "0" ]; then + echo "Row[$i], Col[$j]" + fi + done + done +done diff --git a/test/output/.output_manual.py.swl b/test/output/.output_manual.py.swl new file mode 100644 index 0000000000000000000000000000000000000000..f0d43a24bcbb5582b16ad7ac3f39f1a6f3afce2f GIT binary patch literal 12288 zcmeI2OND#+6p8V_3Zs+q|)vt2!Jl8FvsT-S)K5Zr^{+B?%b+wAO2+tb5} zD;`WFMv=fpFD61bXuNpxK@>DTV|ElUGFyqEU!y9=vkz#mOF?Q_5-?u$@PapgEYQ|iLoC`k_HOFmYrGvG(?Jvaf5gHOOQ@HTh@yb4|cFM)mF z8So@%f(DoZkAkh>K5!REg8{GxtOmKbA6f61)%I1TTQSU>1ykjUWYX181&b>}PNSybGQK&w?gc53U8LmLMNE0uF-% zU_aOcX2D~?1>;~CnBW$0dNIa=Pr>Wp0C*Zqg3aJ=FbHl2H-W|AEWYD$3LFPtfFs}# zI0*KEouCCqK@kjsJHRTi68v%%&I$Mo90jj|{a_Y60UiPOf+4ULtOhrNb2w`!!4H7W z-Pb@pN&%(7zovjwcl=nKG0rQtRrZ~omT!-_PCX_}ou}fgVoyYS{DwOwzr|&HvG}@q zhUMlP)jQ%s({%iEC+T!iW!)({?#KkRkfvR;%l=r+^2?KU6U&3s@~xObR@h0IK*S@% zWAe{A>!xVgqjMS*uKYsth)C8;n5VOh`DXDwr&_hWU{8{|sT+xKThKA-kBwXPscv%_4S@~v78noql=IE6(% zuY>UPG;6l)#*BoKB#G#myB!g4&z8vWU?WAGGx|8u@Mu3cemtvQwPQJKP2iS8yB$Io z0)4Wq_A&3NPv+y?^_;pN)7opQ@F0&i(Dc2S6CdE(HeXH|cy`3w>xe4l=zK@urvi6$ ztLT>Jbe%%yA{Ex=HGEva_SNd1St*-OIpsmd0fRYLy6Az7p5$n8-D9kCzu-I5wile| z83${xx=y0vR2|={jd~7BfxOL!wW6tQmq(x9$&GPg$eVQ00U|oU5DO15dIlI+B5l@r zYsBu#jk?&>C5;d8V7pMWyoY`7(KMDcU6 zIW|Z&c3QQT9q1spJ@~v}ft$BJKw1V>b!a%AK4!TydO4zbSP1Eof%aQe2F46@+b_N#?c9QHgTG)c@ z6c=WJ=gCaMRp41NO)iWAmjeaQ7q}c|@Ek^=yO`x!SQJ^z@JxZ5WTiPK%aE1gm?}qB zlG8*6nI^|PLPiRXc|?l52FE-i!>DAUB$6DCGz^oB6bwN|5{3Z--@7j5!!}19CM#vB z6|9t@)?lSH+B_?z(BxQ&5@uP6(q)hYO`74jpvAnM`8H5;ED3d@WkrfJ8S10OOF?<~ zXc(jMbtsbW?#I3a54@)Iru3*!kT0Y6#2Mtv>-|F`!<(?m8M|uN`Gh@Lv+EVx<0B2v zx4jt~Zz8W%uST-v(87pDNh!=|6kS^6&qjTC3&0f}i1#o&A{tbbxpHvPxyKgGYQ?syOupXXGZI7E!defV-sFuno}Hird`M#{ElYfhxX-Ve*?gfK`8(L literal 0 HcmV?d00001 diff --git a/test/output/.output_manual.py.swm b/test/output/.output_manual.py.swm new file mode 100644 index 0000000000000000000000000000000000000000..e0b63f38ec958757be7f772123438253c096db69 GIT binary patch literal 12288 zcmeI2O>7%Q6vwAQKubUQDu@G2H-Kzq>+Gz*D_P*GCInF$T7?{F2^)LkY~$F=dfiY$ zIUrFXC{=p_2_aF`1BeSJJ}PKIAV7$UOU37bQXx)MfZA!%jG^_kF z&u`wmdGnu{P1R(=cwl%l&n8j~&l<*#J^%am`|s*wFJ8`=>yUHtXR_wFuD5vH6RtDp z+f9G4(em9^yBVLc>Mg65aCa}BK}9G9lmeHoz)F@hh0(9AkqSQ3IpJxT$kfKosypcGIFCmH8SO)sQpDP(V15Se8N2}Y zgQvjbpa~ja8axa}!9Cy(kOl)_9asxifIe_`1?B{&z?a}Na1^`;-T{ZeKJYA<1r<;R zV;~2v1Ai=M>?C*}ya}EI`@kF+0h>Vz+yYKt#n{i_1b7!b1D*y=un}AheprTl;0QPj z4uS(mw z;1Jjkc7YZc14S?hZUbw;YVgYyI49s!a1^`-4uCoE7{!}r&+UYH)bS^BuPZi{OyQ%d$vS|2OBBkoYBY0hDZCs@#R_dsvXN=YXY|%+U*d! z5a^R-wU2pEeKH^CuIJSKnAToXg$H@Gfu`@pocI9Ow)=9*z_T;nUPn|ZN9Q{OKNYyM zTSd1#r|T3t7pbr|ui@hYwy#$A%u3mO$|(;r4j9b&(nSws^dv`%>mFmB`vu>bvAy6t z&pKFp)pZgTr|S4tZOn5}3gm4*s1;3ZhdlcHc5X}vL*Aqd4iM1+hFE-n(KEon5^1x} zStE8=Zq$XQE@^y#2it|3BZ{vJ z&9O_7*(?ZM|o3*0(-A88p>)j31wn-GUpY82_mo^Nhc>{z?2BOe`xgscL0 zoR-m9!%W#VlZMD{v;CGEo3NU;&K!E+de?qZf_VNql;!!reLl9lF|EJId`W2zik zNlp_PWSSiF2pK6j<`F6K8XWV845N~Xl1Oqm(lAUiQZNJ=Nf-tU{M~gaAGSH_Fj*-} ztze}LwFWDt(dJnxg(k;JlrYOmlrDoLXwnSF1uf?7%(sb>V@aqJEh|!-$xt6HUJA;? zN5dG6Z$OcJPe1l0c;GdqH>F2?f_xdhC(a;WUhf|o8Qy|b&e~PG&L{1unq9Bh9v^9V zzU|H0coTW8dNq{oll!!)2 zIg&k5ffhzIN=jiyqv+Bie>UpFTL7-;K)i?H5z(Nc%$0+S&ONqhPAj%mW%Bh7pOMHi lhWkk7qo%>=Zo$r^8JqMPGo0eMGvh+;;Ab=oKeR6|`x}HhK>Yv! literal 0 HcmV?d00001 diff --git a/test/output/.output_manual.py.swn b/test/output/.output_manual.py.swn new file mode 100644 index 0000000000000000000000000000000000000000..2ba9338ae2790d2f4b54a3afc84ae2a1f1b20372 GIT binary patch literal 12288 zcmeI2O>7%Q6vwAQKubUQDu@G2H-Kzq>+Gz*D_P*GCInF$T9q7V2^)LkY~$F=dfiY$ zIUrFXC{=oa3lgn*0CC~OM+Gei1PD=asrWolD#VFOaHv#14)A}oYkS?KO{utmW|d#& z`OTX*Z~im0shW%%4-IeT*+h!rS;N@z7k}UJ;5~h8?n=g7hn$N)6E(+my~X36a-Bin zZu*0bmhZOO&DgY6Z&|g3yJztXDncos6u5i^R_i1&)9@uop~$QLqUJa4T32 zep|)ZPv9i@0PF+zgB-XWtO6^+GSCP9T*=s3a0dJcz5^%03GgvE4&DZDfLFmQ;3aSX zJOiEtP0#>S;8Cz0+z0LgX)plRfwf=-=mY0gU`}uvd@CdjU41x7vEw~Y!!&y58z6W&f zz5?n|3Md8sH3giyM>#JJQZgZdm`H7H{3D#S6sFii*Hz9 zSZ<+Fy(2C(O~*ffl1>*@)}5l`j!ZxcY1%cr?2pwfzdUI-u{<~}--;Pzg`JcML_9J) zCcn>HH$}@HoztLjh*!)vE0Udy>>m-AIJnf{salY}~3(gTK1`Ls)lQ&{Bl z1_)12vu4|F%t#nXl8B!9+Y#~hY>5mHHd4enqmL5}kM@J(%d_fLJC?)N1a3LB+aYuz z&?n1kAM>92WIoPa&#C({t-YoS5AtXOP2Y<-@d2*w@a2?&XIH$vj;Km({p)$y&`sOO**$lH8aE1KF)dGz_6+!z;zyh#@wAff{dvG@R^XMlkv(q^5v zM(nQKsEbWq()a)mwhJ}OyGYy6qj*Q~`7aB3w=XHbR5Fe^4w^eJ|fev!pgU^c=xOMvjq-9W5=L}tFLL649QKTPxzPVAcW9_bvd~_HRvI^XB zT1ICL(`DC88X~*R_FHaj+-ll7cg!-K*iKAfj5so8$aNawdm{K5gk=S1t(4bx^7REy zN!l&}Jvu(*l#x^Ro}GLk45S+2plc+QC&^Bug)PWV zabXsCp3Ed%1)e3-t9MUlk}&lI>xR+?k73|T3Tsd8i` zIZb4cX>!aXWTfDjN2JJWaLgkzj7la-BFW)M!!XH6!4PC5VHhy*ch{wS*ygCiWTh;% zf|WAV8myE?n`fmInj9-p!YnIMx(t$_Ni!T5w3xRu-zG|qC818VtVnStLw&S(DJTyg z4P!LE0Y&n?{n(e_f!CDYlpgg7@@4d%ID>q7y?IYt=LwT$=5r4Mk31? k?jxCxn+Bu11v`^wY{F|ybBg26v0=C^8f$< literal 0 HcmV?d00001 diff --git a/test/output/.output_manual.py.swo b/test/output/.output_manual.py.swo new file mode 100644 index 0000000000000000000000000000000000000000..4e7953176365ab05a54a890d7ba399377341d8ae GIT binary patch literal 12288 zcmeI2O^g&p6vqpQA0S_16pe`~dn1|2HbYm>H_0RpGFevxtRjdJvgw_vnQeAlflQAB|aL{=1M3g9gC2EX#kr32_NYs-=E+izH;Qv+6M-RKONW5sOvp@RH z>sPPd`&U(OfEly44sYPuM2g{B&e&70|FQjYX+HZ^GUmDDocpTQUC;C9j@$3KYXaE{ z)-n<}opc&gPCeo6o;!n%&dJ2(YC1TTY^KmZ;BE5OeSkq;aP zN5Nrm2)qFH0v|jB%HR=@1owh-w_+^#61)ozgXe$?HiIItz&+q@un=6l1!KTT@C`T) z-U3I!K`;$=fo)(Nu)r#CJ6H}b+|1Yy;45$fyaNt_y;_X`!6&^06h;v3Ct4*KQgX70{8Z{ZqVQE6Q8rpjx zOd;@0mDSnief6n)oO{082x3O3rwR}A7=x|AkGb(dZfp=zid%C7r~ahxq7=y6dfF)3#tyah`6_OW2}_-%YYq_60hXA1fYmp^LW{Im zSM-S0RSR{ksY?bQ68Tu6O3O@5?q0aVoBx3)Rm7mLqb)7 zGfr)EdzdVHcG42r%`%wsVq;EAn%uR^v}3z5p)umBm?6(?w%-%s?;x}l?zNIY^L%xI zQ9MuR19V=BOY*nLS7>o^#tjltdE&#GKIB>9&WT$b5EyzxB zVHbFw%p_a|o+Z=f!YXhzQ1E<#t6>(;VH6%0vpfrnB8wTGDR7&tG{>o}&jgD`n{} zSSdqyiTOEYX2+%a!=zV(zGEul`_S&`ywhWe;^B`9xS z2F4hCEsEs(2Cy#S1+Pusj2U$a6__&n;wei;Z10BTGnKPSLJwJHY(ERBTYY$ z{9`$yI%SvSN mS3J8+=CiiN=w!jpq#3LF%}Gvi+@16wcK9orwLf&uF8dp7Mnty& literal 0 HcmV?d00001 diff --git a/test/output/.output_manual.py.swp b/test/output/.output_manual.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..3c9bbf703862f534c5916b44e44afc899feab02e GIT binary patch literal 12288 zcmeI2O=w(I6vuA^inUFxAGnjAPDCbTOy7O;@n(vHOzjvVrX7?RK}&p@xtZQ(J|1u0 zBrR>ljVM~JD@8X7E?lU%(h7c35fQ|NMNl_Y#FbsR5DIpo|8w6Yd83$McZU1mmwVoM z=bU@)|K2wPNfw-krf0~T%n4k(g_t>Y?$NvM9TB@979!B>-27T>=^zL4j5?gn`<0rrAh!A>v&F7L#g;3x1c_!4{sJ_PTB*T5O@EI1Atpbq9h z5!?d)*dfG4@CkSqJO|Ezlb{A>Ko0Bym#!D$S8xG*0G197s^M0!}-}2i*FFmMB6otCkRH5laXXw~^C&$*S#%=I)dfh2ABy*_4 zGlbm;^|>nAGE+NTsMk^|NJqM@LcU$?iJuIu-^9kAp(S$ZWP|2mhBb<3TG65IGy^@^ z&`llrt+`O63q0;UlB&3=BPNvYAZI~3rlAcJWHP~lj_7m41ZOD08L0iYrC|e6XX8rM z6irYs3e$QVJ)=&%w?ksDY28rC)1b^=B4MLW*XqYd2XmOk{j-wU%w+k&VdGP{$s7lb z8q0pGui{f@c00Z|$6})fADBJFTE<=R$u-u$EehwI^y&N6Y8 zRbMILf_5fyNu4-C6N5PJ5e|N%OqZ}tkEv8jh^g8Ek7T|K*e>8*gPmnNj}f+HJ4ezj zQ;E$iTxIgubV)j8GKrE(Win|F6_JI<6^}ev99bz)p-e7YdBS7`wsM52ifmhUN=wZNkz zs(FkhQO#i}iYgcMM3u`GPy|C>;J9GKyle9vCY{-XC0l2(GCO(JZDJByurWk}UuL`#4WU6BFN^qHP3;3K#PYAq^Y#w)| e;8zQFAuq&Y*liQXk!}Z2JN}*#gPYYCT>J%E*--TW literal 0 HcmV?d00001 diff --git a/test/output/old/output_manual.py b/test/output/old/output_manual.py new file mode 100644 index 0000000..e546176 --- /dev/null +++ b/test/output/old/output_manual.py @@ -0,0 +1,41 @@ +import wiringpi +from time import sleep + +base = 65 +i2c = 0x20 + +timer = .5 + +wiringpi.wiringPiSetupGpio() +wiringpi.mcp23017Setup(base, i2c) + + +for i in range(base, base+16): + wiringpi.pinMode(i, 1) + +wiringpi.digitalWrite(base+8, 0) +wiringpi.digitalWrite(base+9, 0) + +def data(value): + wiringpi.digitalWrite(base+3, value) + +def select_mux(mux): + wiringpi.digitalWrite(base+8, not mux) + wiringpi.digitalWrite(base+8 + 1, mux) + +def select_latch(A,B,C): + wiringpi.digitalWrite(base + 5, A) + wiringpi.digitalWrite(base + 6, B) + wiringpi.digitalWrite(base + 7, C) + +def select_latch_pin(A0,A1,A2): + wiringpi.digitalWrite(base, A0) + wiringpi.digitalWrite(base +1, A1) + wiringpi.digitalWrite(base+2, A2) + +def trigger_pin(lA, lB, lC, A0, A1, A2): + select_latch(lA, lB, lC) + select_latch_pin(A0,A1,A2) + data(1) + sleep(timer) + data(0) diff --git a/test/output/old/output_manual.pyc b/test/output/old/output_manual.pyc new file mode 100644 index 0000000000000000000000000000000000000000..786a15d045d90ca2c22749230da432cf07746b96 GIT binary patch literal 1677 zcmbVM&2G~`5T3P@G)|Kyh|;1SfCEUDkVt_ASKu9ZfHL2>ZPFGF#P-h4%+Bu4H$V1&H)=n2&fg8_;wkaG$0Pg6MDwR8A?g>r zM~R}5M}3c!_NniaE>XWkx=j5t8KO@WIwMlxmdN;IN_57yCr`;#Mdlq9T4&v>4{Ov9 zWKWGuKzd0mKfk9#>|TbouF|>=L_gEju5@~tzO!p}(sf}Pq#MGlkX{j{NxCUa3pftK z7GtvK{PaS_tSbX(VoYi~Sb4-`$b+9>FRd8E%vM35wE>d>bQnI5E|2U!6UR;~avm;P zKP7RR!*>vRyx6m_4M7|Z`)a3lJWQ>tv!LzJx;QzUT4x->|1r+Y%)c*jlADm#BqV#n zT>E%3GVRp1oylB#lDjm&oQ_8EIFFNO={Gq`$1c9hJ2JRI>bCD&tiI`c9XY$E)ZTSa zK+-GXf=CFm2wa4FB0&q$fg9x~3;AE;y_reOz#Z`sYmg8gQuovV=U$F3R`!@&bNM0% zGaVo($;(XVv(B643di>>s=`)4mYDn%8?JT$*b%xfw7U>Wl)webBzA-24am5i)GEKX zk?!)+6@ptRQGGX20{I+DIN!7I-XdH728h+pCf77iTg9}!5Jt4pJjSEcjvqo-;A{aW zSPbMqGP=(U<79*k2>$zAl+5{bTB6f(AxpoVDPHl33tl+Zu{G;7`fm;`A4nmx8!dx0 zK}2Mx_!&4mGSd)l2;8JoO#8*ujgYLU0kXnmp;+K*H?_l|nIa62Shpo!W_mgQG#Zy|cOXT(t6|o5tgzkwUc& zh0T}0nP^jVtb_sDxzMb#ID;tMfBb!_ynA;v(RpHCpw_YnOzNuTRaC{Rcs14XH`J=f NHSPs|PzuUH`46JQ9G(CG literal 0 HcmV?d00001 diff --git a/test/output/old/rotate_output.py b/test/output/old/rotate_output.py new file mode 100755 index 0000000..3259d92 --- /dev/null +++ b/test/output/old/rotate_output.py @@ -0,0 +1,27 @@ +#!/usr/bin/python +import wiringpi +import output_manual as o +from time import sleep + +timerInner = .5 + +def rotate(): + for i in range(8): + print("Selecting Latch: " + str(i)) + o.select_latch(i & 1, i & 2, i & 4) + + for j in range(8): + o.select_latch_pin(j & 1, j & 2, j & 4) + print("Triggering Pin: " + str(j)) + o.data(1) + sleep(timerInner) + o.data(0) + +print("Selecting MUX1") +o.select_mux(0) + +rotate() + +print("Selecting MUX2") +o.select_mux(1) +rotate() diff --git a/test/output/output_manual.py b/test/output/output_manual.py new file mode 100644 index 0000000..2013d85 --- /dev/null +++ b/test/output/output_manual.py @@ -0,0 +1,156 @@ +import wiringpi +from time import sleep + +base = 65 +i2c = 0x20 + +timer = 0.7 +pins = {"A0" : 9,# + "A1" : 8,# + "A2" : 1,# + "D0" : 0, + "RUN" : 7,# + "E1" : 2,# + "E2" : 10, + "E3" : 3,# + "E4" : 11, + "E5" : 4,# + "E6" : 12, + "E7" : 5, + "E8" : 13, + "E9" : 10,#PGIO06 wegen fehlender Porterweiterung + "E10" : 9,#GPIO12 wegen fehlender Porterweiterung + "E11" : 6,# + "E12" : 14, + "E13" : 15 }# + +""" +A0 = 3 +A1 = 2 +A2 = 1 +D0 = 17 +E13 = 15 +RUN = 16 +E1 = 5 +E2 = 6 +E3 = 7 +E4 = 8 +E5 = 9 +E6 = 10 +E7 = 11 +E8 = 12 +E9 = pi +E10 = pi +E11 = 13 +E12 = 14 +E13 = 15 +""" +""" +GPA0 0= 16 +GPA1 1= 14 +GPA2 2= 12 +GPA3 3= 10 +GPA4 4= 8 +GPA5 5= 6 +GPA6 6= 2 +GPA7 7= 17 +GPB0 8= 1 +GPB1 9= 3 +GPB2 10= 5 +GPB3 11= 7 +GPB4 12= 9 +GPB5 13= 11 +GPB6 14= 13 +GPB7 15= 15 + +""" +for key in pins.keys(): + pins[key] += base + +pins["E10"] -= base +pins["E9"] -= base + +def init(): + wiringpi.wiringPiSetupGpio() + wiringpi.mcp23017Setup(base, i2c) + for i in pins.values(): + wiringpi.pinMode(i, 1) + wiringpi.digitalWrite(i, 1) + data(0) + wiringpi.digitalWrite(pins["RUN"], 0) + +def data(value): + wiringpi.digitalWrite(pins["D0"], value) + +def select_latch(latch): + deselect_latches() + wiringpi.digitalWrite(pins["E" + str(latch)], 0) + +def deselect_latches(): + for i in range(1,14): + wiringpi.digitalWrite(pins["E" + str(i)], 1) + +def select_pin(pin): + wiringpi.digitalWrite(pins["A0"], pin & 0b001) + wiringpi.digitalWrite(pins["A1"], pin & 0b010) + wiringpi.digitalWrite(pins["A2"], pin & 0b100) + +def trigger_pin(latch, pin, t=timer): + select_latch(latch) + select_pin(pin) + + data(1) + sleep(t) + data(0) + +def rotate(): + for i in range(1, 14): + for j in range(8): + trigger_pin(i, j) + print("activated latch "+str(i)+ "\t pin "+str(j)) + +def activate_all_lamps(): + for latch in range(1,11): + for pin in range(8): + data(1) + select_latch(latch) + select_pin(pin) + sleep(0.03) +def all_lamps(): + activate_all_lamps() + +def outhole(): + trigger_pin(11,0) +def right_kicker(): + trigger_pin(12,5) + +def right_flap(): + trigger_pin(13,5,0.4) + +def right_bank(): + trigger_pin(13,2,0.4) + +def activate_pin(latch, pin): + select_latch(latch) + select_pin(pin) + data(1) + deselect_latches() + +def deactivate_pin(latch, pin): + select_latch(latch) + select_pin(pin) + data(0) + deselect_latches() +def activate_flipper(): + activate_pin(8, 4) + +def activate_top_flipper(): + activate_pin(12, 4) + +def deactivate_flipper(): + deactivate_pin(8, 4) + +def deactivate_top_flipper(): + deactivate_pin(12, 4) + +init() diff --git a/test/output/output_manual.py.bak b/test/output/output_manual.py.bak new file mode 100644 index 0000000..b4a8948 --- /dev/null +++ b/test/output/output_manual.py.bak @@ -0,0 +1,156 @@ +import wiringpi +from time import sleep + +base = 65 +i2c = 0x20 + +timer = 0.7 +pins = {"A0" : 9,# + "A1" : 6,# + "A2" : 8,# + "D0" : 7, + "RUN" : 0,# + "E1" : 10,# + "E2" : 5, + "E3" : 11,# + "E4" : 4, + "E5" : 12,# + "E6" : 3, + "E7" : 13, + "E8" : 2, + "E9" : 9,#PGIO06 wegen fehlender Porterweiterung + "E10" : 10,#GPIO12 wegen fehlender Porterweiterung + "E11" : 14,# + "E12" : 1, + "E13" : 15 }# + +""" +A0 = 3 +A1 = 2 +A2 = 1 +D0 = 17 +E13 = 15 +RUN = 16 +E1 = 5 +E2 = 6 +E3 = 7 +E4 = 8 +E5 = 9 +E6 = 10 +E7 = 11 +E8 = 12 +E9 = pi +E10 = pi +E11 = 13 +E12 = 14 +E13 = 15 +""" +""" +GPA0 0= 16 +GPA1 1= 14 +GPA2 2= 12 +GPA3 3= 10 +GPA4 4= 8 +GPA5 5= 6 +GPA6 6= 2 +GPA7 7= 17 +GPB0 8= 1 +GPB1 9= 3 +GPB2 10= 5 +GPB3 11= 7 +GPB4 12= 9 +GPB5 13= 11 +GPB6 14= 13 +GPB7 15= 15 + +""" +for key in pins.keys(): + pins[key] += base + +pins["E9"] -= base +pins["E10"] -= base + +def init(): + wiringpi.wiringPiSetupGpio() + wiringpi.mcp23017Setup(base, i2c) + for i in pins.values(): + wiringpi.pinMode(i, 1) + wiringpi.digitalWrite(i, 1) + data(0) + wiringpi.digitalWrite(pins["RUN"], 0) + +def data(value): + wiringpi.digitalWrite(pins["D0"], value) + +def select_latch(latch): + deselect_latches() + wiringpi.digitalWrite(pins["E" + str(latch)], 0) + +def deselect_latches(): + for i in range(1,14): + wiringpi.digitalWrite(pins["E" + str(i)], 1) + +def select_pin(pin): + wiringpi.digitalWrite(pins["A0"], pin & 0b001) + wiringpi.digitalWrite(pins["A1"], pin & 0b010) + wiringpi.digitalWrite(pins["A2"], pin & 0b100) + +def trigger_pin(latch, pin, t=timer): + select_latch(latch) + select_pin(pin) + + data(1) + sleep(t) + data(0) + +def rotate(): + for i in range(1, 14): + for j in range(8): + trigger_pin(i, j) + print("activated latch "+str(i)+ "\t pin "+str(j)) + +def activate_all_lamps(): + for latch in range(1,11): + for pin in range(8): + data(1) + select_latch(latch) + select_pin(pin) + sleep(0.03) +def all_lamps(): + activate_all_lamps() + +def outhole(): + trigger_pin(11,0) +def right_kicker(): + trigger_pin(12,5) + +def right_flap(): + trigger_pin(13,5,0.4) + +def right_bank(): + trigger_pin(13,2,0.4) + +def activate_pin(latch, pin): + select_latch(latch) + select_pin(pin) + data(1) + deselect_latches() + +def deactivate_pin(latch, pin): + select_latch(latch) + select_pin(pin) + data(0) + deselect_latches() +def activate_flipper(): + activate_pin(8, 4) + +def activate_top_flipper(): + activate_pin(12, 4) + +def deactivate_flipper(): + deactivate_pin(8, 4) + +def deactivate_top_flipper(): + deactivate_pin(12, 4) + +init() diff --git a/test/output_manual.pyc b/test/output_manual.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad347ea671fe66be59b68909b998f20e2c8dd9e5 GIT binary patch literal 884 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 literal 0 HcmV?d00001 diff --git a/test/test_displays.c b/test/test_displays.c new file mode 100644 index 0000000..d45d91c --- /dev/null +++ b/test/test_displays.c @@ -0,0 +1,91 @@ +#include +#include +#include +#include + +const char disp_numbers[] = {89, 90, 91, 92, 93}; +const char run = 95; +const char lt = 88; + +const char base = 81; +void init(void) +{ + wiringPiSetup(); + mcp23017Setup(base, 0x21) ; + + for(int i = 0; i < 16; i++) + { + pinMode(base + i, OUTPUT); + digitalWrite(base + i, 1); + } + digitalWrite(run, 0); +} +void clear_displays(void) +{ + for(int i = 0; i < 5; i++) + { + digitalWrite(disp_numbers[i], 1); + } +} +void select_display(int number) +{ + digitalWrite(disp_numbers[number-1], 0); +} + +void toggle_display(int number) +{ + select_display(number); + clear_displays(); +} +void print_pins() +{ + for(int i = 0; i < 16; i++) + { + int state = digitalRead(base + i); + printf("PIN %d is %d\n", i, state); + } +} +void select_digit(char number) +{ + // MSB to LSB + digitalWrite(84, (number % 2)); + number = number / 2; + digitalWrite(85, (number % 2)); + number = number / 2; + digitalWrite(86, (number % 2)); + number = number / 2; + digitalWrite(87, (number % 2)); +} +void select_segment(int number) +{ + digitalWrite(81, (number % 2)); + number = number / 2; + digitalWrite(82, (number % 2)); + number = number / 2; + digitalWrite(83, (number % 2)); +} + +int main(void) +{ + + clock_t t; + init(); + print_pins(); + int numbers[] = {0, 1, 2 ,3 ,4 ,5, 6, 7}; + for(int i = 0; i < 50000; i++) + { + for(int j = 0; j < 3; j++) + { + //t = clock(); + select_segment(j); + //printf("select_segment %d\n", j); + select_digit(numbers[j]); + //printf("select_digit %d\n", numbers[j]); + toggle_display(3); + //t = clock() - t; + //printf("took %f ms \n" , (((float) t)/CLOCKS_PER_SEC)*1000); + } + //print_pins(); + } + +} diff --git a/test/test_sound.py b/test/test_sound.py new file mode 100644 index 0000000..3f22534 --- /dev/null +++ b/test/test_sound.py @@ -0,0 +1,4 @@ +import initialize + +s = initialize.Sound_Test() +s.rotate()