commit e3c1e05da4349e6979d4882ed61e75deb120a363 Author: Miguel Date: Tue Feb 25 21:21:58 2025 +0100 first commit diff --git a/2009/Charo/Charo_case2/Charo_case2.pde b/2009/Charo/Charo_case2/Charo_case2.pde new file mode 100644 index 0000000..e642bdf --- /dev/null +++ b/2009/Charo/Charo_case2/Charo_case2.pde @@ -0,0 +1,82 @@ +//programacio maquina.definitivo1//prueba delays +int ledPinA = 5; +int ledPinR = 8; +int ledPinV = 9; +unsigned long time=0; +long seg; +int botonPin; +int val; +int servoPin = 3; // Control pin for servo motor +int maxPulse = 1912; // Maximum servo position +int minPulse= -2400; // Minimum servo position +int pulse = 1600; // Amount to pulse the servo +long lastPulse = 0; // the time in milliseconds of the last pulse +int refreshTime = 20; // the time needed in between pulses + +void setup(){ + Serial.begin(9600); + pinMode(ledPinA, OUTPUT); // sets the digital pin as output + pinMode(ledPinR, OUTPUT); + pinMode(ledPinV, OUTPUT); + pinMode(botonPin, INPUT); + pinMode(servoPin, OUTPUT); // Set servo pin as an output pin +} + +void loop(){ + // pulse the servo again if rhe refresh time (20 ms) have passed: + digitalWrite(servoPin, HIGH); // Turn the motor on + delayMicroseconds(pulse); // Length of the pulse sets the motor position + digitalWrite(servoPin, LOW); // Turn the motor off + delayMicroseconds (refreshTime); + Serial.print (" Pulse:"); + Serial.println (pulse); + + + time=millis(); + seg=time/1000; + + switch(seg){ + case (1/2): + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinA,HIGH); + digitalWrite(ledPinR,LOW); + break; + //126 + case 136: + //digitalWrite (ledPinV, LOW); + digitalWrite(ledPinA,LOW); + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + break; + + + + //128 + case 138: + pulse=1600; + break; + + + case 144: + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + pulse=919; + break; + + //164 + case 184: + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + pulse=2400; + break; + //196 + case 200: + digitalWrite (ledPinV,LOW); + digitalWrite(ledPinR,HIGH); + pulse=1650; + //delay(500); + + break; + } + Serial.println(seg); +} diff --git a/2009/Charo/Charo_case2/applet/Charo_case2.cpp b/2009/Charo/Charo_case2/applet/Charo_case2.cpp new file mode 100644 index 0000000..0d0eb5a --- /dev/null +++ b/2009/Charo/Charo_case2/applet/Charo_case2.cpp @@ -0,0 +1,98 @@ +//programacio maquina.definitivo1//prueba delays +#include "WProgram.h" +void setup(); +void loop(); +int ledPinA = 5; +int ledPinR = 8; +int ledPinV = 9; +unsigned long time=0; +long seg; +int botonPin; +int val; +int servoPin = 3; // Control pin for servo motor +int maxPulse = 1912; // Maximum servo position +int minPulse= -2400; // Minimum servo position +int pulse = 1600; // Amount to pulse the servo +long lastPulse = 0; // the time in milliseconds of the last pulse +int refreshTime = 20; // the time needed in between pulses + +void setup(){ + Serial.begin(9600); + pinMode(ledPinA, OUTPUT); // sets the digital pin as output + pinMode(ledPinR, OUTPUT); + pinMode(ledPinV, OUTPUT); + pinMode(botonPin, INPUT); + pinMode(servoPin, OUTPUT); // Set servo pin as an output pin +} + +void loop(){ + // pulse the servo again if rhe refresh time (20 ms) have passed: + digitalWrite(servoPin, HIGH); // Turn the motor on + delayMicroseconds(pulse); // Length of the pulse sets the motor position + digitalWrite(servoPin, LOW); // Turn the motor off + delayMicroseconds (refreshTime); + Serial.print (" Pulse:"); + Serial.println (pulse); + + + time=millis(); + seg=time/1000; + + switch(seg){ + case (1/2): + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinA,HIGH); + digitalWrite(ledPinR,LOW); + break; + //126 + case 136: + //digitalWrite (ledPinV, LOW); + digitalWrite(ledPinA,LOW); + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + break; + + + + //128 + case 138: + pulse=1600; + break; + + + case 144: + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + pulse=919; + break; + + //164 + case 184: + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + pulse=2400; + break; + //196 + case 200: + digitalWrite (ledPinV,LOW); + digitalWrite(ledPinR,HIGH); + pulse=1650; + //delay(500); + + break; + } + Serial.println(seg); +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/Charo/Charo_case2/applet/Charo_case2.cpp.o b/2009/Charo/Charo_case2/applet/Charo_case2.cpp.o new file mode 100644 index 0000000..ef2b187 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/Charo_case2.cpp.o differ diff --git a/2009/Charo/Charo_case2/applet/Charo_case2.elf b/2009/Charo/Charo_case2/applet/Charo_case2.elf new file mode 100644 index 0000000..c3f06fd Binary files /dev/null and b/2009/Charo/Charo_case2/applet/Charo_case2.elf differ diff --git a/2009/Charo/Charo_case2/applet/Charo_case2.hex b/2009/Charo/Charo_case2/applet/Charo_case2.hex new file mode 100644 index 0000000..5399738 --- /dev/null +++ b/2009/Charo/Charo_case2/applet/Charo_case2.hex @@ -0,0 +1,188 @@ +:100000000C945B000C9483000C9483000C9483008C +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C940D030C9483000C9419050C948300FC +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000650111241FBECFEFD4E0DEBFB9 +:1000C000CDBF11E0A0E0B1E0E4E8FBE002C00590A4 +:1000D0000D92AE31B107D9F711E0AEE1B1E001C048 +:1000E0001D92AC3BB107E1F710E0C6EBD0E004C0D5 +:1000F0002297FE010E94BC05C43BD107C9F70E94AC +:100100005E010C94C0050C94000061E080910E012A +:100110000E94080480911401909115010E94A2038D +:1001200060E080910E010E94080480911601909178 +:1001300017010E94A20360E071E08EE291E00E944C +:100140008E0160911401709115018EE291E00E9480 +:10015000DD020E946A0360931E0170931F01809369 +:1001600020019093210128EE33E040E050E00E940E +:100170006905C901DA018093220190932301A093BC +:100180002401B09325018A389105A105B105D1F16B +:100190008B389105A105B1055CF40097A105B10567 +:1001A000C1F088389105A105B10509F058C01AC001 +:1001B000883B9105A105B105A9F1883C9105A105F0 +:1001C000B105E9F180399105A105B10509F047C0F4 +:1001D0001CC061E080910C010E94080461E08091E4 +:1001E000080108C060E0809108010E94080461E0F5 +:1001F00080910C010E94080460E080910A010E9435 +:1002000008042DC080E496E026C061E080910C01D6 +:100210000E94080460E080910A010E94080487E9B6 +:1002200093E019C061E080910C010E94080460E035 +:1002300080910A010E94080480E699E00CC060E009 +:1002400080910C010E94080461E080910A010E94E3 +:10025000080482E796E09093150180931401409181 +:1002600022015091230160912401709125018EE2B9 +:1002700091E00E94CA02089540E855E260E070E013 +:100280008EE291E00E94790161E0809108010E9474 +:10029000EA0361E080910A010E94EA0361E0809133 +:1002A0000C010E94EA0360E0809126010E94EA03AB +:1002B00061E080910E010E94EA0308950E94B0035C +:1002C0000E943C010E948500FDCF8CE191E090935B +:1002D0002F0180932E010895862F0E94D80408953F +:1002E0000E94100508950E94F10408950E94E00400 +:1002F0000895CB01BA010E949F040895DC01ED919D +:10030000FC910190F081E02D09950895DC01ED91BB +:10031000FC910190F081E02D099508950F931F93B2 +:10032000CF93DF938C01EB0109C02196D801ED91A9 +:10033000FC910190F081E02DC80109956881662348 +:10034000A1F7DF91CF911F910F9108950F931F9304 +:100350008C01DC01ED91FC910190F081E02D6DE0CC +:100360000995D801ED91FC910190F081E02D6AE0B2 +:10037000C80109951F910F9108950F931F938C0148 +:10038000DC01ED91FC910190F081E02D0995C8010F +:100390000E94A6011F910F9108950F931F938C0146 +:1003A0000E948E01C8010E94A6011F910F9108951D +:1003B0000F931F938C01DC01ED91FC910190F08172 +:1003C000E02D0995C8010E94A6011F910F91089583 +:1003D0002F923F924F925F926F927F928F929F9255 +:1003E000AF92BF92CF92DF92EF92FF920F931F9343 +:1003F000DF93CF93CDB7DEB7A0970FB6F894DEBFEB +:100400000FBECDBF1C016A017B014115510561057D +:10041000710549F4DC01ED91FC910190F081E02D32 +:1004200060E3099554C0882499245401422E552430 +:100430006624772401E010E00C0F1D1F080D191D24 +:10044000C701B601A30192010E946905F80160830A +:100450000894811C911CA11CB11CC701B601A30109 +:1004600092010E946905C901DA016C017D01C11484 +:10047000D104E104F104F1F681E0E82EF12CEC0E58 +:10048000FD1EE80CF91C3E010894611C711CD5018D +:10049000C4010197A109B1096C01C818D90814C099 +:1004A000F601EE0DFF1D60816A3010F4605D01C041 +:1004B000695CD101ED91FC910190F081E02DC101C9 +:1004C00009950894E108F1086E147F0449F7A09695 +:1004D0000FB6F894DEBF0FBECDBFCF91DF911F9155 +:1004E0000F91FF90EF90DF90CF90BF90AF909F90D3 +:1004F0008F907F906F905F904F903F902F900895D6 +:100500002AE00E94E80108950F931F938C010E9436 +:100510008002C8010E94A6011F910F910895AB01AE +:1005200060E070E00E94800208950F931F938C0199 +:10053000AB0160E070E00E948002C8010E94A60149 +:100540001F910F910895EF92FF920F931F93CF93F6 +:10055000DF93EC017A018B0177FF0FC0E881F9810D +:100560000190F081E02D6DE2099510950095F094D1 +:10057000E094E11CF11C011D111D2AE0B801A70146 +:10058000CE010E94E801DF91CF911F910F91FF9062 +:10059000EF9008950F931F938C010E94A302C8014E +:1005A0000E94A6011F910F910895AB01662757FD88 +:1005B0006095762F0E94A30208950F931F938C01DC +:1005C000AB01662757FD6095762F0E94A302C801F4 +:1005D0000E94A6011F910F910895DC01211531059C +:1005E00041F4ED91FC910190F081E02D642F09958B +:1005F00008952A30310519F40E94A30208950E943B +:10060000E80108950F931F938C010E94ED02C80129 +:100610000E94A6011F910F9108951F920F920FB68D +:100620000F9211242F938F939F93AF93BF93809139 +:10063000300190913101A0913201B091330180508D +:10064000904CAF4FBF4F8093300190933101A093F6 +:100650003201B093330127C0809130019091310174 +:10066000A0913201B091330180589E43A040B04028 +:100670008093300190933101A0933201B093330104 +:100680008091340190913501A0913601B0913701EC +:100690000196A11DB11D8093340190933501A09363 +:1006A0003601B09337018091300190913101A091D2 +:1006B0003201B091330181589E43A040B04060F6B2 +:1006C000BF91AF919F918F912F910F900FBE0F907F +:1006D0001F9018958FB7F89420913401309135010F +:1006E00040913601509137018FBFB901CA01089579 +:1006F000EF92FF920F931F937B018C018FB7F894B9 +:10070000409134015091350160913601709137016B +:100710008FBF2FB7F8948091340190913501A0914B +:100720003601B09137012FBF841B950BA60BB70B79 +:100730008E159F05A007B10760F31F910F91FF90E1 +:10074000EF900895019759F0FC01EE0FFF1FEE0F97 +:10075000FF1F32978FB7F8943197F1F78FBF089545 +:10076000789484B5826084BD84B5816084BD85B58C +:10077000826085BD85B5816085BDEEE6F0E0808153 +:1007800081608083E1E8F0E0808182608083808105 +:1007900081608083E0E8F0E0808181608083E1EB2C +:1007A000F0E0808184608083E0EBF0E08081816014 +:1007B0008083EAE7F0E080818460808380818260CA +:1007C00080838081816080838081806880831092B3 +:1007D000C1000895282F30E0C90185579F4FFC01C3 +:1007E000949129583F4FF9018491882381F0E82F93 +:1007F000F0E0E859FF4FE491F0E0662329F48081AE +:1008000090958923808308958081892B8083089522 +:10081000482F50E0CA0181569F4FFC012491CA0124 +:1008200085579F4FFC01949149585F4FFA013491CD +:100830003323C1F1222331F1233021F48091800050 +:100840008F7705C0243031F4809180008F7D8093B4 +:10085000800018C0213019F484B58F7704C022308D +:1008600021F484B58F7D84BD0DC0263021F48091A4 +:10087000B0008F7705C0273029F48091B0008F7DBC +:100880008093B000E32FF0E0E359FF4FE491F0E0F4 +:10089000662329F48081909589238083089580813F +:1008A000892B80830895482F50E0CA0181569F4FBD +:1008B000FC012491CA0185579F4FFC01949149582E +:1008C0005F4FFA013491332319F420E030E035C052 +:1008D000222331F1233021F4809180008F7705C0ED +:1008E000243031F4809180008F7D8093800018C087 +:1008F000213019F484B58F7704C0223021F484B5F7 +:100900008F7D84BD0DC0263021F48091B0008F779B +:1009100005C0273029F48091B0008F7D8093B0000E +:10092000E32FF0E0EE58FF4FE491F0E0808120E00B +:1009300030E0892311F021E030E0C9010895EF9201 +:10094000FF920F931F937B018C0122E030E040E087 +:1009500050E00E948B05205C3D4B404F5F4FCA0129 +:10096000B901A80197010E948B05C901DA0101971D +:10097000A109B109292F3A2F4B2F552747FD5A9529 +:100980000196A11DB11D2093C50081508093C40024 +:10099000E1ECF0E0808180618083808188608083E9 +:1009A0008081806880831F910F91FF90EF90089560 +:1009B000982F8091C00085FFFCCF9093C6000895CA +:1009C000809138019091390180589F4F20913A01D0 +:1009D00030913B01821B930B60E870E00E9456054A +:1009E000089540913A0150913B01809138019091D6 +:1009F00039018417950719F42FEF3FEF0FC0FA0163 +:100A0000E45CFE4F2081CA01019660E870E00E941C +:100A1000560590933B0180933A0130E0C901089557 +:100A200080913A0190913B01909339018093380174 +:100A300008951F920F920FB60F9211242F933F9398 +:100A40004F935F936F937F938F939F93AF93BF93D6 +:100A5000EF93FF934091C600E0913801F091390186 +:100A6000CF01019660E870E00E9456059C018091DC +:100A70003A0190913B012817390739F0E45CFE4FA9 +:100A800040833093390120933801FF91EF91BF915A +:100A9000AF919F918F917F916F915F914F913F9116 +:100AA0002F910F900FBE0F901F90189597FB092E56 +:100AB00007260AD077FD04D049D006D000201AF4CA +:100AC000709561957F4F0895F6F7909581959F4FAA +:100AD0000895A1E21A2EAA1BBB1BFD010DC0AA1F7F +:100AE000BB1FEE1FFF1FA217B307E407F50720F097 +:100AF000A21BB30BE40BF50B661F771F881F991F12 +:100B00001A9469F760957095809590959B01AC015A +:100B1000BD01CF01089597FB092E05260ED057FD84 +:100B200004D0D7DF0AD0001C38F45095409530959A +:100B300021953F4F4F4F5F4F0895F6F79095809561 +:100B4000709561957F4F8F4F9F4F0895AA1BBB1BD8 +:100B500051E107C0AA1FBB1FA617B70710F0A61BBD +:100B6000B70B881F991F5A95A9F780959095BC01DE +:100B7000CD010895EE0FFF1F0590F491E02D09942B +:040B8000F894FFCF17 +:100B84002050756C73653A000500080009000300E5 +:0E0B94007807A0F640061400000000006C0177 +:00000001FF diff --git a/2009/Charo/Charo_case2/applet/Charo_case2.pde b/2009/Charo/Charo_case2/applet/Charo_case2.pde new file mode 100644 index 0000000..e642bdf --- /dev/null +++ b/2009/Charo/Charo_case2/applet/Charo_case2.pde @@ -0,0 +1,82 @@ +//programacio maquina.definitivo1//prueba delays +int ledPinA = 5; +int ledPinR = 8; +int ledPinV = 9; +unsigned long time=0; +long seg; +int botonPin; +int val; +int servoPin = 3; // Control pin for servo motor +int maxPulse = 1912; // Maximum servo position +int minPulse= -2400; // Minimum servo position +int pulse = 1600; // Amount to pulse the servo +long lastPulse = 0; // the time in milliseconds of the last pulse +int refreshTime = 20; // the time needed in between pulses + +void setup(){ + Serial.begin(9600); + pinMode(ledPinA, OUTPUT); // sets the digital pin as output + pinMode(ledPinR, OUTPUT); + pinMode(ledPinV, OUTPUT); + pinMode(botonPin, INPUT); + pinMode(servoPin, OUTPUT); // Set servo pin as an output pin +} + +void loop(){ + // pulse the servo again if rhe refresh time (20 ms) have passed: + digitalWrite(servoPin, HIGH); // Turn the motor on + delayMicroseconds(pulse); // Length of the pulse sets the motor position + digitalWrite(servoPin, LOW); // Turn the motor off + delayMicroseconds (refreshTime); + Serial.print (" Pulse:"); + Serial.println (pulse); + + + time=millis(); + seg=time/1000; + + switch(seg){ + case (1/2): + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinA,HIGH); + digitalWrite(ledPinR,LOW); + break; + //126 + case 136: + //digitalWrite (ledPinV, LOW); + digitalWrite(ledPinA,LOW); + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + break; + + + + //128 + case 138: + pulse=1600; + break; + + + case 144: + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + pulse=919; + break; + + //164 + case 184: + digitalWrite (ledPinV, HIGH); + digitalWrite(ledPinR,LOW); + pulse=2400; + break; + //196 + case 200: + digitalWrite (ledPinV,LOW); + digitalWrite(ledPinR,HIGH); + pulse=1650; + //delay(500); + + break; + } + Serial.println(seg); +} diff --git a/2009/Charo/Charo_case2/applet/Charo_case2.rom b/2009/Charo/Charo_case2/applet/Charo_case2.rom new file mode 100644 index 0000000..8f1a66e --- /dev/null +++ b/2009/Charo/Charo_case2/applet/Charo_case2.rom @@ -0,0 +1,189 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4573637269746FA3 +S11300000C945B000C9483000C9483000C94830088 +S11300100C9483000C9483000C9483000C94830050 +S11300200C9483000C9483000C9483000C94830040 +S11300300C9483000C9483000C9483000C94830030 +S11300400C940D030C9483000C9419050C948300F8 +S11300500C9483000C9483000C9483000C94830010 +S11300600C9483000C948300000024272A000025AC +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B000000000650111241FBECFEFD4E0DEBFB5 +S11300C0CDBF11E0A0E0B1E0E4E8FBE002C00590A0 +S11300D00D92AE31B107D9F711E0AEE1B1E001C044 +S11300E01D92AC3BB107E1F710E0C6EBD0E004C0D1 +S11300F02297FE010E94BC05C43BD107C9F70E94A8 +S11301005E010C94C0050C94000061E080910E0126 +S11301100E94080480911401909115010E94A20389 +S113012060E080910E010E94080480911601909174 +S113013017010E94A20360E071E08EE291E00E9448 +S11301408E0160911401709115018EE291E00E947C +S1130150DD020E946A0360931E0170931F01809365 +S113016020019093210128EE33E040E050E00E940A +S11301706905C901DA018093220190932301A093B8 +S11301802401B09325018A389105A105B105D1F167 +S11301908B389105A105B1055CF40097A105B10563 +S11301A0C1F088389105A105B10509F058C01AC0FD +S11301B0883B9105A105B105A9F1883C9105A105EC +S11301C0B105E9F180399105A105B10509F047C0F0 +S11301D01CC061E080910C010E94080461E08091E0 +S11301E0080108C060E0809108010E94080461E0F1 +S11301F080910C010E94080460E080910A010E9431 +S113020008042DC080E496E026C061E080910C01D2 +S11302100E94080460E080910A010E94080487E9B2 +S113022093E019C061E080910C010E94080460E031 +S113023080910A010E94080480E699E00CC060E005 +S113024080910C010E94080461E080910A010E94DF +S1130250080482E796E0909315018093140140917D +S113026022015091230160912401709125018EE2B5 +S113027091E00E94CA02089540E855E260E070E00F +S11302808EE291E00E94790161E0809108010E9470 +S1130290EA0361E080910A010E94EA0361E080912F +S11302A00C010E94EA0360E0809126010E94EA03A7 +S11302B061E080910E010E94EA0308950E94B00358 +S11302C00E943C010E948500FDCF8CE191E0909357 +S11302D02F0180932E010895862F0E94D80408953B +S11302E00E94100508950E94F10408950E94E004FC +S11302F00895CB01BA010E949F040895DC01ED9199 +S1130300FC910190F081E02D09950895DC01ED91B7 +S1130310FC910190F081E02D099508950F931F93AE +S1130320CF93DF938C01EB0109C02196D801ED91A5 +S1130330FC910190F081E02DC80109956881662344 +S1130340A1F7DF91CF911F910F9108950F931F9300 +S11303508C01DC01ED91FC910190F081E02D6DE0C8 +S11303600995D801ED91FC910190F081E02D6AE0AE +S1130370C80109951F910F9108950F931F938C0144 +S1130380DC01ED91FC910190F081E02D0995C8010B +S11303900E94A6011F910F9108950F931F938C0142 +S11303A00E948E01C8010E94A6011F910F91089519 +S11303B00F931F938C01DC01ED91FC910190F0816E +S11303C0E02D0995C8010E94A6011F910F9108957F +S11303D02F923F924F925F926F927F928F929F9251 +S11303E0AF92BF92CF92DF92EF92FF920F931F933F +S11303F0DF93CF93CDB7DEB7A0970FB6F894DEBFE7 +S11304000FBECDBF1C016A017B0141155105610579 +S1130410710549F4DC01ED91FC910190F081E02D2E +S113042060E3099554C0882499245401422E55242C +S11304306624772401E010E00C0F1D1F080D191D20 +S1130440C701B601A30192010E946905F801608306 +S11304500894811C911CA11CB11CC701B601A30105 +S113046092010E946905C901DA016C017D01C11480 +S1130470D104E104F104F1F681E0E82EF12CEC0E54 +S1130480FD1EE80CF91C3E010894611C711CD50189 +S1130490C4010197A109B1096C01C818D90814C095 +S11304A0F601EE0DFF1D60816A3010F4605D01C03D +S11304B0695CD101ED91FC910190F081E02DC101C5 +S11304C009950894E108F1086E147F0449F7A09691 +S11304D00FB6F894DEBF0FBECDBFCF91DF911F9151 +S11304E00F91FF90EF90DF90CF90BF90AF909F90CF +S11304F08F907F906F905F904F903F902F900895D2 +S11305002AE00E94E80108950F931F938C010E9432 +S11305108002C8010E94A6011F910F910895AB01AA +S113052060E070E00E94800208950F931F938C0195 +S1130530AB0160E070E00E948002C8010E94A60145 +S11305401F910F910895EF92FF920F931F93CF93F2 +S1130550DF93EC017A018B0177FF0FC0E881F98109 +S11305600190F081E02D6DE2099510950095F094CD +S1130570E094E11CF11C011D111D2AE0B801A70142 +S1130580CE010E94E801DF91CF911F910F91FF905E +S1130590EF9008950F931F938C010E94A302C8014A +S11305A00E94A6011F910F910895AB01662757FD84 +S11305B06095762F0E94A30208950F931F938C01D8 +S11305C0AB01662757FD6095762F0E94A302C801F0 +S11305D00E94A6011F910F910895DC012115310598 +S11305E041F4ED91FC910190F081E02D642F099587 +S11305F008952A30310519F40E94A30208950E9437 +S1130600E80108950F931F938C010E94ED02C80125 +S11306100E94A6011F910F9108951F920F920FB689 +S11306200F9211242F938F939F93AF93BF93809135 +S1130630300190913101A0913201B0913301805089 +S1130640904CAF4FBF4F8093300190933101A093F2 +S11306503201B093330127C0809130019091310170 +S1130660A0913201B091330180589E43A040B04024 +S11306708093300190933101A0933201B093330100 +S11306808091340190913501A0913601B0913701E8 +S11306900196A11DB11D8093340190933501A0935F +S11306A03601B09337018091300190913101A091CE +S11306B03201B091330181589E43A040B04060F6AE +S11306C0BF91AF919F918F912F910F900FBE0F907B +S11306D01F9018958FB7F89420913401309135010B +S11306E040913601509137018FBFB901CA01089575 +S11306F0EF92FF920F931F937B018C018FB7F894B5 +S11307004091340150913501609136017091370167 +S11307108FBF2FB7F8948091340190913501A09147 +S11307203601B09137012FBF841B950BA60BB70B75 +S11307308E159F05A007B10760F31F910F91FF90DD +S1130740EF900895019759F0FC01EE0FFF1FEE0F93 +S1130750FF1F32978FB7F8943197F1F78FBF089541 +S1130760789484B5826084BD84B5816084BD85B588 +S1130770826085BD85B5816085BDEEE6F0E080814F +S113078081608083E1E8F0E0808182608083808101 +S113079081608083E0E8F0E0808181608083E1EB28 +S11307A0F0E0808184608083E0EBF0E08081816010 +S11307B08083EAE7F0E080818460808380818260C6 +S11307C080838081816080838081806880831092AF +S11307D0C1000895282F30E0C90185579F4FFC01BF +S11307E0949129583F4FF9018491882381F0E82F8F +S11307F0F0E0E859FF4FE491F0E0662329F48081AA +S113080090958923808308958081892B808308951E +S1130810482F50E0CA0181569F4FFC012491CA0120 +S113082085579F4FFC01949149585F4FFA013491C9 +S11308303323C1F1222331F1233021F4809180004C +S11308408F7705C0243031F4809180008F7D8093B0 +S1130850800018C0213019F484B58F7704C0223089 +S113086021F484B58F7D84BD0DC0263021F48091A0 +S1130870B0008F7705C0273029F48091B0008F7DB8 +S11308808093B000E32FF0E0E359FF4FE491F0E0F0 +S1130890662329F48081909589238083089580813B +S11308A0892B80830895482F50E0CA0181569F4FB9 +S11308B0FC012491CA0185579F4FFC01949149582A +S11308C05F4FFA013491332319F420E030E035C04E +S11308D0222331F1233021F4809180008F7705C0E9 +S11308E0243031F4809180008F7D8093800018C083 +S11308F0213019F484B58F7704C0223021F484B5F3 +S11309008F7D84BD0DC0263021F48091B0008F7797 +S113091005C0273029F48091B0008F7D8093B0000A +S1130920E32FF0E0EE58FF4FE491F0E0808120E007 +S113093030E0892311F021E030E0C9010895EF92FD +S1130940FF920F931F937B018C0122E030E040E083 +S113095050E00E948B05205C3D4B404F5F4FCA0125 +S1130960B901A80197010E948B05C901DA01019719 +S1130970A109B109292F3A2F4B2F552747FD5A9525 +S11309800196A11DB11D2093C50081508093C40020 +S1130990E1ECF0E0808180618083808188608083E5 +S11309A08081806880831F910F91FF90EF9008955C +S11309B0982F8091C00085FFFCCF9093C6000895C6 +S11309C0809138019091390180589F4F20913A01CC +S11309D030913B01821B930B60E870E00E94560546 +S11309E0089540913A0150913B01809138019091D2 +S11309F039018417950719F42FEF3FEF0FC0FA015F +S1130A00E45CFE4F2081CA01019660E870E00E9418 +S1130A10560590933B0180933A0130E0C901089553 +S1130A2080913A0190913B01909339018093380170 +S1130A3008951F920F920FB60F9211242F933F9394 +S1130A404F935F936F937F938F939F93AF93BF93D2 +S1130A50EF93FF934091C600E0913801F091390182 +S1130A60CF01019660E870E00E9456059C018091D8 +S1130A703A0190913B012817390739F0E45CFE4FA5 +S1130A8040833093390120933801FF91EF91BF9156 +S1130A90AF919F918F917F916F915F914F913F9112 +S1130AA02F910F900FBE0F901F90189597FB092E52 +S1130AB007260AD077FD04D049D006D000201AF4C6 +S1130AC0709561957F4F0895F6F7909581959F4FA6 +S1130AD00895A1E21A2EAA1BBB1BFD010DC0AA1F7B +S1130AE0BB1FEE1FFF1FA217B307E407F50720F093 +S1130AF0A21BB30BE40BF50B661F771F881F991F0E +S1130B001A9469F760957095809590959B01AC0156 +S1130B10BD01CF01089597FB092E05260ED057FD80 +S1130B2004D0D7DF0AD0001C38F450954095309596 +S1130B3021953F4F4F4F5F4F0895F6F7909580955D +S1130B40709561957F4F8F4F9F4F0895AA1BBB1BD4 +S1130B5051E107C0AA1FBB1FA617B70710F0A61BB9 +S1130B60B70B881F991F5A95A9F780959095BC01DA +S1130B70CD010895EE0FFF1F0590F491E02D099427 +S1070B80F894FFCF13 +S1130B842050756C73653A000500080009000300E1 +S1110B947807A0F640061400000000006C0173 +S9030000FC diff --git a/2009/Charo/Charo_case2/applet/HardwareSerial.cpp.o b/2009/Charo/Charo_case2/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/Charo/Charo_case2/applet/HardwareSerial.cpp.o differ diff --git a/2009/Charo/Charo_case2/applet/Print.cpp.o b/2009/Charo/Charo_case2/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/Print.cpp.o differ diff --git a/2009/Charo/Charo_case2/applet/WInterrupts.c.o b/2009/Charo/Charo_case2/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/WInterrupts.c.o differ diff --git a/2009/Charo/Charo_case2/applet/WMath.cpp.o b/2009/Charo/Charo_case2/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/WMath.cpp.o differ diff --git a/2009/Charo/Charo_case2/applet/WRandom.cpp.o b/2009/Charo/Charo_case2/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/WRandom.cpp.o differ diff --git a/2009/Charo/Charo_case2/applet/core.a b/2009/Charo/Charo_case2/applet/core.a new file mode 100644 index 0000000..d27802f Binary files /dev/null and b/2009/Charo/Charo_case2/applet/core.a differ diff --git a/2009/Charo/Charo_case2/applet/pins_arduino.c.o b/2009/Charo/Charo_case2/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/pins_arduino.c.o differ diff --git a/2009/Charo/Charo_case2/applet/wiring.c.o b/2009/Charo/Charo_case2/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/wiring.c.o differ diff --git a/2009/Charo/Charo_case2/applet/wiring_analog.c.o b/2009/Charo/Charo_case2/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/wiring_analog.c.o differ diff --git a/2009/Charo/Charo_case2/applet/wiring_digital.c.o b/2009/Charo/Charo_case2/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/wiring_digital.c.o differ diff --git a/2009/Charo/Charo_case2/applet/wiring_pulse.c.o b/2009/Charo/Charo_case2/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/Charo/Charo_case2/applet/wiring_pulse.c.o differ diff --git a/2009/Charo/Charo_case2/applet/wiring_serial.c.o b/2009/Charo/Charo_case2/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/wiring_serial.c.o differ diff --git a/2009/Charo/Charo_case2/applet/wiring_shift.c.o b/2009/Charo/Charo_case2/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/Charo/Charo_case2/applet/wiring_shift.c.o differ diff --git a/2009/Charo/calibrar_servo/calibrar_servo.pde b/2009/Charo/calibrar_servo/calibrar_servo.pde new file mode 100644 index 0000000..735a32f --- /dev/null +++ b/2009/Charo/calibrar_servo/calibrar_servo.pde @@ -0,0 +1,37 @@ + + +int servoPin = 12; // Control pin for servo motor +int pulseCero; //let`s calibrate! +int maxPulse = 2300; // Maximum servo position +int minPulse= -1300; // Minimum servo position +int pulse = 0; // Amount to pulse the servo + +long lastPulse = 0; // the time in milliseconds of the last pulse +int refreshTime = 20; // the time needed in between pulses + +int analogValue = 0; // the value returned from the analog sensor +int analogPin = 3; // the analog pin that the sensor's on + +void setup() { + pinMode(servoPin, OUTPUT); // Set servo pin as an output pin + //pulse = pulseCero; // Set the motor position value to the minimum + Serial.begin(9600); +} + +void loop() { + analogValue = analogRead(analogPin); // read the analog input + Serial.print("Analog Value:"); + Serial.print (analogValue); + pulse = map(analogValue,0,1023,minPulse,maxPulse); // convert the analog value + // to a range between minPulse + // and maxPulse. + + // pulse the servo again if rhe refresh time (20 ms) have passed: + digitalWrite(servoPin, HIGH); // Turn the motor on + delayMicroseconds(pulse); // Length of the pulse sets the motor position + digitalWrite(servoPin, LOW); // Turn the motor off + delayMicroseconds (refreshTime); + Serial.print (" Pulse:"); + Serial.println (pulse); + +} diff --git a/2009/CrossFading/CrossFading.pde b/2009/CrossFading/CrossFading.pde new file mode 100644 index 0000000..b4ec733 --- /dev/null +++ b/2009/CrossFading/CrossFading.pde @@ -0,0 +1,166 @@ +// Cross Fading + +// This example uses channels 1,2 and 3 to drive an RGB lamp and make it fade from one color to another. + +#include "pins_arduino.h" + +int sig = 3; // signal + +int value = 0; +int valueadd = 3; + +byte curr_rgb[3] = {0,0,0}; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 512; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + +// fade from current colour to given rgb value +// algorithm by David A. Mellis +void fadeTo(byte r, byte g, byte b) { + byte i; + byte p_start[3]; + byte p_end[3]; + + p_start[0] = curr_rgb[0]; + p_start[1] = curr_rgb[1]; + p_start[2] = curr_rgb[2]; + + p_end[0] = r; + p_end[1] = g; + p_end[2] = b; + + i = 0; + + while (i < 255) { + + curr_rgb[0] = (p_end[0] - p_start[0]) / 254 * i + p_start[0]; + curr_rgb[1] = (p_end[1] - p_start[1]) / 254 * i + p_start[1]; + curr_rgb[2] = (p_end[2] - p_start[2]) / 254 * i + p_start[2]; + + setDmxChannel(1, curr_rgb[0]); + setDmxChannel(2, curr_rgb[1]); + setDmxChannel(3, curr_rgb[2]); + processDmx(); + i++; + } + +} + +void setup() +{ + pinMode(sig, OUTPUT); +} + +void loop() +{ + + fadeTo(255,0,0); + delay(500); + fadeTo(0,255,0); + delay(500); + fadeTo(0,0,255); + delay(500); + +} + + + diff --git a/2009/CrossFading/data/fadedmx.rtf b/2009/CrossFading/data/fadedmx.rtf new file mode 100644 index 0000000..88054e5 --- /dev/null +++ b/2009/CrossFading/data/fadedmx.rtf @@ -0,0 +1,181 @@ +{\rtf1\ansi\deff0\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Nimbus Roman No9 L{\*\falt Times New Roman};}{\f1\froman\fprq2\fcharset0 Nimbus Roman No9 L{\*\falt Times New Roman};}{\f2\fswiss\fprq2\fcharset0 Nimbus Sans L{\*\falt Arial};}{\f3\fmodern\fprq1\fcharset0 DejaVu Sans Mono;}{\f4\fnil\fprq2\fcharset0 DejaVu Sans;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f0\fs24\lang1034\loch\f0\fs24\lang1034\snext1 Normal;} +{\s2\sb240\sa120\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs28\lang255\ltrch\dbch\langfe255\hich\f2\fs28\lang1034\loch\f2\fs28\lang1034\sbasedon1\snext3 Heading;} +{\s3\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f0\fs24\lang1034\loch\f0\fs24\lang1034\sbasedon1\snext3 Body Text;} +{\s4\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f0\fs24\lang1034\loch\f0\fs24\lang1034\sbasedon3\snext4 List;} +{\s5\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ai\ltrch\dbch\af4\langfe255\hich\f0\fs24\lang1034\i\loch\f0\fs24\lang1034\i\sbasedon1\snext5 caption;} +{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f0\fs24\lang1034\loch\f0\fs24\lang1034\sbasedon1\snext6 Index;} +{\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034\sbasedon1\snext7 Preformatted Text;} +} +{\info{\author elab}{\creatim\yr2009\mo11\dy4\hr21\min57}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709 +{\*\pgdsctbl +{\pgdsc0\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}} +\paperh16837\paperw11905\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +\pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // Cross Fading} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // This example uses channels 1,2 and 3 to drive an RGB lamp and make it fade from one color to another.} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 #include "pins_arduino.h"} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 int sig = 3; // signal} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 int value = 0;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 int valueadd = 3;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 byte curr_rgb[3] = \{0,0,0\};} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 byte dmxChannel[64];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 void setDmxChannel(byte channelID, byte value) \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 if (channelID < 64)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 dmxChannel[channelID] = value;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 /* Sends a DMX byte out on a pin. Assumes a 16 MHz clock.} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 * Disables interrupts, which will disrupt the millis() function if used} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 * too frequently. */} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 void shiftDmxOut(int pin, int theByte)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 int port_to_output[] = \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 NOT_A_PORT,} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 NOT_A_PORT,} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_IO_ADDR(PORTB),} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_IO_ADDR(PORTC),} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_IO_ADDR(PORTD)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \};} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 int portNumber = port_to_output[digitalPinToPort(pin)];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 int pinMask = digitalPinToBitMask(pin);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // the first thing we do is to write te pin to high} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // it will be the mark between bytes. It may be also} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // high from before} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 delayMicroseconds(10);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // disable interrupts, otherwise the timer 0 overflow interrupt that} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // tracks milliseconds will make us delay longer than we want.} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 cli();} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // DMX starts with a start-bit that must always be zero} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // we need a delay of 4us (then one bit is transfered)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // this seems more stable then using delayMicroseconds} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 for (int i = 0; i < 8; i++)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 if (theByte & 01)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 else} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 asm("nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n nop\\n");} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 theByte >>= 1;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // the last thing we do is to write the pin to high} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // reenable interrupts.} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 sei();} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 void processDmx() \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 /***** sending the dmx signal *****/} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // sending the break (the break can be between 88us and 1sec)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 digitalWrite(sig, LOW);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 delay(10);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 dmxChannel[0] = 0;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 for (int count = 0; count <= 512; count++)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 if (count < 64)} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 shiftDmxOut(sig, dmxChannel[count]);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 else } +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 shiftDmxOut(sig,0);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 /***** sending the dmx signal end *****/} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // fade from current colour to given rgb value} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 // algorithm by David A. Mellis} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 void fadeTo(byte r, byte g, byte b) \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 byte i;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 byte p_start[3];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 byte p_end[3];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 p_start[0] = curr_rgb[0];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 p_start[1] = curr_rgb[1];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 p_start[2] = curr_rgb[2];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 p_end[0] = r; } +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 p_end[1] = g; } +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 p_end[2] = b;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 i = 0;} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 while (i < 255) \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 curr_rgb[0] = (p_end[0] - p_start[0]) / 254 * i + p_start[0];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 curr_rgb[1] = (p_end[1] - p_start[1]) / 254 * i + p_start[1];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 curr_rgb[2] = (p_end[2] - p_start[2]) / 254 * i + p_start[2];} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 setDmxChannel(1, curr_rgb[0]);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 setDmxChannel(2, curr_rgb[1]);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 setDmxChannel(3, curr_rgb[2]);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 processDmx();} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 i++; } +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 void setup()} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 pinMode(sig, OUTPUT);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 void loop()} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \{} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 fadeTo(255,0,0);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 delay(500);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 fadeTo(0,255,0);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 delay(500);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 fadeTo(0,0,255);} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 delay(500); } +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 {\rtlch \ltrch\loch\f3\fs20\lang1034\i0\b0 \}} +\par \pard\plain \ltrpar\s7\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af3\afs20\lang255\ltrch\dbch\af3\langfe255\hich\f3\fs20\lang1034\loch\f3\fs20\lang1034 +\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f0\fs24\lang1034\loch\f0\fs24\lang1034 +\par } \ No newline at end of file diff --git a/2009/DMX_CONTROL/DMX_CONTROL.pde b/2009/DMX_CONTROL/DMX_CONTROL.pde new file mode 100644 index 0000000..c556e6f --- /dev/null +++ b/2009/DMX_CONTROL/DMX_CONTROL.pde @@ -0,0 +1,146 @@ +// A simpler Example + +/* + + */ + +#include "pins_arduino.h" + +int sig = 5; // signal + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; + +int valueadd = 3; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,255); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(115200); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + if (value > 0xC8) + { + if (value==0xD9) value1 = Serial.read()*1.2; + if (value==0xDA) value2 = Serial.read()*1.2; + if (value==0xDB) value3 = Serial.read()*1.2; + } + value = Serial.read(); + } + setDmxChannel(7,value1); + setDmxChannel(8, value2); + setDmxChannel(9, value3); + processDmx(); + + +} diff --git a/2009/DMX_CONTROL/applet/DMX_CONTROL.cpp b/2009/DMX_CONTROL/applet/DMX_CONTROL.cpp new file mode 100644 index 0000000..695bb10 --- /dev/null +++ b/2009/DMX_CONTROL/applet/DMX_CONTROL.cpp @@ -0,0 +1,165 @@ +// A simpler Example + +/* + + */ + +#include "pins_arduino.h" + +#include "WProgram.h" +void setDmxChannel(byte channelID, byte value); +void shiftDmxOut(int pin, int theByte); +void processDmx(); +void setup(); +void loop(); +int sig = 5; // signal + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; + +int valueadd = 3; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,255); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(115200); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + if (value > 0xC8) + { + if (value==0xD9) value1 = Serial.read()*1.2; + if (value==0xDA) value2 = Serial.read()*1.2; + if (value==0xDB) value3 = Serial.read()*1.2; + } + value = Serial.read(); + } + setDmxChannel(7,value1); + setDmxChannel(8, value2); + setDmxChannel(9, value3); + processDmx(); + + +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/DMX_CONTROL/applet/DMX_CONTROL.cpp.o b/2009/DMX_CONTROL/applet/DMX_CONTROL.cpp.o new file mode 100644 index 0000000..fcf9803 Binary files /dev/null and b/2009/DMX_CONTROL/applet/DMX_CONTROL.cpp.o differ diff --git a/2009/DMX_CONTROL/applet/DMX_CONTROL.eep b/2009/DMX_CONTROL/applet/DMX_CONTROL.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/DMX_CONTROL/applet/DMX_CONTROL.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/DMX_CONTROL/applet/DMX_CONTROL.elf b/2009/DMX_CONTROL/applet/DMX_CONTROL.elf new file mode 100644 index 0000000..a345917 Binary files /dev/null and b/2009/DMX_CONTROL/applet/DMX_CONTROL.elf differ diff --git a/2009/DMX_CONTROL/applet/DMX_CONTROL.hex b/2009/DMX_CONTROL/applet/DMX_CONTROL.hex new file mode 100644 index 0000000..439823e --- /dev/null +++ b/2009/DMX_CONTROL/applet/DMX_CONTROL.hex @@ -0,0 +1,196 @@ +:100000000C945B000C9427020C9454020C94830013 +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C9481020C9483000C943D040C94830066 +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000110211241FBECFEFD4E0DEBF0C +:1000C000CDBF11E0A0E0B1E0E0E1FCE002C00590AE +:1000D0000D92A231B107D9F711E0A2E1B1E001C060 +:1000E0001D92A03FB107E1F710E0C6EBD0E004C0DD +:1000F0002297FE010E940206C43BD107C9F70E9465 +:100100000A020C9406060C94000040E052EC61E0F8 +:1001100070E08AE591E00E94220264E670E080E0EF +:1001200090E00E94F10261E0809100010E9463036F +:100130000895BF92CF92DF92EF92FF920F931F9399 +:10014000DF93CF93CDB7DEB72A970FB6F894DEBF13 +:100150000FBECDBF6B01DE011196E2E0F1E02AE0B7 +:1001600001900D922150E1F79C0189589F4FFC01AD +:10017000849125573F4FF901B490E82FF0E0EE0F3E +:10018000FF1FEC0FFD1F0181128190E2E92EF12C7F +:10019000E00EF11EF80180A18B2980A38AE090E097 +:1001A0000E941B03F894F80180A19B2D9095892350 +:1001B00080A300000000000000000000000000001C +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:10021000000020E030E0C0FE04C0F70180818B299F +:1002200003C0F70180818923808300000000000063 +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000002F5F3F4F2830FA +:10029000310519F0D594C794BECFF80180A18B2900 +:1002A00080A378942A960FB6F894DEBF0FBECDBF18 +:1002B000CF91DF911F910F91FF90EF90DF90CF9042 +:1002C000BF900895CF93DF9360E0809100010E947A +:1002D00081036AE070E080E090E00E94F1021092F9 +:1002E0001A01C0E0D0E08091000190910101C0347A +:1002F000D10531F0FE01E65EFE4F608170E002C084 +:100300006FEF70E00E9499002196C134D10559F732 +:10031000DF91CF9108958AE591E00E941F02882322 +:1003200009F469C08091120190911301893C9105F3 +:100330000CF459C0893D9105C1F48AE591E00E9411 +:100340001C02AA2797FDA095BA2FBC01CD010E94DF +:10035000AD042AE939E949E95FE30E9439050E94C1 +:100360007A047093150160931401809112019091A9 +:1003700013018A3D9105C1F48AE591E00E941C02B7 +:10038000AA2797FDA095BA2FBC01CD010E94AD040C +:100390002AE939E949E95FE30E9439050E947A04B4 +:1003A00070931701609316018091120190911301CF +:1003B0008B3D9105C1F48AE591E00E941C02AA27B9 +:1003C00097FDA095BA2FBC01CD010E94AD042AE98A +:1003D00039E949E95FE30E9439050E947A04709384 +:1003E0001901609318018AE591E00E941C02909324 +:1003F0001301809312018091140180932101809157 +:1004000016018093220180911801809323010E949C +:10041000620108950E9429030E9485000E948B01B9 +:10042000FDCF80E191E090935B0180935A010895A4 +:10043000862F0E94050408950E941E0408950E94BC +:100440000D040895CB01BA010E94CC0308951F92B8 +:100450000F920FB60F9211242F933F934F935F93F8 +:100460006F937F938F939F93AF93BF93EF93FF937C +:1004700080915C0190915D01892B29F0E0915C01F4 +:10048000F0915D010995FF91EF91BF91AF919F911F +:100490008F917F916F915F914F913F912F910F902D +:1004A0000FBE0F901F9018951F920F920FB60F92CC +:1004B00011242F933F934F935F936F937F938F9369 +:1004C0009F93AF93BF93EF93FF9380915E019091C1 +:1004D0005F01892B29F0E0915E01F0915F010995A0 +:1004E000FF91EF91BF91AF919F918F917F916F910C +:1004F0005F914F913F912F910F900FBE0F901F90E2 +:1005000018951F920F920FB60F9211242F938F936D +:100510009F93AF93BF938091600190916101A091EF +:100520006201B09163010196A11DB11D809360012C +:1005300090936101A0936201B09363018091640183 +:1005400090916501A0916601B09167018050904C37 +:10055000AF4FBF4F8093640190936501A0936601F4 +:10056000B093670127C08091640190916501A091CB +:100570006601B091670180589E43A040B0408093CF +:10058000640190936501A0936601B0936701809127 +:10059000680190916901A0916A01B0916B01019687 +:1005A000A11DB11D8093680190936901A0936A0118 +:1005B000B0936B018091640190916501A0916601F7 +:1005C000B091670181589E43A040B04060F6BF9152 +:1005D000AF919F918F912F910F900FBE0F901F9011 +:1005E0001895EF92FF920F931F937B018C018FB7A9 +:1005F000F894409168015091690160916A0170918D +:100600006B018FBF2FB7F8948091680190916901B9 +:10061000A0916A01B0916B012FBF841B950BA60BB3 +:10062000B70BE816F9060A071B0760F71F910F9131 +:10063000FF90EF900895019759F0FC01EE0FFF1F16 +:10064000EE0FFF1F32978FB7F8943197F1F78FBFF6 +:100650000895789484B5826084BD84B5816084BD3A +:1006600085B5826085BD85B5816085BDEEE6F0E02B +:10067000808181608083E1E8F0E080818260808316 +:10068000808181608083E0E8F0E080818160808308 +:10069000E1EBF0E0808184608083E0EBF0E080813A +:1006A00081608083EAE7F0E08081846080838081DC +:1006B0008260808380818160808380818068808384 +:1006C0001092C1000895282F30E0C90185579F4F2F +:1006D000FC01949129583F4FF9018491882381F0BE +:1006E000E82FF0E0E859FF4FE491F0E0662329F4A9 +:1006F000808190958923808308958081892B8083D0 +:100700000895482F50E0CA0181569F4FFC01249163 +:10071000CA0185579F4FFC01949149585F4FFA01D8 +:1007200034913323C1F1222331F1233021F480911C +:1007300080008F7705C0243031F4809180008F7D58 +:100740008093800018C0213019F484B58F7704C0DD +:10075000223021F484B58F7D84BD0DC0263021F474 +:100760008091B0008F7705C0273029F48091B000C8 +:100770008F7D8093B000E32FF0E0E359FF4FE491C9 +:10078000F0E0662329F48081909589238083089581 +:100790008081892B80830895EF92FF920F931F939E +:1007A0007B018C0122E030E040E050E00E94D10566 +:1007B000205C3D4B404F5F4FCA01B901A801970132 +:1007C0000E94D105C901DA010197A109B109292FB8 +:1007D0003A2F4B2F552747FD5A950196A11DB11D64 +:1007E0002093C50081508093C400E1ECF0E080814B +:1007F000806180838081886080838081806880833D +:100800001F910F91FF90EF900895982F8091C00055 +:1008100085FFFCCF9093C600089580916C01909164 +:100820006D0180589F4F20916E0130916F01821BA6 +:10083000930B60E870E00E949C05089540916E0162 +:1008400050916F0180916C0190916D018417950713 +:1008500019F42FEF3FEF0FC0FA01E059FE4F20814E +:10086000CA01019660E870E00E949C0590936F01B8 +:1008700080936E0130E0C90108951F920F920FB668 +:100880000F9211242F933F934F935F936F937F9316 +:100890008F939F93AF93BF93EF93FF934091C600C5 +:1008A000E0916C01F0916D01CF01019660E870E07C +:1008B0000E949C059C0180916E0190916F01281708 +:1008C000390739F0E059FE4F408330936D01209392 +:1008D0006C01FF91EF91BF91AF919F918F917F91AB +:1008E0006F915F914F913F912F910F900FBE0F909D +:1008F0001F90189504D06894B111B5C0089598D090 +:1009000088F09F5790F0B92F9927B751A0F0D1F0F8 +:10091000660F771F881F991F1AF0BA95C9F712C082 +:10092000B13081F09FD0B1E008959CC0672F782F3F +:100930008827B85F39F0B93FCCF3869577956795EE +:10094000B395D9F73EF490958095709561957F4F5A +:100950008F4F9F4F0895E89409C097FB3EF4909500 +:100960008095709561957F4F8F4F9F4F9923A9F088 +:10097000F92F96E9BB279395F69587957795679517 +:10098000B795F111F8CFFAF4BB0F11F460FF1BC05B +:100990006F5F7F4F8F4F9F4F16C0882311F096E9EE +:1009A00011C0772321F09EE8872F762F05C066239C +:1009B00071F096E8862F70E060E02AF09A95660F55 +:1009C000771F881FDAF7880F9695879597F908950E +:1009D00097F99F6780E870E060E008959FEF80ECF2 +:1009E000089500240A941616170618060906089595 +:1009F00000240A9412161306140605060895092EFB +:100A00000394000C11F4882352F0BB0F40F4BF2B69 +:100A100011F460FF04C06F5F7F4F8F4F9F4F0895A9 +:100A200057FD9058440F551F59F05F3F71F047959F +:100A3000880F97FB991F61F09F3F79F08795089584 +:100A4000121613061406551FF2CF4695F1DF08C0A3 +:100A5000161617061806991FF1CF869571056105C0 +:100A600008940895E894BB2766277727CB0197F968 +:100A700008950BD0C4CFB5DF28F0BADF18F0952366 +:100A800009F0A6CFABCF1124EECFCADFA0F3959F1C +:100A9000D1F3950F50E0551F629FF001729FBB2765 +:100AA000F00DB11D639FAA27F00DB11DAA1F649F11 +:100AB0006627B00DA11D661F829F2227B00DA11DC4 +:100AC000621F739FB00DA11D621F839FA00D611D4A +:100AD000221F749F3327A00D611D231F849F600D6B +:100AE000211D822F762F6A2F11249F5750408AF0A4 +:100AF000E1F088234AF0EE0FFF1FBB1F661F771F30 +:100B0000881F91505040A9F79E3F510570F060CF6B +:100B1000AACF5F3FECF3983EDCF386957795679517 +:100B2000B795F795E7959F5FC1F7FE2B880F911D4D +:100B30009695879597F9089597FB092E07260AD071 +:100B400077FD04D049D006D000201AF47095619545 +:100B50007F4F0895F6F7909581959F4F0895A1E2F4 +:100B60001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F27 +:100B7000FF1FA217B307E407F50720F0A21BB30B72 +:100B8000E40BF50B661F771F881F991F1A9469F7EE +:100B900060957095809590959B01AC01BD01CF014A +:100BA000089597FB092E05260ED057FD04D0D7DFF8 +:100BB0000AD0001C38F450954095309521953F4F50 +:100BC0004F4F5F4F0895F6F790958095709561951A +:100BD0007F4F8F4F9F4F0895AA1BBB1B51E107C04A +:100BE000AA1FBB1FA617B70710F0A61BB70B881FBD +:100BF000991F5A95A9F780959095BC01CD0108954C +:100C0000EE0FFF1F0590F491E02D0994F894FFCFAB +:100C1000050000000000050008000B0000000000B7 +:020C20001802B8 +:00000001FF diff --git a/2009/DMX_CONTROL/applet/DMX_CONTROL.pde b/2009/DMX_CONTROL/applet/DMX_CONTROL.pde new file mode 100644 index 0000000..c556e6f --- /dev/null +++ b/2009/DMX_CONTROL/applet/DMX_CONTROL.pde @@ -0,0 +1,146 @@ +// A simpler Example + +/* + + */ + +#include "pins_arduino.h" + +int sig = 5; // signal + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; + +int valueadd = 3; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,255); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(115200); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + if (value > 0xC8) + { + if (value==0xD9) value1 = Serial.read()*1.2; + if (value==0xDA) value2 = Serial.read()*1.2; + if (value==0xDB) value3 = Serial.read()*1.2; + } + value = Serial.read(); + } + setDmxChannel(7,value1); + setDmxChannel(8, value2); + setDmxChannel(9, value3); + processDmx(); + + +} diff --git a/2009/DMX_CONTROL/applet/HardwareSerial.cpp.o b/2009/DMX_CONTROL/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/DMX_CONTROL/applet/HardwareSerial.cpp.o differ diff --git a/2009/DMX_CONTROL/applet/Print.cpp.o b/2009/DMX_CONTROL/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/DMX_CONTROL/applet/Print.cpp.o differ diff --git a/2009/DMX_CONTROL/applet/WInterrupts.c.o b/2009/DMX_CONTROL/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/DMX_CONTROL/applet/WInterrupts.c.o differ diff --git a/2009/DMX_CONTROL/applet/WMath.cpp.o b/2009/DMX_CONTROL/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/DMX_CONTROL/applet/WMath.cpp.o differ diff --git a/2009/DMX_CONTROL/applet/pins_arduino.c.o b/2009/DMX_CONTROL/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/DMX_CONTROL/applet/pins_arduino.c.o differ diff --git a/2009/DMX_CONTROL/applet/wiring.c.o b/2009/DMX_CONTROL/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/DMX_CONTROL/applet/wiring.c.o differ diff --git a/2009/DMX_CONTROL/applet/wiring_analog.c.o b/2009/DMX_CONTROL/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/DMX_CONTROL/applet/wiring_analog.c.o differ diff --git a/2009/DMX_CONTROL/applet/wiring_digital.c.o b/2009/DMX_CONTROL/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/DMX_CONTROL/applet/wiring_digital.c.o differ diff --git a/2009/DMX_CONTROL/applet/wiring_pulse.c.o b/2009/DMX_CONTROL/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/DMX_CONTROL/applet/wiring_pulse.c.o differ diff --git a/2009/DMX_CONTROL/applet/wiring_serial.c.o b/2009/DMX_CONTROL/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/DMX_CONTROL/applet/wiring_serial.c.o differ diff --git a/2009/DMX_CONTROL/applet/wiring_shift.c.o b/2009/DMX_CONTROL/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/DMX_CONTROL/applet/wiring_shift.c.o differ diff --git a/2009/DMX_CONTROLv2/DMX_CONTROLv2.pde b/2009/DMX_CONTROLv2/DMX_CONTROLv2.pde new file mode 100644 index 0000000..7f3f068 --- /dev/null +++ b/2009/DMX_CONTROLv2/DMX_CONTROLv2.pde @@ -0,0 +1,184 @@ + +#include "pins_arduino.h" + +int sig = 5; // signal + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[4]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + value = Serial.read(); + if (value == 0xD9) + { + while (!Serial.available()); + id=Serial.read(); + i=0; + while (i<4) { + if (Serial.available()) { + buffer[i]= Serial.read(); + i=i+1; + } + } + checksum = (buffer[0]+buffer[1]+buffer[2]); + if ( buffer[3] == checksum ) //CHECKSUM (8 bits menos significativos) + { + if (id==0) + { + color[0] = buffer[0]; + color[1] = buffer[1]; + color[2] = buffer[2]; + } + else + { + color[id*3+1] = buffer[0]; + color[id*3+2] = buffer[1]; + color[id*3+3] = buffer[2]; + } + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[0] ,BYTE); + Serial.print(buffer[1] ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + + + } + if (id==0) for (i=0; i<=2; i++) setDmxChannel(i,color[i]); + else for (i=id*3+1; i<=id*3+3; i++) setDmxChannel(i,color[i]); + /*setDmxChannel(8, value2); + setDmxChannel(9, value3); + setDmxChannel(16,value1); //id 5 + setDmxChannel(17, value2); + setDmxChannel(18, value3);*/ + processDmx(); + + +} diff --git a/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.cpp b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.cpp new file mode 100644 index 0000000..a7a67a1 --- /dev/null +++ b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.cpp @@ -0,0 +1,203 @@ + +#include "pins_arduino.h" + +#include "WProgram.h" +void setDmxChannel(byte channelID, byte value); +void shiftDmxOut(int pin, int theByte); +void processDmx(); +void setup(); +void loop(); +int sig = 5; // signal + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[4]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + value = Serial.read(); + if (value == 0xD9) + { + while (!Serial.available()); + id=Serial.read(); + i=0; + while (i<4) { + if (Serial.available()) { + buffer[i]= Serial.read(); + i=i+1; + } + } + checksum = (buffer[0]+buffer[1]+buffer[2]); + if ( buffer[3] == checksum ) //CHECKSUM (8 bits menos significativos) + { + if (id==0) + { + color[0] = buffer[0]; + color[1] = buffer[1]; + color[2] = buffer[2]; + } + else + { + color[id*3+1] = buffer[0]; + color[id*3+2] = buffer[1]; + color[id*3+3] = buffer[2]; + } + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[0] ,BYTE); + Serial.print(buffer[1] ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + + + } + if (id==0) for (i=0; i<=2; i++) setDmxChannel(i,color[i]); + else for (i=id*3+1; i<=id*3+3; i++) setDmxChannel(i,color[i]); + /*setDmxChannel(8, value2); + setDmxChannel(9, value3); + setDmxChannel(16,value1); //id 5 + setDmxChannel(17, value2); + setDmxChannel(18, value3);*/ + processDmx(); + + +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.cpp.o b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.cpp.o new file mode 100644 index 0000000..27ae83e Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.cpp.o differ diff --git a/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.eep b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.elf b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.elf new file mode 100644 index 0000000..a46732a Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.elf differ diff --git a/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.hex b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.hex new file mode 100644 index 0000000..d663450 --- /dev/null +++ b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.hex @@ -0,0 +1,203 @@ +:100000000C945B000C947E030C94AB030C94830063 +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C94D8030C9483000C9494050C948300B6 +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000940211241FBECFEFD4E0DEBF89 +:1000C000CDBF11E0A0E0B1E0EAE7FCE002C005909E +:1000D0000D92A231B107D9F712E0A2E1B1E001C05F +:1000E0001D92A23FB107E1F710E0C6EBD0E004C0DB +:1000F0002297FE010E943706C43BD107C9F70E9430 +:100100008D020C943B060C94000040E051EE60E040 +:1001100070E08CE592E00E94A50264E670E080E069 +:1001200090E00E94480461E0809100010E94BA04BE +:100130000895BF92CF92DF92EF92FF920F931F9399 +:10014000DF93CF93CDB7DEB72A970FB6F894DEBF13 +:100150000FBECDBF6B01DE011196E2E0F1E02AE0B7 +:1001600001900D922150E1F79C0189589F4FFC01AD +:10017000849125573F4FF901B490E82FF0E0EE0F3E +:10018000FF1FEC0FFD1F0181128190E2E92EF12C7F +:10019000E00EF11EF80180A18B2980A38AE090E097 +:1001A0000E947204F894F80180A19B2D90958923F8 +:1001B00080A300000000000000000000000000001C +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:10021000000020E030E0C0FE04C0F70180818B299F +:1002200003C0F70180818923808300000000000063 +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000002F5F3F4F2830FA +:10029000310519F0D594C794BECFF80180A18B2900 +:1002A00080A378942A960FB6F894DEBF0FBECDBF18 +:1002B000CF91DF911F910F91FF90EF90DF90CF9042 +:1002C000BF900895CF93DF9360E0809100010E947A +:1002D000D8046AE070E080E090E00E944804109248 +:1002E0001C02C0E0D0E08091000190910101C03477 +:1002F000D10531F0FE01E45EFD4F608170E002C087 +:1003000060E070E00E9499002196C134D10559F750 +:10031000DF91CF9108950F931F938CE592E00E9497 +:10032000A202882309F4ADC08CE592E00E949F02EE +:100330009093130180931201893D910509F0A1C0AA +:100340008CE592E00E94A2028823D1F38CE592E032 +:100350000E949F02809317011092150110921401C0 +:100360001BC08CE592E00E94A2028823A9F00091B4 +:100370001401109115018CE592E00E949F02085E25 +:100380001E4FF80180838091140190911501019610 +:10039000909315018093140180911401909115019F +:1003A0000497FCF2209118013091190150911A0123 +:1003B000832F820F850F8093160190911B0140912E +:1003C00017019817F1F4442339F420931C0130935A +:1003D0001D0150931E0155C0842F90E0FC01EE0FCB +:1003E000FF1FE80FF91FE45EFE4F21833283019661 +:1003F000FC01EE0FFF1FE80FF91FE45EFE4F508374 +:1004000040C050E060E070E020E030E08CE592E039 +:100410000E9469034091180150E060E070E020E024 +:1004200030E08CE592E00E9469034091190150E0B0 +:1004300060E070E020E030E08CE592E00E9469032B +:1004400040911A0150E060E070E020E030E08CE57F +:1004500092E00E94690340911B0150E060E070E06F +:1004600020E030E08CE592E00E94690340911601A3 +:1004700050E060E070E020E030E08CE592E00E9427 +:100480006903809117018823D9F410921501109205 +:100490001401ACE1B1E080E090E00AC02C91E82FBB +:1004A000803420F4F0E0E45EFD4F20830196119645 +:1004B000833091059CF3909315018093140128C01B +:1004C00090E09C01220F331F280F391F2F5F3F4FF1 +:1004D00030931501209314010196AC01440F551F70 +:1004E000480F591FD901A45EBE4F0BC08C91E22F5B +:1004F000203420F4F0E0E45EFD4F80832F5F3F4F17 +:1005000011964217530794F7309315012093140165 +:100510000E9462011F910F9108950E9480040E9421 +:1005200085000E948B01FDCF80E191E090935D02F8 +:1005300080935C020895862F0E945C0508950E94B6 +:10054000750508950E9464050895CB01BA010E94C3 +:10055000230508952F923F924F925F926F927F9260 +:100560008F929F92AF92BF92CF92DF92EF92FF92C3 +:100570000F931F93DF93CF93CDB7DEB7A0970FB63E +:10058000F894DEBF0FBECDBF1C016A017B0141158F +:1005900051056105710549F4DC01ED91FC91019073 +:1005A000F081E02D60E3099554C08824992454011A +:1005B000422E55246624772401E010E00C0F1D1F05 +:1005C000080D191DC701B601A30192010E94E4059F +:1005D000F80160830894811C911CA11CB11CC70107 +:1005E000B601A30192010E94E405C901DA016C0180 +:1005F0007D01C114D104E104F104F1F681E0E82E9B +:10060000F12CEC0EFD1EE80CF91C3E010894611C57 +:10061000711CD501C4010197A109B1096C01C81869 +:10062000D90814C0F601EE0DFF1D60816A3010F488 +:10063000605D01C0695CD101ED91FC910190F08198 +:10064000E02DC10109950894E108F1086E147F04BA +:1006500049F7A0960FB6F894DEBF0FBECDBFCF917D +:10066000DF911F910F91FF90EF90DF90CF90BF909F +:10067000AF909F908F907F906F905F904F903F9042 +:100680002F900895EF92FF920F931F93CF93DF93D4 +:10069000EC017A018B0177FF0FC0E881F9810190AD +:1006A000F081E02D6DE2099510950095F094E094AD +:1006B000E11CF11C011D111D2AE0B801A701CE01AA +:1006C0000E94AA02DF91CF911F910F91FF90EF90AE +:1006D0000895DC012115310541F4ED91FC91019063 +:1006E000F081E02D642F099508952A30310519F421 +:1006F0000E94420308950E94AA0208951F920F9239 +:100700000FB60F9211242F933F934F935F936F93E4 +:100710007F938F939F93AF93BF93EF93FF938091BA +:100720005E0290915F02892B29F0E0915E02F091C8 +:100730005F020995FF91EF91BF91AF919F918F91CA +:100740007F916F915F914F913F912F910F900FBECD +:100750000F901F9018951F920F920FB60F921124B1 +:100760002F933F934F935F936F937F938F939F93B9 +:10077000AF93BF93EF93FF938091600290916102DA +:10078000892B29F0E0916002F09161020995FF91B7 +:10079000EF91BF91AF919F918F917F916F915F91F9 +:1007A0004F913F912F910F900FBE0F901F90189572 +:1007B0001F920F920FB60F9211242F938F939F9336 +:1007C000AF93BF938091620290916302A091640203 +:1007D000B09165020196A11DB11D809362029093B4 +:1007E0006302A0936402B0936502809166029091C7 +:1007F0006702A0916802B09169028050904CAF4F9F +:10080000BF4F8093660290936702A0936802B093F3 +:10081000690227C08091660290916702A0916802E8 +:10082000B091690280589E43A040B0408093660218 +:1008300090936702A0936802B093690280916A0264 +:1008400090916B02A0916C02B0916D020196A11D76 +:10085000B11D80936A0290936B02A0936C02B093D7 +:100860006D028091660290916702A0916802B0913A +:10087000690281589E43A040B04060F6BF91AF919D +:100880009F918F912F910F900FBE0F901F901895F1 +:10089000EF92FF920F931F937B018C018FB7F89417 +:1008A00040916A0250916B0260916C0270916D02EE +:1008B0008FBF2FB7F89480916A0290916B02A0913C +:1008C0006C02B0916D022FBF841B950BA60BB70B6A +:1008D000E816F9060A071B0760F71F910F91FF90B2 +:1008E000EF900895019759F0FC01EE0FFF1FEE0FF6 +:1008F000FF1F32978FB7F8943197F1F78FBF0895A4 +:10090000789484B5826084BD84B5816084BD85B5EA +:10091000826085BD85B5816085BDEEE6F0E08081B1 +:1009200081608083E1E8F0E0808182608083808163 +:1009300081608083E0E8F0E0808181608083E1EB8A +:10094000F0E0808184608083E0EBF0E08081816072 +:100950008083EAE7F0E08081846080838081826028 +:100960008083808181608083808180688083109211 +:10097000C1000895282F30E0C90185579F4FFC0121 +:10098000949129583F4FF9018491882381F0E82FF1 +:10099000F0E0E859FF4FE491F0E0662329F480810C +:1009A00090958923808308958081892B8083089581 +:1009B000482F50E0CA0181569F4FFC012491CA0183 +:1009C00085579F4FFC01949149585F4FFA0134912C +:1009D0003323C1F1222331F1233021F480918000AF +:1009E0008F7705C0243031F4809180008F7D809313 +:1009F000800018C0213019F484B58F7704C02230EC +:100A000021F484B58F7D84BD0DC0263021F4809102 +:100A1000B0008F7705C0273029F48091B0008F7D1A +:100A20008093B000E32FF0E0E359FF4FE491F0E052 +:100A3000662329F48081909589238083089580819D +:100A4000892B80830895EF92FF920F931F937B0170 +:100A50008C0122E030E040E050E00E940606205C7D +:100A60003D4B404F5F4FCA01B901A80197010E9459 +:100A70000606C901DA010197A109B109292F3A2F08 +:100A80004B2F552747FD5A950196A11DB11D209367 +:100A9000C50081508093C400E1ECF0E0808180616A +:100AA00080838081886080838081806880831F91BB +:100AB0000F91FF90EF900895982F8091C00085FFCF +:100AC000FCCF9093C600089580916E0290916F02C2 +:100AD00080589F4F2091700230917102821B930BBE +:100AE00060E870E00E94D105089540917002509135 +:100AF000710280916E0290916F028417950719F42C +:100B00002FEF3FEF0FC0FA01EE58FD4F2081CA01D1 +:100B1000019660E870E00E94D10590937102809385 +:100B2000700230E0C90108951F920F920FB60F9224 +:100B300011242F933F934F935F936F937F938F93E2 +:100B40009F93AF93BF93EF93FF934091C600E091C3 +:100B50006E02F0916F02CF01019660E870E00E9492 +:100B6000D1059C018091700290917102281739077C +:100B700039F0EE58FD4F408330936F0220936E02A0 +:100B8000FF91EF91BF91AF919F918F917F916F9165 +:100B90005F914F913F912F910F900FBE0F901F903B +:100BA000189597FB092E07260AD077FD04D049D067 +:100BB00006D000201AF4709561957F4F0895F6F7DE +:100BC000909581959F4F0895A1E21A2EAA1BBB1BF9 +:100BD000FD010DC0AA1FBB1FEE1FFF1FA217B30709 +:100BE000E407F50720F0A21BB30BE40BF50B661F1F +:100BF000771F881F991F1A9469F7609570958095E3 +:100C000090959B01AC01BD01CF01089597FB092E82 +:100C100005260ED057FD04D0D7DF0AD0001C38F4CB +:100C200050954095309521953F4F4F4F5F4F089518 +:100C3000F6F790958095709561957F4F8F4F9F4FF8 +:100C40000895AA1BBB1B51E107C0AA1FBB1FA61713 +:100C5000B70710F0A61BB70B881F991F5A95A9F765 +:100C600080959095BC01CD010895EE0FFF1F059072 +:0A0C7000F491E02D0994F894FFCFF1 +:100C7A00050000000000050008000B00000000004D +:020C8A009B02CB +:00000001FF diff --git a/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.pde b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.pde new file mode 100644 index 0000000..7f3f068 --- /dev/null +++ b/2009/DMX_CONTROLv2/applet/DMX_CONTROLv2.pde @@ -0,0 +1,184 @@ + +#include "pins_arduino.h" + +int sig = 5; // signal + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[4]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + value = Serial.read(); + if (value == 0xD9) + { + while (!Serial.available()); + id=Serial.read(); + i=0; + while (i<4) { + if (Serial.available()) { + buffer[i]= Serial.read(); + i=i+1; + } + } + checksum = (buffer[0]+buffer[1]+buffer[2]); + if ( buffer[3] == checksum ) //CHECKSUM (8 bits menos significativos) + { + if (id==0) + { + color[0] = buffer[0]; + color[1] = buffer[1]; + color[2] = buffer[2]; + } + else + { + color[id*3+1] = buffer[0]; + color[id*3+2] = buffer[1]; + color[id*3+3] = buffer[2]; + } + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[0] ,BYTE); + Serial.print(buffer[1] ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + + + } + if (id==0) for (i=0; i<=2; i++) setDmxChannel(i,color[i]); + else for (i=id*3+1; i<=id*3+3; i++) setDmxChannel(i,color[i]); + /*setDmxChannel(8, value2); + setDmxChannel(9, value3); + setDmxChannel(16,value1); //id 5 + setDmxChannel(17, value2); + setDmxChannel(18, value3);*/ + processDmx(); + + +} diff --git a/2009/DMX_CONTROLv2/applet/HardwareSerial.cpp.o b/2009/DMX_CONTROLv2/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/HardwareSerial.cpp.o differ diff --git a/2009/DMX_CONTROLv2/applet/Print.cpp.o b/2009/DMX_CONTROLv2/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/Print.cpp.o differ diff --git a/2009/DMX_CONTROLv2/applet/WInterrupts.c.o b/2009/DMX_CONTROLv2/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/WInterrupts.c.o differ diff --git a/2009/DMX_CONTROLv2/applet/WMath.cpp.o b/2009/DMX_CONTROLv2/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/WMath.cpp.o differ diff --git a/2009/DMX_CONTROLv2/applet/pins_arduino.c.o b/2009/DMX_CONTROLv2/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/pins_arduino.c.o differ diff --git a/2009/DMX_CONTROLv2/applet/wiring.c.o b/2009/DMX_CONTROLv2/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/wiring.c.o differ diff --git a/2009/DMX_CONTROLv2/applet/wiring_analog.c.o b/2009/DMX_CONTROLv2/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/wiring_analog.c.o differ diff --git a/2009/DMX_CONTROLv2/applet/wiring_digital.c.o b/2009/DMX_CONTROLv2/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/wiring_digital.c.o differ diff --git a/2009/DMX_CONTROLv2/applet/wiring_pulse.c.o b/2009/DMX_CONTROLv2/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/wiring_pulse.c.o differ diff --git a/2009/DMX_CONTROLv2/applet/wiring_serial.c.o b/2009/DMX_CONTROLv2/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/wiring_serial.c.o differ diff --git a/2009/DMX_CONTROLv2/applet/wiring_shift.c.o b/2009/DMX_CONTROLv2/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/DMX_CONTROLv2/applet/wiring_shift.c.o differ diff --git a/2009/DMX_CONTROLv2a/DMX_CONTROLv2a.pde b/2009/DMX_CONTROLv2a/DMX_CONTROLv2a.pde new file mode 100644 index 0000000..be0daa7 --- /dev/null +++ b/2009/DMX_CONTROLv2a/DMX_CONTROLv2a.pde @@ -0,0 +1,186 @@ + +#include "pins_arduino.h" + +int sig = 8; // signal para mochila +//int sig = 5; // signal para placa integrada + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +int e=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[10]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delayMicroseconds(100); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + value = Serial.read(); + if ((0xD9 == value)&&(i==0)) + { + i=1; + } + else if (i==1) + { + id=value; + i=2; + } + else if ((i>=2)&&(i<6)) + { + buffer[i]=value; + i=i+1; + } + if (i==6) + { + i=0; + checksum = (buffer[2]+buffer[3]+buffer[4]); + if ( buffer[5] == checksum ) //CHECKSUM (8 bits menos significativos) + { + if (id==0) + { + color[0] = buffer[2]; + color[1] = buffer[3]; + color[2] = buffer[4]; + } + else + { + color[id*3+1] = buffer[2]; + color[id*3+2] = buffer[3]; + color[id*3+3] = buffer[4]; + } + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(buffer[4] ,BYTE); + Serial.print(buffer[5] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + } + if (i==0) + { + if (id==0) for (e=0; e<=2; e++) setDmxChannel(e,color[e]); + else for (e=id*3+1; e<=id*3+3; e++) setDmxChannel(e,color[e]); + processDmx(); + } +} diff --git a/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.cpp b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.cpp new file mode 100644 index 0000000..efc0f36 --- /dev/null +++ b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.cpp @@ -0,0 +1,205 @@ + +#include "pins_arduino.h" + +#include "WProgram.h" +void setDmxChannel(byte channelID, byte value); +void shiftDmxOut(int pin, int theByte); +void processDmx(); +void setup(); +void loop(); +int sig = 8; // signal para mochila +//int sig = 5; // signal para placa integrada + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +int e=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[10]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delayMicroseconds(100); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + value = Serial.read(); + if ((0xD9 == value)&&(i==0)) + { + i=1; + } + else if (i==1) + { + id=value; + i=2; + } + else if ((i>=2)&&(i<6)) + { + buffer[i]=value; + i=i+1; + } + if (i==6) + { + i=0; + checksum = (buffer[2]+buffer[3]+buffer[4]); + if ( buffer[5] == checksum ) //CHECKSUM (8 bits menos significativos) + { + if (id==0) + { + color[0] = buffer[2]; + color[1] = buffer[3]; + color[2] = buffer[4]; + } + else + { + color[id*3+1] = buffer[2]; + color[id*3+2] = buffer[3]; + color[id*3+3] = buffer[4]; + } + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(buffer[4] ,BYTE); + Serial.print(buffer[5] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + } + if (i==0) + { + if (id==0) for (e=0; e<=2; e++) setDmxChannel(e,color[e]); + else for (e=id*3+1; e<=id*3+3; e++) setDmxChannel(e,color[e]); + processDmx(); + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.cpp.o b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.cpp.o new file mode 100644 index 0000000..061aef9 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.cpp.o differ diff --git a/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.eep b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.elf b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.elf new file mode 100644 index 0000000..099cff3 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.elf differ diff --git a/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.hex b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.hex new file mode 100644 index 0000000..e836385 --- /dev/null +++ b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.hex @@ -0,0 +1,203 @@ +:100000000C945B000C947F030C94AC030C94830061 +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C94D9030C9483000C9495050C948300B4 +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000950211241FBECFEFD4E0DEBF88 +:1000C000CDBF11E0A0E0B1E0ECE7FCE002C005909C +:1000D0000D92A231B107D9F712E0A2E1B1E001C05F +:1000E0001D92AA3FB107E1F710E0C6EBD0E004C0D3 +:1000F0002297FE010E943806C43BD107C9F70E942F +:100100008E020C943C060C94000040E051EE60E03E +:1001100070E084E692E00E94A60264E670E080E06F +:1001200090E00E94490461E0809100010E94BB04BC +:100130000895BF92CF92DF92EF92FF920F931F9399 +:10014000DF93CF93CDB7DEB72A970FB6F894DEBF13 +:100150000FBECDBF6B01DE011196E2E0F1E02AE0B7 +:1001600001900D922150E1F79C0189589F4FFC01AD +:10017000849125573F4FF901B490E82FF0E0EE0F3E +:10018000FF1FEC0FFD1F0181128190E2E92EF12C7F +:10019000E00EF11EF80180A18B2980A38AE090E097 +:1001A0000E947304F894F80180A19B2D90958923F7 +:1001B00080A300000000000000000000000000001C +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:10021000000020E030E0C0FE04C0F70180818B299F +:1002200003C0F70180818923808300000000000063 +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000002F5F3F4F2830FA +:10029000310519F0D594C794BECFF80180A18B2900 +:1002A00080A378942A960FB6F894DEBF0FBECDBF18 +:1002B000CF91DF911F910F91FF90EF90DF90CF9042 +:1002C000BF900895CF93DF9360E0809100010E947A +:1002D000D90484E690E00E94730410922402C0E0E6 +:1002E000D0E08091000190910101C034D10531F03E +:1002F000FE01EC5DFD4F608170E002C060E070E0E7 +:100300000E9499002196C134D10559F7DF91CF9110 +:10031000089584E692E00E94A302882309F4ADC008 +:1003200084E692E00E94A002AC01909313018093B6 +:100330001201893D910549F48091140190911501B4 +:10034000892B19F481E090E00BC0209114013091C9 +:1003500015012130310549F44093190182E090E004 +:1003600090931501809314010EC0C9010297049760 +:1003700050F4F901E65EFE4F40832F5F3F4F30930C +:100380001501209314018091140190911501069795 +:1003900009F073C0109215011092140120911C01F4 +:1003A00030911D0150911E01832F820F850F809384 +:1003B000180190911F01409119019817F1F44423FD +:1003C00039F420932401309325015093260155C020 +:1003D000842F90E0FC01EE0FFF1FE80FF91FEC5D8A +:1003E000FE4F218332830196FC01EE0FFF1FE80FC1 +:1003F000F91FEC5DFE4F508340C050E060E070E0BC +:1004000020E030E084E692E00E946A0340911C0103 +:1004100050E060E070E020E030E084E692E00E948E +:100420006A0340911D0150E060E070E020E030E0A0 +:1004300084E692E00E946A0340911E0150E060E071 +:1004400070E020E030E084E692E00E946A03409190 +:100450001F0150E060E070E020E030E084E692E0D0 +:100460000E946A034091180150E060E070E020E0D3 +:1004700030E084E692E00E946A038091140190913A +:100480001501892B09F049C0809119018823D9F4FD +:100490001092170110921601A4E2B1E080E090E002 +:1004A0000AC02C91E82F803420F4F0E0EC5DFD4F81 +:1004B000208301961196833091059CF39093170148 +:1004C0008093160128C090E09C01220F331F280F53 +:1004D000391F2F5F3F4F309317012093160101966C +:1004E000AC01440F551F480F591FD901AC5DBE4FD9 +:1004F0000BC08C91E22F203420F4F0E0EC5DFD4F36 +:1005000080832F5F3F4F11964217530794F7309324 +:100510001701209316010E94620108950E94810430 +:100520000E9485000E948901FDCF80E191E09093B7 +:100530006502809364020895862F0E945D050895E8 +:100540000E94760508950E9465050895CB01BA01C1 +:100550000E94240508952F923F924F925F926F92CE +:100560007F928F929F92AF92BF92CF92DF92EF9243 +:10057000FF920F931F93DF93CF93CDB7DEB7A09772 +:100580000FB6F894DEBF0FBECDBF1C016A017B0120 +:10059000411551056105710549F4DC01ED91FC91AE +:1005A0000190F081E02D60E3099554C088249924DE +:1005B0005401422E55246624772401E010E00C0FEC +:1005C0001D1F080D191DC701B601A30192010E944C +:1005D000E505F80160830894811C911CA11CB11CE5 +:1005E000C701B601A30192010E94E505C901DA0124 +:1005F0006C017D01C114D104E104F104F1F681E044 +:10060000E82EF12CEC0EFD1EE80CF91C3E010894BE +:10061000611C711CD501C4010197A109B1096C01CC +:10062000C818D90814C0F601EE0DFF1D60816A30AC +:1006300010F4605D01C0695CD101ED91FC91019005 +:10064000F081E02DC10109950894E108F1086E14CC +:100650007F0449F7A0960FB6F894DEBF0FBECDBF5A +:10066000CF91DF911F910F91FF90EF90DF90CF908E +:10067000BF90AF909F908F907F906F905F904F90C2 +:100680003F902F900895EF92FF920F931F93CF9377 +:10069000DF93EC017A018B0177FF0FC0E881F981CC +:1006A0000190F081E02D6DE2099510950095F09490 +:1006B000E094E11CF11C011D111D2AE0B801A70105 +:1006C000CE010E94AB02DF91CF911F910F91FF905D +:1006D000EF900895DC012115310541F4ED91FC9175 +:1006E0000190F081E02D642F099508952A3031059D +:1006F00019F40E94430308950E94AB0208951F92CB +:100700000F920FB60F9211242F933F934F935F9345 +:100710006F937F938F939F93AF93BF93EF93FF93C9 +:100720008091660290916702892B29F0E091660220 +:10073000F09167020995FF91EF91BF91AF919F9161 +:100740008F917F916F915F914F913F912F910F907A +:100750000FBE0F901F9018951F920F920FB60F9219 +:1007600011242F933F934F935F936F937F938F93B6 +:100770009F93AF93BF93EF93FF9380916802909103 +:100780006902892B29F0E0916802F09169020995CC +:10079000FF91EF91BF91AF919F918F917F916F9159 +:1007A0005F914F913F912F910F900FBE0F901F902F +:1007B00018951F920F920FB60F9211242F938F93BB +:1007C0009F93AF93BF9380916A0290916B02A09127 +:1007D0006C02B0916D020196A11DB11D80936A0259 +:1007E00090936B02A0936C02B0936D0280916E02A5 +:1007F00090916F02A0917002B09171028050904C64 +:10080000AF4FBF4F80936E0290936F02A093700220 +:10081000B093710227C080916E0290916F02A091F7 +:100820007002B091710280589E43A040B040809306 +:100830006E0290936F02A0937002B0937102809148 +:10084000720290917302A0917402B09175020196A8 +:10085000A11DB11D8093720290937302A093740244 +:10086000B093750280916E0290916F02A091700218 +:10087000B091710281589E43A040B04060F6BF9194 +:10088000AF919F918F912F910F900FBE0F901F905E +:100890001895EF92FF920F931F937B018C018FB7F6 +:1008A000F8944091720250917302609174027091B9 +:1008B00075028FBF2FB7F8948091720290917302E6 +:1008C000A0917402B09175022FBF841B950BA60BEB +:1008D000B70BE816F9060A071B0760F71F910F917F +:1008E000FF90EF900895019759F0FC01EE0FFF1F64 +:1008F000EE0FFF1F32978FB7F8943197F1F78FBF44 +:100900000895789484B5826084BD84B5816084BD87 +:1009100085B5826085BD85B5816085BDEEE6F0E078 +:10092000808181608083E1E8F0E080818260808363 +:10093000808181608083E0E8F0E080818160808355 +:10094000E1EBF0E0808184608083E0EBF0E0808187 +:1009500081608083EAE7F0E0808184608083808129 +:1009600082608083808181608083808180688083D1 +:100970001092C1000895282F30E0C90185579F4F7C +:10098000FC01949129583F4FF9018491882381F00B +:10099000E82FF0E0E859FF4FE491F0E0662329F4F6 +:1009A000808190958923808308958081892B80831D +:1009B0000895482F50E0CA0181569F4FFC012491B1 +:1009C000CA0185579F4FFC01949149585F4FFA0126 +:1009D00034913323C1F1222331F1233021F480916A +:1009E00080008F7705C0243031F4809180008F7DA6 +:1009F0008093800018C0213019F484B58F7704C02B +:100A0000223021F484B58F7D84BD0DC0263021F4C1 +:100A10008091B0008F7705C0273029F48091B00015 +:100A20008F7D8093B000E32FF0E0E359FF4FE49116 +:100A3000F0E0662329F480819095892380830895CE +:100A40008081892B80830895EF92FF920F931F93EB +:100A50007B018C0122E030E040E050E00E9407067C +:100A6000205C3D4B404F5F4FCA01B901A80197017F +:100A70000E940706C901DA010197A109B109292FCE +:100A80003A2F4B2F552747FD5A950196A11DB11DB1 +:100A90002093C50081508093C400E1ECF0E0808198 +:100AA000806180838081886080838081806880838A +:100AB0001F910F91FF90EF900895982F8091C000A3 +:100AC00085FFFCCF9093C6000895809176029091A7 +:100AD000770280589F4F2091780230917902821BD3 +:100AE000930B60E870E00E94D2050895409178026F +:100AF0005091790280917602909177028417950740 +:100B000019F42FEF3FEF0FC0FA01E658FD4F208197 +:100B1000CA01019660E870E00E94D20590937902C4 +:100B20008093780230E0C90108951F920F920FB6AA +:100B30000F9211242F933F934F935F936F937F9363 +:100B40008F939F93AF93BF93EF93FF934091C60012 +:100B5000E0917602F0917702CF01019660E870E0B3 +:100B60000E94D2059C018091780290917902281709 +:100B7000390739F0E658FD4F4083309377022093D0 +:100B80007602FF91EF91BF91AF919F918F917F91ED +:100B90006F915F914F913F912F910F900FBE0F90EA +:100BA0001F90189597FB092E07260AD077FD04D0D1 +:100BB00049D006D000201AF4709561957F4F0895B2 +:100BC000F6F7909581959F4F0895A1E21A2EAA1BE2 +:100BD000BB1BFD010DC0AA1FBB1FEE1FFF1FA217ED +:100BE000B307E407F50720F0A21BB30BE40BF50BEA +:100BF000661F771F881F991F1A9469F76095709573 +:100C0000809590959B01AC01BD01CF01089597FBA4 +:100C1000092E05260ED057FD04D0D7DF0AD0001CC0 +:100C200038F450954095309521953F4F4F4F5F4F89 +:100C30000895F6F790958095709561957F4F8F4F49 +:100C40009F4F0895AA1BBB1B51E107C0AA1FBB1FE2 +:100C5000A617B70710F0A61BB70B881F991F5A9548 +:100C6000A9F780959095BC01CD010895EE0FFF1F67 +:0C0C70000590F491E02D0994F894FFCF5A +:100C7C00080000000000050008000B000000000048 +:020C8C009C02C8 +:00000001FF diff --git a/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.pde b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.pde new file mode 100644 index 0000000..be0daa7 --- /dev/null +++ b/2009/DMX_CONTROLv2a/applet/DMX_CONTROLv2a.pde @@ -0,0 +1,186 @@ + +#include "pins_arduino.h" + +int sig = 8; // signal para mochila +//int sig = 5; // signal para placa integrada + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +int e=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[10]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delayMicroseconds(100); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); +} + +void loop() +{ + if (Serial.available()) { + value = Serial.read(); + if ((0xD9 == value)&&(i==0)) + { + i=1; + } + else if (i==1) + { + id=value; + i=2; + } + else if ((i>=2)&&(i<6)) + { + buffer[i]=value; + i=i+1; + } + if (i==6) + { + i=0; + checksum = (buffer[2]+buffer[3]+buffer[4]); + if ( buffer[5] == checksum ) //CHECKSUM (8 bits menos significativos) + { + if (id==0) + { + color[0] = buffer[2]; + color[1] = buffer[3]; + color[2] = buffer[4]; + } + else + { + color[id*3+1] = buffer[2]; + color[id*3+2] = buffer[3]; + color[id*3+3] = buffer[4]; + } + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(buffer[4] ,BYTE); + Serial.print(buffer[5] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + } + if (i==0) + { + if (id==0) for (e=0; e<=2; e++) setDmxChannel(e,color[e]); + else for (e=id*3+1; e<=id*3+3; e++) setDmxChannel(e,color[e]); + processDmx(); + } +} diff --git a/2009/DMX_CONTROLv2a/applet/HardwareSerial.cpp.o b/2009/DMX_CONTROLv2a/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/HardwareSerial.cpp.o differ diff --git a/2009/DMX_CONTROLv2a/applet/Print.cpp.o b/2009/DMX_CONTROLv2a/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/Print.cpp.o differ diff --git a/2009/DMX_CONTROLv2a/applet/WInterrupts.c.o b/2009/DMX_CONTROLv2a/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/WInterrupts.c.o differ diff --git a/2009/DMX_CONTROLv2a/applet/WMath.cpp.o b/2009/DMX_CONTROLv2a/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/WMath.cpp.o differ diff --git a/2009/DMX_CONTROLv2a/applet/pins_arduino.c.o b/2009/DMX_CONTROLv2a/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/pins_arduino.c.o differ diff --git a/2009/DMX_CONTROLv2a/applet/wiring.c.o b/2009/DMX_CONTROLv2a/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/wiring.c.o differ diff --git a/2009/DMX_CONTROLv2a/applet/wiring_analog.c.o b/2009/DMX_CONTROLv2a/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/wiring_analog.c.o differ diff --git a/2009/DMX_CONTROLv2a/applet/wiring_digital.c.o b/2009/DMX_CONTROLv2a/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/wiring_digital.c.o differ diff --git a/2009/DMX_CONTROLv2a/applet/wiring_pulse.c.o b/2009/DMX_CONTROLv2a/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/wiring_pulse.c.o differ diff --git a/2009/DMX_CONTROLv2a/applet/wiring_serial.c.o b/2009/DMX_CONTROLv2a/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/wiring_serial.c.o differ diff --git a/2009/DMX_CONTROLv2a/applet/wiring_shift.c.o b/2009/DMX_CONTROLv2a/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/DMX_CONTROLv2a/applet/wiring_shift.c.o differ diff --git a/2009/DMX_CONTROLv3/DMX_CONTROLv3.pde b/2009/DMX_CONTROLv3/DMX_CONTROLv3.pde new file mode 100644 index 0000000..0bb35e8 --- /dev/null +++ b/2009/DMX_CONTROLv3/DMX_CONTROLv3.pde @@ -0,0 +1,184 @@ +211 +#include "pins_arduino.h" + +int sig = 8; // signal para mochila +//int sig = 5; // signal para placa integrada +int led1 = 12; // signal para placa integrada +int led2 = 13; // signal para placa integrada + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +int e=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[10]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delayMicroseconds(100); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + digitalWrite(led1,LOW); + digitalWrite(led2,HIGH); +} + +void loop() +{ + digitalWrite(led2,HIGH); + if (Serial.available()) { + value = Serial.read(); + if ((0xD9 == value)&&(i==0)) + { + i=1; + } + else if (i==1) + { + id=value; + i=2; + } + else if ((i>=2)&&(i<6)) + { + buffer[i]=value; + i=i+1; + } + if (i==6) + { + digitalWrite(led2,LOW); + i=0; + checksum = (buffer[2]+buffer[3]+buffer[4]); + if ( buffer[5] == checksum ) //CHECKSUM (8 bits menos significativos) + { + color[id] = buffer[2]; + color[id+1] = buffer[3]; + color[id+2] = buffer[4]; + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(buffer[4] ,BYTE); + Serial.print(buffer[5] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + } + if (i==0) + { + for (e=id; e<=id+2; e++) setDmxChannel(e,color[e]); + processDmx(); + } +} diff --git a/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp new file mode 100644 index 0000000..d3f4b0f --- /dev/null +++ b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp @@ -0,0 +1,203 @@ + +#include "pins_arduino.h" + +//int sig = 8; // signal para mochila +#include "WProgram.h" +void setDmxChannel(byte channelID, byte value); +void shiftDmxOut(int pin, int theByte); +void processDmx(); +void setup(); +void loop(); +int sig = 5; // signal para placa integrada +int led1 = 12; // signal para placa integrada +int led2 = 13; // signal para placa integrada + +int value = 0; +int value1 = 0; +int value2 = 0; +int value3 = 0; +int i=0; +int e=0; +byte checksum; +byte id=0; + +int valueadd = 3; + +byte buffer[10]; +byte color[256]; + +byte dmxChannel[64]; + +void setDmxChannel(byte channelID, byte value) { + if (channelID < 64) + dmxChannel[channelID] = value; +} + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void processDmx() { + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delayMicroseconds(100); + + dmxChannel[0] = 0; + + for (int count = 0; count <= 64; count++) + { + if (count < 64) + shiftDmxOut(sig, dmxChannel[count]); + else + shiftDmxOut(sig,0); + } + + + + /***** sending the dmx signal end *****/ +} + + + +void setup() +{ + Serial.begin(57600); + delay(100); + pinMode(sig, OUTPUT); + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + digitalWrite(led1,LOW); + digitalWrite(led2,HIGH); +} + +void loop() +{ + digitalWrite(led2,HIGH); + if (Serial.available()) { + value = Serial.read(); + if ((0xD9 == value)&&(i==0)) + { + i=1; + } + else if (i==1) + { + id=value; + i=2; + } + else if ((i>=2)&&(i<6)) + { + buffer[i]=value; + i=i+1; + } + if (i==6) + { + digitalWrite(led2,LOW); + i=0; + checksum = (buffer[2]+buffer[3]+buffer[4]); + if ( buffer[5] == checksum ) //CHECKSUM (8 bits menos significativos) + { + color[id] = buffer[2]; + color[id+1] = buffer[3]; + color[id+2] = buffer[4]; + } + else + { + Serial.print(id ,BYTE); + Serial.print(buffer[2] ,BYTE); + Serial.print(buffer[3] ,BYTE); + Serial.print(buffer[4] ,BYTE); + Serial.print(buffer[5] ,BYTE); + Serial.print(checksum ,BYTE); + } + } + } + if (i==0) + { + for (e=id; e<=id+2; e++) setDmxChannel(e,color[e]); + processDmx(); + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.eep b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.elf b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.elf new file mode 100644 index 0000000..281754a Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.elf differ diff --git a/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.hex b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.hex new file mode 100644 index 0000000..0c77ef1 --- /dev/null +++ b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.hex @@ -0,0 +1,226 @@ +:100000000C9462000C948A000C948A000C948A0070 +:100010000C948A000C948A000C948A000C948A0038 +:100020000C948A000C948A000C948A000C948A0028 +:100030000C948A000C948A000C948A000C948A0018 +:100040000C9477020C948A000C949E030C948A0002 +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C948A000C948A000000000024002700F1 +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C0000000230511241FBECFEFD4E0DEBFCDBF5B +:1000D00011E0A0E0B1E0E6EEFDE002C005900D9277 +:1000E000AA31B107D9F713E0AAE1B1E001C01D922E +:1000F000AC30B107E1F710E0C4ECD0E004C02297C7 +:10010000FE010E94ED06C23CD107C9F70E947002B1 +:100110000C94F1060C94000089EF92E040E051EE5F +:1001200060E070E00E94DB0364E670E080E090E055 +:100130000E94BF028091000161E00E943103809122 +:10014000020161E00E9431038091040161E00E949C +:1001500031038091020160E00E945103809104010B +:1001600061E00E9451030895BF92CF92DF92EF9217 +:10017000FF920F931F93DF93CF93CDB7DEB72A97EC +:100180000FB6F894DEBF0FBECDBF6B01DE01119636 +:10019000E6E0F1E02AE001900D922150E1F79C01A8 +:1001A0008A579F4FFC01849126563F4FF901B49026 +:1001B000E82FF0E0EE0FFF1FEC0FFD1F0181128111 +:1001C00090E2E92EF12CE00EF11EF80180A18B29BE +:1001D00080A38AE090E00E94E902F894F80180A1EF +:1001E0009B2D9095892380A3000000000000000053 +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:10024000000000000000000020E030E0C0FE04C01C +:10025000F70180818B2903C0F70180818923808386 +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C0002F5F3F4F2830310519F0D594C794BECF2A +:1002D000F80180A18B2980A378942A960FB6F89410 +:1002E000DEBF0FBECDBFCF91DF911F910F91FF9069 +:1002F000EF90DF90CF90BF900895CF93DF938091E0 +:10030000000160E00E94510384E690E00E94E9024F +:1003100010922C02C0E0D0E0809100019091010188 +:10032000C034D10531F0FE01E45DFD4F608170E025 +:1003300002C060E070E00E94B4002196C134D10593 +:1003400059F7DF91CF9108958091040161E00E94F7 +:10035000510389EF92E00E94D404882309F49CC0E1 +:1003600089EF92E00E94E804AC0190931B01809316 +:100370001A01893D910549F480911C0190911D015C +:10038000892B19F481E090E00BC020911C01309181 +:100390001D012130310549F44093210182E090E0B4 +:1003A00090931D0180931C010EC0C9010297049710 +:1003B00050F4F901EE5DFE4F40832F5F3F4F3093C5 +:1003C0001D0120931C0180911C0190911D01069735 +:1003D00009F062C08091040160E00E945103109214 +:1003E0001D0110921C015091240130912501209192 +:1003F0002601832F850F820F809320019091270182 +:1004000040912101981741F4E42FF0E0E45DFE4FA4 +:1004100050833183228340C050E060E070E089EF78 +:1004200092E020E030E00E9453064091240150E029 +:1004300060E070E089EF92E020E030E00E94530637 +:100440004091250150E060E070E089EF92E020E00B +:1004500030E00E9453064091260150E060E070E0D9 +:1004600089EF92E020E030E00E945306409127019E +:1004700050E060E070E089EF92E020E030E00E9420 +:1004800053064091200150E060E070E089EF92E077 +:1004900020E030E00E94530680911C0190911D01E4 +:1004A000892BE9F48091210190E0DC01A45DBE4F2D +:1004B000AC014E5F5F4F0AC0E82F2C91803420F4CE +:1004C000F0E0E45DFD4F208301961196481759072F +:1004D0009CF790931F0180931E010E947D01089557 +:1004E0000E94F7020E948C000E94A401FDCF1F927F +:1004F0000F920FB60F9211242F933F938F939F93D8 +:10050000AF93BF938091700290917102A09172029B +:10051000B0917302309174020196A11DB11D232F79 +:100520002D5F2D3720F02D570196A11DB11D209371 +:1005300074028093700290937102A0937202B09340 +:10054000730280916C0290916D02A0916E02B09145 +:100550006F020196A11DB11D80936C0290936D02F4 +:10056000A0936E02B0936F02BF91AF919F918F9154 +:100570003F912F910F900FBE0F901F901895EF9203 +:10058000FF920F931F937B018C018FB7F8944091DA +:1005900070025091710260917202709173028FBF6C +:1005A0002FB7F8948091700290917102A09172021D +:1005B000B09173022FBF841B950BA60BB70BE816E7 +:1005C000F9060A071B0760F71F910F91FF90EF9044 +:1005D0000895019759F0FC01EE0FFF1FEE0FFF1F6A +:1005E00032978FB7F8943197F1F78FBF08957894C9 +:1005F00084B5826084BD84B5816084BD85B5826028 +:1006000085BD85B5816085BDEEE6F0E080818160C5 +:100610008083E1E8F0E08081826080838081816076 +:100620008083E0E8F0E0808181608083E1EBF0E0AE +:10063000808184608083E0EBF0E080818160808352 +:10064000EAE7F0E08081846080838081826080833B +:100650008081816080838081806880831092C10066 +:100660000895282F30E0C90186569F4FFC019491D0 +:100670002A573F4FF9018491882391F0E82FF0E049 +:10068000EE0FFF1FE859FF4FA591B491662329F49F +:100690008C91909589238C9308958C91892B8C93C0 +:1006A0000895482F50E0CA0182559F4FFC012491C4 +:1006B000CA0186569F4FFC0194914A575F4FFA0139 +:1006C00034913323D1F1222331F1233021F480916D +:1006D00080008F7705C0243031F4809180008F7DB9 +:1006E0008093800018C0213019F484B58F7704C03E +:1006F000223021F484B58F7D84BD0DC0263021F4D5 +:100700008091B0008F7705C0273029F48091B00028 +:100710008F7D8093B000E32FF0E0EE0FFF1FEE58C7 +:10072000FF4FA591B491662329F48C91909589236C +:100730008C9308958C91892B8C9308951F920F921E +:100740000FB60F9211242F933F934F935F936F93A4 +:100750007F938F939F93AF93BF93EF93FF934091BA +:10076000C600E091F502F091F602CF01019660E833 +:1007700070E00E9487069C018091F7029091F80238 +:100780002817390739F0EB58FD4F40833093F602B4 +:100790002093F502FF91EF91BF91AF919F918F91BF +:1007A0007F916F915F914F913F912F910F900FBE6D +:1007B0000F901F9018955F926F927F928F929F92E9 +:1007C000AF92BF92CF92DF92EF92FF920F931F935F +:1007D000CF93DF93EC013A014B01413482E4580797 +:1007E0008FE0680780E078070CF07FC060E874E86D +:1007F0008EE190E0A40193010E94BC06215030409C +:1008000040405040CA01B90122E030E040E050E0F1 +:100810000E94BC0659016A01A601950120953095F8 +:100820004095509594E0220F331F441F551F9A9511 +:10083000D1F760E074E284EF90E00E94BC06CA0148 +:10084000B9012FEF30E040E050E00E946806A401BB +:1008500093010E94BC06C90181509F4F18161906CA +:100860001CF4522E5A9403C055245394521A60E03B +:1008700079E08DE390E0A40193010E94BC06215031 +:10088000304040405040CA01B90122E030E040E031 +:1008900050E00E94BC06209530954095509583E02D +:1008A000220F331F441F551F8A95D1F760E074E271 +:1008B00084EF90E00E94BC06CA01B9012FEF30E03E +:1008C00040E050E00E946806A40193010E94BC062B +:1008D000C90181509F4F181619061CF4822F8150B0 +:1008E00002C081E0821B851500F5E885F98581E06D +:1008F00090E00A8802C0880F991F0A94E2F780836B +:1009000060E079E08DE390E0A40193010E94BC06D1 +:100910002150304040405040CA01B90122E030E04F +:1009200040E050E00E94BC0604C0E885F9851082D2 +:100930009501EC81FD813083EE81FF812083EA8582 +:10094000FB85208141E050E0CA010E8402C0880F7F +:10095000991F0A94E2F7282B2083EA85FB852081E2 +:10096000CA010F8402C0880F991F0A94E2F7282B4E +:100970002083EA85FB858081088802C0440F551FCB +:100980000A94E2F7842B8083DF91CF911F910F911E +:10099000FF90EF90DF90CF90BF90AF909F908F909F +:1009A0007F906F905F900895DC011296ED91FC911D +:1009B0001397E058FF4F8191919180589F4F20816C +:1009C0003181821B930B60E870E00E9487060895D6 +:1009D000CF93DF93DC011296ED91FC911397EF0119 +:1009E000CE57DF4F48815981E058FF4F8081918178 +:1009F000E058F0408417950719F42FEF3FEF0CC033 +:100A0000E40FF51F2081CA01019660E870E00E94A2 +:100A100087069983888330E0C901DF91CF910895DB +:100A2000FC01A085B18521898C9190E0022E02C045 +:100A3000959587950A94E2F780FFF6CF0484F585B3 +:100A4000E02D6083089584E191E09093FA02809311 +:100A5000F90285E792E09093FC028093FB0285EC1B +:100A600090E09093FE028093FD0284EC90E09093DE +:100A700000038093FF0280EC90E090930203809348 +:100A8000010381EC90E0909304038093030386ECD0 +:100A900090E0909306038093050384E0809307031E +:100AA00083E08093080387E08093090385E08093C7 +:100AB0000A0381E080930B0308950F931F93CF9354 +:100AC000DF938C01EB0109C02196D801ED91FC91D7 +:100AD0000190F081E02DC801099568816623A1F796 +:100AE000DF91CF911F910F910895EF92FF920F9395 +:100AF0001F93CF93DF938C017B01EA010CC0D701D8 +:100B00006D917D01D801ED91FC910190F081E02D76 +:100B1000C80109952197209791F7DF91CF911F91F7 +:100B20000F91FF90EF9008952F923F924F925F9216 +:100B30006F927F928F929F92AF92BF92CF92DF92ED +:100B4000EF92FF920F931F93DF93CF93CDB7DEB752 +:100B5000A0970FB6F894DEBF0FBECDBF1C016A018F +:100B60007B01411551056105710549F4DC01ED91E9 +:100B7000FC910190F081E02D60E3099554C0882438 +:100B800099245401422E55246624772401E010E074 +:100B90000C0F1D1F080D191DC701B601A3019201FD +:100BA0000E949A06F80160830894811C911CA11C84 +:100BB000B11CC701B601A30192010E949A06C901A6 +:100BC000DA016C017D01C114D104E104F104F1F6F4 +:100BD00081E0E82EF12CEC0EFD1EE80CF91C3E0124 +:100BE0000894611C711CD501C4010197A109B109C8 +:100BF0006C01C818D90814C0F601EE0DFF1D608104 +:100C00006A3010F4605D01C0695CD101ED91FC9126 +:100C10000190F081E02DC10109950894E108F108E7 +:100C20006E147F0449F7A0960FB6F894DEBF0FBE8E +:100C3000CDBFCF91DF911F910F91FF90EF90DF908B +:100C4000CF90BF90AF909F908F907F906F905F906C +:100C50004F903F902F900895EF92FF920F931F9324 +:100C6000CF93DF93EC017A018B0177FF0FC0E8810E +:100C7000F9810190F081E02D6DE2099510950095C4 +:100C8000F094E094E11CF11C011D111DCE01B8018E +:100C9000A7012AE00E949405DF91CF911F910F9147 +:100CA000FF90EF900895DC012115310541F4ED919D +:100CB000FC910190F081E02D642F099508952A3070 +:100CC000310519F40E942C0608950E949405089598 +:100CD000629FD001739FF001829FE00DF11D649F20 +:100CE000E00DF11D929FF00D839FF00D749FF00DAC +:100CF000659FF00D9927729FB00DE11DF91F639F4D +:100D0000B00DE11DF91FBD01CF011124089597FB1E +:100D1000092E07260AD077FD04D049D006D000203E +:100D20001AF4709561957F4F0895F6F79095819527 +:100D30009F4F0895A1E21A2EAA1BBB1BFD010DC0F7 +:100D4000AA1FBB1FEE1FFF1FA217B307E407F5077B +:100D500020F0A21BB30BE40BF50B661F771F881F57 +:100D6000991F1A9469F760957095809590959B01ED +:100D7000AC01BD01CF01089597FB092E05260ED0C9 +:100D800057FD04D0D7DF0AD0001C38F450954095A9 +:100D9000309521953F4F4F4F5F4F0895F6F790954F +:100DA0008095709561957F4F8F4F9F4F0895AA1B37 +:100DB000BB1B51E107C0AA1FBB1FA617B70710F046 +:100DC000A61BB70B881F991F5A95A9F78095909578 +:100DD000BC01CD010895EE0FFF1F0590F491E02DA9 +:060DE0000994F894FFCF16 +:100DE60005000C000D0000000000050008000B00C7 +:0A0DF6000000000010055D05750502 +:00000001FF diff --git a/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.o b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.o new file mode 100644 index 0000000..ab1849e Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/DMX_CONTROLv3.cpp.o differ diff --git a/2009/DMX_CONTROLv3/applet/HardwareSerial.cpp.o b/2009/DMX_CONTROLv3/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..84639f2 Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/HardwareSerial.cpp.o differ diff --git a/2009/DMX_CONTROLv3/applet/Print.cpp.o b/2009/DMX_CONTROLv3/applet/Print.cpp.o new file mode 100644 index 0000000..2a415db Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/Print.cpp.o differ diff --git a/2009/DMX_CONTROLv3/applet/WInterrupts.c.o b/2009/DMX_CONTROLv3/applet/WInterrupts.c.o new file mode 100644 index 0000000..978ea90 Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/WInterrupts.c.o differ diff --git a/2009/DMX_CONTROLv3/applet/WMath.cpp.o b/2009/DMX_CONTROLv3/applet/WMath.cpp.o new file mode 100644 index 0000000..92589f7 Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/WMath.cpp.o differ diff --git a/2009/DMX_CONTROLv3/applet/core.a b/2009/DMX_CONTROLv3/applet/core.a new file mode 100644 index 0000000..f2df3b0 Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/core.a differ diff --git a/2009/DMX_CONTROLv3/applet/pins_arduino.c.o b/2009/DMX_CONTROLv3/applet/pins_arduino.c.o new file mode 100644 index 0000000..62d00ac Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/pins_arduino.c.o differ diff --git a/2009/DMX_CONTROLv3/applet/wiring.c.o b/2009/DMX_CONTROLv3/applet/wiring.c.o new file mode 100644 index 0000000..8b0a300 Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/wiring.c.o differ diff --git a/2009/DMX_CONTROLv3/applet/wiring_analog.c.o b/2009/DMX_CONTROLv3/applet/wiring_analog.c.o new file mode 100644 index 0000000..550c6c1 Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/wiring_analog.c.o differ diff --git a/2009/DMX_CONTROLv3/applet/wiring_digital.c.o b/2009/DMX_CONTROLv3/applet/wiring_digital.c.o new file mode 100644 index 0000000..a63759a Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/wiring_digital.c.o differ diff --git a/2009/DMX_CONTROLv3/applet/wiring_pulse.c.o b/2009/DMX_CONTROLv3/applet/wiring_pulse.c.o new file mode 100644 index 0000000..a7b9b7b Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/wiring_pulse.c.o differ diff --git a/2009/DMX_CONTROLv3/applet/wiring_shift.c.o b/2009/DMX_CONTROLv3/applet/wiring_shift.c.o new file mode 100644 index 0000000..ea2abcf Binary files /dev/null and b/2009/DMX_CONTROLv3/applet/wiring_shift.c.o differ diff --git a/2009/GIRO_STROBE_09/GIRO_STROBE_09.pde b/2009/GIRO_STROBE_09/GIRO_STROBE_09.pde new file mode 100644 index 0000000..6f6e020 --- /dev/null +++ b/2009/GIRO_STROBE_09/GIRO_STROBE_09.pde @@ -0,0 +1,37 @@ + +#define rele 10 +#define power_on 13 +//#define MINUTE 62609 +#define MINUTE 10000 + +unsigned long time=0; +byte flag=0; +int i=1; +int val=0; + +void setup() { + Serial.begin(19200); // set up Serial library at 9600 bps + //Serial.println("Empezamos"); + pinMode(rele, OUTPUT); + pinMode(power_on, OUTPUT); + digitalWrite(rele,LOW); + digitalWrite(power_on,HIGH); +} + +void loop() { + if (Serial.available() > 0) + { + val = Serial.read(); + if (val==0x09) + { + Serial.print(val,BYTE); + digitalWrite(rele,HIGH); + } + else if((val==0x0A)||(val==0x00)) + { + Serial.print (val,BYTE); + digitalWrite(rele,LOW); + } + } +} + diff --git a/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp new file mode 100644 index 0000000..d9c47e0 --- /dev/null +++ b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp @@ -0,0 +1,53 @@ + +#define rele 10 +#define power_on 13 +//#define MINUTE 62609 +#define MINUTE 10000 + +#include "WProgram.h" +void setup(); +void loop(); +unsigned long time=0; +byte flag=0; +int i=1; +int val=0; + +void setup() { + Serial.begin(19200); // set up Serial library at 9600 bps + Serial.println("Empezamos"); + pinMode(rele, OUTPUT); + pinMode(power_on, OUTPUT); + digitalWrite(rele,LOW); + digitalWrite(power_on,HIGH); +} + +void loop() { + if (Serial.available() > 0) + { + val = Serial.read(); + if (val==0x09) + { + Serial.print(val,BYTE); + digitalWrite(rele,HIGH); + } + else if((val==0x0A)||(val==0x00)) + { + Serial.print (val,BYTE); + digitalWrite(rele,LOW); + } + } +} + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.eep b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.elf b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.elf new file mode 100644 index 0000000..a3085de Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.elf differ diff --git a/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.hex b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.hex new file mode 100644 index 0000000..21054ea --- /dev/null +++ b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.hex @@ -0,0 +1,175 @@ +:100000000C9462000C948A000C948A000C948A0070 +:100010000C948A000C948A000C948A000C948A0038 +:100020000C948A000C948A000C948A000C948A0028 +:100030000C948A000C948A000C948A000C948A0018 +:100040000C94EB000C948A000C94DA010C948A0056 +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C948A000C948A000000000024002700F1 +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C00000005F0311241FBECFEFD8E0DEBFCDBF1D +:1000D00011E0A0E0B1E0E2EBFAE002C005900D9281 +:1000E000A431B107D9F711E0A4E1B1E001C01D923C +:1000F000A63BB107E1F710E0C4ECD0E004C02297C2 +:10010000FE010E945305C23CD107C9F70E94E400DA +:100110000C9457050C94000083EA91E00E941003B0 +:10012000882371F183EA91E00E94240390931501E2 +:10013000809314018930910579F483EA91E049E0D4 +:1001400050E060E070E020E030E00E94B9048AE016 +:1001500061E00E948D0108958A30910511F00097A9 +:1001600079F4AC01662757FD6095762F83EA91E01C +:1001700020E030E00E94B9048AE060E00E948D0136 +:1001800008950F931F9303EA11E0C80140E05BE478 +:1001900060E070E00E941702C80160E071E00E9418 +:1001A000EF038AE061E00E946D018DE061E00E9452 +:1001B0006D018AE060E00E948D018DE061E00E94A7 +:1001C0008D011F910F9108950E9433010E94C1007B +:1001D0000E948C00FDCF1F920F920FB60F92112438 +:1001E0002F933F938F939F93AF93BF9380911A0167 +:1001F00090911B01A0911C01B0911D0130911E0135 +:100200000196A11DB11D232F2D5F2D3720F02D57F5 +:100210000196A11DB11D20931E0180931A01909398 +:100220001B01A0931C01B0931D01809116019091B8 +:100230001701A0911801B09119010196A11DB11DDE +:100240008093160190931701A0931801B0931901A0 +:10025000BF91AF919F918F913F912F910F900FBEC2 +:100260000F901F901895789484B5826084BD84B5F2 +:10027000816084BD85B5826085BD85B5816085BDA1 +:10028000EEE6F0E0808181608083E1E8F0E080814B +:1002900082608083808181608083E0E8F0E08081FB +:1002A00081608083E1EBF0E0808184608083E0EB1B +:1002B000F0E0808181608083EAE7F0E08081846003 +:1002C000808380818260808380818160808380815F +:1002D000806880831092C1000895282F30E0C90102 +:1002E00086569F4FFC0194912A573F4FF901849104 +:1002F000882391F0E82FF0E0EE0FFF1FE859FF4F41 +:10030000A591B491662329F48C91909589238C93BF +:1003100008958C91892B8C930895482F50E0CA0141 +:1003200082559F4FFC012491CA0186569F4FFC01C4 +:1003300094914A575F4FFA0134913323D1F122232C +:1003400031F1233021F4809180008F7705C0243073 +:1003500031F4809180008F7D8093800018C021301F +:1003600019F484B58F7704C0223021F484B58F7DD1 +:1003700084BD0DC0263021F48091B0008F7705C078 +:10038000273029F48091B0008F7D8093B000E32F57 +:10039000F0E0EE0FFF1FEE58FF4FA591B4916623DA +:1003A00029F48C91909589238C9308958C91892BB5 +:1003B0008C9308951F920F920FB60F9211242F93D2 +:1003C0003F934F935F936F937F938F939F93AF93DD +:1003D000BF93EF93FF934091C600E0919F01F0918E +:1003E000A001CF01019660E870E00E94ED049C013D +:1003F0008091A1019091A2012817390739F0E15E9F +:10040000FE4F40833093A00120939F01FF91EF9115 +:10041000BF91AF919F918F917F916F915F914F911C +:100420003F912F910F900FBE0F901F9018955F92E4 +:100430006F927F928F929F92AF92BF92CF92DF92F4 +:10044000EF92FF920F931F93CF93DF93EC013A014A +:100450004B01413482E458078FE0680780E0780759 +:100460000CF07FC060E874E88EE190E0A401930195 +:100470000E9422052150304040405040CA01B9013D +:1004800022E030E040E050E00E94220559016A017C +:10049000A6019501209530954095509594E0220F46 +:1004A000331F441F551F9A95D1F760E074E284EF23 +:1004B00090E00E942205CA01B9012FEF30E040E030 +:1004C00050E00E94CE04A40193010E942205C901BC +:1004D00081509F4F181619061CF4522E5A9403C0CF +:1004E00055245394521A60E079E08DE390E0A40122 +:1004F00093010E9422052150304040405040CA01E3 +:10050000B90122E030E040E050E00E942205209551 +:1005100030954095509583E0220F331F441F551F9F +:100520008A95D1F760E074E284EF90E00E942205A2 +:10053000CA01B9012FEF30E040E050E00E94CE0444 +:10054000A40193010E942205C90181509F4F1816F2 +:1005500019061CF4822F815002C081E0821B851590 +:1005600000F5E885F98581E090E00A8802C0880FEF +:10057000991F0A94E2F7808360E079E08DE390E0D0 +:10058000A40193010E942205215030404040504078 +:10059000CA01B90122E030E040E050E00E942205AB +:1005A00004C0E885F98510829501EC81FD813083D6 +:1005B000EE81FF812083EA85FB85208141E050E0C8 +:1005C000CA010E8402C0880F991F0A94E2F7282BF3 +:1005D0002083EA85FB852081CA010F8402C0880F31 +:1005E000991F0A94E2F7282B2083EA85FB858081F6 +:1005F000088802C0440F551F0A94E2F7842B8083B9 +:10060000DF91CF911F910F91FF90EF90DF90CF90EE +:10061000BF90AF909F908F907F906F905F90089564 +:10062000DC011296ED91FC911397E058FF4F8191F8 +:10063000919180589F4F20813181821B930B60E8FC +:1006400070E00E94ED040895CF93DF93DC011296D1 +:10065000ED91FC911397EF01CE57DF4F48815981FF +:10066000E058FF4F80819181E058F0408417950752 +:1006700019F42FEF3FEF0CC0E40FF51F2081CA01E2 +:10068000019660E870E00E94ED049983888330E071 +:10069000C901DF91CF910895FC01A085B185218921 +:1006A0008C9190E0022E02C0959587950A94E2F70E +:1006B00080FFF6CF0484F585E02D608308958EE0F9 +:1006C00091E09093A4018093A3018FE191E0909336 +:1006D000A6018093A50185EC90E09093A8018093FA +:1006E000A70184EC90E09093AA018093A90180EC8B +:1006F00090E09093AC018093AB0181EC90E09093FB +:10070000AE018093AD0186EC90E09093B0018093B0 +:10071000AF0184E08093B10183E08093B20187E070 +:100720008093B30185E08093B40181E08093B501AB +:1007300008950F931F93CF93DF938C01EB0109C0B2 +:100740002196D801ED91FC910190F081E02DC80136 +:10075000099568816623A1F7DF91CF911F910F91D1 +:100760000895EF92FF920F931F93CF93DF938C0125 +:100770007B01EA010CC0D7016D917D01D801ED919B +:10078000FC910190F081E02DC801099521972097F7 +:1007900091F7DF91CF911F910F91FF90EF90089506 +:1007A000DC01ED91FC910280F381E02D0995089523 +:1007B0000F931F938C01DC01ED91FC910190F0816E +:1007C000E02D6DE00995D801ED91FC910190F0814B +:1007D000E02DC8016AE009951F910F9108950F93CC +:1007E0001F938C010E94D003C8010E94D8031F915F +:1007F0000F9108952F923F924F925F926F927F9246 +:100800008F929F92AF92BF92CF92DF92EF92FF9220 +:100810000F931F93DF93CF93CDB7DEB7A0970FB69B +:10082000F894DEBF0FBECDBF1C016A017B014115EC +:1008300051056105710549F4DC01ED91FC910190D0 +:10084000F081E02D60E3099554C088249924540177 +:10085000422E55246624772401E010E00C0F1D1F62 +:10086000080D191DC701B601A30192010E940005E0 +:10087000F80160830894811C911CA11CB11CC70164 +:10088000B601A30192010E940005C901DA016C01C1 +:100890007D01C114D104E104F104F1F681E0E82EF8 +:1008A000F12CEC0EFD1EE80CF91C3E010894611CB5 +:1008B000711CD501C4010197A109B1096C01C818C7 +:1008C000D90814C0F601EE0DFF1D60816A3010F4E6 +:1008D000605D01C0695CD101ED91FC910190F081F6 +:1008E000E02DC10109950894E108F1086E147F0418 +:1008F00049F7A0960FB6F894DEBF0FBECDBFCF91DB +:10090000DF911F910F91FF90EF90DF90CF90BF90FC +:10091000AF909F908F907F906F905F904F903F909F +:100920002F900895EF92FF920F931F93CF93DF9331 +:10093000EC017A018B0177FF0FC0E881F98101900A +:10094000F081E02D6DE2099510950095F094E0940A +:10095000E11CF11C011D111DCE01B801A7012AE007 +:100960000E94FA03DF91CF911F910F91FF90EF90BA +:100970000895DC012115310541F4ED91FC910190C0 +:10098000F081E02D642F099508952A30310519F47E +:100990000E94920408950E94FA030895629FD00174 +:1009A000739FF001829FE00DF11D649FE00DF11D2A +:1009B000929FF00D839FF00D749FF00D659FF00DD9 +:1009C0009927729FB00DE11DF91F639FB00DE11DC6 +:1009D000F91FBD01CF011124089597FB092E0726A9 +:1009E0000AD077FD04D049D006D000201AF47095C3 +:1009F00061957F4F0895F6F7909581959F4F0895E3 +:100A0000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F12 +:100A1000EE1FFF1FA217B307E407F50720F0A21B84 +:100A2000B30BE40BF50B661F771F881F991F1A94F1 +:100A300069F760957095809590959B01AC01BD011B +:100A4000CF01089597FB092E05260ED057FD04D03F +:100A5000D7DF0AD0001C38F4509540953095219589 +:100A60003F4F4F4F5F4F0895F6F7909580957095E3 +:100A700061957F4F8F4F9F4F0895AA1BBB1B51E17C +:100A800007C0AA1FBB1FA617B70710F0A61BB70BFE +:100A9000881F991F5A95A9F780959095BC01CD01A3 +:100AA0000895EE0FFF1F0590F491E02D0994F8943E +:020AB000FFCF76 +:100AB200456D70657A616D6F7300000000004C0334 +:040AC2009903B103E0 +:00000001FF diff --git a/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.o b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.o new file mode 100644 index 0000000..577128c Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/GIRO_STROBE_09.cpp.o differ diff --git a/2009/GIRO_STROBE_09/applet/HardwareSerial.cpp.o b/2009/GIRO_STROBE_09/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..84639f2 Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/HardwareSerial.cpp.o differ diff --git a/2009/GIRO_STROBE_09/applet/Print.cpp.o b/2009/GIRO_STROBE_09/applet/Print.cpp.o new file mode 100644 index 0000000..2a415db Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/Print.cpp.o differ diff --git a/2009/GIRO_STROBE_09/applet/WInterrupts.c.o b/2009/GIRO_STROBE_09/applet/WInterrupts.c.o new file mode 100644 index 0000000..978ea90 Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/WInterrupts.c.o differ diff --git a/2009/GIRO_STROBE_09/applet/WMath.cpp.o b/2009/GIRO_STROBE_09/applet/WMath.cpp.o new file mode 100644 index 0000000..92589f7 Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/WMath.cpp.o differ diff --git a/2009/GIRO_STROBE_09/applet/core.a b/2009/GIRO_STROBE_09/applet/core.a new file mode 100644 index 0000000..8647c73 Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/core.a differ diff --git a/2009/GIRO_STROBE_09/applet/pins_arduino.c.o b/2009/GIRO_STROBE_09/applet/pins_arduino.c.o new file mode 100644 index 0000000..62d00ac Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/pins_arduino.c.o differ diff --git a/2009/GIRO_STROBE_09/applet/wiring.c.o b/2009/GIRO_STROBE_09/applet/wiring.c.o new file mode 100644 index 0000000..8b0a300 Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/wiring.c.o differ diff --git a/2009/GIRO_STROBE_09/applet/wiring_analog.c.o b/2009/GIRO_STROBE_09/applet/wiring_analog.c.o new file mode 100644 index 0000000..550c6c1 Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/wiring_analog.c.o differ diff --git a/2009/GIRO_STROBE_09/applet/wiring_digital.c.o b/2009/GIRO_STROBE_09/applet/wiring_digital.c.o new file mode 100644 index 0000000..a63759a Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/wiring_digital.c.o differ diff --git a/2009/GIRO_STROBE_09/applet/wiring_pulse.c.o b/2009/GIRO_STROBE_09/applet/wiring_pulse.c.o new file mode 100644 index 0000000..a7b9b7b Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/wiring_pulse.c.o differ diff --git a/2009/GIRO_STROBE_09/applet/wiring_shift.c.o b/2009/GIRO_STROBE_09/applet/wiring_shift.c.o new file mode 100644 index 0000000..ea2abcf Binary files /dev/null and b/2009/GIRO_STROBE_09/applet/wiring_shift.c.o differ diff --git a/2009/Lalalab/firmware_lalalab2/applet/HardwareSerial.cpp.o b/2009/Lalalab/firmware_lalalab2/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..51be3f6 Binary files /dev/null and b/2009/Lalalab/firmware_lalalab2/applet/HardwareSerial.cpp.o differ diff --git a/2009/Lalalab/firmware_lalalab2/applet/Print.cpp.o b/2009/Lalalab/firmware_lalalab2/applet/Print.cpp.o new file mode 100644 index 0000000..ead3a13 Binary files /dev/null and b/2009/Lalalab/firmware_lalalab2/applet/Print.cpp.o differ diff --git a/2009/Lalalab/firmware_lalalab2/applet/WInterrupts.c.o b/2009/Lalalab/firmware_lalalab2/applet/WInterrupts.c.o new file mode 100644 index 0000000..c33f0c3 Binary files /dev/null and b/2009/Lalalab/firmware_lalalab2/applet/WInterrupts.c.o differ diff --git a/2009/Lalalab/firmware_lalalab2/applet/WMath.cpp.o b/2009/Lalalab/firmware_lalalab2/applet/WMath.cpp.o new file mode 100644 index 0000000..aa6d029 Binary files /dev/null and b/2009/Lalalab/firmware_lalalab2/applet/WMath.cpp.o differ diff --git a/2009/Lalalab/firmware_lalalab2/applet/core.a b/2009/Lalalab/firmware_lalalab2/applet/core.a new file mode 100644 index 0000000..429b409 Binary files /dev/null and b/2009/Lalalab/firmware_lalalab2/applet/core.a differ diff --git a/2009/Lalalab/firmware_lalalab2/applet/firmware_lalalab2.cpp b/2009/Lalalab/firmware_lalalab2/applet/firmware_lalalab2.cpp new file mode 100644 index 0000000..892f155 --- /dev/null +++ b/2009/Lalalab/firmware_lalalab2/applet/firmware_lalalab2.cpp @@ -0,0 +1,364 @@ +//NOTA OJOJOJOJOJOJOJO CUIDADO \u00aa!!!!!!!!!!! +// EL VALOR DE UMBRAL CAMBIA + +//SETTUP PARA CADA PLACA +#include "WProgram.h" +void setup(); +void loop(); +void readSensor(); +void Xbeetx(int id, int dat); +void SendXbee(); +void readByte(); +void sendUp(); +void simplificamosRFID(); +void actualizamosRFID(); +void blink(int thisPin, int howManyTimes); +void playTone(); +void pitidoPositivo(); +void pitidoParada(); +void pitidoNegativo(); +int boarNumber = 17; //Board Number change this value for each board +int umbral = 20; //VER NOTA ARRIBA, SI ES ACELEROMETRO UMBRAL = 20 /cajas 17,18,19 y 20 = 40 +boolean dosSensores = true; //depende del tipo de placa 1 o 2 sensores analogicos +#define dataRate 9600 // for RFID reader + // TONES ========================================== +// Start by defining the relationship between +// note, period, & frequency. +#define c 3830 // 261 Hz +#define d 3400 // 294 Hz +#define e 3038 // 329 Hz +#define f 2864 // 349 Hz +#define g 2550 // 392 Hz +#define a 2272 // 440 Hz +#define b 2028 // 493 Hz +#define C 1912 // 523 Hz +// Define a special note, 'R', to represent a rest +#define R 0 + +// SETUP ============================================ +// Set up speaker on a PWM pin (digital 9, 10 or 11) +int speakerOut = 9; + +// MELODY and TIMING ======================================= +// melody[] is an array of notes, accompanied by beats[], +// which sets each note's relative length (higher #, longer note) +int melodyStart[] = { C, b, g, C, R}; +int beatsStart[] = { 16, 16, 16, 8, 32}; + +int melodyStop[] = { b, e}; +int beatsStop[] = { 8, 16}; + +int melodyNo[] = { c }; +int beatsNo[] = { 32}; + +int MAX_COUNT1 = sizeof(melodyStart)/2; // Melody length, for looping. +int MAX_COUNT2 = sizeof(melodyStop)/2; // Melody length, for looping. +int MAX_COUNT3 = sizeof(melodyNo)/2; // Melody length, for looping. + +// Set overall tempo +long tempo = 10000; +// Set length of pause between notes +int pause = 1000; +// Loop variable to increase Rest length +int rest_count = 100; //<-BLETCHEROUS HACK; See NOTES + +// Initialize core variables +int tone = 0; +int beat = 0; +long duration = 0; + +//THE TAG-RFID READER +char code[10]; // var that will hold the bytes-in read from the serialBuffer +char oldCode[10]; //para guardar la ultimo TAG-RFID y poder compara con el nuevo +char miniCode[4]; //var para enviar solo los ultimos 4 digitos del codigo del RFID +int val = 0; //variable para guardar codigos temporal +int valX = 0; +int valY = 0; +int valZ = 0; +int valInfrarred = 0; +int diff = 0; +int bytesread = 0; //variable para guardar el numero de decimales leidos del RFID + +long time1; +long timeOld1; +long difTime1 = 0; +long difTimeUmbral1 = 5000; //envia que el sensor esta activo cada 5 segudos + +//////////////////////////////////////////////////////////////////// + +int lowbat = 13; // Pin de bateria baja +int nivel = 3; //Sensor de nivel de bateria +int xbee = 4; //Pin de activacion del xbee +int buzzer = 9; + +int i=0; +int rfid_ok=0; +int id=0; +int ini=20; +int env=3; + +void setup() +{ + + digitalWrite(xbee, HIGH); //Habilito XBEE + //encendemos el led + pinMode(speakerOut, OUTPUT); + + Serial.begin(9600); + pinMode(lowbat, OUTPUT); + pinMode(xbee, OUTPUT); + + for (i = 5; i < 9; i++) pinMode(i, INPUT); + for (i = 5; i < 9; i++) + { + if (digitalRead(i)) + { + if (i==5) val=1; + else if (i==6) val=2; + else if (i==7) val=4; + else if (i==8) val=8; + id=id+val; + } + } + id = 21;//en n futuro cogerlo de los pines + + blink(13,3); // blink an LED: + + //pitido positivo + pitidoPositivo(); + + //inicializamos miniCode a 0 + for (int i = 0; i<3; i++) { + miniCode[i]='0'; + } + miniCode[3]=0; + + //inicializamos code a 0 + for (int i = 0; i<9; i++) { + code[i]='0'; + oldCode[i] = '0'; + } + code[9]=0; + oldCode[9]=0; + +} + + +void loop() +{ + readByte(); + + readSensor(); + + sendUp(); + + delay(100); + +} + +void readSensor(){ + + valX=analogRead(0); //tres ejes acelerometro + valY=analogRead(1); //tres ejes acelerometro + valZ=analogRead(2); //tres ejes acelerometro + valInfrarred=analogRead(4); //infrarrojo + + //difX = abs(valXold - valX); + //difY = abs(valYold - valY); + //difZ = abs(valZold - valZ); + //difInfrarred = abs(valInfrarrdOld - valInfrarred); + + SendXbee(); +} + +void Xbeetx(int id, int dat){ + Serial.print((id<<4)||(dat>>4),BYTE); + Serial.print((id<<4)||(0x0F&dat),BYTE); +} + +void SendXbee(){ + Serial.print(id,DEC); //id + delay(env); + Serial.print(":"); + delay(env); + Serial.print(miniCode); + delay(env); + Serial.print(":"); + delay(env); + + Serial.print(map(valX, 0, 675, 0, 255),DEC); + delay(env); + Serial.print(":"); + delay(env); + Serial.print(map(valY, 0, 675, 0, 255),DEC); + delay(env); + Serial.print(":"); + delay(env); + Serial.print(map(valZ, 0, 675, 0, 255),DEC); + delay(env); + Serial.print(":"); + delay(env); + + Serial.println(map(valInfrarred, 0, 675, 0, 255),DEC); + delay(env); +} + +void readByte(){ + bytesread=0; + + while (Serial.available()>0) + { + val=Serial.read(); //RFID + code[bytesread] = val; + bytesread++; + + if(bytesread == 10){ + //comparamos si el nuevo codigo es igual al anterior (se lee el mismo tag dos veces) + if (memcmp(code,oldCode, 10) == 0){ //si son iguales + pitidoNegativo(); + }else{ //SI SON DISTINTOS (el nuevo codigo es diferente) + actualizamosRFID(); + simplificamosRFID(); + pitidoPositivo(); + } + } + + } +} + +void sendUp(){ + + time1 = millis(); //record the actual time + difTime1 = abs(time1 - timeOld1); //calculate de diference time from last reading + + if (difTime1 > difTimeUmbral1){ + val=analogRead(nivel); //bateria + if (val<=614) digitalWrite(lowbat, LOW); //Umbral de bateria baja 3v, que equivale a 614 + else digitalWrite(lowbat, HIGH); + + Serial.print(boarNumber, DEC); + delay(env); + Serial.print(":c:"); + delay(env); + Serial.print(map(val, 0, 860, 0, 810),DEC); //El maximo de tension de la bateria son 4'2v, que equivale a 860 + delay(env); + timeOld1 = time1; + } + +} + +void simplificamosRFID() { //simplificamos el codigo del RFID a los 4 ultimos valores + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=code[7+i]; + } + miniCode[3]=0; +} + +void actualizamosRFID() { + + for (int i = 0; i < 10; i++){ //guardamos el valor del RFID en memoria + oldCode[i] = code[i]; + } + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=oldCode[7+i]; + } + miniCode[3]=0; +} + + +/* + blink method blinks an LED a given number of times + */ +void blink(int thisPin, int howManyTimes) { + // set the LED's pin as an output: + pinMode(thisPin, OUTPUT); + // blink the LED: + for (int t = 0; t < howManyTimes; t++) { + digitalWrite(thisPin, HIGH); + delay(200); + digitalWrite(thisPin, LOW); + delay(200); + } +} + +// PLAY TONE ============================================== +// Pulse the speaker to play a tone for a particular duration +void playTone() { + long elapsed_time = 0; + if (tone > 0) { // if this isn't a Rest beat, while the tone has + // played less long than 'duration', pulse speaker HIGH and LOW + while (elapsed_time < duration) { + + digitalWrite(speakerOut,HIGH); + delayMicroseconds(tone / 2); + + // DOWN + digitalWrite(speakerOut, LOW); + delayMicroseconds(tone / 2); + + // Keep track of how long we pulsed + elapsed_time += (tone); + } + } + else { // Rest beat; loop times delay + for (int j = 0; j < rest_count; j++) { // See NOTE on rest_count + delayMicroseconds(duration); + } + } +} + + +void pitidoPositivo() { + + for (int i=0; i0) + { + val=Serial.read(); //RFID + code[bytesread] = val; + bytesread++; + + if(bytesread == 10){ + //comparamos si el nuevo codigo es igual al anterior (se lee el mismo tag dos veces) + if (memcmp(code,oldCode, 10) == 0){ //si son iguales + pitidoNegativo(); + }else{ //SI SON DISTINTOS (el nuevo codigo es diferente) + actualizamosRFID(); + simplificamosRFID(); + pitidoPositivo(); + } + } + + } +} + +void sendUp(){ + + time1 = millis(); //record the actual time + difTime1 = abs(time1 - timeOld1); //calculate de diference time from last reading + + if (difTime1 > difTimeUmbral1){ + val=analogRead(nivel); //bateria + if (val<=614) digitalWrite(lowbat, LOW); //Umbral de bateria baja 3v, que equivale a 614 + else digitalWrite(lowbat, HIGH); + + Serial.print(boarNumber, DEC); + delay(env); + Serial.print(":c:"); + delay(env); + Serial.print(map(val, 0, 860, 0, 810),DEC); //El maximo de tension de la bateria son 4'2v, que equivale a 860 + delay(env); + timeOld1 = time1; + } + +} + +void simplificamosRFID() { //simplificamos el codigo del RFID a los 4 ultimos valores + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=code[7+i]; + } + miniCode[3]=0; +} + +void actualizamosRFID() { + + for (int i = 0; i < 10; i++){ //guardamos el valor del RFID en memoria + oldCode[i] = code[i]; + } + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=oldCode[7+i]; + } + miniCode[3]=0; +} + + +/* + blink method blinks an LED a given number of times + */ +void blink(int thisPin, int howManyTimes) { + // set the LED's pin as an output: + pinMode(thisPin, OUTPUT); + // blink the LED: + for (int t = 0; t < howManyTimes; t++) { + digitalWrite(thisPin, HIGH); + delay(200); + digitalWrite(thisPin, LOW); + delay(200); + } +} + +// PLAY TONE ============================================== +// Pulse the speaker to play a tone for a particular duration +void playTone() { + long elapsed_time = 0; + if (tone > 0) { // if this isn't a Rest beat, while the tone has + // played less long than 'duration', pulse speaker HIGH and LOW + while (elapsed_time < duration) { + + digitalWrite(speakerOut,HIGH); + delayMicroseconds(tone / 2); + + // DOWN + digitalWrite(speakerOut, LOW); + delayMicroseconds(tone / 2); + + // Keep track of how long we pulsed + elapsed_time += (tone); + } + } + else { // Rest beat; loop times delay + for (int j = 0; j < rest_count; j++) { // See NOTE on rest_count + delayMicroseconds(duration); + } + } +} + + +void pitidoPositivo() { + + for (int i=0; i>4),BYTE); + delay(env); + Serial.print((id<<4)|(0x0F&dat),BYTE); + delay(env); +} + +void SendXbee(){ + + Serial.print(0xF0|id,BYTE); + for (int i=0;i<3;i++) Xbeetx(id,miniCode[i]); + Xbeetx(id,map(valX, 0, 675, 0, 255)); + Xbeetx(id,map(valY, 0, 675, 0, 255)); + Xbeetx(id,map(valZ, 0, 675, 0, 255)); + Xbeetx(id,map(valInfrarred, 0, 675, 0, 255)); + Serial.println(); + delay(env); + +} + +void readByte(){ + bytesread=0; + + while (Serial.available()>0) + { + val=Serial.read(); //RFID + code[bytesread] = val; + bytesread++; + + if(bytesread == 10){ + //comparamos si el nuevo codigo es igual al anterior (se lee el mismo tag dos veces) + if (memcmp(code,oldCode, 10) == 0){ //si son iguales + pitidoNegativo(); + }else{ //SI SON DISTINTOS (el nuevo codigo es diferente) + actualizamosRFID(); + simplificamosRFID(); + pitidoPositivo(); + } + } + + } +} + +void sendUp(){ + + time1 = millis(); //record the actual time + difTime1 = abs(time1 - timeOld1); //calculate de diference time from last reading + + if (difTime1 > difTimeUmbral1){ + val=analogRead(nivel); //bateria + if (val<=614) digitalWrite(lowbat, LOW); //Umbral de bateria baja 3v, que equivale a 614 + else digitalWrite(lowbat, HIGH); + + /*Serial.print(id, DEC); + delay(env); + Serial.print(":c:"); + delay(env); + Serial.print(map(val, 0, 860, 0, 810),DEC); //El maximo de tension de la bateria son 4'2v, que equivale a 860 + delay(env);*/ + timeOld1 = time1; + } + +} + +void simplificamosRFID() { //simplificamos el codigo del RFID a los 4 ultimos valores + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=code[7+i]; + } + miniCode[3]=0; +} + +void actualizamosRFID() { + + for (int i = 0; i < 10; i++){ //guardamos el valor del RFID en memoria + oldCode[i] = code[i]; + } + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=oldCode[7+i]; + } + miniCode[3]=0; +} + + +/* + blink method blinks an LED a given number of times + */ +void blink(int thisPin, int howManyTimes) { + // set the LED's pin as an output: + pinMode(thisPin, OUTPUT); + // blink the LED: + for (int t = 0; t < howManyTimes; t++) { + digitalWrite(thisPin, HIGH); + delay(200); + digitalWrite(thisPin, LOW); + delay(200); + } +} + +// PLAY TONE ============================================== +// Pulse the speaker to play a tone for a particular duration +void playTone() { + long elapsed_time = 0; + if (tone > 0) { // if this isn't a Rest beat, while the tone has + // played less long than 'duration', pulse speaker HIGH and LOW + while (elapsed_time < duration) { + + digitalWrite(speakerOut,HIGH); + delayMicroseconds(tone / 2); + + // DOWN + digitalWrite(speakerOut, LOW); + delayMicroseconds(tone / 2); + + // Keep track of how long we pulsed + elapsed_time += (tone); + } + } + else { // Rest beat; loop times delay + for (int j = 0; j < rest_count; j++) { // See NOTE on rest_count + delayMicroseconds(duration); + } + } +} + + +void pitidoPositivo() { + + for (int i=0; i>4),BYTE); + delay(env); + Serial.print((id<<4)|(0x0F&dat),BYTE); + delay(env); +} + +void SendXbee(){ + + Serial.print(0xF0|id,BYTE); + for (int i=0;i<3;i++) Xbeetx(id,miniCode[i]); + Xbeetx(id,map(valX, 0, 675, 0, 255)); + Xbeetx(id,map(valY, 0, 675, 0, 255)); + Xbeetx(id,map(valZ, 0, 675, 0, 255)); + Xbeetx(id,map(valInfrarred, 0, 675, 0, 255)); + Serial.println(); + delay(env); + +} + +void readByte(){ + bytesread=0; + + while (Serial.available()>0) + { + val=Serial.read(); //RFID + code[bytesread] = val; + bytesread++; + + if(bytesread == 10){ + //comparamos si el nuevo codigo es igual al anterior (se lee el mismo tag dos veces) + if (memcmp(code,oldCode, 10) == 0){ //si son iguales + pitidoNegativo(); + }else{ //SI SON DISTINTOS (el nuevo codigo es diferente) + actualizamosRFID(); + simplificamosRFID(); + pitidoPositivo(); + } + } + + } +} + +void sendUp(){ + + time1 = millis(); //record the actual time + difTime1 = abs(time1 - timeOld1); //calculate de diference time from last reading + + if (difTime1 > difTimeUmbral1){ + val=analogRead(nivel); //bateria + if (val<=614) digitalWrite(lowbat, LOW); //Umbral de bateria baja 3v, que equivale a 614 + else digitalWrite(lowbat, HIGH); + + /*Serial.print(id, DEC); + delay(env); + Serial.print(":c:"); + delay(env); + Serial.print(map(val, 0, 860, 0, 810),DEC); //El maximo de tension de la bateria son 4'2v, que equivale a 860 + delay(env);*/ + timeOld1 = time1; + } + +} + +void simplificamosRFID() { //simplificamos el codigo del RFID a los 4 ultimos valores + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=code[7+i]; + } + miniCode[3]=0; +} + +void actualizamosRFID() { + + for (int i = 0; i < 10; i++){ //guardamos el valor del RFID en memoria + oldCode[i] = code[i]; + } + + for (int i = 0; i<3; i++) { //guardamos el valor corto del RFID + miniCode[i]=oldCode[7+i]; + } + miniCode[3]=0; +} + + +/* + blink method blinks an LED a given number of times + */ +void blink(int thisPin, int howManyTimes) { + // set the LED's pin as an output: + pinMode(thisPin, OUTPUT); + // blink the LED: + for (int t = 0; t < howManyTimes; t++) { + digitalWrite(thisPin, HIGH); + delay(200); + digitalWrite(thisPin, LOW); + delay(200); + } +} + +// PLAY TONE ============================================== +// Pulse the speaker to play a tone for a particular duration +void playTone() { + long elapsed_time = 0; + if (tone > 0) { // if this isn't a Rest beat, while the tone has + // played less long than 'duration', pulse speaker HIGH and LOW + while (elapsed_time < duration) { + + digitalWrite(speakerOut,HIGH); + delayMicroseconds(tone / 2); + + // DOWN + digitalWrite(speakerOut, LOW); + delayMicroseconds(tone / 2); + + // Keep track of how long we pulsed + elapsed_time += (tone); + } + } + else { // Rest beat; loop times delay + for (int j = 0; j < rest_count; j++) { // See NOTE on rest_count + delayMicroseconds(duration); + } + } +} + + +void pitidoPositivo() { + + for (int i=0; i0) + { + val=Serial.read(); + id=val>>4; + dat=val&0x0F; + //Serial.print(val,BYTE); + if (id==15) { + cont[dat]=0; + flag_ok[dat]=1; + } + else if (flag_ok[id]) + { + bufferid[id][cont[id]]=dat; + cont[id]=cont[id]+1; + } + } + for (int i=0;i<15;i++) + { + if ((cont[i]==14)&&(flag_ok[i])) + { + //Serial.println(); + flag_ok[i]=0; + Serial.print(i,DEC); + Serial.print(":"); + Serial.print(bufferid[i][0]<<4|(0x0F&bufferid[i][1]),DEC); + Serial.print(bufferid[i][2]<<4|(0x0F&bufferid[i][3]),DEC); + Serial.print(bufferid[i][4]<<4|(0x0F&bufferid[i][5]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][6]<<4|(0x0F&bufferid[i][7]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][8]<<4|(0x0F&bufferid[i][9]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][10]<<4|(0x0F&bufferid[i][11]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][12]<<4|(0x0F&bufferid[i][13]),DEC); + Serial.println(); + cont[i]=0; + } + } + +} + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.eep b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.elf b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.elf new file mode 100644 index 0000000..3e560bf Binary files /dev/null and b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.elf differ diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.hex b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.hex new file mode 100644 index 0000000..c8aef7d --- /dev/null +++ b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.hex @@ -0,0 +1,185 @@ +:100000000C9435000C945D000C945D000C945D0024 +:100010000C945D000C945D000C945D000C945D00EC +:100020000C945D000C945D000C945D000C945D00DC +:100030000C945D000C945D000C945D000C945D00CC +:100040000C94BF010C945D000C9441020C945D0073 +:100050000C945D000C945D000C945D000C945D00AC +:100060000C945D000C945D00C60311241FBECFEFFD +:10007000D4E0DEBFCDBF11E0A0E0B1E0EAE6FBE0F6 +:1000800002C005900D92AC30B107D9F712E0ACE098 +:10009000B1E001C01D92AF39B107E1F710E0CAE647 +:1000A000D0E004C02297FE010E94AF05C836D107F8 +:1000B000C9F70E94B8010C94B3050C940000AF92EC +:1000C000BF92CF92DF92EF92FF920F931F93CF9345 +:1000D000DF938CE892E00E9477038823F1F18CE8AB +:1000E00092E00E948B0380930E01282F30E044E0C1 +:1000F000359527954A95E1F720930C01682F6F708D +:1001000060930D012F3059F4E62FF0E0DF01AF517D +:10011000BE4F1C92E051FE4F81E080831EC0422FF3 +:1001200050E0FA01E051FE4F80818823B1F0DA01FE +:10013000AF51BE4F2C91CA01880F991FFC0103E0FB +:10014000EE0FFF1F0A95E1F7E81BF90BE20FF11D17 +:10015000E15FFE4F60832F5F2C9311EEC12E11E003 +:10016000D12EB0EFAB2EB1E0BB2ECFE0D1E0EE242C +:10017000FF248701F60180818E3009F0D3C0F5019C +:100180008081882309F4CEC010828CE892E0B80107 +:10019000A7012AE030E00E9415058CE892E060E0BB +:1001A00071E00E943704498150E04F70507088819F +:1001B00090E0A4E0880F991FAA95E1F7482B592BEE +:1001C000662757FD6095762F8CE892E02AE030E0B4 +:1001D0000E9415054B8150E04F7050708A8190E06D +:1001E000F4E0880F991FFA95E1F7482B592B662701 +:1001F00057FD6095762F8CE892E02AE030E00E946F +:1002000015054D8150E04F7050708C8190E0E4E016 +:10021000880F991FEA95E1F7482B592B662757FD60 +:100220006095762F8CE892E02AE030E00E94150578 +:100230008CE892E060E071E00E9437044F8150E06A +:100240004F7050708E8190E074E0880F991F7A95FE +:10025000E1F7482B592B662757FD6095762F8CE8E0 +:1002600092E02AE030E00E9415058CE892E060E020 +:1002700071E00E943704498550E04F7050708885C6 +:1002800090E064E0880F991F6A95E1F7482B592B9D +:10029000662757FD6095762F8CE892E02AE030E0E3 +:1002A0000E9415058CE892E060E071E00E9437043E +:1002B0004B8550E04F7050708A8590E034E0880F95 +:1002C000991F3A95E1F7482B592B662757FD609502 +:1002D000762F8CE892E02AE030E00E9415058CE849 +:1002E00092E060E071E00E9437044D8550E04F706D +:1002F00050708C8590E024E0880F991F2A95E1F7D3 +:10030000482B592B662757FD6095762F8CE892E095 +:100310002AE030E00E9415058CE892E00E943F043C +:10032000F60110820894C11CD11C0894A11CB11CB8 +:100330000894E11CF11C011D111D2E96F0EFCF1643 +:10034000F1E0DF0609F016CFDF91CF911F910F91F9 +:10035000FF90EF90DF90CF90BF90AF9008958CE822 +:1003600092E040E052EC61E070E00E947E0208956D +:100370000E9407020E94AF010E945F00FDCF1F9202 +:100380000F920FB60F9211242F933F938F939F9349 +:10039000AF93BF938091030290910402A091050254 +:1003A000B0910602309107020196A11DB11D232FC5 +:1003B0002D5F2D3720F02D570196A11DB11D2093E3 +:1003C00007028093030290930402A0930502B09366 +:1003D00006028091FF0190910002A0910102B0916C +:1003E00002020196A11DB11D8093FF0190930002AE +:1003F000A0930102B0930202BF91AF919F918F91A0 +:100400003F912F910F900FBE0F901F9018957894E9 +:1004100084B5826084BD84B5816084BD85B5826009 +:1004200085BD85B5816085BDEEE6F0E080818160A7 +:100430008083E1E8F0E08081826080838081816058 +:100440008083E0E8F0E0808181608083E1EBF0E090 +:10045000808184608083E0EBF0E080818160808334 +:10046000EAE7F0E08081846080838081826080831D +:100470008081816080838081806880831092C10048 +:1004800008951F920F920FB60F9211242F933F934E +:100490004F935F936F937F938F939F93AF93BF938C +:1004A000EF93FF934091C600E0918802F09189029A +:1004B000CF01019660E870E00E9449059C0180919F +:1004C0008A0290918B022817390739F0E85FFD4FB7 +:1004D00040833093890220938802FF91EF91BF916E +:1004E000AF919F918F917F916F915F914F913F91CC +:1004F0002F910F900FBE0F901F9018955F926F92E3 +:100500007F928F929F92AF92BF92CF92DF92EF92A3 +:10051000FF920F931F93CF93DF93EC013A014B01AE +:10052000413482E458078FE0680780E078070CF0D8 +:100530007FC060E874E88EE190E0A40193010E941E +:100540007E052150304040405040CA01B90122E0B0 +:1005500030E040E050E00E947E0559016A01A601AA +:100560009501209530954095509594E0220F331FCA +:10057000441F551F9A95D1F760E074E284EF90E034 +:100580000E947E05CA01B9012FEF30E040E050E043 +:100590000E942A05A40193010E947E05C901815091 +:1005A0009F4F181619061CF4522E5A9403C0552456 +:1005B0005394521A60E079E08DE390E0A401930136 +:1005C0000E947E052150304040405040CA01B90190 +:1005D00022E030E040E050E00E947E05209530951A +:1005E0004095509583E0220F331F441F551F8A9575 +:1005F000D1F760E074E284EF90E00E947E05CA01CA +:10060000B9012FEF30E040E050E00E942A05A4013C +:1006100093010E947E05C90181509F4F181619064B +:100620001CF4822F815002C081E0821B851500F5E9 +:10063000E885F98581E090E00A8802C0880F991F5B +:100640000A94E2F7808360E079E08DE390E0A40112 +:1006500093010E947E052150304040405040CA0125 +:10066000B90122E030E040E050E00E947E0504C085 +:10067000E885F98510829501EC81FD813083EE815A +:10068000FF812083EA85FB85208141E050E0CA019B +:100690000E8402C0880F991F0A94E2F7282B20834A +:1006A000EA85FB852081CA010F8402C0880F991F4B +:1006B0000A94E2F7282B2083EA85FB85808108884D +:1006C00002C0440F551F0A94E2F7842B8083DF9108 +:1006D000CF911F910F91FF90EF90DF90CF90BF903F +:1006E000AF909F908F907F906F905F900895DC0106 +:1006F0001296ED91FC911397E058FF4F81919191E3 +:1007000080589F4F20813181821B930B60E870E0FD +:100710000E9449050895CF93DF93DC011296ED9175 +:10072000FC911397EF01CE57DF4F48815981E05874 +:10073000FF4F80819181E058F0408417950719F4AC +:100740002FEF3FEF0CC0E40FF51F2081CA01019687 +:1007500060E870E00E9449059983888330E0C90110 +:10076000DF91CF910895FC01A085B18521898C91FD +:1007700090E0022E02C0959587950A94E2F780FFDB +:10078000F6CF0484F585E02D6083089586E091E03E +:1007900090938D0280938C0288E092E090938F0278 +:1007A00080938E0285EC90E090939102809390026A +:1007B00084EC90E0909393028093920280EC90E01E +:1007C000909395028093940281EC90E0909397022D +:1007D0008093960286EC90E0909399028093980221 +:1007E00084E080939A0283E080939B0287E0809369 +:1007F0009C0285E080939D0281E080939E02089593 +:100800000F931F93CF93DF938C01EB0109C02196C7 +:10081000D801ED91FC910190F081E02DC80109957E +:1008200068816623A1F7DF91CF911F910F91089501 +:10083000EF92FF920F931F93CF93DF938C017B0175 +:10084000EA010CC0D7016D917D01D801ED91FC91B9 +:100850000190F081E02DC80109952197209791F72B +:10086000DF91CF911F910F91FF90EF900895DC01E0 +:10087000ED91FC910280F381E02D099508950F938D +:100880001F938C01DC01ED91FC910190F081E02D32 +:100890006DE00995D801ED91FC910190F081E02D7A +:1008A000C8016AE009951F910F9108952F923F9218 +:1008B0004F925F926F927F928F929F92AF92BF9270 +:1008C000CF92DF92EF92FF920F931F93DF93CF931C +:1008D000CDB7DEB7A0970FB6F894DEBF0FBECDBF81 +:1008E0001C016A017B01411551056105710549F43F +:1008F000DC01ED91FC910190F081E02D60E3099520 +:1009000054C0882499245401422E55246624772407 +:1009100001E010E00C0F1D1F080D191DC701B601E5 +:10092000A30192010E945C05F80160830894811C78 +:10093000911CA11CB11CC701B601A30192010E9428 +:100940005C05C901DA016C017D01C114D104E10427 +:10095000F104F1F681E0E82EF12CEC0EFD1EE80C1E +:10096000F91C3E010894611C711CD501C40101975A +:10097000A109B1096C01C818D90814C0F601EE0D1F +:10098000FF1D60816A3010F4605D01C0695CD101B7 +:10099000ED91FC910190F081E02DC1010995089441 +:1009A000E108F1086E147F0449F7A0960FB6F89499 +:1009B000DEBF0FBECDBFCF91DF911F910F91FF9092 +:1009C000EF90DF90CF90BF90AF909F908F907F90EF +:1009D0006F905F904F903F902F900895EF92FF920D +:1009E0000F931F93CF93DF93EC017A018B0177FF75 +:1009F0000FC0E881F9810190F081E02D6DE2099549 +:100A000010950095F094E094E11CF11C011D111D5E +:100A1000CE01B801A7012AE00E945604DF91CF91D0 +:100A20001F910F91FF90EF900895DC012115310582 +:100A300041F4ED91FC910190F081E02D642F099536 +:100A400008952A30310519F40E94EE0408950E9499 +:100A500056040895629FD001739FF001829FE00DBC +:100A6000F11D649FE00DF11D929FF00D839FF00D2D +:100A7000749FF00D659FF00D9927729FB00DE11DD9 +:100A8000F91F639FB00DE11DF91FBD01CF011124B6 +:100A9000089597FB092E07260AD077FD04D049D088 +:100AA00006D000201AF4709561957F4F0895F6F7EF +:100AB000909581959F4F0895A1E21A2EAA1BBB1B0A +:100AC000FD010DC0AA1FBB1FEE1FFF1FA217B3071A +:100AD000E407F50720F0A21BB30BE40BF50B661F30 +:100AE000771F881F991F1A9469F7609570958095F4 +:100AF00090959B01AC01BD01CF01089597FB092E94 +:100B000005260ED057FD04D0D7DF0AD0001C38F4DC +:100B100050954095309521953F4F4F4F5F4F089529 +:100B2000F6F790958095709561957F4F8F4F9F4F09 +:100B30000895AA1BBB1B51E107C0AA1FBB1FA61724 +:100B4000B70710F0A61BB70B881F991F5A95A9F776 +:100B500080959095BC01CD010895EE0FFF1F059083 +:0A0B6000F491E02D0994F894FFCF02 +:0C0B6A003A0000000000B303000418046F +:00000001FF diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.o b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.o new file mode 100644 index 0000000..641e432 Binary files /dev/null and b/2009/Lalalab/receptor_firmware_lalalab3/applet/receptor_firmware_lalalab3.cpp.o differ diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring.c.o b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring.c.o new file mode 100644 index 0000000..3360d59 Binary files /dev/null and b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring.c.o differ diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_analog.c.o b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_analog.c.o new file mode 100644 index 0000000..9cacd38 Binary files /dev/null and b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_analog.c.o differ diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_digital.c.o b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_digital.c.o new file mode 100644 index 0000000..47ecf9b Binary files /dev/null and b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_digital.c.o differ diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_pulse.c.o b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_pulse.c.o new file mode 100644 index 0000000..7cf4986 Binary files /dev/null and b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_pulse.c.o differ diff --git a/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_shift.c.o b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_shift.c.o new file mode 100644 index 0000000..1d6ad92 Binary files /dev/null and b/2009/Lalalab/receptor_firmware_lalalab3/applet/wiring_shift.c.o differ diff --git a/2009/Lalalab/receptor_firmware_lalalab3/receptor_firmware_lalalab3.pde b/2009/Lalalab/receptor_firmware_lalalab3/receptor_firmware_lalalab3.pde new file mode 100644 index 0000000..01f9630 --- /dev/null +++ b/2009/Lalalab/receptor_firmware_lalalab3/receptor_firmware_lalalab3.pde @@ -0,0 +1,84 @@ + +#define dataRate1 115200 +#define dataRate2 9600 + +byte id=0; +byte dat=0; +byte val=0; +byte valant=0; +byte bufferid[15][14]={ + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0} + }; + +byte cont[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; +byte flag_ok[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + +void setup() +{ + + Serial.begin(115200); + Serial1.begin(dataRate1); //puerto de serie del xbee + Serial2.begin(dataRate2); //puerto de serie del wifi +} + + +void loop() +{ + //if (Serial.available()>0) + if (Serial1.available()) + { + //val=Serial.read(); + val = Serial1.read(); + id=val>>4; + dat=val&0x0F; + //Serial.print(val,BYTE); + if (id==15) { + cont[dat]=0; + flag_ok[dat]=1; + } + else if (flag_ok[id]) + { + bufferid[id][cont[id]]=dat; + cont[id]=cont[id]+1; + } + } + for (int i=0;i<15;i++) + { + if ((cont[i]==14)&&(flag_ok[i])) + { + //Serial.println(); + flag_ok[i]=0; + Serial.print(i,DEC); + Serial.print(":"); + Serial.print(bufferid[i][0]<<4|(0x0F&bufferid[i][1]),DEC); + Serial.print(bufferid[i][2]<<4|(0x0F&bufferid[i][3]),DEC); + Serial.print(bufferid[i][4]<<4|(0x0F&bufferid[i][5]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][6]<<4|(0x0F&bufferid[i][7]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][8]<<4|(0x0F&bufferid[i][9]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][10]<<4|(0x0F&bufferid[i][11]),DEC); + Serial.print(":"); + Serial.print(bufferid[i][12]<<4|(0x0F&bufferid[i][13]),DEC); + Serial.println(); + cont[i]=0; + } + } + +} + diff --git a/2009/RFID/RFID.pde b/2009/RFID/RFID.pde new file mode 100644 index 0000000..fcb4e70 --- /dev/null +++ b/2009/RFID/RFID.pde @@ -0,0 +1,27 @@ +/* RFID ID12 +*/ + +char val = 0; // variable to store the data from the serial port +int i=0; + +void setup() { +Serial.begin(9600); // connect to the serial port +delay(100); +Serial.println("Hola"); +} + +void loop () { +// read the serial port + +if(Serial.available() > 0) { +val = Serial.read(); +Serial.print(val, BYTE); + analogWrite(9,255); + analogWrite(10,255); + analogWrite(11,255); + delay(10); + analogWrite(9,0); + analogWrite(10,0); + analogWrite(11,0); +} +} diff --git a/2009/RFID/applet/HardwareSerial.cpp.o b/2009/RFID/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/RFID/applet/HardwareSerial.cpp.o differ diff --git a/2009/RFID/applet/Print.cpp.o b/2009/RFID/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/RFID/applet/Print.cpp.o differ diff --git a/2009/RFID/applet/RFID.cpp b/2009/RFID/applet/RFID.cpp new file mode 100644 index 0000000..8febad8 --- /dev/null +++ b/2009/RFID/applet/RFID.cpp @@ -0,0 +1,43 @@ +/* RFID ID12 +*/ + +#include "WProgram.h" +void setup(); +void loop (); +char val = 0; // variable to store the data from the serial port +int i=0; + +void setup() { +Serial.begin(9600); // connect to the serial port +delay(100); +Serial.println("Hola"); +} + +void loop () { +// read the serial port + +if(Serial.available() > 0) { +val = Serial.read(); +Serial.print(val, BYTE); + analogWrite(9,255); + analogWrite(10,255); + analogWrite(11,255); + delay(10); + analogWrite(9,0); + analogWrite(10,0); + analogWrite(11,0); +} +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/RFID/applet/RFID.cpp.o b/2009/RFID/applet/RFID.cpp.o new file mode 100644 index 0000000..b6adc08 Binary files /dev/null and b/2009/RFID/applet/RFID.cpp.o differ diff --git a/2009/RFID/applet/RFID.eep b/2009/RFID/applet/RFID.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/RFID/applet/RFID.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/RFID/applet/RFID.elf b/2009/RFID/applet/RFID.elf new file mode 100644 index 0000000..9625aed Binary files /dev/null and b/2009/RFID/applet/RFID.elf differ diff --git a/2009/RFID/applet/RFID.hex b/2009/RFID/applet/RFID.hex new file mode 100644 index 0000000..b04ff46 --- /dev/null +++ b/2009/RFID/applet/RFID.hex @@ -0,0 +1,164 @@ +:100000000C945B000C9407020C9434020C94830053 +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C9461020C9483000C9467040C9483005C +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000E30011241FBECFEFD4E0DEBF3C +:1000C000CDBF11E0A0E0B1E0E0E2FAE002C00590AF +:1000D0000D92AC30B107D9F711E0ACE0B1E001C04E +:1000E0001D92A33AB107E1F710E0C6EBD0E004C0DF +:1000F0002297FE010E940A05C43BD107C9F70E945E +:10010000DC000C940E050C9400008DE091E00E9440 +:10011000F1008823B9F18DE091E00E94EE00809318 +:100120000C01992787FD9095A92FB92F20E030E089 +:10013000AC01BD018DE091E00E94F2016FEF70E033 +:1001400089E00E9435036FEF70E08AE00E9435037A +:100150006FEF70E08BE00E9435036AE070E080E0B2 +:1001600090E00E94D10260E070E089E00E943503D7 +:1001700060E070E08AE00E94350360E070E08BE0B0 +:100180000E94350308950F931F930DE011E040E89E +:1001900055E260E070E0C8010E94F40064E670E09F +:1001A00080E090E00E94D10260E071E0C8010E940E +:1001B00028011F910F9108950E94FB020E94C30025 +:1001C0000E948500FDCF89E091E090930E0180931D +:1001D0000D010895862F0E942F0408950E9448045F +:1001E00008950E9437040895CB01BA010E94F603D6 +:1001F00008950F931F93CF93DF938C01EB0109C0F8 +:100200002196D801ED91FC910190F081E02DC8017B +:10021000099568816623A1F7DF91CF911F910F9116 +:1002200008950F931F938C01DC01ED91FC910190D7 +:10023000F081E02D6DE00995D801ED91FC910190E0 +:10024000F081E02D6AE0C80109951F910F91089592 +:100250000F931F938C010E94F900C8010E941101A5 +:100260001F910F9108952F923F924F925F926F923C +:100270007F928F929F92AF92BF92CF92DF92EF9236 +:10028000FF920F931F93DF93CF93CDB7DEB7A09765 +:100290000FB6F894DEBF0FBECDBF1C016A017B0113 +:1002A000411551056105710549F4DC01ED91FC91A1 +:1002B0000190F081E02D60E3099554C088249924D1 +:1002C0005401422E55246624772401E010E00C0FDF +:1002D0001D1F080D191DC701B601A30192010E943F +:1002E000B704F80160830894811C911CA11CB11C07 +:1002F000C701B601A30192010E94B704C901DA0146 +:100300006C017D01C114D104E104F104F1F681E036 +:10031000E82EF12CEC0EFD1EE80CF91C3E010894B1 +:10032000611C711CD501C4010197A109B1096C01BF +:10033000C818D90814C0F601EE0DFF1D60816A309F +:1003400010F4605D01C0695CD101ED91FC910190F8 +:10035000F081E02DC10109950894E108F1086E14BF +:100360007F0449F7A0960FB6F894DEBF0FBECDBF4D +:10037000CF91DF911F910F91FF90EF90DF90CF9081 +:10038000BF90AF909F908F907F906F905F904F90B5 +:100390003F902F900895EF92FF920F931F93CF936A +:1003A000DF93EC017A018B0177FF0FC0E881F981BF +:1003B0000190F081E02D6DE2099510950095F09483 +:1003C000E094E11CF11C011D111D2AE0B801A701F8 +:1003D000CE010E943301DF91CF911F910F91FF90C9 +:1003E000EF900895DC012115310541F4ED91FC9168 +:1003F0000190F081E02D642F099508952A30310590 +:1004000019F40E94CB0108950E94330108951F92B0 +:100410000F920FB60F9211242F933F934F935F9338 +:100420006F937F938F939F93AF93BF93EF93FF93BC +:1004300080910F0190911001892B29F0E0910F011B +:10044000F09110010995FF91EF91BF91AF919F91AC +:100450008F917F916F915F914F913F912F910F906D +:100460000FBE0F901F9018951F920F920FB60F920C +:1004700011242F933F934F935F936F937F938F93A9 +:100480009F93AF93BF93EF93FF938091110190914E +:100490001201892B29F0E0911101F09112010995C7 +:1004A000FF91EF91BF91AF919F918F917F916F914C +:1004B0005F914F913F912F910F900FBE0F901F9022 +:1004C00018951F920F920FB60F9211242F938F93AE +:1004D0009F93AF93BF938091130190911401A091CA +:1004E0001501B09116010196A11DB11D8093130154 +:1004F00090931401A0931501B093160180911701F8 +:1005000090911801A0911901B0911A018050904C5E +:10051000AF4FBF4F8093170190931801A09319011B +:10052000B0931A0127C08091170190911801A091F2 +:100530001901B0911A0180589E43A040B0408093A9 +:10054000170190931801A0931901B0931A0180919B +:100550001B0190911C01A0911D01B0911E010196FB +:10056000A11DB11D80931B0190931C01A0931D013F +:10057000B0931E018091170190911801A09119016B +:10058000B0911A0181589E43A040B04060F6BF91DF +:10059000AF919F918F912F910F900FBE0F901F9051 +:1005A0001895EF92FF920F931F937B018C018FB7E9 +:1005B000F89440911B0150911C0160911D017091B4 +:1005C0001E018FBF2FB7F89480911B0190911C01E1 +:1005D000A0911D01B0911E012FBF841B950BA60B8E +:1005E000B70BE816F9060A071B0760F71F910F9172 +:1005F000FF90EF900895789484B5826084BD84B5AF +:10060000816084BD85B5826085BD85B5816085BD0D +:10061000EEE6F0E0808181608083E1E8F0E08081B7 +:1006200082608083808181608083E0E8F0E0808167 +:1006300081608083E1EBF0E0808184608083E0EB87 +:10064000F0E0808181608083EAE7F0E0808184606F +:1006500080838081826080838081816080838081CB +:10066000806880831092C10008951F93CF93DF9319 +:10067000182FEB0161E00E948D03E12FF0E0E156BD +:10068000FF4F8491833051F4809180008068809383 +:100690008000D0938900C09388003BC0843051F41F +:1006A00080918000806280938000D0938B00C09303 +:1006B0008A002FC0813039F4209729F184B58068F1 +:1006C00084BDC7BD26C0823039F42097E1F084B5DF +:1006D000806284BDC8BD1DC0863041F48091B000E9 +:1006E00080688093B000C093B30013C0873041F49A +:1006F0008091B00080628093B000C093B40009C0C4 +:10070000C038D10514F460E001C061E0812F0E947F +:10071000AB03DF91CF911F910895282F30E0C901DD +:1007200085579F4FFC01949129583F4FF9018491BF +:10073000882381F0E82FF0E0E859FF4FE491F0E0E2 +:10074000662329F480819095892380830895808190 +:10075000892B80830895482F50E0CA0181569F4F0E +:10076000FC012491CA0185579F4FFC01949149587F +:100770005F4FFA0134913323C1F1222331F1233049 +:1007800021F4809180008F7705C0243031F480916E +:1007900080008F7D8093800018C0213019F484B5CB +:1007A0008F7704C0223021F484B58F7D84BD0DC0C5 +:1007B000263021F48091B0008F7705C0273029F4CE +:1007C0008091B0008F7D8093B000E32FF0E0E3597B +:1007D000FF4FE491F0E0662329F48081909589230E +:1007E000808308958081892B80830895EF92FF9202 +:1007F0000F931F937B018C0122E030E040E050E03A +:100800000E94D904205C3D4B404F5F4FCA01B901A3 +:10081000A80197010E94D904C901DA010197A10931 +:10082000B109292F3A2F4B2F552747FD5A9501968D +:10083000A11DB11D2093C50081508093C400E1EC3F +:10084000F0E0808180618083808188608083808106 +:10085000806880831F910F91FF90EF900895982FEB +:100860008091C00085FFFCCF9093C60008958091D1 +:100870001F019091200180589F4F209121013091BC +:100880002201821B930B60E870E00E94A40408958B +:10089000409121015091220180911F0190912001EE +:1008A0008417950719F42FEF3FEF0FC0FA01ED5DA4 +:1008B000FE4F2081CA01019660E870E00E94A40406 +:1008C000909322018093210130E0C90108951F9285 +:1008D0000F920FB60F9211242F933F934F935F9374 +:1008E0006F937F938F939F93AF93BF93EF93FF93F8 +:1008F0004091C600E0911F01F0912001CF010196C7 +:1009000060E870E00E94A4049C0180912101909114 +:1009100022012817390739F0ED5DFE4F40833093EF +:10092000200120931F01FF91EF91BF91AF919F9103 +:100930008F917F916F915F914F913F912F910F9088 +:100940000FBE0F901F90189597FB092E07260AD00F +:1009500077FD04D049D006D000201AF47095619537 +:100960007F4F0895F6F7909581959F4F0895A1E2E6 +:100970001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F19 +:10098000FF1FA217B307E407F50720F0A21BB30B64 +:10099000E40BF50B661F771F881F991F1A9469F7E0 +:1009A00060957095809590959B01AC01BD01CF013C +:1009B000089597FB092E05260ED057FD04D0D7DFEA +:1009C0000AD0001C38F450954095309521953F4F42 +:1009D0004F4F5F4F0895F6F790958095709561950C +:1009E0007F4F8F4F9F4F0895AA1BBB1B51E107C03C +:1009F000AA1FBB1FA617B70710F0A61BB70B881FAF +:100A0000991F5A95A9F780959095BC01CD0108953D +:100A1000EE0FFF1F0590F491E02D0994F894FFCF9D +:0C0A2000486F6C610000000000EA00005C +:00000001FF diff --git a/2009/RFID/applet/RFID.pde b/2009/RFID/applet/RFID.pde new file mode 100644 index 0000000..fcb4e70 --- /dev/null +++ b/2009/RFID/applet/RFID.pde @@ -0,0 +1,27 @@ +/* RFID ID12 +*/ + +char val = 0; // variable to store the data from the serial port +int i=0; + +void setup() { +Serial.begin(9600); // connect to the serial port +delay(100); +Serial.println("Hola"); +} + +void loop () { +// read the serial port + +if(Serial.available() > 0) { +val = Serial.read(); +Serial.print(val, BYTE); + analogWrite(9,255); + analogWrite(10,255); + analogWrite(11,255); + delay(10); + analogWrite(9,0); + analogWrite(10,0); + analogWrite(11,0); +} +} diff --git a/2009/RFID/applet/WInterrupts.c.o b/2009/RFID/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/RFID/applet/WInterrupts.c.o differ diff --git a/2009/RFID/applet/WMath.cpp.o b/2009/RFID/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/RFID/applet/WMath.cpp.o differ diff --git a/2009/RFID/applet/pins_arduino.c.o b/2009/RFID/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/RFID/applet/pins_arduino.c.o differ diff --git a/2009/RFID/applet/wiring.c.o b/2009/RFID/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/RFID/applet/wiring.c.o differ diff --git a/2009/RFID/applet/wiring_analog.c.o b/2009/RFID/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/RFID/applet/wiring_analog.c.o differ diff --git a/2009/RFID/applet/wiring_digital.c.o b/2009/RFID/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/RFID/applet/wiring_digital.c.o differ diff --git a/2009/RFID/applet/wiring_pulse.c.o b/2009/RFID/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/RFID/applet/wiring_pulse.c.o differ diff --git a/2009/RFID/applet/wiring_serial.c.o b/2009/RFID/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/RFID/applet/wiring_serial.c.o differ diff --git a/2009/RFID/applet/wiring_shift.c.o b/2009/RFID/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/RFID/applet/wiring_shift.c.o differ diff --git a/2009/RFID2/RFID2.pde b/2009/RFID2/RFID2.pde new file mode 100644 index 0000000..ae83ad9 --- /dev/null +++ b/2009/RFID2/RFID2.pde @@ -0,0 +1,77 @@ +// RFID reader ID-12 for Arduino +// Based on code by BARRAGAN +// and code from HC Gilje - http://hcgilje.wordpress.com/resources/rfid_id12_tagreader/ +// Modified for Arudino by djmatic +// Modified for ID-12 and checksum by Martijn The - http://www.martijnthe.nl/ +// +// Use the drawings from HC Gilje to wire up the ID-12. +// Remark: disconnect the rx serial wire to the ID-12 when uploading the sketch + + +void setup() { + Serial.begin(9600); // connect to the serial port +} + +void loop () { + byte i = 0; + byte val = 0; + byte code[6]; + byte checksum = 0; + byte bytesread = 0; + byte tempbyte = 0; + + if(Serial.available() > 0) { + if((val = Serial.read()) == 2) { // check for header + bytesread = 0; + while (bytesread < 12) { // read 10 digit code + 2 digit checksum + if( Serial.available() > 0) { + val = Serial.read(); + if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val == 0x02)) { // if header or stop bytes before the 10 digit reading + break; // stop reading + } + + // Do Ascii/Hex conversion: + if ((val >= '0') && (val <= '9')) { + val = val - '0'; + } else if ((val >= 'A') && (val <= 'F')) { + val = 10 + val - 'A'; + } + + // Every two hex-digits, add byte to code: + if (bytesread & 1 == 1) { + // make some space for this hex-digit by + // shifting the previous hex-digit with 4 bits to the left: + code[bytesread >> 1] = (val | (tempbyte << 4)); + + if (bytesread >> 1 != 5) { // If we're at the checksum byte, + checksum ^= code[bytesread >> 1]; // Calculate the checksum... (XOR) + }; + } else { + tempbyte = val; // Store the first hex digit first... + }; + + bytesread++; // ready to read next digit + } + } + + // Output to Serial: + + if (bytesread == 12) { // if 12 digit read is complete + Serial.print("5-byte code: "); + for (i=0; i<5; i++) { + if (code[i] < 16) Serial.print("0"); + Serial.print(code[i], HEX); + Serial.print(" "); + } + Serial.println(); + + Serial.print("Checksum: "); + Serial.print(code[5], HEX); + Serial.println(code[5] == checksum ? " -- passed." : " -- error."); + Serial.println(); + } + + bytesread = 0; + } + } +} diff --git a/2009/RFID2/applet/HardwareSerial.cpp.o b/2009/RFID2/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/RFID2/applet/HardwareSerial.cpp.o differ diff --git a/2009/RFID2/applet/Print.cpp.o b/2009/RFID2/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/RFID2/applet/Print.cpp.o differ diff --git a/2009/RFID2/applet/RFID2.cpp b/2009/RFID2/applet/RFID2.cpp new file mode 100644 index 0000000..06203eb --- /dev/null +++ b/2009/RFID2/applet/RFID2.cpp @@ -0,0 +1,93 @@ +// RFID reader ID-12 for Arduino +// Based on code by BARRAGAN +// and code from HC Gilje - http://hcgilje.wordpress.com/resources/rfid_id12_tagreader/ +// Modified for Arudino by djmatic +// Modified for ID-12 and checksum by Martijn The - http://www.martijnthe.nl/ +// +// Use the drawings from HC Gilje to wire up the ID-12. +// Remark: disconnect the rx serial wire to the ID-12 when uploading the sketch + + +#include "WProgram.h" +void setup(); +void loop (); +void setup() { + Serial.begin(9600); // connect to the serial port +} + +void loop () { + byte i = 0; + byte val = 0; + byte code[6]; + byte checksum = 0; + byte bytesread = 0; + byte tempbyte = 0; + + if(Serial.available() > 0) { + if((val = Serial.read()) == 2) { // check for header + bytesread = 0; + while (bytesread < 12) { // read 10 digit code + 2 digit checksum + if( Serial.available() > 0) { + val = Serial.read(); + if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val == 0x02)) { // if header or stop bytes before the 10 digit reading + break; // stop reading + } + + // Do Ascii/Hex conversion: + if ((val >= '0') && (val <= '9')) { + val = val - '0'; + } else if ((val >= 'A') && (val <= 'F')) { + val = 10 + val - 'A'; + } + + // Every two hex-digits, add byte to code: + if (bytesread & 1 == 1) { + // make some space for this hex-digit by + // shifting the previous hex-digit with 4 bits to the left: + code[bytesread >> 1] = (val | (tempbyte << 4)); + + if (bytesread >> 1 != 5) { // If we're at the checksum byte, + checksum ^= code[bytesread >> 1]; // Calculate the checksum... (XOR) + }; + } else { + tempbyte = val; // Store the first hex digit first... + }; + + bytesread++; // ready to read next digit + } + } + + // Output to Serial: + + if (bytesread == 12) { // if 12 digit read is complete + Serial.print("5-byte code: "); + for (i=0; i<5; i++) { + if (code[i] < 16) Serial.print("0"); + Serial.print(code[i], HEX); + Serial.print(" "); + } + Serial.println(); + + Serial.print("Checksum: "); + Serial.print(code[5], HEX); + Serial.println(code[5] == checksum ? " -- passed." : " -- error."); + Serial.println(); + } + + bytesread = 0; + } + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/RFID2/applet/RFID2.cpp.o b/2009/RFID2/applet/RFID2.cpp.o new file mode 100644 index 0000000..40d7eb0 Binary files /dev/null and b/2009/RFID2/applet/RFID2.cpp.o differ diff --git a/2009/RFID2/applet/RFID2.eep b/2009/RFID2/applet/RFID2.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/RFID2/applet/RFID2.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/RFID2/applet/RFID2.elf b/2009/RFID2/applet/RFID2.elf new file mode 100644 index 0000000..f53c48e Binary files /dev/null and b/2009/RFID2/applet/RFID2.elf differ diff --git a/2009/RFID2/applet/RFID2.hex b/2009/RFID2/applet/RFID2.hex new file mode 100644 index 0000000..8c98b84 --- /dev/null +++ b/2009/RFID2/applet/RFID2.hex @@ -0,0 +1,147 @@ +:100000000C9435000C9450020C947D020C945D000D +:100010000C945D000C945D000C945D000C945D00EC +:100020000C945D000C945D000C945D000C945D00DC +:100030000C945D000C945D000C945D000C945D00CC +:100040000C94AA020C945D000C94C5030C945D0002 +:100050000C945D000C945D000C945D000C945D00AC +:100060000C945D000C945D002C0111241FBECFEF99 +:10007000D4E0DEBFCDBF11E0A0E0B1E0ECEDF8E0F0 +:1000800002C005900D92AA33B107D9F711E0AAE397 +:10009000B1E001C01D92A03DB107E1F710E0CAE652 +:1000A000D0E004C02297FE010E946804C836D10740 +:1000B000C9F70E9425010C946C040C940000CF92A7 +:1000C000DF92EF92FF920F931F93DF93CF9300D0B5 +:1000D00000D000D0CDB7DEB78AE391E00E943A01AC +:1000E000882309F49AC08AE391E00E9437018230A4 +:1000F00009F093C0EE2410E000E06E010894C11CEA +:10010000D11C8AE391E00E943A018823D1F38AE36B +:1001100091E00E943701282F8D3009F47EC08A308B +:1001200009F47BC0833009F478C0823009F475C0CB +:1001300080538A3010F4282F05C0822F81548630D6 +:1001400008F42753812F90E010FD02C0022F0DC04C +:1001500095958795302F3295307F322BF601E80F39 +:10016000F91F3083059709F0E3261F5F1C3048F222 +:100170001C3009F052C060E071E08AE391E00E9417 +:1001800042018E010F5F1F4F86E0C82ED12CCC0E8E +:10019000DD1EF801F080FFE0FF1530F06EE071E049 +:1001A0008AE391E00E9442014F2D50E060E070E050 +:1001B00020E130E08AE391E00E943B0260E171E0DF +:1001C0008AE391E00E9442010F5F1F4F0C151D054D +:1001D00001F78AE391E00E945A0162E171E08AE34B +:1001E00091E00E9442011E81412F50E060E070E0EA +:1001F00020E130E08AE391E00E943B021E1519F0F5 +:100200006DE171E002C068E271E08AE391E00E9472 +:1002100071018AE391E00E945A0126960FB6F89484 +:10022000DEBF0FBECDBFCF91DF911F910F91FF9029 +:10023000EF90DF90CF90089540E855E260E070E0E5 +:100240008AE391E00E943D0108950E941A030E94F2 +:100250001C010E945F00FDCF88E391E090933B0179 +:1002600080933A010895862F0E948D0308950E947D +:10027000A60308950E9495030895CB01BA010E9438 +:10028000540308950F931F93CF93DF938C01EB01D9 +:1002900009C02196D801ED91FC910190F081E02DEB +:1002A000C801099568816623A1F7DF91CF911F915D +:1002B0000F9108950F931F938C01DC01ED91FC9138 +:1002C0000190F081E02D6DE00995D801ED91FC9150 +:1002D0000190F081E02D6AE0C80109951F910F910E +:1002E00008950F931F938C010E944201C8010E9440 +:1002F0005A011F910F9108952F923F924F925F9252 +:100300006F927F928F929F92AF92BF92CF92DF9225 +:10031000EF92FF920F931F93DF93CF93CDB7DEB78A +:10032000A0970FB6F894DEBF0FBECDBF1C016A01C7 +:100330007B01411551056105710549F4DC01ED9121 +:10034000FC910190F081E02D60E3099554C0882470 +:1003500099245401422E55246624772401E010E0AC +:100360000C0F1D1F080D191DC701B601A301920135 +:100370000E941504F80160830894811C911CA11C43 +:10038000B11CC701B601A30192010E941504C90165 +:10039000DA016C017D01C114D104E104F104F1F62C +:1003A00081E0E82EF12CEC0EFD1EE80CF91C3E015C +:1003B0000894611C711CD501C4010197A109B10900 +:1003C0006C01C818D90814C0F601EE0DFF1D60813C +:1003D0006A3010F4605D01C0695CD101ED91FC915F +:1003E0000190F081E02DC10109950894E108F10820 +:1003F0006E147F0449F7A0960FB6F894DEBF0FBEC7 +:10040000CDBFCF91DF911F910F91FF90EF90DF90C3 +:10041000CF90BF90AF909F908F907F906F905F90A4 +:100420004F903F902F900895EF92FF920F931F935C +:10043000CF93DF93EC017A018B0177FF0FC0E88146 +:10044000F9810190F081E02D6DE2099510950095FC +:10045000F094E094E11CF11C011D111D2AE0B8018B +:10046000A701CE010E947C01DF91CF911F910F91D6 +:10047000FF90EF900895DC012115310541F4ED91D5 +:10048000FC910190F081E02D642F099508952A30A8 +:10049000310519F40E94140208950E947C01089508 +:1004A0001F920F920FB60F9211242F933F934F93E9 +:1004B0005F936F937F938F939F93AF93BF93EF93CC +:1004C000FF9380913C0190913D01892B29F0E091AF +:1004D0003C01F0913D010995FF91EF91BF91AF91E2 +:1004E0009F918F917F916F915F914F913F912F914C +:1004F0000F900FBE0F901F9018951F920F920FB67E +:100500000F9211242F933F934F935F936F937F9399 +:100510008F939F93AF93BF93EF93FF9380913E018F +:1005200090913F01892B29F0E0913E01F0913F012C +:100530000995FF91EF91BF91AF919F918F917F911D +:100540006F915F914F913F912F910F900FBE0F9040 +:100550001F9018951F920F920FB60F9211242F9390 +:100560008F939F93AF93BF938091400190914101EE +:10057000A0914201B09143010196A11DB11D80934C +:10058000400190934101A0934201B09343018091B7 +:10059000440190914501A0914601B09147018050DE +:1005A000904CAF4FBF4F8093440190934501A0936F +:1005B0004601B093470127C08091440190914501C5 +:1005C000A0914601B091470180589E43A040B040A1 +:1005D0008093440190934501A0934601B093470155 +:1005E0008091480190914901A0914A01B0914B013D +:1005F0000196A11DB11D8093480190934901A093DC +:100600004A01B0934B018091440190914501A09122 +:100610004601B091470181589E43A040B04060F62A +:10062000BF91AF919F918F912F910F900FBE0F901F +:100630001F901895789484B5826084BD84B58160DC +:1006400084BD85B5826085BD85B5816085BDEEE6DA +:10065000F0E0808181608083E1E8F0E08081826069 +:100660008083808181608083E0E8F0E08081816028 +:100670008083E1EBF0E0808184608083E0EBF0E058 +:10068000808181608083EAE7F0E0808184608083FC +:1006900080818260808380818160808380818068A6 +:1006A00080831092C1000895EF92FF920F931F93E1 +:1006B0007B018C0122E030E040E050E00E943704F2 +:1006C000205C3D4B404F5F4FCA01B901A801970123 +:1006D0000E943704C901DA010197A109B109292F44 +:1006E0003A2F4B2F552747FD5A950196A11DB11D55 +:1006F0002093C50081508093C400E1ECF0E080813C +:10070000806180838081886080838081806880832D +:100710001F910F91FF90EF900895982F8091C00046 +:1007200085FFFCCF9093C600089580914C01909175 +:100730004D0180589F4F20914E0130914F01821BF7 +:10074000930B60E870E00E940204089540914E010E +:1007500050914F0180914C0190914D018417950764 +:1007600019F42FEF3FEF0FC0FA01E05BFE4F20813D +:10077000CA01019660E870E00E94020490934F0164 +:1007800080934E0130E0C90108951F920F920FB679 +:100790000F9211242F933F934F935F936F937F9307 +:1007A0008F939F93AF93BF93EF93FF934091C600B6 +:1007B000E0914C01F0914D01CF01019660E870E0AD +:1007C0000E9402049C0180914E0190914F012817D4 +:1007D000390739F0E05BFE4F408330934D012093A1 +:1007E0004C01FF91EF91BF91AF919F918F917F91BC +:1007F0006F915F914F913F912F910F900FBE0F908E +:100800001F90189597FB092E07260AD077FD04D074 +:1008100049D006D000201AF4709561957F4F089555 +:10082000F6F7909581959F4F0895A1E21A2EAA1B85 +:10083000BB1BFD010DC0AA1FBB1FEE1FFF1FA21790 +:10084000B307E407F50720F0A21BB30BE40BF50B8D +:10085000661F771F881F991F1A9469F76095709516 +:10086000809590959B01AC01BD01CF01089597FB48 +:10087000092E05260ED057FD04D0D7DF0AD0001C64 +:1008800038F450954095309521953F4F4F4F5F4F2D +:100890000895F6F790958095709561957F4F8F4FED +:1008A0009F4F0895AA1BBB1B51E107C0AA1FBB1F86 +:1008B000A617B70710F0A61BB70B881F991F5A95EC +:1008C000A9F780959095BC01CD010895EE0FFF1F0B +:0C08D0000590F491E02D0994F894FFCFFE +:1008DC00352D6279746520636F64653A20003000B1 +:1008EC002000436865636B73756D3A2000202D2DD5 +:1008FC00206572726F722E00202D2D207061737323 +:0A090C0065642E00000000003301B6 +:00000001FF diff --git a/2009/RFID2/applet/RFID2.pde b/2009/RFID2/applet/RFID2.pde new file mode 100644 index 0000000..ae83ad9 --- /dev/null +++ b/2009/RFID2/applet/RFID2.pde @@ -0,0 +1,77 @@ +// RFID reader ID-12 for Arduino +// Based on code by BARRAGAN +// and code from HC Gilje - http://hcgilje.wordpress.com/resources/rfid_id12_tagreader/ +// Modified for Arudino by djmatic +// Modified for ID-12 and checksum by Martijn The - http://www.martijnthe.nl/ +// +// Use the drawings from HC Gilje to wire up the ID-12. +// Remark: disconnect the rx serial wire to the ID-12 when uploading the sketch + + +void setup() { + Serial.begin(9600); // connect to the serial port +} + +void loop () { + byte i = 0; + byte val = 0; + byte code[6]; + byte checksum = 0; + byte bytesread = 0; + byte tempbyte = 0; + + if(Serial.available() > 0) { + if((val = Serial.read()) == 2) { // check for header + bytesread = 0; + while (bytesread < 12) { // read 10 digit code + 2 digit checksum + if( Serial.available() > 0) { + val = Serial.read(); + if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val == 0x02)) { // if header or stop bytes before the 10 digit reading + break; // stop reading + } + + // Do Ascii/Hex conversion: + if ((val >= '0') && (val <= '9')) { + val = val - '0'; + } else if ((val >= 'A') && (val <= 'F')) { + val = 10 + val - 'A'; + } + + // Every two hex-digits, add byte to code: + if (bytesread & 1 == 1) { + // make some space for this hex-digit by + // shifting the previous hex-digit with 4 bits to the left: + code[bytesread >> 1] = (val | (tempbyte << 4)); + + if (bytesread >> 1 != 5) { // If we're at the checksum byte, + checksum ^= code[bytesread >> 1]; // Calculate the checksum... (XOR) + }; + } else { + tempbyte = val; // Store the first hex digit first... + }; + + bytesread++; // ready to read next digit + } + } + + // Output to Serial: + + if (bytesread == 12) { // if 12 digit read is complete + Serial.print("5-byte code: "); + for (i=0; i<5; i++) { + if (code[i] < 16) Serial.print("0"); + Serial.print(code[i], HEX); + Serial.print(" "); + } + Serial.println(); + + Serial.print("Checksum: "); + Serial.print(code[5], HEX); + Serial.println(code[5] == checksum ? " -- passed." : " -- error."); + Serial.println(); + } + + bytesread = 0; + } + } +} diff --git a/2009/RFID2/applet/WInterrupts.c.o b/2009/RFID2/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/RFID2/applet/WInterrupts.c.o differ diff --git a/2009/RFID2/applet/WMath.cpp.o b/2009/RFID2/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/RFID2/applet/WMath.cpp.o differ diff --git a/2009/RFID2/applet/pins_arduino.c.o b/2009/RFID2/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/RFID2/applet/pins_arduino.c.o differ diff --git a/2009/RFID2/applet/wiring.c.o b/2009/RFID2/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/RFID2/applet/wiring.c.o differ diff --git a/2009/RFID2/applet/wiring_analog.c.o b/2009/RFID2/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/RFID2/applet/wiring_analog.c.o differ diff --git a/2009/RFID2/applet/wiring_digital.c.o b/2009/RFID2/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/RFID2/applet/wiring_digital.c.o differ diff --git a/2009/RFID2/applet/wiring_pulse.c.o b/2009/RFID2/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/RFID2/applet/wiring_pulse.c.o differ diff --git a/2009/RFID2/applet/wiring_serial.c.o b/2009/RFID2/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/RFID2/applet/wiring_serial.c.o differ diff --git a/2009/RFID2/applet/wiring_shift.c.o b/2009/RFID2/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/RFID2/applet/wiring_shift.c.o differ diff --git a/2009/STROBE_09/STROBE_09.pde b/2009/STROBE_09/STROBE_09.pde new file mode 100644 index 0000000..8f9f4a7 --- /dev/null +++ b/2009/STROBE_09/STROBE_09.pde @@ -0,0 +1,104 @@ + +#define on 18 +#define off 19 +#define power_on 13 +#define MINUTE 62609 +//#define MINUTE 1000 +#define temp 20 + +unsigned long time=0; +unsigned long time_off=0; +byte flag=0; +byte flag_off=0; +//int i=1; +int i=1; +int time1=2; +int time2=4.7; +int time3=10.6; +int time4=5; +int time5=5; +int TIME=time1; +int e; + +void setup() { + Serial.begin(19200); // set up Serial library at 9600 bps + //Serial.println("Empezamos"); + pinMode(on, INPUT); + pinMode(off, INPUT); + pinMode(power_on, OUTPUT); + digitalWrite(on,HIGH); + digitalWrite(off,HIGH); + digitalWrite(power_on,HIGH); +} + +void loop() { + if (!digitalRead(on)) + { + //delay(200); + flag_off=1; + if (flag==0) + { + flag=1; + for (e=0; e<5; e++) + { + Serial.print(i,BYTE); + delay(temp); + } + TIME=time1; + i=i+2; + } + //else if (flag==1) flag=0; + time=millis(); + } + else if(!digitalRead(off)) + { + if (flag_off==0) + { + time_off=millis(); + flag_off=1; + } + else if ((millis()-time_off)>=10*1000) + { + for (e=0; e<5; e++) + { + Serial.print(0x00,BYTE); + delay(temp); + } + flag=0; + i=1; + } + + } + else flag_off=0; + if (flag==1) + { + if ((millis()-time)>=MINUTE*TIME) + //if ((millis()-time)>=5000) + { + time=millis(); + for (e=0; e<5; e++) + { + Serial.print(i-1,BYTE); + delay(temp); + } + for (e=0; e<5; e++) + { + if (i<0x0B) Serial.print(i,BYTE); + else Serial.print(0x00,BYTE); + delay(temp); + } + if (i==3) TIME=time2; + else if (i==5) TIME=time3; + else if (i==7) TIME=time4; + else if (i==9) TIME=time5; + i=i+2; + if (i==13) + { + i=1; + flag=0; + } + } + + } +} + diff --git a/2009/STROBE_09/applet/HardwareSerial.cpp.o b/2009/STROBE_09/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d16e50 Binary files /dev/null and b/2009/STROBE_09/applet/HardwareSerial.cpp.o differ diff --git a/2009/STROBE_09/applet/Print.cpp.o b/2009/STROBE_09/applet/Print.cpp.o new file mode 100644 index 0000000..2a415db Binary files /dev/null and b/2009/STROBE_09/applet/Print.cpp.o differ diff --git a/2009/STROBE_09/applet/STROBE_09.cpp b/2009/STROBE_09/applet/STROBE_09.cpp new file mode 100644 index 0000000..ad5b4a9 --- /dev/null +++ b/2009/STROBE_09/applet/STROBE_09.cpp @@ -0,0 +1,120 @@ + +#define on 18 +#define off 19 +#define power_on 13 +#define MINUTE 62609 +//#define MINUTE 1000 +#define temp 20 + +#include "WProgram.h" +void setup(); +void loop(); +unsigned long time=0; +unsigned long time_off=0; +byte flag=0; +byte flag_off=0; +//int i=1; +int i=1; +int time1=2; +int time2=5; +int time3=10.5; +int time4=5; +int time5=5; +int TIME=time1; +int e; + +void setup() { + Serial.begin(19200); // set up Serial library at 9600 bps + Serial.println("Empezamos"); + pinMode(on, INPUT); + pinMode(off, INPUT); + pinMode(power_on, OUTPUT); + digitalWrite(on,HIGH); + digitalWrite(off,HIGH); + digitalWrite(power_on,HIGH); +} + +void loop() { + if (!digitalRead(on)) + { + //delay(200); + flag_off=1; + if (flag==0) + { + flag=1; + for (e=0; e<5; e++) + { + Serial.print(i,BYTE); + delay(temp); + } + TIME=time1; + i=i+2; + } + //else if (flag==1) flag=0; + time=millis(); + } + else if(!digitalRead(off)) + { + if (flag_off==0) + { + time_off=millis(); + flag_off=1; + } + else if ((millis()-time_off)>=10*1000) + { + for (e=0; e<5; e++) + { + Serial.print(0x00,BYTE); + delay(temp); + } + flag=0; + i=1; + } + + } + else flag_off=0; + if (flag==1) + { + if ((millis()-time)>=MINUTE*TIME) + //if ((millis()-time)>=5000) + { + time=millis(); + for (e=0; e<5; e++) + { + Serial.print(i-1,BYTE); + delay(temp); + } + for (e=0; e<5; e++) + { + if (i<0x0B) Serial.print(i,BYTE); + else Serial.print(0x00,BYTE); + delay(temp); + } + if (i==3) TIME=time2; + else if (i==5) TIME=time3; + else if (i==7) TIME=time4; + else if (i==9) TIME=time5; + i=i+2; + if (i==13) + { + i=1; + flag=0; + } + } + + } +} + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/STROBE_09/applet/STROBE_09.cpp.eep b/2009/STROBE_09/applet/STROBE_09.cpp.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/STROBE_09/applet/STROBE_09.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/STROBE_09/applet/STROBE_09.cpp.elf b/2009/STROBE_09/applet/STROBE_09.cpp.elf new file mode 100644 index 0000000..5b6dcae Binary files /dev/null and b/2009/STROBE_09/applet/STROBE_09.cpp.elf differ diff --git a/2009/STROBE_09/applet/STROBE_09.cpp.hex b/2009/STROBE_09/applet/STROBE_09.cpp.hex new file mode 100644 index 0000000..ed5a530 --- /dev/null +++ b/2009/STROBE_09/applet/STROBE_09.cpp.hex @@ -0,0 +1,228 @@ +:100000000C9463000C948B000C948B000C948B006C +:100010000C948B000C948B000C948B000C948B0034 +:100020000C948B000C948B000C948B000C948B0024 +:100030000C948B000C948B000C948B000C948B0014 +:100040000C943F020C948B000C94C1030C948B0015 +:100050000C948B000C948B000C948B000C948B00F4 +:100060000C948B000C948B000000000024002700EF +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C00000008D000A0511241FBECFEFD4E0DEBF73 +:1000D000CDBF11E0A0E0B1E0E8E0FEE002C0059095 +:1000E0000D92A032B107D9F711E0A0E2B1E001C052 +:1000F0001D92AE3CB107E1F710E0C6ECD0E004C0C1 +:100100002297FE010E94FE06C23CD107C9F70E9459 +:1001100038020C9402070C94000080910C0190911D +:100120000D0190932B0180932A010895EF92FF9285 +:100130000F931F9382E10E947203892B09F04BC039 +:1001400091E090932901809128018823C9F590932B +:10015000280110922D0110922C011AC0A9016627C6 +:1001600057FD6095762F8BEB91E020E030E00E9408 +:10017000640664E170E080E090E00E94A10280915A +:100180002C0190912D01019690932D0180932C01CB +:1001900080912C0190912D0120910A0130910B0149 +:1001A0000597E4F280910C0190910D0190932B0141 +:1001B00080932A012E5F3F4F30930B0120930A0159 +:1001C0000E94930260932001709321018093220189 +:1001D000909323015AC083E10E947203892B09F096 +:1001E00052C080912901882371F40E949302609388 +:1001F000240170932501809326019093270181E0CB +:100200008093290142C00E949302209124013091E1 +:1002100025014091260150912701621B730B840B2D +:10022000950B605177428040904078F110922D01FB +:1002300010922C0119C08BEB91E040E050E060E09F +:1002400070E020E030E00E94640664E170E080E04D +:1002500090E00E94A10280912C0190912D010196C5 +:1002600090932D0180932C0180912C0190912D0170 +:1002700005970CF31092280181E090E090930B0118 +:1002800080930A0102C010922901809128018130D7 +:1002900009F0BEC00E9493027B018C018091200175 +:1002A00090912101A0912201B0912301E81AF90A4D +:1002B0000A0B1B0B60912A0170912B01882777FD97 +:1002C0008095982F21E934EF40E050E00E947906B4 +:1002D000E616F7060807190708F49AC00E94930269 +:1002E0006093200170932101809322019093230158 +:1002F00010922D0110922C011FC040910A015091C3 +:100300000B0141505040662757FD6095762F8BEBCF +:1003100091E020E030E00E94640664E170E080E05B +:1003200090E00E94A10280912C0190912D010196F4 +:1003300090932D0180932C0180912C0190912D019F +:100340000597DCF210922D0110922C0124C02B3065 +:10035000310544F4A901662757FD6095762F8BEB94 +:1003600091E006C08BEB91E040E050E060E070E08F +:1003700020E030E00E94640664E170E080E090E0FC +:100380000E94A10280912C0190912D0101969093E1 +:100390002D0180932C0180912C0190912D012091B1 +:1003A0000A0130910B01059794F22330310529F4AD +:1003B00080910E0190910F0117C02530310529F46D +:1003C00080911001909111010FC02730310529F45F +:1003D000809112019091130107C02930310541F439 +:1003E000809114019091150190932B0180932A0123 +:1003F000C901029690930B0180930A010D9741F475 +:1004000081E090E090930B0180930A011092280103 +:100410001F910F91FF90EF9008950F931F930BEB97 +:1004200011E0C80140E05BE460E070E00E94FE0380 +:10043000C80160E071E00E949A0582E160E00E94DC +:10044000050383E160E00E9405038DE061E00E9406 +:10045000050382E161E00E94250383E161E00E94DF +:1004600025038DE061E00E9425031F910F910895FF +:100470000E94CB020E940D020E949600FDCF1F92A7 +:100480000F920FB60F9211242F933F934F935F93C8 +:100490006F937F938F939F93AF93BF93209132017C +:1004A0003091330140913401509135017091360102 +:1004B000DA01C9010296A11DB11D672F6A5F6D3770 +:1004C00030F06D57DA01C9010396A11DB11D60938B +:1004D00036018093320190933301A0933401B0939D +:1004E000350180912E0190912F01A0913001B091A2 +:1004F00031010196A11DB11D80932E0190932F0112 +:10050000A0933001B0933101BF91AF919F918F9132 +:100510007F916F915F914F913F912F910F900FBEFF +:100520000F901F9018958FB7F89420913201309159 +:10053000330140913401509135018FBFB901CA0197 +:100540000895EF92FF920F931F937B018C018FB759 +:10055000F8944091320150913301609134017091CF +:1005600035018FBF2FB7F8948091320190913301FC +:10057000A0913401B09135012FBF841B950BA60BC0 +:10058000B70BE816F9060A071B0760F71F910F91D2 +:10059000FF90EF900895789484B5826084BD84B50F +:1005A000816084BD85B5826085BD85B5816085BD6E +:1005B000EEE6F0E0808181608083E1E8F0E0808118 +:1005C00082608083808181608083E0E8F0E08081C8 +:1005D00081608083E1EBF0E0808184608083E0EBE8 +:1005E000F0E0808181608083EAE7F0E080818460D0 +:1005F000808380818260808380818160808380812C +:10060000806880831092C1000895282F30E0C901CE +:1006100086569F4FFC0194912A573F4FF9018491D0 +:10062000882391F0E82FF0E0EE0FFF1FE859FF4F0D +:10063000A591B491662329F48C91909589238C938C +:1006400008958C91892B8C930895482F50E0CA010E +:1006500082559F4FFC012491CA0186569F4FFC0191 +:1006600094914A575F4FFA0134913323D1F12223F9 +:1006700031F1233021F4809180008F7705C0243040 +:1006800031F4809180008F7D8093800018C02130EC +:1006900019F484B58F7704C0223021F484B58F7D9E +:1006A00084BD0DC0263021F48091B0008F7705C045 +:1006B000273029F48091B0008F7D8093B000E32F24 +:1006C000F0E0EE0FFF1FEE58FF4FA591B4916623A7 +:1006D00029F48C91909589238C9308958C91892B82 +:1006E0008C930895682F70E0CB0182559F4FFC01D9 +:1006F0002491CB0186569F4FFC0144916A577F4F4E +:10070000FB019491992319F420E030E038C02223B2 +:1007100031F1233021F4809180008F7705C024309F +:1007200031F4809180008F7D8093800018C021304B +:1007300019F484B58F7704C0223021F484B58F7DFD +:1007400084BD0DC0263021F48091B0008F7705C0A4 +:10075000273029F48091B0008F7D8093B000892FDD +:1007600090E0880F991F84589F4FFC01A591B49188 +:100770008C9120E030E0842311F021E030E0C901C9 +:1007800008951F920F920FB60F9211242F933F934B +:100790004F935F936F937F938F939F93AF93BF9389 +:1007A000EF93FF934091C600E091B701F091B8013B +:1007B000CF01019660E870E00E9498069C0180914C +:1007C000B9019091BA012817390739F0E95CFE4F59 +:1007D00040833093B8012093B701FF91EF91BF910F +:1007E000AF919F918F917F916F915F914F913F91C9 +:1007F0002F910F900FBE0F901F9018955F926F92E0 +:100800007F928F929F92AF92BF92CF92DF92EF92A0 +:10081000FF920F931F93CF93DF93EC013A014B01AB +:10082000413281EA580787E0680780E078070CF0DA +:100830007FC060E472E48FE090E0A40193010E9425 +:10084000CD062150304040405040CA01B90122E05D +:1008500030E040E050E00E94CD0659016A01A60157 +:100860009501209530954095509594E0220F331FC7 +:10087000441F551F9A95D1F760E072E18AE790E036 +:100880000E94CD06CA01B9012FEF30E040E050E0F0 +:100890000E947906A40193010E94CD06C9018150EE +:1008A0009F4F181619061CF4522E5A9403C0552453 +:1008B0005394521A60E874E88EE190E0A401930129 +:1008C0000E94CD062150304040405040CA01B9013D +:1008D00022E030E040E050E00E94CD0620953095C7 +:1008E0004095509583E0220F331F441F551F8A9572 +:1008F000D1F760E072E18AE790E00E94CD06CA017C +:10090000B9012FEF30E040E050E00E947906A401E9 +:1009100093010E94CD06C90181509F4F18161906F8 +:100920001CF4822F815002C081E0821B851500F5E6 +:10093000E885F98581E090E00A8802C0880F991F58 +:100940000A94E2F7808360E874E88EE190E0A40105 +:1009500093010E94CD062150304040405040CA01D2 +:10096000B90122E030E040E050E00E94CD0604C032 +:10097000E885F98510829501EC81FD813083EE8157 +:10098000FF812083EA85FB85208141E050E0CA0198 +:100990000E8402C0880F991F0A94E2F7282B208347 +:1009A000EA85FB852081CA010F8402C0880F991F48 +:1009B0000A94E2F7282B2083EA85FB85808108884A +:1009C00002C0440F551F0A94E2F7842B8083DF9105 +:1009D000CF911F910F91FF90EF90DF90CF90BF903C +:1009E000AF909F908F907F906F905F900895FC01E3 +:1009F000A085B18521898C9190E0022E02C0959549 +:100A000087950A94E2F780FFF6CF0484F585E02D00 +:100A1000608308958AE191E09093BC018093BB01CB +:100A200087E391E09093BE018093BD0185EC90E057 +:100A30009093C0018093BF0184EC90E09093C20139 +:100A40008093C10180EC90E09093C4018093C30136 +:100A500081EC90E09093C6018093C50186EC90E014 +:100A60009093C8018093C70184E08093C90183E01B +:100A70008093CA0187E08093CB0185E08093CC010D +:100A800081E08093CD0108950F931F93CF93DF935F +:100A90008C01EB0109C02196D801ED91FC910190E8 +:100AA000F081E02DC801099568816623A1F7DF91E7 +:100AB000CF911F910F910895EF92FF920F931F9383 +:100AC000CF93DF938C017B01EA010CC0D7016D91BC +:100AD0007D01D801ED91FC910190F081E02DC801DC +:100AE00009952197209791F7DF91CF911F910F9151 +:100AF000FF90EF900895DC01ED91FC910280F3816D +:100B0000E02D099508950F931F938C01DC01ED9161 +:100B1000FC910190F081E02D6DE00995D801ED91F7 +:100B2000FC910190F081E02DC8016AE009951F91C8 +:100B30000F9108950F931F938C010E947B05C801AC +:100B40000E9483051F910F9108952F923F924F921B +:100B50005F926F927F928F929F92AF92BF92CF924D +:100B6000DF92EF92FF920F931F93DF93CF93CDB756 +:100B7000DEB7A0970FB6F894DEBF0FBECDBF1C0145 +:100B80006A017B01411551056105710549F4DC01DC +:100B9000ED91FC910190F081E02D60E3099554C046 +:100BA000882499245401422E55246624772401E098 +:100BB00010E00C0F1D1F080D191DC701B601A30180 +:100BC00092010E94AB06F80160830894811C911C7D +:100BD000A11CB11CC701B601A30192010E94AB0682 +:100BE000C901DA016C017D01C114D104E104F104F1 +:100BF000F1F681E0E82EF12CEC0EFD1EE80CF91C5C +:100C00003E010894611C711CD501C4010197A10922 +:100C1000B1096C01C818D90814C0F601EE0DFF1D0A +:100C200060816A3010F4605D01C0695CD101ED91B2 +:100C3000FC910190F081E02DC10109950894E10833 +:100C4000F1086E147F0449F7A0960FB6F894DEBF42 +:100C50000FBECDBFCF91DF911F910F91FF90EF900D +:100C6000DF90CF90BF90AF909F908F907F906F90CC +:100C70005F904F903F902F900895EF92FF920F93C7 +:100C80001F93CF93DF93EC017A018B0177FF0FC0A5 +:100C9000E881F9810190F081E02D6DE209951095D0 +:100CA0000095F094E094E11CF11C011D111DCE0192 +:100CB000B801A7012AE00E94A505DF91CF911F91FD +:100CC0000F91FF90EF900895DC012115310541F45B +:100CD000ED91FC910190F081E02D642F099508952C +:100CE0002A30310519F40E943D0608950E94A50599 +:100CF0000895629FD001739FF001829FE00DF11D66 +:100D0000649FE00DF11D929FF00D839FF00D749F85 +:100D1000F00D659FF00D9927729FB00DE11DF91F31 +:100D2000639FB00DE11DF91FBD01CF01112408958E +:100D300097FB092E07260AD077FD04D049D006D0AC +:100D400000201AF4709561957F4F0895F6F79095FD +:100D500081959F4F0895A1E21A2EAA1BBB1BFD018E +:100D60000DC0AA1FBB1FEE1FFF1FA217B307E4078A +:100D7000F50720F0A21BB30BE40BF50B661F771FE2 +:100D8000881F991F1A9469F76095709580959095C2 +:100D90009B01AC01BD01CF01089597FB092E0526EB +:100DA0000ED057FD04D0D7DF0AD0001C38F4509580 +:100DB0004095309521953F4F4F4F5F4F0895F6F77F +:100DC00090958095709561957F4F8F4F9F4F0895B7 +:100DD000AA1BBB1B51E107C0AA1FBB1FA617B70761 +:100DE00010F0A61BB70B881F991F5A95A9F780957D +:100DF0009095BC01CD010895EE0FFF1F0590F49171 +:080E0000E02D0994F894FFCFE6 +:100E0800456D70657A616D6F730001000200050021 +:100E18000A000500050000000000F70444055C0511 +:00000001FF diff --git a/2009/STROBE_09/applet/STROBE_09.cpp.o b/2009/STROBE_09/applet/STROBE_09.cpp.o new file mode 100644 index 0000000..8f20ea7 Binary files /dev/null and b/2009/STROBE_09/applet/STROBE_09.cpp.o differ diff --git a/2009/STROBE_09/applet/WInterrupts.c.o b/2009/STROBE_09/applet/WInterrupts.c.o new file mode 100644 index 0000000..978ea90 Binary files /dev/null and b/2009/STROBE_09/applet/WInterrupts.c.o differ diff --git a/2009/STROBE_09/applet/WMath.cpp.o b/2009/STROBE_09/applet/WMath.cpp.o new file mode 100644 index 0000000..92589f7 Binary files /dev/null and b/2009/STROBE_09/applet/WMath.cpp.o differ diff --git a/2009/STROBE_09/applet/core.a b/2009/STROBE_09/applet/core.a new file mode 100644 index 0000000..e51a5b1 Binary files /dev/null and b/2009/STROBE_09/applet/core.a differ diff --git a/2009/STROBE_09/applet/pins_arduino.c.o b/2009/STROBE_09/applet/pins_arduino.c.o new file mode 100644 index 0000000..62d00ac Binary files /dev/null and b/2009/STROBE_09/applet/pins_arduino.c.o differ diff --git a/2009/STROBE_09/applet/wiring.c.o b/2009/STROBE_09/applet/wiring.c.o new file mode 100644 index 0000000..819c634 Binary files /dev/null and b/2009/STROBE_09/applet/wiring.c.o differ diff --git a/2009/STROBE_09/applet/wiring_analog.c.o b/2009/STROBE_09/applet/wiring_analog.c.o new file mode 100644 index 0000000..550c6c1 Binary files /dev/null and b/2009/STROBE_09/applet/wiring_analog.c.o differ diff --git a/2009/STROBE_09/applet/wiring_digital.c.o b/2009/STROBE_09/applet/wiring_digital.c.o new file mode 100644 index 0000000..a63759a Binary files /dev/null and b/2009/STROBE_09/applet/wiring_digital.c.o differ diff --git a/2009/STROBE_09/applet/wiring_pulse.c.o b/2009/STROBE_09/applet/wiring_pulse.c.o new file mode 100644 index 0000000..a9c8837 Binary files /dev/null and b/2009/STROBE_09/applet/wiring_pulse.c.o differ diff --git a/2009/STROBE_09/applet/wiring_shift.c.o b/2009/STROBE_09/applet/wiring_shift.c.o new file mode 100644 index 0000000..ea2abcf Binary files /dev/null and b/2009/STROBE_09/applet/wiring_shift.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/HardwareSerial.cpp.o b/2009/Sueños de un grifo/fuente/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/HardwareSerial.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/Print.cpp.o b/2009/Sueños de un grifo/fuente/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/Print.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/WInterrupts.c.o b/2009/Sueños de un grifo/fuente/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/WInterrupts.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/WMath.cpp.o b/2009/Sueños de un grifo/fuente/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/WMath.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/fuente.cpp b/2009/Sueños de un grifo/fuente/applet/fuente.cpp new file mode 100644 index 0000000..6124b0b --- /dev/null +++ b/2009/Sueños de un grifo/fuente/applet/fuente.cpp @@ -0,0 +1,113 @@ +#include "WProgram.h" +void setup(); +void loop(); +int time= 5; +int ledPin = 2; +int bomba = 9; +int sensor1 = 14; +int sensor2 = 15; +int gota = 2; +int pot=0; +int val=10; +int pul1=17; +int pul2=18; +int pul3=19; +int val1=255; +int inc=1; +int flag1=0; +int flag2=0; +int flag3=0; +int temp_ini=time; +int temp_ini_ant; +int temp_ant=0; + +void setup() // run once, when the sketch starts +{ + pinMode(ledPin, OUTPUT); // sets the digital pin as output + //pinMode(sensor1, INPUT); + //pinMode(sensor2, INPUT); + pinMode(pul1, INPUT); + pinMode(pul2, INPUT); + pinMode(pul3, INPUT); + pinMode(13, OUTPUT); + pinMode(bomba, OUTPUT); + //digitalWrite(sensor1, HIGH); + //digitalWrite(sensor2, HIGH); + digitalWrite(pul1, HIGH); + digitalWrite(pul2, HIGH); + digitalWrite(pul3, HIGH); + digitalWrite(13, HIGH); //Encendido + //analogWrite(bomba, val); +} + +void loop() // run over and over again +{ + //if ((digitalRead(sensor1)==0)&&(digitalRead(sensor2)==1)) digitalWrite(bomba, HIGH); + //else if ((digitalRead(sensor1)==1)&&(digitalRead(sensor2)==0)) digitalWrite(bomba, LOW); + + + /*if (digitalRead(pul1)==0) analogWrite(bomba, 255); + if (digitalRead(pul2)==0) analogWrite(bomba, 200); + if (digitalRead(pul3)==0) analogWrite(bomba, 160);*/ + + if ((digitalRead(pul1)==0)&&(flag1==0)) + { + if ((val1+inc)>=255) val1=255; + else val1=val1+inc; + flag1=1; + } + else if(digitalRead(pul1)==1) flag1=0; + + if ((digitalRead(pul2)==0)&&(flag2==0)) + { + val1=150; + flag2=1; + } + else if(digitalRead(pul2)==1) flag2=0; + if ((digitalRead(pul3)==0)&&(flag3==0)) + { + if (val1<=inc) val1=0; + else val1=val1-inc; + flag3=1; + } + else if(digitalRead(pul3)==1) flag3=0; + + analogWrite(bomba, val1); + /*if (analogRead(gota)>800) digitalWrite(ledPin,HIGH); + else digitalWrite(ledPin,LOW);*/ + if ((analogRead(1)>analogRead(0))&&((temp_ini-temp_ant) <= time)) + { + //if ((temp_ini-millis())>(time-8)) digitalWrite(ledPin,HIGH); + digitalWrite(ledPin,HIGH); + temp_ini=millis(); + } + else if (analogRead(1)time) + { + digitalWrite(ledPin,LOW); + } + + /*val=analogRead(pot); + digitalWrite(ledPin, HIGH); // sets the LED on + delay(2); // waits for a second + digitalWrite(ledPin, LOW); // sets the LED off + delay(val); // waits for a second*/ +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/Sueños de un grifo/fuente/applet/fuente.cpp.o b/2009/Sueños de un grifo/fuente/applet/fuente.cpp.o new file mode 100644 index 0000000..489cb83 Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/fuente.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/fuente.eep b/2009/Sueños de un grifo/fuente/applet/fuente.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/Sueños de un grifo/fuente/applet/fuente.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/Sueños de un grifo/fuente/applet/fuente.elf b/2009/Sueños de un grifo/fuente/applet/fuente.elf new file mode 100644 index 0000000..f63ce0c Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/fuente.elf differ diff --git a/2009/Sueños de un grifo/fuente/applet/fuente.hex b/2009/Sueños de un grifo/fuente/applet/fuente.hex new file mode 100644 index 0000000..6671ac8 --- /dev/null +++ b/2009/Sueños de un grifo/fuente/applet/fuente.hex @@ -0,0 +1,148 @@ +:100000000C945C000C94D5010C9402020C948400B6 +:100010000C9484000C9484000C9484000C94840050 +:100020000C9484000C9484000C9484000C94840040 +:100030000C9484000C9484000C9484000C94840030 +:100040000C942F020C9484000C941A040C948400D9 +:100050000C9484000C9484000C9484000C94840010 +:100060000C9484000C948400000024272A000025AE +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B000000000008600CA0111241FBECFEFD4E06B +:1000C000DEBFCDBF11E0A0E0B1E0ECE0F9E002C09E +:1000D00005900D92A831B107D9F711E0A8E1B1E080 +:1000E00001C01D92AA3BB107E1F710E0C8EBD0E0D8 +:1000F00004C02297FE010E948004C43BD107C9F7C7 +:100100000E94C3010C9484040C94000080910001AF +:100110009091010190931F0180931E0108950F9308 +:100120001F93809106010E94C603892B09F0D4C059 +:100130008091180190911901892B09F0CDC020916F +:100140000E0130910F0180910C0190910D01280F4B +:10015000391F2F3F31053CF08FEF90E090930D0158 +:1001600080930C0104C030930D0120930C0181E0B9 +:1001700090E0909319018093180104C01092190126 +:1001800010921801809108010E94C603892B09F082 +:10019000ABC080911A0190911B01892B09F0A4C07A +:1001A00086E990E090930D0180930C0181E090E04E +:1001B00090931B0180931A0104C010921B011092AE +:1001C0001A0180910A010E94C603892B09F094C08C +:1001D00080911C0190911D01892B09F08DC08091A7 +:1001E0000C0190910D0120910E0130910F01281703 +:1001F00039072CF010920D0110920C0106C0821BE1 +:10020000930B90930D0180930C0181E090E090930B +:100210001D0180931C0104C010921D0110921C014D +:1002200060910C0170910D01809104010E94050301 +:1002300081E00E94E7028C0180E00E94E7028017C3 +:1002400091070CF061C080911E0190911F012091D7 +:10025000220130912301821B930B209100013091E8 +:100260000101281739070CF44FC061E080910201A9 +:100270000E947B030E949F0270931F0160931E01E6 +:100280004EC00E949F02709323016093220160E0A0 +:10029000809102010E947B0380911E0190911F01B9 +:1002A00090932101809320013AC080911E0190918A +:1002B0001F012091220130912301821B930B209179 +:1002C000000130910101281739074CF560E0809159 +:1002D00002010E947B0323C0809106010E94C60395 +:1002E000019709F04FCF4ACF809108010E94C603C1 +:1002F000019709F066CF61CF80910A010E94C60381 +:10030000019709F08DCF88CF81E00E94E7028C0130 +:1003100080E00E94E702081719073CF6B2CF1F9150 +:100320000F91089561E0809102010E945D0360E0F9 +:10033000809106010E945D0360E0809108010E94A7 +:100340005D0360E080910A010E945D0361E08DE041 +:100350000E945D0361E0809104010E945D0361E001 +:10036000809106010E947B0361E0809108010E9458 +:100370007B0361E080910A010E947B0361E08DE0D4 +:100380000E947B0308950E94AD020E9492010E9488 +:100390008F00FDCF85E191E09093250180932401AA +:1003A0000895862F0E94120408951F920F920FB68F +:1003B0000F9211242F933F934F935F936F937F93EB +:1003C0008F939F93AF93BF93EF93FF9380912601F9 +:1003D00090912701892B29F0E0912601F0912701C6 +:1003E0000995FF91EF91BF91AF919F918F917F916F +:1003F0006F915F914F913F912F910F900FBE0F9092 +:100400001F9018951F920F920FB60F9211242F93E1 +:100410003F934F935F936F937F938F939F93AF938C +:10042000BF93EF93FF938091280190912901892B2D +:1004300029F0E0912801F09129010995FF91EF91B0 +:10044000BF91AF919F918F917F916F915F914F91EC +:100450003F912F910F900FBE0F901F9018951F92F4 +:100460000F920FB60F9211242F938F939F93AF93F8 +:10047000BF9380912A0190912B01A0912C01B09102 +:100480002D010196A11DB11D80932A0190932B018E +:10049000A0932C01B0932D0180912E0190912F01FA +:1004A000A0913001B09131018050904CAF4FBF4FBF +:1004B00080932E0190932F01A0933001B0933101CE +:1004C00027C080912E0190912F01A0913001B09111 +:1004D000310180589E43A040B04080932E019093FC +:1004E0002F01A0933001B09331018091320190919E +:1004F0003301A0913401B09135010196A11DB11DC8 +:100500008093320190933301A0933401B09335016D +:1005100080912E0190912F01A0913001B091310175 +:1005200081589E43A040B04060F6BF91AF919F912B +:100530008F912F910F900FBE0F901F9018958FB72E +:10054000F89420913201309133014091340150915F +:1005500035018FBFB901CA010895789484B58260CE +:1005600084BD84B5816084BD85B5826085BD85B557 +:10057000816085BDEEE6F0E0808181608083E1E806 +:10058000F0E0808182608083808181608083E0E808 +:10059000F0E0808181608083E1EBF0E08081846025 +:1005A0008083E0EBF0E0808181608083EAE7F0E027 +:1005B000808184608083808182608083808181608B +:1005C00080838081806880831092C10008958F703D +:1005D000909110019295990F990F907C982B909380 +:1005E0007C0080917A00806480937A0080917A0008 +:1005F00086FDFCCF2091780040917900942F80E017 +:1006000030E0282B392BC90108951F93CF93DF9336 +:10061000182FEB0161E00E945D03E12FF0E0E1564D +:10062000FF4F8491833051F48091800080688093E3 +:100630008000D0938900C09388003BC0843051F47F +:1006400080918000806280938000D0938B00C09363 +:100650008A002FC0813039F4209729F184B5806851 +:1006600084BDC7BD26C0823039F42097E1F084B53F +:10067000806284BDC8BD1DC0863041F48091B00049 +:1006800080688093B000C093B30013C0873041F4FA +:100690008091B00080628093B000C093B40009C024 +:1006A000C038D10514F460E001C061E0812F0E94E0 +:1006B0007B03DF91CF911F910895282F30E0C9016E +:1006C00085579F4FFC01949129583F4FF901849120 +:1006D000882381F0E82FF0E0E859FF4FE491F0E043 +:1006E000662329F4808190958923808308958081F1 +:1006F000892B80830895482F50E0CA0181569F4F6F +:10070000FC012491CA0185579F4FFC0194914958DF +:100710005F4FFA0134913323C1F1222331F12330A9 +:1007200021F4809180008F7705C0243031F48091CE +:1007300080008F7D8093800018C0213019F484B52B +:100740008F7704C0223021F484B58F7D84BD0DC025 +:10075000263021F48091B0008F7705C0273029F42E +:100760008091B0008F7D8093B000E32FF0E0E359DB +:10077000FF4FE491F0E0662329F48081909589236E +:10078000808308958081892B80830895482F50E0CD +:10079000CA0181569F4FFC012491CA0185579F4F82 +:1007A000FC01949149585F4FFA013491332319F4B5 +:1007B00020E030E035C0222331F1233021F4809154 +:1007C00080008F7705C0243031F4809180008F7DC8 +:1007D0008093800018C0213019F484B58F7704C04D +:1007E000223021F484B58F7D84BD0DC0263021F4E4 +:1007F0008091B0008F7705C0273029F48091B00038 +:100800008F7D8093B000E32FF0E0EE58FF4FE4912E +:10081000F0E0808120E030E0892311F021E030E039 +:10082000C9010895982F8091C00085FFFCCF909357 +:10083000C60008951F920F920FB60F9211242F93A6 +:100840003F934F935F936F937F938F939F93AF9358 +:10085000BF93EF93FF934091C600E0913601F09172 +:100860003701CF01019660E870E00E9457049C01B7 +:1008700080913801909139012817390739F0E65CE9 +:10088000FE4F40833093370120933601FF91EF9163 +:10089000BF91AF919F918F917F916F915F914F9198 +:1008A0003F912F910F900FBE0F901F90189597FBBF +:1008B000092E07260AD077FD04D00CD006D00020E0 +:1008C0001AF4709561957F4F0895F6F7909581958C +:1008D0009F4F0895AA1BBB1B51E107C0AA1FBB1F56 +:1008E000A617B70710F0A61BB70B881F991F5A95BC +:1008F000A9F780959095BC01CD010895EE0FFF1FDB +:0C0900000590F491E02D0994F894FFCFCD +:10090C00050002000900110012001300FF00010095 +:08091C000100000000D1010000 +:00000001FF diff --git a/2009/Sueños de un grifo/fuente/applet/pins_arduino.c.o b/2009/Sueños de un grifo/fuente/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/pins_arduino.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/wiring.c.o b/2009/Sueños de un grifo/fuente/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/wiring.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/wiring_analog.c.o b/2009/Sueños de un grifo/fuente/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/wiring_analog.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/wiring_digital.c.o b/2009/Sueños de un grifo/fuente/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/wiring_digital.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/wiring_pulse.c.o b/2009/Sueños de un grifo/fuente/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/wiring_pulse.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/wiring_serial.c.o b/2009/Sueños de un grifo/fuente/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/wiring_serial.c.o differ diff --git a/2009/Sueños de un grifo/fuente/applet/wiring_shift.c.o b/2009/Sueños de un grifo/fuente/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/Sueños de un grifo/fuente/applet/wiring_shift.c.o differ diff --git a/2009/Sueños de un grifo/fuente/fuente.pde b/2009/Sueños de un grifo/fuente/fuente.pde new file mode 100644 index 0000000..7183c78 --- /dev/null +++ b/2009/Sueños de un grifo/fuente/fuente.pde @@ -0,0 +1,97 @@ +int time= 5; +int ledPin = 2; +int bomba = 9; +int sensor1 = 14; +int sensor2 = 15; +int gota = 2; +int pot=0; +int val=10; +int pul1=17; +int pul2=18; +int pul3=19; +int val1=255; +int inc=1; +int flag1=0; +int flag2=0; +int flag3=0; +int temp_ini=time; +int temp_ini_ant; +int temp_ant=0; + +void setup() // run once, when the sketch starts +{ + pinMode(ledPin, OUTPUT); // sets the digital pin as output + //pinMode(sensor1, INPUT); + //pinMode(sensor2, INPUT); + pinMode(pul1, INPUT); + pinMode(pul2, INPUT); + pinMode(pul3, INPUT); + pinMode(13, OUTPUT); + pinMode(bomba, OUTPUT); + //digitalWrite(sensor1, HIGH); + //digitalWrite(sensor2, HIGH); + digitalWrite(pul1, HIGH); + digitalWrite(pul2, HIGH); + digitalWrite(pul3, HIGH); + digitalWrite(13, HIGH); //Encendido + //analogWrite(bomba, val); +} + +void loop() // run over and over again +{ + //if ((digitalRead(sensor1)==0)&&(digitalRead(sensor2)==1)) digitalWrite(bomba, HIGH); + //else if ((digitalRead(sensor1)==1)&&(digitalRead(sensor2)==0)) digitalWrite(bomba, LOW); + + + /*if (digitalRead(pul1)==0) analogWrite(bomba, 255); + if (digitalRead(pul2)==0) analogWrite(bomba, 200); + if (digitalRead(pul3)==0) analogWrite(bomba, 160);*/ + + if ((digitalRead(pul1)==0)&&(flag1==0)) + { + if ((val1+inc)>=255) val1=255; + else val1=val1+inc; + flag1=1; + } + else if(digitalRead(pul1)==1) flag1=0; + + if ((digitalRead(pul2)==0)&&(flag2==0)) + { + val1=150; + flag2=1; + } + else if(digitalRead(pul2)==1) flag2=0; + if ((digitalRead(pul3)==0)&&(flag3==0)) + { + if (val1<=inc) val1=0; + else val1=val1-inc; + flag3=1; + } + else if(digitalRead(pul3)==1) flag3=0; + + analogWrite(bomba, val1); + /*if (analogRead(gota)>800) digitalWrite(ledPin,HIGH); + else digitalWrite(ledPin,LOW);*/ + if ((analogRead(1)>analogRead(0))&&((temp_ini-temp_ant) <= time)) + { + //if ((temp_ini-millis())>(time-8)) digitalWrite(ledPin,HIGH); + digitalWrite(ledPin,HIGH); + temp_ini=millis(); + } + else if (analogRead(1)time) + { + digitalWrite(ledPin,LOW); + } + + /*val=analogRead(pot); + digitalWrite(ledPin, HIGH); // sets the LED on + delay(2); // waits for a second + digitalWrite(ledPin, LOW); // sets the LED off + delay(val); // waits for a second*/ +} diff --git a/2009/Sueños de un grifo/fuente_pote/applet/HardwareSerial.cpp.o b/2009/Sueños de un grifo/fuente_pote/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/HardwareSerial.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/Print.cpp.o b/2009/Sueños de un grifo/fuente_pote/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/Print.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/WInterrupts.c.o b/2009/Sueños de un grifo/fuente_pote/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/WInterrupts.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/WMath.cpp.o b/2009/Sueños de un grifo/fuente_pote/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/WMath.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.cpp b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.cpp new file mode 100644 index 0000000..6d5d422 --- /dev/null +++ b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.cpp @@ -0,0 +1,139 @@ +#include "WProgram.h" +void setup(); +void loop(); +int time= 5; +int ledPin = 2; +int bomba = 9; +int sensor1 = 14; +int sensor2 = 15; +int gota = 2; +int pot=4; // el del medio +int val=10; +int pul1=17; +int pul2=18; +int pul3=19; +int val1=255; +int inc=20; +int flag1=0; +int flag2=0; +int flag3=0; +long temp_ini=0; +long temp_ini_ant; +long temp_ant=0; + +void setup() // run once, when the sketch starts +{ + pinMode(ledPin, OUTPUT); // sets the digital pin as output + //pinMode(sensor1, INPUT); + //pinMode(sensor2, INPUT); + pinMode(pul1, INPUT); + //pinMode(pul2, INPUT); + pinMode(pul3, INPUT); + pinMode(13, OUTPUT); + pinMode(bomba, OUTPUT); + //digitalWrite(sensor1, HIGH); + //digitalWrite(sensor2, HIGH); + digitalWrite(pul1, HIGH); + //digitalWrite(pul2, HIGH); + digitalWrite(pul3, HIGH); + digitalWrite(13, HIGH); //Encendido + //analogWrite(bomba, val); +} + +void loop() // run over and over again +{ + //if ((digitalRead(sensor1)==0)&&(digitalRead(sensor2)==1)) digitalWrite(bomba, HIGH); + //else if ((digitalRead(sensor1)==1)&&(digitalRead(sensor2)==0)) digitalWrite(bomba, LOW); + + + /*if (digitalRead(pul1)==0) analogWrite(bomba, 255); + if (digitalRead(pul2)==0) analogWrite(bomba, 200); + if (digitalRead(pul3)==0) analogWrite(bomba, 160);*/ + + if ((digitalRead(pul1)==0)&&(flag1==0)) + { + if ((val1+inc)>=255) val1=255; + else val1=val1+inc; + flag1=1; + } + else if(digitalRead(pul1)==1) flag1=0; + + /* + if ((digitalRead(pul2)==0)&&(flag2==0)) + { + val1=150; + flag2=1; + } + else if(digitalRead(pul2)==1) flag2=0; + */ + + if ((digitalRead(pul3)==0)&&(flag3==0)) + { + if (val1<=inc) val1=0; + else val1=val1-inc; + flag3=1; + } + else if(digitalRead(pul3)==1) flag3=0; + + + analogWrite(bomba, val1); + /*if (analogRead(gota)>800) digitalWrite(ledPin,HIGH); + else digitalWrite(ledPin,LOW);*/ + + /* + if ((analogRead(1)>analogRead(0))&&((temp_ini-temp_ant) <= time)) + { + //if ((temp_ini-millis())>(time-8)) digitalWrite(ledPin,HIGH); + digitalWrite(ledPin,HIGH); + temp_ini=millis(); + } + else if (analogRead(1)time) + { + digitalWrite(ledPin,LOW); + } + */ + + + val=analogRead(pot); + if(val<2) + val = 2; + + digitalWrite(ledPin, HIGH); + delay(2); + digitalWrite(ledPin, LOW); + delay(val); + /* + //temp_ini=millis(); + if (((temp_ini-temp_ant) <= pot)) + { + digitalWrite(ledPin, HIGH); // sets the LED on + //temp_ant = temp_ini; + }//delay(2); // waits for a second + else + { + digitalWrite(ledPin, LOW); // sets the LED off + temp_ant = temp_ini; + temp_ini = millis(); + }*/ + //delay(val); // waits for a second*/ + +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.cpp.o b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.cpp.o new file mode 100644 index 0000000..1a0f335 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.cpp.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.eep b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.elf b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.elf new file mode 100644 index 0000000..ef7b787 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.elf differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.hex b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.hex new file mode 100644 index 0000000..18c026b --- /dev/null +++ b/2009/Sueños de un grifo/fuente_pote/applet/fuente_pote.hex @@ -0,0 +1,137 @@ +:100000000C945B000C9461010C948E010C948300A1 +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C94BB010C9483000C94C2030C948300A9 +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000560111241FBECFEFD4E0DEBFC8 +:1000C000CDBF11E0A0E0B1E0ECE5F8E002C00590A2 +:1000D0000D92A831B107D9F711E0A8E1B1E001C054 +:1000E0001D92A23BB107E1F710E0C6EBD0E004C0DF +:1000F0002297FE010E942804C43BD107C9F70E9441 +:100100004F010C942C040C940000809108010E9473 +:100110006E03892B09F08CC0809118019091190110 +:10012000892B09F085C020910E0130910F0180913B +:100130000C0190910D01280F391F2F3F31053CF024 +:100140008FEF90E090930D0180930C0104C03093E9 +:100150000D0120930C0181E090E0909319018093B0 +:10016000180104C0109219011092180180910A011F +:100170000E946E03892B09F063C080911A0190914F +:100180001B01892B09F05CC080910C0190910D013D +:1001900020910E0130910F01281739072CF0109291 +:1001A0000D0110920C0106C0821B930B90930D0160 +:1001B00080930C0181E090E090931B0180931A01E1 +:1001C00004C010921B0110921A0160910C017091F1 +:1001D0000D01809102010E94AD02809104010E94F4 +:1001E0008F029093070180930601029734F482E016 +:1001F00090E0909307018093060161E080910001F7 +:100200000E94230362E070E080E090E00E942B02F5 +:1002100060E0809100010E942303609106017091CB +:100220000701882777FD8095982F0E942B0208955B +:10023000809108010E946E03019709F097CF92CF39 +:1002400080910A010E946E03019709F0BECFB9CFD9 +:1002500061E0809100010E94050360E08091080147 +:100260000E94050360E080910A010E94050361E09D +:100270008DE00E94050361E0809102010E94050368 +:1002800061E0809108010E94230361E080910A01EE +:100290000E94230361E08DE00E94230308950E94E1 +:1002A00055020E9428010E948500FDCF85E191E062 +:1002B00090931D0180931C010895862F0E94BA031C +:1002C00008951F920F920FB60F9211242F933F9310 +:1002D0004F935F936F937F938F939F93AF93BF934E +:1002E000EF93FF9380911E0190911F01892B29F0BC +:1002F000E0911E01F0911F010995FF91EF91BF91CF +:10030000AF919F918F917F916F915F914F913F91AD +:100310002F910F900FBE0F901F9018951F920F9264 +:100320000FB60F9211242F933F934F935F936F93C8 +:100330007F938F939F93AF93BF93EF93FF9380919E +:10034000200190912101892B29F0E0912001F09169 +:1003500021010995FF91EF91BF91AF919F918F91ED +:100360007F916F915F914F913F912F910F900FBEB1 +:100370000F901F9018951F920F920FB60F92112495 +:100380002F938F939F93AF93BF938091220190916E +:100390002301A0912401B09125010196A11DB11D59 +:1003A0008093220190932301A0932401B09325010F +:1003B0008091260190912701A0912801B0912901F7 +:1003C0008050904CAF4FBF4F8093260190932701F0 +:1003D000A0932801B093290127C080912601909114 +:1003E0002701A0912801B091290180589E43A04087 +:1003F000B0408093260190932701A0932801B093E9 +:10040000290180912A0190912B01A0912C01B0919A +:100410002D010196A11DB11D80932A0190932B01FE +:10042000A0932C01B0932D0180912601909127017A +:10043000A0912801B091290181589E43A040B0406D +:1004400060F6BF91AF919F918F912F910F900FBE4A +:100450000F901F901895EF92FF920F931F937B01BF +:100460008C018FB7F89440912A0150912B01609133 +:100470002C0170912D018FBF2FB7F89480912A0124 +:1004800090912B01A0912C01B0912D012FBF841BC5 +:10049000950BA60BB70BE816F9060A071B0760F7C2 +:1004A0001F910F91FF90EF900895789484B582602A +:1004B00084BD84B5816084BD85B5826085BD85B508 +:1004C000816085BDEEE6F0E0808181608083E1E8B7 +:1004D000F0E0808182608083808181608083E0E8B9 +:1004E000F0E0808181608083E1EBF0E080818460D6 +:1004F0008083E0EBF0E0808181608083EAE7F0E0D8 +:10050000808184608083808182608083808181603B +:1005100080838081806880831092C10008958F70ED +:10052000909110019295990F990F907C982B909330 +:100530007C0080917A00806480937A0080917A00B8 +:1005400086FDFCCF2091780040917900942F80E0C7 +:1005500030E0282B392BC90108951F93CF93DF93E7 +:10056000182FEB0161E00E940503E12FF0E0E15656 +:10057000FF4F8491833051F4809180008068809394 +:100580008000D0938900C09388003BC0843051F430 +:1005900080918000806280938000D0938B00C09314 +:1005A0008A002FC0813039F4209729F184B5806802 +:1005B00084BDC7BD26C0823039F42097E1F084B5F0 +:1005C000806284BDC8BD1DC0863041F48091B000FA +:1005D00080688093B000C093B30013C0873041F4AB +:1005E0008091B00080628093B000C093B40009C0D5 +:1005F000C038D10514F460E001C061E0812F0E9491 +:100600002303DF91CF911F910895282F30E0C90176 +:1006100085579F4FFC01949129583F4FF9018491D0 +:10062000882381F0E82FF0E0E859FF4FE491F0E0F3 +:10063000662329F4808190958923808308958081A1 +:10064000892B80830895482F50E0CA0181569F4F1F +:10065000FC012491CA0185579F4FFC019491495890 +:100660005F4FFA0134913323C1F1222331F123305A +:1006700021F4809180008F7705C0243031F480917F +:1006800080008F7D8093800018C0213019F484B5DC +:100690008F7704C0223021F484B58F7D84BD0DC0D6 +:1006A000263021F48091B0008F7705C0273029F4DF +:1006B0008091B0008F7D8093B000E32FF0E0E3598C +:1006C000FF4FE491F0E0662329F48081909589231F +:1006D000808308958081892B80830895482F50E07E +:1006E000CA0181569F4FFC012491CA0185579F4F33 +:1006F000FC01949149585F4FFA013491332319F466 +:1007000020E030E035C0222331F1233021F4809104 +:1007100080008F7705C0243031F4809180008F7D78 +:100720008093800018C0213019F484B58F7704C0FD +:10073000223021F484B58F7D84BD0DC0263021F494 +:100740008091B0008F7705C0273029F48091B000E8 +:100750008F7D8093B000E32FF0E0EE58FF4FE491DF +:10076000F0E0808120E030E0892311F021E030E0EA +:10077000C9010895982F8091C00085FFFCCF909308 +:10078000C60008951F920F920FB60F9211242F9357 +:100790003F934F935F936F937F938F939F93AF9309 +:1007A000BF93EF93FF934091C600E0912E01F0912B +:1007B0002F01CF01019660E870E00E94FF039C01C9 +:1007C00080913001909131012817390739F0EE5CA2 +:1007D000FE4F408330932F0120932E01FF91EF9124 +:1007E000BF91AF919F918F917F916F915F914F9149 +:1007F0003F912F910F900FBE0F901F90189597FB70 +:10080000092E07260AD077FD04D00CD006D0002090 +:100810001AF4709561957F4F0895F6F7909581953C +:100820009F4F0895AA1BBB1B51E107C0AA1FBB1F06 +:10083000A617B70710F0A61BB70B881F991F5A956C +:10084000A9F780959095BC01CD010895EE0FFF1F8B +:0C0850000590F491E02D0994F894FFCF7E +:10085C000200090004000A0011001300FF0014003C +:08086C0001000000005D010025 +:00000001FF diff --git a/2009/Sueños de un grifo/fuente_pote/applet/pins_arduino.c.o b/2009/Sueños de un grifo/fuente_pote/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/pins_arduino.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/wiring.c.o b/2009/Sueños de un grifo/fuente_pote/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/wiring.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/wiring_analog.c.o b/2009/Sueños de un grifo/fuente_pote/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/wiring_analog.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/wiring_digital.c.o b/2009/Sueños de un grifo/fuente_pote/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/wiring_digital.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/wiring_pulse.c.o b/2009/Sueños de un grifo/fuente_pote/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/wiring_pulse.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/wiring_serial.c.o b/2009/Sueños de un grifo/fuente_pote/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/wiring_serial.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/applet/wiring_shift.c.o b/2009/Sueños de un grifo/fuente_pote/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/Sueños de un grifo/fuente_pote/applet/wiring_shift.c.o differ diff --git a/2009/Sueños de un grifo/fuente_pote/fuente_pote.pde b/2009/Sueños de un grifo/fuente_pote/fuente_pote.pde new file mode 100644 index 0000000..91961b6 --- /dev/null +++ b/2009/Sueños de un grifo/fuente_pote/fuente_pote.pde @@ -0,0 +1,123 @@ +int time= 5; +int ledPin = 2; +int bomba = 9; +int sensor1 = 14; +int sensor2 = 15; +int gota = 2; +int pot=4; // el del medio +int val=10; +int pul1=17; +int pul2=18; +int pul3=19; +int val1=255; +int inc=20; +int flag1=0; +int flag2=0; +int flag3=0; +long temp_ini=0; +long temp_ini_ant; +long temp_ant=0; + +void setup() // run once, when the sketch starts +{ + pinMode(ledPin, OUTPUT); // sets the digital pin as output + //pinMode(sensor1, INPUT); + //pinMode(sensor2, INPUT); + pinMode(pul1, INPUT); + //pinMode(pul2, INPUT); + pinMode(pul3, INPUT); + pinMode(13, OUTPUT); + pinMode(bomba, OUTPUT); + //digitalWrite(sensor1, HIGH); + //digitalWrite(sensor2, HIGH); + digitalWrite(pul1, HIGH); + //digitalWrite(pul2, HIGH); + digitalWrite(pul3, HIGH); + digitalWrite(13, HIGH); //Encendido + //analogWrite(bomba, val); +} + +void loop() // run over and over again +{ + //if ((digitalRead(sensor1)==0)&&(digitalRead(sensor2)==1)) digitalWrite(bomba, HIGH); + //else if ((digitalRead(sensor1)==1)&&(digitalRead(sensor2)==0)) digitalWrite(bomba, LOW); + + + /*if (digitalRead(pul1)==0) analogWrite(bomba, 255); + if (digitalRead(pul2)==0) analogWrite(bomba, 200); + if (digitalRead(pul3)==0) analogWrite(bomba, 160);*/ + + if ((digitalRead(pul1)==0)&&(flag1==0)) + { + if ((val1+inc)>=255) val1=255; + else val1=val1+inc; + flag1=1; + } + else if(digitalRead(pul1)==1) flag1=0; + + /* + if ((digitalRead(pul2)==0)&&(flag2==0)) + { + val1=150; + flag2=1; + } + else if(digitalRead(pul2)==1) flag2=0; + */ + + if ((digitalRead(pul3)==0)&&(flag3==0)) + { + if (val1<=inc) val1=0; + else val1=val1-inc; + flag3=1; + } + else if(digitalRead(pul3)==1) flag3=0; + + + analogWrite(bomba, val1); + /*if (analogRead(gota)>800) digitalWrite(ledPin,HIGH); + else digitalWrite(ledPin,LOW);*/ + + /* + if ((analogRead(1)>analogRead(0))&&((temp_ini-temp_ant) <= time)) + { + //if ((temp_ini-millis())>(time-8)) digitalWrite(ledPin,HIGH); + digitalWrite(ledPin,HIGH); + temp_ini=millis(); + } + else if (analogRead(1)time) + { + digitalWrite(ledPin,LOW); + } + */ + + + val=analogRead(pot); + if(val<2) + val = 2; + + digitalWrite(ledPin, HIGH); + delay(2); + digitalWrite(ledPin, LOW); + delay(val); + /* + //temp_ini=millis(); + if (((temp_ini-temp_ant) <= pot)) + { + digitalWrite(ledPin, HIGH); // sets the LED on + //temp_ant = temp_ini; + }//delay(2); // waits for a second + else + { + digitalWrite(ledPin, LOW); // sets the LED off + temp_ant = temp_ini; + temp_ini = millis(); + }*/ + //delay(val); // waits for a second*/ + +} diff --git a/2009/TONI.zip b/2009/TONI.zip new file mode 100644 index 0000000..6c39139 Binary files /dev/null and b/2009/TONI.zip differ diff --git a/2009/TONI/TONI.pde b/2009/TONI/TONI.pde new file mode 100644 index 0000000..e422bbc --- /dev/null +++ b/2009/TONI/TONI.pde @@ -0,0 +1,37 @@ +/* + * Blink + * + * The basic Arduino example. Turns on an LED on for one second, + * then off for one second, and so on... We use pin 13 because, + * depending on your Arduino board, it has either a built-in LED + * or a built-in resistor so that you need only an LED. + * + * http://www.arduino.cc/en/Tutorial/Blink + */ + +int rele1 = 8; +int rele2 = 9; +int rele3 = 10; + +void setup() // run once, when the sketch starts +{ + pinMode(rele1, OUTPUT); // sets the digital pin as output + pinMode(rele2, OUTPUT); // sets the digital pin as output + pinMode(rele3, OUTPUT); // sets the digital pin as output +} + +void loop() +{ + digitalWrite(rele1, HIGH); + delay(40000); + digitalWrite(rele2, HIGH); + delay(15000); + digitalWrite(rele1, LOW); + delay(30000); + digitalWrite(rele1, HIGH); + digitalWrite(rele3, HIGH); + delay(15000); + digitalWrite(rele1, LOW); + digitalWrite(rele2, LOW); + digitalWrite(rele3, LOW); +} diff --git a/2009/TONI/applet/HardwareSerial.cpp.o b/2009/TONI/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/TONI/applet/HardwareSerial.cpp.o differ diff --git a/2009/TONI/applet/Print.cpp.o b/2009/TONI/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/TONI/applet/Print.cpp.o differ diff --git a/2009/TONI/applet/TONI.cpp b/2009/TONI/applet/TONI.cpp new file mode 100644 index 0000000..10b0bbb --- /dev/null +++ b/2009/TONI/applet/TONI.cpp @@ -0,0 +1,53 @@ +/* + * Blink + * + * The basic Arduino example. Turns on an LED on for one second, + * then off for one second, and so on... We use pin 13 because, + * depending on your Arduino board, it has either a built-in LED + * or a built-in resistor so that you need only an LED. + * + * http://www.arduino.cc/en/Tutorial/Blink + */ + +#include "WProgram.h" +void setup(); +void loop(); +int rele1 = 8; +int rele2 = 9; +int rele3 = 10; + +void setup() // run once, when the sketch starts +{ + pinMode(rele1, OUTPUT); // sets the digital pin as output + pinMode(rele2, OUTPUT); // sets the digital pin as output + pinMode(rele3, OUTPUT); // sets the digital pin as output +} + +void loop() +{ + digitalWrite(rele1, HIGH); + delay(40000); + digitalWrite(rele2, HIGH); + delay(15000); + digitalWrite(rele1, LOW); + delay(30000); + digitalWrite(rele1, HIGH); + digitalWrite(rele3, HIGH); + delay(15000); + digitalWrite(rele1, LOW); + digitalWrite(rele2, LOW); + digitalWrite(rele3, LOW); +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/TONI/applet/TONI.cpp.o b/2009/TONI/applet/TONI.cpp.o new file mode 100644 index 0000000..e3efdf2 Binary files /dev/null and b/2009/TONI/applet/TONI.cpp.o differ diff --git a/2009/TONI/applet/TONI.eep b/2009/TONI/applet/TONI.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/TONI/applet/TONI.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/TONI/applet/TONI.elf b/2009/TONI/applet/TONI.elf new file mode 100644 index 0000000..b08fde7 Binary files /dev/null and b/2009/TONI/applet/TONI.elf differ diff --git a/2009/TONI/applet/TONI.hex b/2009/TONI/applet/TONI.hex new file mode 100644 index 0000000..1b16240 --- /dev/null +++ b/2009/TONI/applet/TONI.hex @@ -0,0 +1,97 @@ +:100000000C945B000C94E8000C9415010C94830094 +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C9442010C9483000C9487020C9483005E +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000DD0011241FBECFEFD8E0DEBF3E +:1000C000CDBF11E0A0E0B1E0E6EEF5E002C00590A2 +:1000D0000D92AC30B107D9F711E0ACE0B1E001C04E +:1000E0001D92A23AB107E1F710E0C6EBD0E004C0E0 +:1000F0002297FE010E94ED02C43BD107C9F70E947E +:10010000D6000C94F1020C94000061E08091000193 +:100110000E94340260E47CE980E090E00E94B20139 +:1001200061E0809102010E94340268E97AE380E094 +:1001300090E00E94B20160E0809100010E943402D0 +:1001400060E375E780E090E00E94B20161E0809199 +:1001500000010E94340261E0809104010E94340297 +:1001600068E97AE380E090E00E94B20160E080916B +:1001700000010E94340260E0809102010E9434027A +:1001800060E0809104010E943402089561E0809152 +:1001900000010E94160261E0809102010E94160295 +:1001A00061E0809104010E94160208950E94DC0122 +:1001B0000E94C6000E948500FDCF8AE091E09093E6 +:1001C0000D0180930C010895862F0E947F020895EF +:1001D0001F920F920FB60F9211242F933F934F93BC +:1001E0005F936F937F938F939F93AF93BF93EF939F +:1001F000FF9380910E0190910F01892B29F0E091DE +:100200000E01F0910F010995FF91EF91BF91AF9110 +:100210009F918F917F916F915F914F913F912F911E +:100220000F900FBE0F901F9018951F920F920FB650 +:100230000F9211242F933F934F935F936F937F936C +:100240008F939F93AF93BF93EF93FF938091100190 +:1002500090911101892B29F0E0911001F091110189 +:100260000995FF91EF91BF91AF919F918F917F91F0 +:100270006F915F914F913F912F910F900FBE0F9013 +:100280001F9018951F920F920FB60F9211242F9363 +:100290008F939F93AF93BF9380911201909113011D +:1002A000A0911401B09115010196A11DB11D80937B +:1002B000120190931301A0931401B0931501809142 +:1002C000160190911701A0911801B0911901805069 +:1002D000904CAF4FBF4F8093160190931701A0939E +:1002E0001801B093190127C0809116019091170150 +:1002F000A0911801B091190180589E43A040B040D0 +:100300008093160190931701A0931801B0931901DF +:1003100080911A0190911B01A0911C01B0911D01C7 +:100320000196A11DB11D80931A0190931B01A0930A +:100330001C01B0931D018091160190911701A091AD +:100340001801B091190181589E43A040B04060F659 +:10035000BF91AF919F918F912F910F900FBE0F90F2 +:100360001F901895EF92FF920F931F937B018C01C2 +:100370008FB7F89440911A0150911B0160911C01B4 +:1003800070911D018FBF2FB7F89480911A01909141 +:100390001B01A0911C01B0911D012FBF841B950B67 +:1003A000A60BB70BE816F9060A071B0760F71F91A3 +:1003B0000F91FF90EF900895789484B5826084BD8A +:1003C00084B5816084BD85B5826085BD85B5816059 +:1003D00085BDEEE6F0E0808181608083E1E8F0E0B9 +:1003E000808182608083808181608083E0E8F0E0AA +:1003F000808181608083E1EBF0E080818460808394 +:10040000E0EBF0E0808181608083EAE7F0E08081CA +:10041000846080838081826080838081816080832A +:100420008081806880831092C1000895282F30E079 +:10043000C90185579F4FFC01949129583F4FF901FD +:100440008491882381F0E82FF0E0E859FF4FE49190 +:10045000F0E0662329F480819095892380830895B4 +:100460008081892B80830895482F50E0CA018156EE +:100470009F4FFC012491CA0185579F4FFC01949125 +:1004800049585F4FFA0134913323C1F1222331F1EE +:10049000233021F4809180008F7705C0243031F41F +:1004A000809180008F7D8093800018C0213019F4E6 +:1004B00084B58F7704C0223021F484B58F7D84BD4C +:1004C0000DC0263021F48091B0008F7705C0273011 +:1004D00029F48091B0008F7D8093B000E32FF0E08D +:1004E000E359FF4FE491F0E0662329F48081909571 +:1004F0008923808308958081892B80830895982F94 +:100500008091C00085FFFCCF9093C60008951F9294 +:100510000F920FB60F9211242F933F934F935F9337 +:100520006F937F938F939F93AF93BF93EF93FF93BB +:100530004091C600E0911E01F0911F01CF0101968C +:1005400060E870E00E94C4029C01809120019091BB +:1005500021012817390739F0EE5DFE4F40833093B3 +:100560001F0120931E01FF91EF91BF91AF919F91C9 +:100570008F917F916F915F914F913F912F910F904C +:100580000FBE0F901F90189597FB092E07260AD0D3 +:1005900077FD04D00CD006D000201AF47095619538 +:1005A0007F4F0895F6F7909581959F4F0895AA1B68 +:1005B000BB1B51E107C0AA1FBB1FA617B70710F04E +:1005C000A61BB70B881F991F5A95A9F78095909580 +:1005D000BC01CD010895EE0FFF1F0590F491E02DB1 +:0605E0000994F894FFCF1E +:0C05E600080009000A0000000000E4000A +:00000001FF diff --git a/2009/TONI/applet/TONI.pde b/2009/TONI/applet/TONI.pde new file mode 100644 index 0000000..e422bbc --- /dev/null +++ b/2009/TONI/applet/TONI.pde @@ -0,0 +1,37 @@ +/* + * Blink + * + * The basic Arduino example. Turns on an LED on for one second, + * then off for one second, and so on... We use pin 13 because, + * depending on your Arduino board, it has either a built-in LED + * or a built-in resistor so that you need only an LED. + * + * http://www.arduino.cc/en/Tutorial/Blink + */ + +int rele1 = 8; +int rele2 = 9; +int rele3 = 10; + +void setup() // run once, when the sketch starts +{ + pinMode(rele1, OUTPUT); // sets the digital pin as output + pinMode(rele2, OUTPUT); // sets the digital pin as output + pinMode(rele3, OUTPUT); // sets the digital pin as output +} + +void loop() +{ + digitalWrite(rele1, HIGH); + delay(40000); + digitalWrite(rele2, HIGH); + delay(15000); + digitalWrite(rele1, LOW); + delay(30000); + digitalWrite(rele1, HIGH); + digitalWrite(rele3, HIGH); + delay(15000); + digitalWrite(rele1, LOW); + digitalWrite(rele2, LOW); + digitalWrite(rele3, LOW); +} diff --git a/2009/TONI/applet/WInterrupts.c.o b/2009/TONI/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/TONI/applet/WInterrupts.c.o differ diff --git a/2009/TONI/applet/WMath.cpp.o b/2009/TONI/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/TONI/applet/WMath.cpp.o differ diff --git a/2009/TONI/applet/pins_arduino.c.o b/2009/TONI/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/TONI/applet/pins_arduino.c.o differ diff --git a/2009/TONI/applet/wiring.c.o b/2009/TONI/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/TONI/applet/wiring.c.o differ diff --git a/2009/TONI/applet/wiring_analog.c.o b/2009/TONI/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/TONI/applet/wiring_analog.c.o differ diff --git a/2009/TONI/applet/wiring_digital.c.o b/2009/TONI/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/TONI/applet/wiring_digital.c.o differ diff --git a/2009/TONI/applet/wiring_pulse.c.o b/2009/TONI/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/TONI/applet/wiring_pulse.c.o differ diff --git a/2009/TONI/applet/wiring_serial.c.o b/2009/TONI/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/TONI/applet/wiring_serial.c.o differ diff --git a/2009/TONI/applet/wiring_shift.c.o b/2009/TONI/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/TONI/applet/wiring_shift.c.o differ diff --git a/2009/WII/WII.pde b/2009/WII/WII.pde new file mode 100644 index 0000000..a8dd2de --- /dev/null +++ b/2009/WII/WII.pde @@ -0,0 +1,134 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + analogWrite(red, 255); + analogWrite(green, 90); + analogWrite(blue, 50); + delay(2000); + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + digitalWrite(onoff, HIGH); + delay(100); + digitalWrite(onoff, LOW); + +} + + + +void loop () { + if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //0000 + { + analogWrite(red, 255); + analogWrite(green, 190); + analogWrite(blue, 140); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //0001 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //0010 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //0011 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //0100 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //0101 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //0110 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //0111 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //1000 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //1001 + { + analogWrite(red, 25); + analogWrite(green, 180); + analogWrite(blue, 120); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //1010 + { + analogWrite(red, 130); + analogWrite(green, 255); + analogWrite(blue, 200); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //1011 + { + analogWrite(red, 170); + analogWrite(green, 7); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //1100 + { + analogWrite(red, 0); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //1101 + { + analogWrite(red, 255); + analogWrite(green, 0); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //1110 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 0); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //1111 + { + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + } + } diff --git a/2009/WII/applet/HardwareSerial.cpp.o b/2009/WII/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..d3d5b72 Binary files /dev/null and b/2009/WII/applet/HardwareSerial.cpp.o differ diff --git a/2009/WII/applet/WII.cpp b/2009/WII/applet/WII.cpp new file mode 100644 index 0000000..448ef47 --- /dev/null +++ b/2009/WII/applet/WII.cpp @@ -0,0 +1,150 @@ +#include "WProgram.h" +void setup (); +void loop (); +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + analogWrite(red, 255); + analogWrite(green, 90); + analogWrite(blue, 50); + delay(2000); + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + digitalWrite(onoff, HIGH); + delay(100); + digitalWrite(onoff, LOW); + +} + + + +void loop () { + if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //0000 + { + analogWrite(red, 255); + analogWrite(green, 190); + analogWrite(blue, 140); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //0001 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //0010 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //0011 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //0100 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //0101 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //0110 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //0111 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //1000 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //1001 + { + analogWrite(red, 25); + analogWrite(green, 180); + analogWrite(blue, 120); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //1010 + { + analogWrite(red, 130); + analogWrite(green, 255); + analogWrite(blue, 200); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //1011 + { + analogWrite(red, 170); + analogWrite(green, 7); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //1100 + { + analogWrite(red, 0); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //1101 + { + analogWrite(red, 255); + analogWrite(green, 0); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //1110 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 0); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //1111 + { + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + } + } + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/WII/applet/WII.cpp.o b/2009/WII/applet/WII.cpp.o new file mode 100644 index 0000000..61af99a Binary files /dev/null and b/2009/WII/applet/WII.cpp.o differ diff --git a/2009/WII/applet/WII.elf b/2009/WII/applet/WII.elf new file mode 100644 index 0000000..f3ed64a Binary files /dev/null and b/2009/WII/applet/WII.elf differ diff --git a/2009/WII/applet/WII.hex b/2009/WII/applet/WII.hex new file mode 100644 index 0000000..ddb5c9b --- /dev/null +++ b/2009/WII/applet/WII.hex @@ -0,0 +1,171 @@ +:100000000C945A000C9477000C9477000C947700B1 +:100010000C9477000C9477000C9477000C94770084 +:100020000C9477000C9477000C9477000C94770074 +:100030000C9477000C9477000C9477000C94770064 +:100040000C943E030C9477000C9477000C9477008A +:100050000C9477000C9477000C9477000C94770044 +:100060000C9477000C947700000024272A000025C8 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B0000000000011241FBECFEFD4E0DEBFCDBF93 +:1000C00011E0A0E0B1E0E2E7FAE002C005900D9295 +:1000D000A231B107D9F711E0A2E1B1E001C01D9250 +:1000E000AA31B107E1F70E9437030C9438050C944C +:1000F0000000809100010E947F04892B09F0EAC171 +:10010000809102010E947F04892B09F0E3C1809154 +:1001100004010E947F04892B09F0DCC18091060153 +:100120000E947F04892B09F0D5C16FEF70E08091A8 +:100130000E010E940D046EEB70E080910C010E9494 +:100140000D046CE870E0C1C1809102010E947F043F +:10015000892B09F0C6C1809104010E947F04892B7C +:1001600009F0BFC1809106010E947F04019709F048 +:10017000B8C16FEF70E017C0809102010E947F0448 +:10018000892B09F0B5C1809104010E947F04019779 +:1001900009F0AEC1809106010E947F04892B09F00D +:1001A000A7C164E670E080910E010E940D046FEF1C +:1001B00070E071C0809102010E947F04892B09F0D8 +:1001C0009EC1809104010E947F04019709F097C1AC +:1001D000809106010E947F04019709F090C16FEFA2 +:1001E00070E053C0809102010E947F04019709F0E2 +:1001F0008DC1809104010E947F04892B09F086C182 +:10020000809106010E947F04892B09F07FC16FEF66 +:1002100070E017C0809102010E947F04019709F0ED +:100220007CC1809104010E947F04892B09F075C173 +:10023000809106010E947F04019709F06EC164E677 +:1002400070E080910E010E940D046FEF70E08091CC +:100250000C010E940D0464E670E037C18091020138 +:100260000E947F04019709F05FC1809104010E9400 +:100270007F04019709F058C1809106010E947F0414 +:10028000892B09F051C164E670E080910E010E9453 +:100290000D0464E670E080910C010E940D046FEF84 +:1002A00070E013C1809102010E947F04019709F060 +:1002B00042C1809104010E947F04019709F03BC173 +:1002C000809106010E947F04019709F034C16FEF0D +:1002D00070E017C0809102010E947F04892B09F011 +:1002E00031C1809104010E947F04892B09F02AC149 +:1002F000809106010E947F04892B09F023C164E6E6 +:1003000070E080910E010E940D0464E670E09FCFC2 +:10031000809102010E947F04892B09F01AC180910B +:1003200004010E947F04892B09F013C1809106010A +:100330000E947F04019709F00CC169E170E080918F +:100340000E010E940D0464EB70E080910C010E948C +:100350000D0468E770E0B9C0809102010E947F043B +:10036000892B09F0FDC0809104010E947F04019750 +:1003700009F0F6C0809106010E947F04892B09F0E4 +:10038000EFC062E870E080910E010E940D046FEFF3 +:1003900070E080910C010E940D0468EC70E095C043 +:1003A000809102010E947F04892B09F0E0C08091B6 +:1003B00004010E947F04019709F0D9C080910601D1 +:1003C0000E947F04019709F0D2C06AEA70E0809130 +:1003D0000E010E940D0467E070E05DCF8091020184 +:1003E0000E947F04019709F0C9C0809104010E9416 +:1003F0007F04892B09F0C2C0809106010E947F040E +:10040000892B09F0BBC060E070E0CDCE8091020185 +:100410000E947F04019709F0B8C0809104010E94F6 +:100420007F04892B09F0B1C0809106010E947F04EE +:10043000019709F0AAC06FEF70E080910E010E9451 +:100440000D0460E070E027CF809102010E947F04DC +:10045000019709F0A1C0809104010E947F040197D7 +:1004600009F09AC0809106010E947F04892B09F04F +:1004700093C06FEF70E080910E010E940D046FEF4A +:1004800070E01DC0809102010E947F04019709F075 +:100490008AC0809104010E947F04019709F083C003 +:1004A000809106010E947F04019709F07CC060E002 +:1004B00070E080910E010E940D0460E070E0809178 +:1004C0000C010E940D0460E070E080910A010E941E +:1004D0000D040895809100010E947F04892B09F486 +:1004E00033CE809100010E947F04892B09F444CE11 +:1004F000809100010E947F04892B09F45BCE8091DA +:1005000000010E947F04892B09F46CCE80910001C8 +:100510000E947F04892B09F47DCE809100010E9406 +:100520007F04892B09F49ACE809100010E947F04F8 +:10053000892B09F4B7CE809100010E947F040197B6 +:1005400009F4C8CE809100010E947F04019709F44C +:10055000DFCE809100010E947F04019709F4FCCE58 +:10056000809100010E947F04019709F419CF8091C6 +:1005700000010E947F04019709F430CF80910001AF +:100580000E947F04019709F441CF809100010E94ED +:100590007F04019709F458CF809100010E947F04E5 +:1005A000019709F46FCF089560E0809100010E94E7 +:1005B000610460E0809102010E94610460E080912A +:1005C00004010E94610460E0809106010E946104C0 +:1005D00061E0809108010E94610461E080910E0158 +:1005E0000E94610461E080910C010E94610461E05D +:1005F00080910A010E9461046FEF70E080910E010A +:100600000E940D046AE570E080910C010E940D04C7 +:1006100062E370E080910A010E940D0460ED77E0D2 +:1006200080E090E00E947B0360E070E080910E012A +:100630000E940D0460E070E080910C010E940D04A6 +:1006400060E070E080910A010E940D0461E08091F9 +:1006500008010E94CB0464E670E080E090E00E9414 +:100660007B0360E0809108010E94CB0408950E9402 +:10067000AA030E94D4020E947900FDCF1F920F921C +:100680000FB60F9211248F939F93AF93BF938091D6 +:10069000160190911701A0911801B09119010196CE +:1006A000A11DB11D8093160190931701A09318010D +:1006B000B0931901BF91AF919F918F910F900FBE91 +:1006C0000F901F90189560911601709117018091FD +:1006D00018019091190127E0660F771F881F991F55 +:1006E0002A95D1F72DE730E040E050E00E94160552 +:1006F000CA01B9010895AF92BF92CF92DF92EF92F3 +:10070000FF920F931F935B016C010E9463037B01B7 +:100710008C010E9463036E197F09800B910B6A158F +:100720007B058C059D05A8F31F910F91FF90EF901D +:10073000DF90CF90BF90AF900895019751F0880F50 +:10074000991F880F991F02972FB7F8940197F1F717 +:100750002FBF0895789410921601109217011092ED +:1007600018011092190184B5826084BD84B581603E +:1007700084BD85B5826085BD85B5816085BDEEE6A9 +:10078000F0E0808181608083E1E8F0E08081826038 +:100790008083808181608083E0E8F0E080818160F7 +:1007A0008083E1EBF0E0808184608083E0EBF0E027 +:1007B000808181608083EAE7F0E0808184608083CB +:1007C0008081826080838081816080838081806875 +:1007D00080831092C1000895809310010895909134 +:1007E00010019295990F990F907C8F70982B909390 +:1007F0007C0080917A00806480937A0080917A00F6 +:1008000086FDFCCF20917800809179009927982F60 +:1008100088273327822B932B08951F93CF93DF9341 +:10082000182FEB0161E00E946104E12FFF27E156E0 +:10083000FF4F8491833051F48091800080688093D1 +:100840008000D0938900C093880037C0843051F471 +:1008500080918000806280938000D0938B00C09351 +:100860008A002BC0813029F484B5806884BDC7BD5F +:1008700024C0823029F484B5806284BDC8BD1DC007 +:10088000863041F48091B00080688093B000C093BE +:10089000B30013C0873041F48091B0008062809330 +:1008A000B000C093B40009C0C038D10514F460E0B2 +:1008B00001C061E0812F0E94CB04DF91CF911F9195 +:1008C0000895282F3327C90185579F4FFC01949124 +:1008D00029583F4FF9018491882381F0E82FFF27A1 +:1008E000E859FF4FE491FF27662329F48081909512 +:1008F0008923808308958081892B80830895482FE0 +:100900005527CA0181569F4FFC012491CA01855782 +:100910009F4FFC01949149585F4FFA013491332362 +:1009200019F480E090E00895222331F1233021F47E +:10093000809180008F7705C0243031F48091800051 +:100940008F7D8093800018C0213019F484B58F7793 +:1009500004C0223021F484B58F7D84BD0DC02630C3 +:1009600021F48091B0008F7705C0273029F4809161 +:10097000B0008F7D8093B000E32FFF27EE58FF4F2C +:10098000E491FF27808120E030E0892311F021E00D +:1009900030E0C9010895482F5527CA0181569F4F5D +:1009A000FC012491CA0185579F4FFC01949149583D +:1009B0005F4FFA0134913323C1F1222331F1233007 +:1009C00021F4809180008F7705C0243031F480912C +:1009D00080008F7D8093800018C0213019F484B589 +:1009E0008F7704C0223021F484B58F7D84BD0DC083 +:1009F000263021F48091B0008F7705C0273029F48C +:100A00008091B0008F7D8093B000E32FFF27E359E2 +:100A1000FF4FE491FF27662329F480819095892375 +:100A2000808308958081892B80830895A1E21A2E06 +:100A3000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F82 +:100A4000A217B307E407F50720F0A21BB30BE40BD2 +:100A5000F50B661F771F881F991F1A9469F7609519 +:100A60007095809590959B01AC01BD01CF010895D3 +:020A7000FFCFB6 +:100A72000200030004000500060009000A000B0042 +:020A8200010071 +:00000001FF diff --git a/2009/WII/applet/WII.pde b/2009/WII/applet/WII.pde new file mode 100644 index 0000000..9190699 --- /dev/null +++ b/2009/WII/applet/WII.pde @@ -0,0 +1,134 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + analogWrite(red, 255); + analogWrite(green, 190); + analogWrite(blue, 140); + delay(2000); + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + digitalWrite(onoff, HIGH); + delay(100); + digitalWrite(onoff, LOW); + +} + + + +void loop () { + if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //0000 + { + analogWrite(red, 255); + analogWrite(green, 190); + analogWrite(blue, 140); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //0001 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //0010 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //0011 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //0100 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //0101 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //0110 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==0)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //0111 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //1000 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //1001 + { + analogWrite(red, 25); + analogWrite(green, 180); + analogWrite(blue, 120); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //1010 + { + analogWrite(red, 130); + analogWrite(green, 255); + analogWrite(blue, 200); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==0)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //1011 + { + analogWrite(red, 170); + analogWrite(green, 7); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==0)) //1100 + { + analogWrite(red, 0); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==0)&&(digitalRead(led4)==1)) //1101 + { + analogWrite(red, 255); + analogWrite(green, 0); + analogWrite(blue, 255); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==0)) //1110 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 0); + } + else if ((digitalRead(led1)==1)&&(digitalRead(led2)==1)&&(digitalRead(led3)==1)&&(digitalRead(led4)==1)) //1111 + { + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + } + } diff --git a/2009/WII/applet/WII.rom b/2009/WII/applet/WII.rom new file mode 100644 index 0000000..0df8358 --- /dev/null +++ b/2009/WII/applet/WII.rom @@ -0,0 +1,172 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C616C65785C4D697320646F63756DC2 +S11300000C945A000C9477000C9477000C947700AD +S11300100C9477000C9477000C9477000C94770080 +S11300200C9477000C9477000C9477000C94770070 +S11300300C9477000C9477000C9477000C94770060 +S11300400C943E030C9477000C9477000C94770086 +S11300500C9477000C9477000C9477000C94770040 +S11300600C9477000C947700000024272A000025C4 +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B00000000011241FBECFEFD4E0DEBFCDBF8F +S11300C011E0A0E0B1E0E2E7FAE002C005900D9291 +S11300D0A231B107D9F711E0A2E1B1E001C01D924C +S11300E0AA31B107E1F70E9437030C9438050C9448 +S11300F00000809100010E947F04892B09F0EAC16D +S1130100809102010E947F04892B09F0E3C1809150 +S113011004010E947F04892B09F0DCC1809106014F +S11301200E947F04892B09F0D5C16FEF70E08091A4 +S11301300E010E940D046EEB70E080910C010E9490 +S11301400D046CE870E0C1C1809102010E947F043B +S1130150892B09F0C6C1809104010E947F04892B78 +S113016009F0BFC1809106010E947F04019709F044 +S1130170B8C16FEF70E017C0809102010E947F0444 +S1130180892B09F0B5C1809104010E947F04019775 +S113019009F0AEC1809106010E947F04892B09F009 +S11301A0A7C164E670E080910E010E940D046FEF18 +S11301B070E071C0809102010E947F04892B09F0D4 +S11301C09EC1809104010E947F04019709F097C1A8 +S11301D0809106010E947F04019709F090C16FEF9E +S11301E070E053C0809102010E947F04019709F0DE +S11301F08DC1809104010E947F04892B09F086C17E +S1130200809106010E947F04892B09F07FC16FEF62 +S113021070E017C0809102010E947F04019709F0E9 +S11302207CC1809104010E947F04892B09F075C16F +S1130230809106010E947F04019709F06EC164E673 +S113024070E080910E010E940D046FEF70E08091C8 +S11302500C010E940D0464E670E037C18091020134 +S11302600E947F04019709F05FC1809104010E94FC +S11302707F04019709F058C1809106010E947F0410 +S1130280892B09F051C164E670E080910E010E944F +S11302900D0464E670E080910C010E940D046FEF80 +S11302A070E013C1809102010E947F04019709F05C +S11302B042C1809104010E947F04019709F03BC16F +S11302C0809106010E947F04019709F034C16FEF09 +S11302D070E017C0809102010E947F04892B09F00D +S11302E031C1809104010E947F04892B09F02AC145 +S11302F0809106010E947F04892B09F023C164E6E2 +S113030070E080910E010E940D0464E670E09FCFBE +S1130310809102010E947F04892B09F01AC1809107 +S113032004010E947F04892B09F013C18091060106 +S11303300E947F04019709F00CC169E170E080918B +S11303400E010E940D0464EB70E080910C010E9488 +S11303500D0468E770E0B9C0809102010E947F0437 +S1130360892B09F0FDC0809104010E947F0401974C +S113037009F0F6C0809106010E947F04892B09F0E0 +S1130380EFC062E870E080910E010E940D046FEFEF +S113039070E080910C010E940D0468EC70E095C03F +S11303A0809102010E947F04892B09F0E0C08091B2 +S11303B004010E947F04019709F0D9C080910601CD +S11303C00E947F04019709F0D2C06AEA70E080912C +S11303D00E010E940D0467E070E05DCF8091020180 +S11303E00E947F04019709F0C9C0809104010E9412 +S11303F07F04892B09F0C2C0809106010E947F040A +S1130400892B09F0BBC060E070E0CDCE8091020181 +S11304100E947F04019709F0B8C0809104010E94F2 +S11304207F04892B09F0B1C0809106010E947F04EA +S1130430019709F0AAC06FEF70E080910E010E944D +S11304400D0460E070E027CF809102010E947F04D8 +S1130450019709F0A1C0809104010E947F040197D3 +S113046009F09AC0809106010E947F04892B09F04B +S113047093C06FEF70E080910E010E940D046FEF46 +S113048070E01DC0809102010E947F04019709F071 +S11304908AC0809104010E947F04019709F083C0FF +S11304A0809106010E947F04019709F07CC060E0FE +S11304B070E080910E010E940D0460E070E0809174 +S11304C00C010E940D0460E070E080910A010E941A +S11304D00D040895809100010E947F04892B09F482 +S11304E033CE809100010E947F04892B09F444CE0D +S11304F0809100010E947F04892B09F45BCE8091D6 +S113050000010E947F04892B09F46CCE80910001C4 +S11305100E947F04892B09F47DCE809100010E9402 +S11305207F04892B09F49ACE809100010E947F04F4 +S1130530892B09F4B7CE809100010E947F040197B2 +S113054009F4C8CE809100010E947F04019709F448 +S1130550DFCE809100010E947F04019709F4FCCE54 +S1130560809100010E947F04019709F419CF8091C2 +S113057000010E947F04019709F430CF80910001AB +S11305800E947F04019709F441CF809100010E94E9 +S11305907F04019709F458CF809100010E947F04E1 +S11305A0019709F46FCF089560E0809100010E94E3 +S11305B0610460E0809102010E94610460E0809126 +S11305C004010E94610460E0809106010E946104BC +S11305D061E0809108010E94610461E080910E0154 +S11305E00E94610461E080910C010E94610461E059 +S11305F080910A010E9461046FEF70E080910E0106 +S11306000E940D046AE570E080910C010E940D04C3 +S113061062E370E080910A010E940D0460ED77E0CE +S113062080E090E00E947B0360E070E080910E0126 +S11306300E940D0460E070E080910C010E940D04A2 +S113064060E070E080910A010E940D0461E08091F5 +S113065008010E94CB0464E670E080E090E00E9410 +S11306607B0360E0809108010E94CB0408950E94FE +S1130670AA030E94D4020E947900FDCF1F920F9218 +S11306800FB60F9211248F939F93AF93BF938091D2 +S1130690160190911701A0911801B09119010196CA +S11306A0A11DB11D8093160190931701A093180109 +S11306B0B0931901BF91AF919F918F910F900FBE8D +S11306C00F901F90189560911601709117018091F9 +S11306D018019091190127E0660F771F881F991F51 +S11306E02A95D1F72DE730E040E050E00E9416054E +S11306F0CA01B9010895AF92BF92CF92DF92EF92EF +S1130700FF920F931F935B016C010E9463037B01B3 +S11307108C010E9463036E197F09800B910B6A158B +S11307207B058C059D05A8F31F910F91FF90EF9019 +S1130730DF90CF90BF90AF900895019751F0880F4C +S1130740991F880F991F02972FB7F8940197F1F713 +S11307502FBF0895789410921601109217011092E9 +S113076018011092190184B5826084BD84B581603A +S113077084BD85B5826085BD85B5816085BDEEE6A5 +S1130780F0E0808181608083E1E8F0E08081826034 +S11307908083808181608083E0E8F0E080818160F3 +S11307A08083E1EBF0E0808184608083E0EBF0E023 +S11307B0808181608083EAE7F0E0808184608083C7 +S11307C08081826080838081816080838081806871 +S11307D080831092C1000895809310010895909130 +S11307E010019295990F990F907C8F70982B90938C +S11307F07C0080917A00806480937A0080917A00F2 +S113080086FDFCCF20917800809179009927982F5C +S113081088273327822B932B08951F93CF93DF933D +S1130820182FEB0161E00E946104E12FFF27E156DC +S1130830FF4F8491833051F48091800080688093CD +S11308408000D0938900C093880037C0843051F46D +S113085080918000806280938000D0938B00C0934D +S11308608A002BC0813029F484B5806884BDC7BD5B +S113087024C0823029F484B5806284BDC8BD1DC003 +S1130880863041F48091B00080688093B000C093BA +S1130890B30013C0873041F48091B000806280932C +S11308A0B000C093B40009C0C038D10514F460E0AE +S11308B001C061E0812F0E94CB04DF91CF911F9191 +S11308C00895282F3327C90185579F4FFC01949120 +S11308D029583F4FF9018491882381F0E82FFF279D +S11308E0E859FF4FE491FF27662329F4808190950E +S11308F08923808308958081892B80830895482FDC +S11309005527CA0181569F4FFC012491CA0185577E +S11309109F4FFC01949149585F4FFA01349133235E +S113092019F480E090E00895222331F1233021F47A +S1130930809180008F7705C0243031F4809180004D +S11309408F7D8093800018C0213019F484B58F778F +S113095004C0223021F484B58F7D84BD0DC02630BF +S113096021F48091B0008F7705C0273029F480915D +S1130970B0008F7D8093B000E32FFF27EE58FF4F28 +S1130980E491FF27808120E030E0892311F021E009 +S113099030E0C9010895482F5527CA0181569F4F59 +S11309A0FC012491CA0185579F4FFC019491495839 +S11309B05F4FFA0134913323C1F1222331F1233003 +S11309C021F4809180008F7705C0243031F4809128 +S11309D080008F7D8093800018C0213019F484B585 +S11309E08F7704C0223021F484B58F7D84BD0DC07F +S11309F0263021F48091B0008F7705C0273029F488 +S1130A008091B0008F7D8093B000E32FFF27E359DE +S1130A10FF4FE491FF27662329F480819095892371 +S1130A20808308958081892B80830895A1E21A2E02 +S1130A30AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F7E +S1130A40A217B307E407F50720F0A21BB30BE40BCE +S1130A50F50B661F771F881F991F1A9469F7609515 +S1130A607095809590959B01AC01BD01CF010895CF +S1050A70FFCFB2 +S1130A720200030004000500060009000A000B003E +S1050A8201006D +S9030000FC diff --git a/2009/WII/applet/WInterrupts.c.o b/2009/WII/applet/WInterrupts.c.o new file mode 100644 index 0000000..cf40f54 Binary files /dev/null and b/2009/WII/applet/WInterrupts.c.o differ diff --git a/2009/WII/applet/WMath.cpp.o b/2009/WII/applet/WMath.cpp.o new file mode 100644 index 0000000..9877142 Binary files /dev/null and b/2009/WII/applet/WMath.cpp.o differ diff --git a/2009/WII/applet/core.a b/2009/WII/applet/core.a new file mode 100644 index 0000000..8a30d3b Binary files /dev/null and b/2009/WII/applet/core.a differ diff --git a/2009/WII/applet/pins_arduino.c.o b/2009/WII/applet/pins_arduino.c.o new file mode 100644 index 0000000..16e7d16 Binary files /dev/null and b/2009/WII/applet/pins_arduino.c.o differ diff --git a/2009/WII/applet/wiring.c.o b/2009/WII/applet/wiring.c.o new file mode 100644 index 0000000..1ed3052 Binary files /dev/null and b/2009/WII/applet/wiring.c.o differ diff --git a/2009/WII/applet/wiring_analog.c.o b/2009/WII/applet/wiring_analog.c.o new file mode 100644 index 0000000..0499f93 Binary files /dev/null and b/2009/WII/applet/wiring_analog.c.o differ diff --git a/2009/WII/applet/wiring_digital.c.o b/2009/WII/applet/wiring_digital.c.o new file mode 100644 index 0000000..5c5c9de Binary files /dev/null and b/2009/WII/applet/wiring_digital.c.o differ diff --git a/2009/WII/applet/wiring_pulse.c.o b/2009/WII/applet/wiring_pulse.c.o new file mode 100644 index 0000000..5568709 Binary files /dev/null and b/2009/WII/applet/wiring_pulse.c.o differ diff --git a/2009/WII/applet/wiring_serial.c.o b/2009/WII/applet/wiring_serial.c.o new file mode 100644 index 0000000..a7e54c0 Binary files /dev/null and b/2009/WII/applet/wiring_serial.c.o differ diff --git a/2009/WII/applet/wiring_shift.c.o b/2009/WII/applet/wiring_shift.c.o new file mode 100644 index 0000000..1c75fe6 Binary files /dev/null and b/2009/WII/applet/wiring_shift.c.o differ diff --git a/2009/WII_RGB/WII_RGB.pde b/2009/WII_RGB/WII_RGB.pde new file mode 100644 index 0000000..d0c6ac3 --- /dev/null +++ b/2009/WII_RGB/WII_RGB.pde @@ -0,0 +1,162 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + blanco(); + delay(1000); + amarillo(); + delay(1000); + rojo(); + delay(1000); + magenta(); + delay(1000); + azul(); + delay(1000); + verde(); + delay(1000); + off(); + wiiconnect(); + +} + +void wiiconnect(void) +{ + digitalWrite(onoff, HIGH); // wii connect + delay(100); + digitalWrite(onoff, LOW); +} + +void blanco(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x5A); + analogWrite(blue, 0x32); +} + +void amarillo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x50); + analogWrite(blue, 0x00); +} + +void rojo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + +void magenta(void) +{ + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); +} + +void azul(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); +} + +void verde(void) +{ + analogWrite(red, 0x1F); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void off(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +// 0000 = 0 = 000000 (OFF) +// 0001 = 1 = FAFF00 (amarillo) +// 0010 = 2 = F41B00 (rojo) +// 0011 = 3 = F71CB6 (magenta) +// 0100 = 4 = 1732FF (azul) +// 0101 = 5 = 33FC00 (verde) +// 1111 = 15 = FFFFFF (blanco) + +void codigoRGB(void) +{ + + int codigo = ledRead(); + + if(codigo == 0) + { + off(); + } + else if(codigo == 1) + { + amarillo(); + } + else if(codigo == 2) + { + rojo(); + } + else if(codigo == 3) + { + magenta(); + } + else if(codigo == 4) + { + azul(); + } + else if(codigo == 5) + { + verde(); + } + else if(codigo == 15) + { + blanco(); + } + +} + +void loop () { + + codigoRGB(); + delay(10); + +} diff --git a/2009/WII_RGB/applet/HardwareSerial.cpp.o b/2009/WII_RGB/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..d3d5b72 Binary files /dev/null and b/2009/WII_RGB/applet/HardwareSerial.cpp.o differ diff --git a/2009/WII_RGB/applet/WII_RGB.cpp b/2009/WII_RGB/applet/WII_RGB.cpp new file mode 100644 index 0000000..8eb35e1 --- /dev/null +++ b/2009/WII_RGB/applet/WII_RGB.cpp @@ -0,0 +1,188 @@ +#include "WProgram.h" +void setup (); +void wiiconnect(void); +void blanco(void); +void amarillo(void); +void rojo(void); +void magenta(void); +void azul(void); +void verde(void); +void off(void); +int ledRead(void); +void codigoRGB(void); +void loop (); +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + blanco(); + delay(1000); + amarillo(); + delay(1000); + rojo(); + delay(1000); + magenta(); + delay(1000); + azul(); + delay(1000); + verde(); + delay(1000); + off(); + wiiconnect(); + +} + +void wiiconnect(void) +{ + digitalWrite(onoff, HIGH); // wii connect + delay(100); + digitalWrite(onoff, LOW); +} + +void blanco(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x5A); + analogWrite(blue, 0x32); +} + +void amarillo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x50); + analogWrite(blue, 0x00); +} + +void rojo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + +void magenta(void) +{ + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); +} + +void azul(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); +} + +void verde(void) +{ + analogWrite(red, 0x1F); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void off(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +// 0000 = 0 = 000000 (OFF) +// 0001 = 1 = FAFF00 (amarillo) +// 0010 = 2 = F41B00 (rojo) +// 0011 = 3 = F71CB6 (magenta) +// 0100 = 4 = 1732FF (azul) +// 0101 = 5 = 33FC00 (verde) +// 1111 = 15 = FFFFFF (blanco) + +void codigoRGB(void) +{ + + int codigo = ledRead(); + + if(codigo == 0) + { + off(); + } + else if(codigo == 1) + { + amarillo(); + } + else if(codigo == 2) + { + rojo(); + } + else if(codigo == 3) + { + magenta(); + } + else if(codigo == 4) + { + azul(); + } + else if(codigo == 5) + { + verde(); + } + else if(codigo == 15) + { + blanco(); + } + +} + +void loop () { + + codigoRGB(); + delay(10); + +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/WII_RGB/applet/WII_RGB.cpp.o b/2009/WII_RGB/applet/WII_RGB.cpp.o new file mode 100644 index 0000000..2410976 Binary files /dev/null and b/2009/WII_RGB/applet/WII_RGB.cpp.o differ diff --git a/2009/WII_RGB/applet/WII_RGB.elf b/2009/WII_RGB/applet/WII_RGB.elf new file mode 100644 index 0000000..d92d8f7 Binary files /dev/null and b/2009/WII_RGB/applet/WII_RGB.elf differ diff --git a/2009/WII_RGB/applet/WII_RGB.hex b/2009/WII_RGB/applet/WII_RGB.hex new file mode 100644 index 0000000..c11d92f --- /dev/null +++ b/2009/WII_RGB/applet/WII_RGB.hex @@ -0,0 +1,128 @@ +:100000000C945A000C9477000C9477000C947700B1 +:100010000C9477000C9477000C9477000C94770084 +:100020000C9477000C9477000C9477000C94770074 +:100030000C9477000C9477000C9477000C94770064 +:100040000C94EB010C9477000C9477000C947700DF +:100050000C9477000C9477000C9477000C94770044 +:100060000C9477000C947700000024272A000025C8 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B0000000000011241FBECFEFD4E0DEBFCDBF93 +:1000C00011E0A0E0B1E0ECECF7E002C005900D9289 +:1000D000A231B107D9F711E0A2E1B1E001C01D9250 +:1000E000AA31B107E1F70E94E4010C94E5030C94F6 +:1000F0000000EF92FF920F931F93CF93DF938091B5 +:1001000000010E942C038C01809102010E942C03AB +:100110007C01809104010E942C03EC018091060176 +:100120000E942C0360E070E0012B11F461E070E0AC +:1001300020E030E0892B11F421E030E0220F331F62 +:1001400040E050E0CD2B11F441E050E0240F351F8A +:10015000220F331F40E050E0EF2811F441E050E05F +:10016000240F351F220F331FCB01820F931FDF9106 +:10017000CF911F910F91FF90EF90089560E070E094 +:1001800080910E010E94BA0260E070E080910C0143 +:100190000E94BA0260E070E080910A010E94BA02F7 +:1001A00008956FE170E080910E010E94BA026FEF36 +:1001B00070E080910C010E94BA0260E070E08091D2 +:1001C0000A010E94BA02089560E070E080910E0179 +:1001D0000E94BA0262E370E080910C010E94BA02B0 +:1001E0006FEF70E080910A010E94BA02089567EFF4 +:1001F00070E080910E010E94BA026CE170E0809183 +:100200000C010E94BA0266EB70E080910A010E9424 +:10021000BA0208956FEF70E080910E010E94BA0259 +:1002200060E070E080910C010E94BA0260E070E032 +:1002300080910A010E94BA0208956FEF70E08091E8 +:100240000E010E94BA0260E570E080910C010E94EC +:10025000BA0260E070E080910A010E94BA0208953B +:100260006FEF70E080910E010E94BA026AE570E0C3 +:1002700080910C010E94BA0262E370E080910A0151 +:100280000E94BA0208950E947900009719F40E9412 +:10029000BE0008958130910519F40E941D01089552 +:1002A0008230910519F40E940A0108958330910566 +:1002B00019F40E94F70008958430910519F40E9402 +:1002C000E40008958530910519F40E94D100089545 +:1002D0000F9711F40E94300108950E9443016AE0D3 +:1002E00070E080E090E00E942802089561E0809133 +:1002F00008010E94780364E670E080E090E00E94CC +:10030000280260E0809108010E947803089560E06F +:10031000809100010E940E0360E0809102010E9422 +:100320000E0360E0809104010E940E0360E0809162 +:1003300006010E940E0361E0809108010E940E03F5 +:1003400061E080910E010E940E0361E080910C013A +:100350000E940E0361E080910A010E940E030E9438 +:10036000300168EE73E080E090E00E9428020E9475 +:100370001D0168EE73E080E090E00E9428020E9478 +:100380000A0168EE73E080E090E00E9428020E947B +:10039000F70068EE73E080E090E00E9428020E947F +:1003A000E40068EE73E080E090E00E9428020E9482 +:1003B000D10068EE73E080E090E00E9428020E9485 +:1003C000BE000E94760108950E9457020E94870194 +:1003D0000E946D01FDCF1F920F920FB60F92112454 +:1003E0008F939F93AF93BF938091160190911701C4 +:1003F000A0911801B09119010196A11DB11D809322 +:10040000160190931701A0931801B0931901BF91A1 +:10041000AF919F918F910F900FBE0F901F901895E5 +:100420006091160170911701809118019091190146 +:1004300027E0660F771F881F991F2A95D1F72DE7B0 +:1004400030E040E050E00E94C303CA01B9010895C2 +:10045000AF92BF92CF92DF92EF92FF920F931F93D2 +:100460005B016C010E9410027B018C010E94100252 +:100470006E197F09800B910B6A157B058C059D0514 +:10048000A8F31F910F91FF90EF90DF90CF90BF9056 +:10049000AF900895019751F0880F991F880F991F09 +:1004A00002972FB7F8940197F1F72FBF089578942A +:1004B0001092160110921701109218011092190152 +:1004C00084B5826084BD84B5816084BD85B5826059 +:1004D00085BD85B5816085BDEEE6F0E080818160F7 +:1004E0008083E1E8F0E080818260808380818160A8 +:1004F0008083E0E8F0E0808181608083E1EBF0E0E0 +:10050000808184608083E0EBF0E080818160808383 +:10051000EAE7F0E08081846080838081826080836C +:100520008081816080838081806880831092C10097 +:100530000895809310010895909110019295990F5C +:10054000990F907C8F70982B90937C0080917A000B +:10055000806480937A0080917A0086FDFCCF2091A0 +:100560007800809179009927982F88273327822B4C +:10057000932B08951F93CF93DF93182FEB0161E026 +:100580000E940E03E12FFF27E156FF4F8491833035 +:1005900051F480918000806880938000D09389001E +:1005A000C093880037C0843051F48091800080620D +:1005B00080938000D0938B00C0938A002BC0813041 +:1005C00029F484B5806884BDC7BD24C0823029F475 +:1005D00084B5806284BDC8BD1DC0863041F4809161 +:1005E000B00080688093B000C093B30013C0873020 +:1005F00041F48091B00080628093B000C093B40059 +:1006000009C0C038D10514F460E001C061E0812F59 +:100610000E947803DF91CF911F910895282F3327EF +:10062000C90185579F4FFC01949129583F4FF9010B +:100630008491882381F0E82FFF27E859FF4FE49148 +:10064000FF27662329F4808190958923808308956C +:100650008081892B80830895482F5527CA018156B0 +:100660009F4FFC012491CA0185579F4FFC01949133 +:1006700049585F4FFA013491332319F480E090E038 +:100680000895222331F1233021F4809180008F7767 +:1006900005C0243031F4809180008F7D80938000EC +:1006A00018C0213019F484B58F7704C0223021F4AA +:1006B00084B58F7D84BD0DC0263021F48091B000BB +:1006C0008F7705C0273029F48091B0008F7D80930B +:1006D000B000E32FFF27EE58FF4FE491FF27808102 +:1006E00020E030E0892311F021E030E0C9010895D5 +:1006F000482F5527CA0181569F4FFC012491CA01FA +:1007000085579F4FFC01949149585F4FFA013491EE +:100710003323C1F1222331F1233021F48091800071 +:100720008F7705C0243031F4809180008F7D8093D5 +:10073000800018C0213019F484B58F7704C02230AE +:1007400021F484B58F7D84BD0DC0263021F48091C5 +:10075000B0008F7705C0273029F48091B0008F7DDD +:100760008093B000E32FFF27E359FF4FE491FF2769 +:10077000662329F480819095892380830895808160 +:10078000892B80830895A1E21A2EAA1BBB1BFD01B1 +:100790000DC0AA1FBB1FEE1FFF1FA217B307E40760 +:1007A000F50720F0A21BB30BE40BF50B661F771FB8 +:1007B000881F991F1A9469F7609570958095909598 +:0C07C0009B01AC01BD01CF010895FFCFEB +:1007CC000200030004000500060009000A000B00EB +:0207DC0001001A +:00000001FF diff --git a/2009/WII_RGB/applet/WII_RGB.rom b/2009/WII_RGB/applet/WII_RGB.rom new file mode 100644 index 0000000..4f00f0b --- /dev/null +++ b/2009/WII_RGB/applet/WII_RGB.rom @@ -0,0 +1,129 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C616C65785C4D697320646F63756DC2 +S11300000C945A000C9477000C9477000C947700AD +S11300100C9477000C9477000C9477000C94770080 +S11300200C9477000C9477000C9477000C94770070 +S11300300C9477000C9477000C9477000C94770060 +S11300400C94EB010C9477000C9477000C947700DB +S11300500C9477000C9477000C9477000C94770040 +S11300600C9477000C947700000024272A000025C4 +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B00000000011241FBECFEFD4E0DEBFCDBF8F +S11300C011E0A0E0B1E0ECECF7E002C005900D9285 +S11300D0A231B107D9F711E0A2E1B1E001C01D924C +S11300E0AA31B107E1F70E94E4010C94E5030C94F2 +S11300F00000EF92FF920F931F93CF93DF938091B1 +S113010000010E942C038C01809102010E942C03A7 +S11301107C01809104010E942C03EC018091060172 +S11301200E942C0360E070E0012B11F461E070E0A8 +S113013020E030E0892B11F421E030E0220F331F5E +S113014040E050E0CD2B11F441E050E0240F351F86 +S1130150220F331F40E050E0EF2811F441E050E05B +S1130160240F351F220F331FCB01820F931FDF9102 +S1130170CF911F910F91FF90EF90089560E070E090 +S113018080910E010E94BA0260E070E080910C013F +S11301900E94BA0260E070E080910A010E94BA02F3 +S11301A008956FE170E080910E010E94BA026FEF32 +S11301B070E080910C010E94BA0260E070E08091CE +S11301C00A010E94BA02089560E070E080910E0175 +S11301D00E94BA0262E370E080910C010E94BA02AC +S11301E06FEF70E080910A010E94BA02089567EFF0 +S11301F070E080910E010E94BA026CE170E080917F +S11302000C010E94BA0266EB70E080910A010E9420 +S1130210BA0208956FEF70E080910E010E94BA0255 +S113022060E070E080910C010E94BA0260E070E02E +S113023080910A010E94BA0208956FEF70E08091E4 +S11302400E010E94BA0260E570E080910C010E94E8 +S1130250BA0260E070E080910A010E94BA02089537 +S11302606FEF70E080910E010E94BA026AE570E0BF +S113027080910C010E94BA0262E370E080910A014D +S11302800E94BA0208950E947900009719F40E940E +S1130290BE0008958130910519F40E941D0108954E +S11302A08230910519F40E940A0108958330910562 +S11302B019F40E94F70008958430910519F40E94FE +S11302C0E40008958530910519F40E94D100089541 +S11302D00F9711F40E94300108950E9443016AE0CF +S11302E070E080E090E00E942802089561E080912F +S11302F008010E94780364E670E080E090E00E94C8 +S1130300280260E0809108010E947803089560E06B +S1130310809100010E940E0360E0809102010E941E +S11303200E0360E0809104010E940E0360E080915E +S113033006010E940E0361E0809108010E940E03F1 +S113034061E080910E010E940E0361E080910C0136 +S11303500E940E0361E080910A010E940E030E9434 +S1130360300168EE73E080E090E00E9428020E9471 +S11303701D0168EE73E080E090E00E9428020E9474 +S11303800A0168EE73E080E090E00E9428020E9477 +S1130390F70068EE73E080E090E00E9428020E947B +S11303A0E40068EE73E080E090E00E9428020E947E +S11303B0D10068EE73E080E090E00E9428020E9481 +S11303C0BE000E94760108950E9457020E94870190 +S11303D00E946D01FDCF1F920F920FB60F92112450 +S11303E08F939F93AF93BF938091160190911701C0 +S11303F0A0911801B09119010196A11DB11D80931E +S1130400160190931701A0931801B0931901BF919D +S1130410AF919F918F910F900FBE0F901F901895E1 +S11304206091160170911701809118019091190142 +S113043027E0660F771F881F991F2A95D1F72DE7AC +S113044030E040E050E00E94C303CA01B9010895BE +S1130450AF92BF92CF92DF92EF92FF920F931F93CE +S11304605B016C010E9410027B018C010E9410024E +S11304706E197F09800B910B6A157B058C059D0510 +S1130480A8F31F910F91FF90EF90DF90CF90BF9052 +S1130490AF900895019751F0880F991F880F991F05 +S11304A002972FB7F8940197F1F72FBF0895789426 +S11304B0109216011092170110921801109219014E +S11304C084B5826084BD84B5816084BD85B5826055 +S11304D085BD85B5816085BDEEE6F0E080818160F3 +S11304E08083E1E8F0E080818260808380818160A4 +S11304F08083E0E8F0E0808181608083E1EBF0E0DC +S1130500808184608083E0EBF0E08081816080837F +S1130510EAE7F0E080818460808380818260808368 +S11305208081816080838081806880831092C10093 +S11305300895809310010895909110019295990F58 +S1130540990F907C8F70982B90937C0080917A0007 +S1130550806480937A0080917A0086FDFCCF20919C +S11305607800809179009927982F88273327822B48 +S1130570932B08951F93CF93DF93182FEB0161E022 +S11305800E940E03E12FFF27E156FF4F8491833031 +S113059051F480918000806880938000D09389001A +S11305A0C093880037C0843051F480918000806209 +S11305B080938000D0938B00C0938A002BC081303D +S11305C029F484B5806884BDC7BD24C0823029F471 +S11305D084B5806284BDC8BD1DC0863041F480915D +S11305E0B00080688093B000C093B30013C087301C +S11305F041F48091B00080628093B000C093B40055 +S113060009C0C038D10514F460E001C061E0812F55 +S11306100E947803DF91CF911F910895282F3327EB +S1130620C90185579F4FFC01949129583F4FF90107 +S11306308491882381F0E82FFF27E859FF4FE49144 +S1130640FF27662329F48081909589238083089568 +S11306508081892B80830895482F5527CA018156AC +S11306609F4FFC012491CA0185579F4FFC0194912F +S113067049585F4FFA013491332319F480E090E034 +S11306800895222331F1233021F4809180008F7763 +S113069005C0243031F4809180008F7D80938000E8 +S11306A018C0213019F484B58F7704C0223021F4A6 +S11306B084B58F7D84BD0DC0263021F48091B000B7 +S11306C08F7705C0273029F48091B0008F7D809307 +S11306D0B000E32FFF27EE58FF4FE491FF278081FE +S11306E020E030E0892311F021E030E0C9010895D1 +S11306F0482F5527CA0181569F4FFC012491CA01F6 +S113070085579F4FFC01949149585F4FFA013491EA +S11307103323C1F1222331F1233021F4809180006D +S11307208F7705C0243031F4809180008F7D8093D1 +S1130730800018C0213019F484B58F7704C02230AA +S113074021F484B58F7D84BD0DC0263021F48091C1 +S1130750B0008F7705C0273029F48091B0008F7DD9 +S11307608093B000E32FFF27E359FF4FE491FF2765 +S1130770662329F48081909589238083089580815C +S1130780892B80830895A1E21A2EAA1BBB1BFD01AD +S11307900DC0AA1FBB1FEE1FFF1FA217B307E4075C +S11307A0F50720F0A21BB30BE40BF50B661F771FB4 +S11307B0881F991F1A9469F7609570958095909594 +S10F07C09B01AC01BD01CF010895FFCFE7 +S11307CC0200030004000500060009000A000B00E7 +S10507DC010016 +S9030000FC diff --git a/2009/WII_RGB/applet/WInterrupts.c.o b/2009/WII_RGB/applet/WInterrupts.c.o new file mode 100644 index 0000000..cf40f54 Binary files /dev/null and b/2009/WII_RGB/applet/WInterrupts.c.o differ diff --git a/2009/WII_RGB/applet/WMath.cpp.o b/2009/WII_RGB/applet/WMath.cpp.o new file mode 100644 index 0000000..9877142 Binary files /dev/null and b/2009/WII_RGB/applet/WMath.cpp.o differ diff --git a/2009/WII_RGB/applet/core.a b/2009/WII_RGB/applet/core.a new file mode 100644 index 0000000..a59a62a Binary files /dev/null and b/2009/WII_RGB/applet/core.a differ diff --git a/2009/WII_RGB/applet/pins_arduino.c.o b/2009/WII_RGB/applet/pins_arduino.c.o new file mode 100644 index 0000000..16e7d16 Binary files /dev/null and b/2009/WII_RGB/applet/pins_arduino.c.o differ diff --git a/2009/WII_RGB/applet/wiring.c.o b/2009/WII_RGB/applet/wiring.c.o new file mode 100644 index 0000000..1ed3052 Binary files /dev/null and b/2009/WII_RGB/applet/wiring.c.o differ diff --git a/2009/WII_RGB/applet/wiring_analog.c.o b/2009/WII_RGB/applet/wiring_analog.c.o new file mode 100644 index 0000000..0499f93 Binary files /dev/null and b/2009/WII_RGB/applet/wiring_analog.c.o differ diff --git a/2009/WII_RGB/applet/wiring_digital.c.o b/2009/WII_RGB/applet/wiring_digital.c.o new file mode 100644 index 0000000..5c5c9de Binary files /dev/null and b/2009/WII_RGB/applet/wiring_digital.c.o differ diff --git a/2009/WII_RGB/applet/wiring_pulse.c.o b/2009/WII_RGB/applet/wiring_pulse.c.o new file mode 100644 index 0000000..5568709 Binary files /dev/null and b/2009/WII_RGB/applet/wiring_pulse.c.o differ diff --git a/2009/WII_RGB/applet/wiring_serial.c.o b/2009/WII_RGB/applet/wiring_serial.c.o new file mode 100644 index 0000000..a7e54c0 Binary files /dev/null and b/2009/WII_RGB/applet/wiring_serial.c.o differ diff --git a/2009/WII_RGB/applet/wiring_shift.c.o b/2009/WII_RGB/applet/wiring_shift.c.o new file mode 100644 index 0000000..1c75fe6 Binary files /dev/null and b/2009/WII_RGB/applet/wiring_shift.c.o differ diff --git a/2009/WII_RGB_DEMO/WII_RGB_DEMO.pde b/2009/WII_RGB_DEMO/WII_RGB_DEMO.pde new file mode 100644 index 0000000..ef2c802 --- /dev/null +++ b/2009/WII_RGB_DEMO/WII_RGB_DEMO.pde @@ -0,0 +1,155 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int green = 9; +int red = 10; +int blue = 11; +int time = 0; +int i=0; + +int varred=0; +int vargreen=0; +int varblue=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + /*blanco(); + delay(1000); + amarillo(); + delay(1000); + rojo(); + delay(1000); + magenta(); + delay(1000); + azul(); + delay(1000); + verde(); + delay(1000); + off(); + wiiconnect();*/ + + +} + +void wiiconnect(void) +{ + digitalWrite(onoff, HIGH); // wii connect + delay(100); + digitalWrite(onoff, LOW); +} + +void blanco(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0xFF); + analogWrite(blue, 0xFF); +} + +void amarillo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void rojo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + +void magenta(void) +{ + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); +} + +void azul(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); +} + +void verde(void) +{ + //analogWrite(red, 0x1F); + analogWrite(red, 0x00); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void off(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +void loop () { + time = 50; + + for (varred=0; varred<256; varred++) + { + delay(time); + analogWrite(red, varred); + } + + for (varblue=0; varblue<256; varblue++) + { + delay(time); + analogWrite(blue, varblue); + } + for (vargreen=0; vargreen<256; vargreen++) + { + delay(time); + analogWrite(green, vargreen); + } + for (varred=255; varred>0; varred--) + { + delay(time); + analogWrite(red, varred); + } + + for (varblue=255; varblue>0; varblue--) + { + delay(time); + analogWrite(blue, varblue); + } + for (vargreen=255; vargreen>0; vargreen--) + { + delay(time); + analogWrite(green, vargreen); + } + +} diff --git a/2009/WII_RGB_rev1/WII_RGB_rev1.pde b/2009/WII_RGB_rev1/WII_RGB_rev1.pde new file mode 100644 index 0000000..553aa8d --- /dev/null +++ b/2009/WII_RGB_rev1/WII_RGB_rev1.pde @@ -0,0 +1,164 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int green = 9; +int red = 10; +int blue = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + blanco(); + delay(1000); + amarillo(); + delay(1000); + rojo(); + delay(1000); + magenta(); + delay(1000); + azul(); + delay(1000); + verde(); + delay(1000); + off(); + wiiconnect(); + + +} + +void wiiconnect(void) +{ + digitalWrite(onoff, HIGH); // wii connect + delay(100); + digitalWrite(onoff, LOW); +} + +void blanco(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0xFF); + analogWrite(blue, 0xFF); +} + +void amarillo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void rojo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + +void magenta(void) +{ + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); +} + +void azul(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); +} + +void verde(void) +{ + //analogWrite(red, 0x1F); + analogWrite(red, 0x00); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void off(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +// 0000 = 0 = 000000 (OFF) +// 0001 = 1 = FAFF00 (amarillo) +// 0010 = 2 = F41B00 (rojo) +// 0011 = 3 = F71CB6 (magenta) +// 0100 = 4 = 1732FF (azul) +// 0101 = 5 = 33FC00 (verde) +// 1111 = 15 = FFFFFF (blanco) + +void codigoRGB(void) +{ + + int codigo = ledRead(); + + if(codigo == 0) + { + off(); + } + else if(codigo == 1) + { + amarillo(); + } + else if(codigo == 2) + { + rojo(); + } + else if(codigo == 3) + { + magenta(); + } + else if(codigo == 4) + { + azul(); + } + else if(codigo == 5) + { + verde(); + } + else if(codigo == 15) + { + blanco(); + } + +} + +void loop () { + + codigoRGB(); + delay(10); + +} diff --git a/2009/WII_RGB_rev1/applet/HardwareSerial.cpp.o b/2009/WII_RGB_rev1/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..d498452 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/HardwareSerial.cpp.o differ diff --git a/2009/WII_RGB_rev1/applet/Print.cpp.o b/2009/WII_RGB_rev1/applet/Print.cpp.o new file mode 100644 index 0000000..08eaa0e Binary files /dev/null and b/2009/WII_RGB_rev1/applet/Print.cpp.o differ diff --git a/2009/WII_RGB_rev1/applet/WII_RGB_rev1.cpp b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.cpp new file mode 100644 index 0000000..ff2c749 --- /dev/null +++ b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.cpp @@ -0,0 +1,190 @@ +#include "WProgram.h" +void setup (); +void wiiconnect(void); +void blanco(void); +void amarillo(void); +void rojo(void); +void magenta(void); +void azul(void); +void verde(void); +void off(void); +int ledRead(void); +void codigoRGB(void); +void loop (); +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int green = 9; +int red = 10; +int blue = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + blanco(); + delay(1000); + amarillo(); + delay(1000); + rojo(); + delay(1000); + magenta(); + delay(1000); + azul(); + delay(1000); + verde(); + delay(1000); + off(); + wiiconnect(); + + +} + +void wiiconnect(void) +{ + digitalWrite(onoff, HIGH); // wii connect + delay(100); + digitalWrite(onoff, LOW); +} + +void blanco(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0xFF); + analogWrite(blue, 0xFF); +} + +void amarillo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void rojo(void) +{ + analogWrite(red, 0xFF); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + +void magenta(void) +{ + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); +} + +void azul(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); +} + +void verde(void) +{ + //analogWrite(red, 0x1F); + analogWrite(red, 0x00); + analogWrite(green, 0xFF); + analogWrite(blue, 0x00); +} + +void off(void) +{ + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); +} + + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +// 0000 = 0 = 000000 (OFF) +// 0001 = 1 = FAFF00 (amarillo) +// 0010 = 2 = F41B00 (rojo) +// 0011 = 3 = F71CB6 (magenta) +// 0100 = 4 = 1732FF (azul) +// 0101 = 5 = 33FC00 (verde) +// 1111 = 15 = FFFFFF (blanco) + +void codigoRGB(void) +{ + + int codigo = ledRead(); + + if(codigo == 0) + { + off(); + } + else if(codigo == 1) + { + amarillo(); + } + else if(codigo == 2) + { + rojo(); + } + else if(codigo == 3) + { + magenta(); + } + else if(codigo == 4) + { + azul(); + } + else if(codigo == 5) + { + verde(); + } + else if(codigo == 15) + { + blanco(); + } + +} + +void loop () { + + codigoRGB(); + delay(10); + +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/WII_RGB_rev1/applet/WII_RGB_rev1.cpp.o b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.cpp.o new file mode 100644 index 0000000..2f800c4 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.cpp.o differ diff --git a/2009/WII_RGB_rev1/applet/WII_RGB_rev1.eep b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/WII_RGB_rev1/applet/WII_RGB_rev1.elf b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.elf new file mode 100644 index 0000000..8fe710a Binary files /dev/null and b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.elf differ diff --git a/2009/WII_RGB_rev1/applet/WII_RGB_rev1.hex b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.hex new file mode 100644 index 0000000..4a13974 --- /dev/null +++ b/2009/WII_RGB_rev1/applet/WII_RGB_rev1.hex @@ -0,0 +1,154 @@ +:100000000C945B000C9402020C942F020C9483005D +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C945C020C9483000C9445040C94830083 +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000F70111241FBECFEFD4E0DEBF27 +:1000C000CDBF11E0A0E0B1E0E2E6F9E002C00590AA +:1000D0000D92A631B107D9F711E0A6E1B1E001C058 +:1000E0001D92AC3AB107E1F710E0C6EBD0E004C0D6 +:1000F0002297FE010E94AB04C43BD107C9F70E94BE +:10010000F0010C94AF040C940000EF92FF920F9357 +:100110001F93CF93DF93809100010E94F1037C0134 +:10012000809102010E94F1038C01809104010E94E0 +:10013000F103EC01809106010E94F10320E030E020 +:10014000892B11F421E030E0220F331F80E090E092 +:10015000CD2B11F481E090E0280F391F220F331FBF +:1001600080E090E0012B11F481E090E0280F391F2E +:10017000220F331F80E090E0EF2811F481E090E03F +:10018000280F391FC901DF91CF911F910F91FF9067 +:10019000EF90089560E070E080910C010E943003C0 +:1001A00060E070E080910A010E94300360E070E03E +:1001B00080910E010E943003089560E070E080910C +:1001C0000C010E9430036FEF70E080910A010E94E1 +:1001D000300360E070E080910E010E9430030895CA +:1001E00060E070E080910C010E94300362E370E0F7 +:1001F00080910A010E9430036FEF70E080910E0140 +:100200000E943003089567EF70E080910C010E9416 +:1002100030036CE170E080910A010E94300366EBCC +:1002200070E080910E010E94300308956FEF70E03E +:1002300080910C010E94300360E070E080910A011F +:100240000E94300360E070E080910E010E94300354 +:1002500008956FEF70E080910C010E9430036FEF02 +:1002600070E080910A010E94300360E070E08091AC +:100270000E010E94300308956FEF70E080910C0131 +:100280000E9430036FEF70E080910A010E943003FA +:100290006FEF70E080910E010E94300308950E947C +:1002A0008500009719F40E94CA00089581309105D5 +:1002B00019F40E94290108958230910519F40E94D1 +:1002C000160108958330910519F40E9403010895E1 +:1002D0008430910519F40E94F0000895853091054D +:1002E00019F40E94DD0008950F9711F40E943C015B +:1002F00008950E944F016AE070E080E090E00E9463 +:10030000CC02089561E0809108010E94A60364E692 +:1003100070E080E090E00E94CC0260E080910801F3 +:100320000E94A603089560E0809100010E94880366 +:1003300060E0809102010E94880360E080910401E6 +:100340000E94880360E0809106010E94880361E0BA +:10035000809108010E94880361E080910C010E9455 +:10036000880361E080910A010E94880361E0809126 +:100370000E010E9488030E943C0168EE73E080E059 +:1003800090E00E94CC020E94290168EE73E080E0B8 +:1003900090E00E94CC020E94160168EE73E080E0BB +:1003A00090E00E94CC020E94030168EE73E080E0BE +:1003B00090E00E94CC020E94F00068EE73E080E0C2 +:1003C00090E00E94CC020E94DD0068EE73E080E0C5 +:1003D00090E00E94CC020E94CA000E94820108950F +:1003E0000E94F6020E9493010E947901FDCF84E1F0 +:1003F00091E090931701809316010895862F0E9433 +:100400003D0408951F920F920FB60F9211242F935F +:100410003F934F935F936F937F938F939F93AF938C +:10042000BF93EF93FF938091180190911901892B4D +:1004300029F0E0911801F09119010995FF91EF91D0 +:10044000BF91AF919F918F917F916F915F914F91EC +:100450003F912F910F900FBE0F901F9018951F92F4 +:100460000F920FB60F9211242F933F934F935F93E8 +:100470006F937F938F939F93AF93BF93EF93FF936C +:1004800080911A0190911B01892B29F0E0911A01AA +:10049000F0911B010995FF91EF91BF91AF919F9151 +:1004A0008F917F916F915F914F913F912F910F901D +:1004B0000FBE0F901F9018951F920F920FB60F92BC +:1004C00011242F938F939F93AF93BF9380911C011F +:1004D00090911D01A0911E01B0911F010196A11DD7 +:1004E000B11D80931C0190931D01A0931E01B09338 +:1004F0001F018091200190912101A0912201B091D2 +:1005000023018050904CAF4FBF4F809320019093B8 +:100510002101A0932201B093230127C080912001E3 +:1005200090912101A0912201B091230180589E4316 +:10053000A040B0408093200190932101A09322011C +:10054000B09323018091240190912501A09126016F +:10055000B09127010196A11DB11D809324019093B4 +:100560002501A0932601B09327018091200190914D +:100570002101A0912201B091230181589E43A04006 +:10058000B04060F6BF91AF919F918F912F910F90E6 +:100590000FBE0F901F901895EF92FF920F931F932D +:1005A0007B018C018FB7F894409124015091250173 +:1005B00060912601709127018FBF2FB7F894809129 +:1005C000240190912501A0912601B09127012FBF10 +:1005D000841B950BA60BB70BE816F9060A071B0739 +:1005E00060F71F910F91FF90EF900895789484B574 +:1005F000826084BD84B5816084BD85B5826085BD1F +:1006000085B5816085BDEEE6F0E080818160808304 +:10061000E1E8F0E080818260808380818160808376 +:10062000E0E8F0E0808181608083E1EBF0E08081B0 +:1006300084608083E0EBF0E0808181608083EAE782 +:10064000F0E080818460808380818260808380810B +:10065000816080838081806880831092C1000895CA +:100660001F93CF93DF93182FEB0161E00E94880363 +:10067000E12FF0E0E156FF4F8491833051F48091F7 +:100680008000806880938000D0938900C0938800A8 +:100690003BC0843051F48091800080628093800060 +:1006A000D0938B00C0938A002FC0813039F42097FB +:1006B00029F184B5806884BDC7BD26C0823039F475 +:1006C0002097E1F084B5806284BDC8BD1DC086302E +:1006D00041F48091B00080688093B000C093B30073 +:1006E00013C0873041F48091B00080628093B000E5 +:1006F000C093B40009C0C038D10514F460E001C053 +:1007000061E0812F0E94A603DF91CF911F91089590 +:10071000282F30E0C90185579F4FFC01949129583B +:100720003F4FF9018491882381F0E82FF0E0E859E8 +:10073000FF4FE491F0E0662329F4808190958923AE +:10074000808308958081892B80830895482F50E00D +:10075000CA0181569F4FFC012491CA0185579F4FC2 +:10076000FC01949149585F4FFA0134913323C1F150 +:10077000222331F1233021F4809180008F7705C04E +:10078000243031F4809180008F7D8093800018C0E8 +:10079000213019F484B58F7704C0223021F484B558 +:1007A0008F7D84BD0DC0263021F48091B0008F77FD +:1007B00005C0273029F48091B0008F7D8093B00070 +:1007C000E32FF0E0E359FF4FE491F0E0662329F4D2 +:1007D000808190958923808308958081892B8083EF +:1007E0000895482F50E0CA0181569F4FFC01249183 +:1007F000CA0185579F4FFC01949149585F4FFA01F8 +:100800003491332319F420E030E035C0222331F154 +:10081000233021F4809180008F7705C0243031F49B +:10082000809180008F7D8093800018C0213019F462 +:1008300084B58F7704C0223021F484B58F7D84BDC8 +:100840000DC0263021F48091B0008F7705C027308D +:1008500029F48091B0008F7D8093B000E32FF0E009 +:10086000EE58FF4FE491F0E0808120E030E08923F2 +:1008700011F021E030E0C9010895982F8091C00067 +:1008800085FFFCCF9093C60008951F920F920FB67C +:100890000F9211242F933F934F935F936F937F9306 +:1008A0008F939F93AF93BF93EF93FF934091C600B5 +:1008B000E0912801F0912901CF01019660E870E0F4 +:1008C0000E9482049C0180912A0190912B0128179B +:1008D000390739F0E45DFE4F4083309329012093BE +:1008E0002801FF91EF91BF91AF919F918F917F91DF +:1008F0006F915F914F913F912F910F900FBE0F908D +:100900001F90189597FB092E07260AD077FD04D073 +:100910000CD006D000201AF4709561957F4F089591 +:10092000F6F7909581959F4F0895AA1BBB1B51E147 +:1009300007C0AA1FBB1FA617B70710F0A61BB70B4F +:10094000881F991F5A95A9F780959095BC01CD01F4 +:100950000895EE0FFF1F0590F491E02D0994F8948F +:02096000FFCFC7 +:100962000200030004000500060009000A000B0053 +:0609720000000000FE0180 +:00000001FF diff --git a/2009/WII_RGB_rev1/applet/WInterrupts.c.o b/2009/WII_RGB_rev1/applet/WInterrupts.c.o new file mode 100644 index 0000000..eccf349 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/WInterrupts.c.o differ diff --git a/2009/WII_RGB_rev1/applet/WMath.cpp.o b/2009/WII_RGB_rev1/applet/WMath.cpp.o new file mode 100644 index 0000000..6587244 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/WMath.cpp.o differ diff --git a/2009/WII_RGB_rev1/applet/pins_arduino.c.o b/2009/WII_RGB_rev1/applet/pins_arduino.c.o new file mode 100644 index 0000000..bb37734 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/pins_arduino.c.o differ diff --git a/2009/WII_RGB_rev1/applet/wiring.c.o b/2009/WII_RGB_rev1/applet/wiring.c.o new file mode 100644 index 0000000..f27eb21 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/wiring.c.o differ diff --git a/2009/WII_RGB_rev1/applet/wiring_analog.c.o b/2009/WII_RGB_rev1/applet/wiring_analog.c.o new file mode 100644 index 0000000..c48ec35 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/wiring_analog.c.o differ diff --git a/2009/WII_RGB_rev1/applet/wiring_digital.c.o b/2009/WII_RGB_rev1/applet/wiring_digital.c.o new file mode 100644 index 0000000..9ea6579 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/wiring_digital.c.o differ diff --git a/2009/WII_RGB_rev1/applet/wiring_pulse.c.o b/2009/WII_RGB_rev1/applet/wiring_pulse.c.o new file mode 100644 index 0000000..d8511c5 Binary files /dev/null and b/2009/WII_RGB_rev1/applet/wiring_pulse.c.o differ diff --git a/2009/WII_RGB_rev1/applet/wiring_serial.c.o b/2009/WII_RGB_rev1/applet/wiring_serial.c.o new file mode 100644 index 0000000..fea774d Binary files /dev/null and b/2009/WII_RGB_rev1/applet/wiring_serial.c.o differ diff --git a/2009/WII_RGB_rev1/applet/wiring_shift.c.o b/2009/WII_RGB_rev1/applet/wiring_shift.c.o new file mode 100644 index 0000000..5c0960d Binary files /dev/null and b/2009/WII_RGB_rev1/applet/wiring_shift.c.o differ diff --git a/2009/WII_RGB_rojo/WII_RGB_rojo.pde b/2009/WII_RGB_rojo/WII_RGB_rojo.pde new file mode 100644 index 0000000..a012f96 --- /dev/null +++ b/2009/WII_RGB_rojo/WII_RGB_rojo.pde @@ -0,0 +1,115 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + analogWrite(red, 0xFF); + analogWrite(green, 0xE0); + analogWrite(blue, 0xA0); + delay(2000); + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + digitalWrite(onoff, HIGH); + delay(100); + digitalWrite(onoff, LOW); + +} + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +// 0000 = 0 = 000000 (OFF) +// 0001 = 1 = FAFF00 (amarillo) +// 0010 = 2 = F41B00 (rojo) +// 0011 = 3 = F71CB6 (magenta) +// 0100 = 4 = 1732FF (azul) +// 0101 = 5 = 33FC00 (verde) +// 1111 = 15 = FFFFFF (blanco) + +void codigoRGB(void) +{ + + int codigo = ledRead(); + + if(codigo == 0) + { + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); + } + else if(codigo == 1) + { + analogWrite(red, 0xFF); + analogWrite(green, 0xF0); + analogWrite(blue, 0x00); + } + else if(codigo == 2) + { + analogWrite(red, 0xFF); + analogWrite(green, 0x10); + analogWrite(blue, 0x00); + } + else if(codigo == 3) + { + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); + } + else if(codigo == 4) + { + analogWrite(red, 0x17); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); + } + else if(codigo == 5) + { + analogWrite(red, 0x33); + analogWrite(green, 0xFC); + analogWrite(blue, 0x00); + } + else if(codigo == 15) + { + analogWrite(red, 0xFF); + analogWrite(green, 0xE0); + analogWrite(blue, 0xA0); + } + +} + +void loop () { + + codigoRGB(); + delay(10); + +} diff --git a/2009/WII_RGB_rojo/applet/HardwareSerial.cpp.o b/2009/WII_RGB_rojo/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..d3d5b72 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/HardwareSerial.cpp.o differ diff --git a/2009/WII_RGB_rojo/applet/WII_RGB_rojo.cpp b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.cpp new file mode 100644 index 0000000..f6579ba --- /dev/null +++ b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.cpp @@ -0,0 +1,133 @@ +#include "WProgram.h" +void setup (); +int ledRead(void); +void codigoRGB(void); +void loop (); +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + analogWrite(red, 0xFF); + analogWrite(green, 0xE0); + analogWrite(blue, 0xA0); + delay(2000); + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + digitalWrite(onoff, HIGH); + delay(100); + digitalWrite(onoff, LOW); + +} + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +// 0000 = 0 = 000000 (OFF) +// 0001 = 1 = FAFF00 (amarillo) +// 0010 = 2 = F41B00 (rojo) +// 0011 = 3 = F71CB6 (magenta) +// 0100 = 4 = 1732FF (azul) +// 0101 = 5 = 33FC00 (verde) +// 1111 = 15 = FFFFFF (blanco) + +void codigoRGB(void) +{ + + int codigo = ledRead(); + + if(codigo == 0) + { + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); + } + else if(codigo == 1) + { + analogWrite(red, 0xFF); + analogWrite(green, 0xF0); + analogWrite(blue, 0x00); + } + else if(codigo == 2) + { + analogWrite(red, 0xFF); + analogWrite(green, 0x10); + analogWrite(blue, 0x00); + } + else if(codigo == 3) + { + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); + } + else if(codigo == 4) + { + analogWrite(red, 0x17); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); + } + else if(codigo == 5) + { + analogWrite(red, 0x33); + analogWrite(green, 0xFC); + analogWrite(blue, 0x00); + } + else if(codigo == 15) + { + analogWrite(red, 0xFF); + analogWrite(green, 0xE0); + analogWrite(blue, 0xA0); + } + +} + +void loop () { + + codigoRGB(); + delay(10); + +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/WII_RGB_rojo/applet/WII_RGB_rojo.cpp.o b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.cpp.o new file mode 100644 index 0000000..620e19b Binary files /dev/null and b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.cpp.o differ diff --git a/2009/WII_RGB_rojo/applet/WII_RGB_rojo.elf b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.elf new file mode 100644 index 0000000..617a96e Binary files /dev/null and b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.elf differ diff --git a/2009/WII_RGB_rojo/applet/WII_RGB_rojo.hex b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.hex new file mode 100644 index 0000000..8ff0628 --- /dev/null +++ b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.hex @@ -0,0 +1,119 @@ +:100000000C945A000C9477000C9477000C947700B1 +:100010000C9477000C9477000C9477000C94770084 +:100020000C9477000C9477000C9477000C94770074 +:100030000C9477000C9477000C9477000C94770064 +:100040000C94A5010C9477000C9477000C94770025 +:100050000C9477000C9477000C9477000C94770044 +:100060000C9477000C947700000024272A000025C8 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B0000000000011241FBECFEFD4E0DEBFCDBF93 +:1000C00011E0A0E0B1E0E0E4F7E002C005900D929D +:1000D000A231B107D9F711E0A2E1B1E001C01D9250 +:1000E000AA31B107E1F70E949E010C949F030C9482 +:1000F0000000EF92FF920F931F93CF93DF938091B5 +:1001000000010E94E6028C01809102010E94E60239 +:100110007C01809104010E94E602EC0180910601BD +:100120000E94E60260E070E0012B11F461E070E0F3 +:1001300020E030E0892B11F421E030E0220F331F62 +:1001400040E050E0CD2B11F441E050E0240F351F8A +:10015000220F331F40E050E0EF2811F441E050E05F +:10016000240F351F220F331FCB01820F931FDF9106 +:10017000CF911F910F91FF90EF9008950E94790009 +:10018000009749F460E070E080910E010E947402D3 +:1001900060E070E047C08130910549F46FEF70E096 +:1001A00080910E010E94740260EF70E03BC08230CB +:1001B000910549F46FEF70E080910E010E94740286 +:1001C00060E170E02FC08330910579F467EF70E053 +:1001D00080910E010E9474026CE170E080910C012C +:1001E0000E94740266EB70E023C08430910579F4BC +:1001F00067E170E080910E010E94740262E370E09A +:1002000080910C010E9474026FEF70E011C0853084 +:10021000910599F463E370E080910E010E947402ED +:100220006CEF70E080910C010E94740260E070E05D +:1002300080910A010E94740208950F9791F46FEF64 +:1002400070E080910E010E94740260EE70E0809177 +:100250000C010E94740260EA70E080910A010E9421 +:10026000740208950E94BE006AE070E080E090E0B1 +:100270000E94E201089560E0809100010E94C8029E +:1002800060E0809102010E94C80260E08091040158 +:100290000E94C80260E0809106010E94C80261E0ED +:1002A000809108010E94C80261E080910E010E94C5 +:1002B000C80261E080910C010E94C80261E0809157 +:1002C0000A010E94C8026FEF70E080910E010E9447 +:1002D000740260EE70E080910C010E94740260EA8A +:1002E00070E080910A010E94740260ED77E080E086 +:1002F00090E00E94E20160E070E080910E010E94B7 +:10030000740260E070E080910C010E94740260E071 +:1003100070E080910A010E94740261E080910801FE +:100320000E94320364E670E080E090E00E94E20107 +:1003300060E0809108010E94320308950E9411023A +:100340000E943B010E943201FDCF1F920F920FB617 +:100350000F9211248F939F93AF93BF9380911601B7 +:1003600090911701A0911801B09119010196A11D5A +:10037000B11D8093160190931701A0931801B093BB +:100380001901BF91AF919F918F910F900FBE0F9068 +:100390001F901895609116017091170180911801B6 +:1003A0009091190127E0660F771F881F991F2A95E2 +:1003B000D1F72DE730E040E050E00E947D03CA0114 +:1003C000B9010895AF92BF92CF92DF92EF92FF9260 +:1003D0000F931F935B016C010E94CA017B018C018A +:1003E0000E94CA016E197F09800B910B6A157B056B +:1003F0008C059D05A8F31F910F91FF90EF90DF9062 +:10040000CF90BF90AF900895019751F0880F991F3A +:10041000880F991F02972FB7F8940197F1F72FBF14 +:1004200008957894109216011092170110921801F5 +:100430001092190184B5826084BD84B5816084BD49 +:1004400085B5826085BD85B5816085BDEEE6F0E04D +:10045000808181608083E1E8F0E080818260808338 +:10046000808181608083E0E8F0E08081816080832A +:10047000E1EBF0E0808184608083E0EBF0E080815C +:1004800081608083EAE7F0E08081846080838081FE +:1004900082608083808181608083808180688083A6 +:1004A0001092C10008958093100108959091100159 +:1004B0009295990F990F907C8F70982B90937C0058 +:1004C00080917A00806480937A0080917A0086FD22 +:1004D000FCCF20917800809179009927982F882768 +:1004E0003327822B932B08951F93CF93DF93182FDD +:1004F000EB0161E00E94C802E12FFF27E156FF4FA8 +:100500008491833051F480918000806880938000D2 +:10051000D0938900C093880037C0843051F4809113 +:100520008000806280938000D0938B00C0938A000B +:100530002BC0813029F484B5806884BDC7BD24C038 +:10054000823029F484B5806284BDC8BD1DC0863068 +:1005500041F48091B00080688093B000C093B300F4 +:1005600013C0873041F48091B00080628093B00066 +:10057000C093B40009C0C038D10514F460E001C0D4 +:1005800061E0812F0E943203DF91CF911F91089586 +:10059000282F3327C90185579F4FFC019491295873 +:1005A0003F4FF9018491882381F0E82FFF27E85914 +:1005B000FF4FE491FF27662329F4808190958923DA +:1005C000808308958081892B80830895482F552743 +:1005D000CA0181569F4FFC012491CA0185579F4F44 +:1005E000FC01949149585F4FFA013491332319F477 +:1005F00080E090E00895222331F1233021F48091AE +:1006000080008F7705C0243031F4809180008F7D89 +:100610008093800018C0213019F484B58F7704C00E +:10062000223021F484B58F7D84BD0DC0263021F4A5 +:100630008091B0008F7705C0273029F48091B000F9 +:100640008F7D8093B000E32FFF27EE58FF4FE4919A +:10065000FF27808120E030E0892311F021E030E0A5 +:10066000C9010895482F5527CA0181569F4FFC01A3 +:100670002491CA0185579F4FFC01949149585F4FBF +:10068000FA0134913323C1F1222331F1233021F4D3 +:10069000809180008F7705C0243031F480918000F4 +:1006A0008F7D8093800018C0213019F484B58F7736 +:1006B00004C0223021F484B58F7D84BD0DC0263066 +:1006C00021F48091B0008F7705C0273029F4809104 +:1006D000B0008F7D8093B000E32FFF27E359FF4FD9 +:1006E000E491FF27662329F48081909589238083F4 +:1006F00008958081892B80830895A1E21A2EAA1B78 +:10070000BB1BFD010DC0AA1FBB1FEE1FFF1FA217C1 +:10071000B307E407F50720F0A21BB30BE40BF50BBE +:10072000661F771F881F991F1A9469F76095709547 +:10073000809590959B01AC01BD01CF010895FFCF3D +:100740000200030004000500060009000A000B0077 +:020750000100A6 +:00000001FF diff --git a/2009/WII_RGB_rojo/applet/WII_RGB_rojo.pde b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.pde new file mode 100644 index 0000000..a47a37c --- /dev/null +++ b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.pde @@ -0,0 +1,115 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int blue = 9; +int green = 10; +int red = 11; +int time = 0; +int i=0; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + analogWrite(red, 0xFF); + analogWrite(green, 0x5A); + analogWrite(blue, 0x32); + delay(2000); + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 0); + digitalWrite(onoff, HIGH); + delay(100); + digitalWrite(onoff, LOW); + +} + +int ledRead(void) +{ + + int l1; + int l2; + int l3; + int l4; + int codigo = 0; + l1 = !digitalRead(led1); + l2 = !digitalRead(led2); + l3 = !digitalRead(led3); + l4 = !digitalRead(led4); + codigo = l1 + 2*l2 + 4*l3 + 8*l4; + return(codigo); + +} + +// 0000 = 0 = 000000 (OFF) +// 0001 = 1 = FAFF00 (amarillo) +// 0010 = 2 = F41B00 (rojo) +// 0011 = 3 = F71CB6 (magenta) +// 0100 = 4 = 1732FF (azul) +// 0101 = 5 = 33FC00 (verde) +// 1111 = 15 = FFFFFF (blanco) + +void codigoRGB(void) +{ + + int codigo = ledRead(); + + if(codigo == 0) + { + analogWrite(red, 0x00); + analogWrite(green, 0x00); + analogWrite(blue, 0x00); + } + else if(codigo == 1) + { + analogWrite(red, 0xFF); + analogWrite(green, 0x60); + analogWrite(blue, 0x00); + } + else if(codigo == 2) + { + analogWrite(red, 0xFF); + analogWrite(green, 0x1B); + analogWrite(blue, 0x00); + } + else if(codigo == 3) + { + analogWrite(red, 0xF7); + analogWrite(green, 0x1C); + analogWrite(blue, 0xB6); + } + else if(codigo == 4) + { + analogWrite(red, 0x17); + analogWrite(green, 0x32); + analogWrite(blue, 0xFF); + } + else if(codigo == 5) + { + analogWrite(red, 0x33); + analogWrite(green, 0xFC); + analogWrite(blue, 0x00); + } + else if(codigo == 15) + { + analogWrite(red, 0xFF); + analogWrite(green, 0x5A); + analogWrite(blue, 0x32); + } + +} + +void loop () { + + codigoRGB(); + delay(10); + +} diff --git a/2009/WII_RGB_rojo/applet/WII_RGB_rojo.rom b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.rom new file mode 100644 index 0000000..d78f561 --- /dev/null +++ b/2009/WII_RGB_rojo/applet/WII_RGB_rojo.rom @@ -0,0 +1,120 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C616C65785C4D697320646F63756DC2 +S11300000C945A000C9477000C9477000C947700AD +S11300100C9477000C9477000C9477000C94770080 +S11300200C9477000C9477000C9477000C94770070 +S11300300C9477000C9477000C9477000C94770060 +S11300400C94A5010C9477000C9477000C94770021 +S11300500C9477000C9477000C9477000C94770040 +S11300600C9477000C947700000024272A000025C4 +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B00000000011241FBECFEFD4E0DEBFCDBF8F +S11300C011E0A0E0B1E0E0E4F7E002C005900D9299 +S11300D0A231B107D9F711E0A2E1B1E001C01D924C +S11300E0AA31B107E1F70E949E010C949F030C947E +S11300F00000EF92FF920F931F93CF93DF938091B1 +S113010000010E94E6028C01809102010E94E60235 +S11301107C01809104010E94E602EC0180910601B9 +S11301200E94E60260E070E0012B11F461E070E0EF +S113013020E030E0892B11F421E030E0220F331F5E +S113014040E050E0CD2B11F441E050E0240F351F86 +S1130150220F331F40E050E0EF2811F441E050E05B +S1130160240F351F220F331FCB01820F931FDF9102 +S1130170CF911F910F91FF90EF9008950E94790005 +S1130180009749F460E070E080910E010E947402CF +S113019060E070E047C08130910549F46FEF70E092 +S11301A080910E010E94740260EF70E03BC08230C7 +S11301B0910549F46FEF70E080910E010E94740282 +S11301C060E170E02FC08330910579F467EF70E04F +S11301D080910E010E9474026CE170E080910C0128 +S11301E00E94740266EB70E023C08430910579F4B8 +S11301F067E170E080910E010E94740262E370E096 +S113020080910C010E9474026FEF70E011C0853080 +S1130210910599F463E370E080910E010E947402E9 +S11302206CEF70E080910C010E94740260E070E059 +S113023080910A010E94740208950F9791F46FEF60 +S113024070E080910E010E94740260EE70E0809173 +S11302500C010E94740260EA70E080910A010E941D +S1130260740208950E94BE006AE070E080E090E0AD +S11302700E94E201089560E0809100010E94C8029A +S113028060E0809102010E94C80260E08091040154 +S11302900E94C80260E0809106010E94C80261E0E9 +S11302A0809108010E94C80261E080910E010E94C1 +S11302B0C80261E080910C010E94C80261E0809153 +S11302C00A010E94C8026FEF70E080910E010E9443 +S11302D0740260EE70E080910C010E94740260EA86 +S11302E070E080910A010E94740260ED77E080E082 +S11302F090E00E94E20160E070E080910E010E94B3 +S1130300740260E070E080910C010E94740260E06D +S113031070E080910A010E94740261E080910801FA +S11303200E94320364E670E080E090E00E94E20103 +S113033060E0809108010E94320308950E94110236 +S11303400E943B010E943201FDCF1F920F920FB613 +S11303500F9211248F939F93AF93BF9380911601B3 +S113036090911701A0911801B09119010196A11D56 +S1130370B11D8093160190931701A0931801B093B7 +S11303801901BF91AF919F918F910F900FBE0F9064 +S11303901F901895609116017091170180911801B2 +S11303A09091190127E0660F771F881F991F2A95DE +S11303B0D1F72DE730E040E050E00E947D03CA0110 +S11303C0B9010895AF92BF92CF92DF92EF92FF925C +S11303D00F931F935B016C010E94CA017B018C0186 +S11303E00E94CA016E197F09800B910B6A157B0567 +S11303F08C059D05A8F31F910F91FF90EF90DF905E +S1130400CF90BF90AF900895019751F0880F991F36 +S1130410880F991F02972FB7F8940197F1F72FBF10 +S113042008957894109216011092170110921801F1 +S11304301092190184B5826084BD84B5816084BD45 +S113044085B5826085BD85B5816085BDEEE6F0E049 +S1130450808181608083E1E8F0E080818260808334 +S1130460808181608083E0E8F0E080818160808326 +S1130470E1EBF0E0808184608083E0EBF0E0808158 +S113048081608083EAE7F0E08081846080838081FA +S113049082608083808181608083808180688083A2 +S11304A01092C10008958093100108959091100155 +S11304B09295990F990F907C8F70982B90937C0054 +S11304C080917A00806480937A0080917A0086FD1E +S11304D0FCCF20917800809179009927982F882764 +S11304E03327822B932B08951F93CF93DF93182FD9 +S11304F0EB0161E00E94C802E12FFF27E156FF4FA4 +S11305008491833051F480918000806880938000CE +S1130510D0938900C093880037C0843051F480910F +S11305208000806280938000D0938B00C0938A0007 +S11305302BC0813029F484B5806884BDC7BD24C034 +S1130540823029F484B5806284BDC8BD1DC0863064 +S113055041F48091B00080688093B000C093B300F0 +S113056013C0873041F48091B00080628093B00062 +S1130570C093B40009C0C038D10514F460E001C0D0 +S113058061E0812F0E943203DF91CF911F91089582 +S1130590282F3327C90185579F4FFC01949129586F +S11305A03F4FF9018491882381F0E82FFF27E85910 +S11305B0FF4FE491FF27662329F4808190958923D6 +S11305C0808308958081892B80830895482F55273F +S11305D0CA0181569F4FFC012491CA0185579F4F40 +S11305E0FC01949149585F4FFA013491332319F473 +S11305F080E090E00895222331F1233021F48091AA +S113060080008F7705C0243031F4809180008F7D85 +S11306108093800018C0213019F484B58F7704C00A +S1130620223021F484B58F7D84BD0DC0263021F4A1 +S11306308091B0008F7705C0273029F48091B000F5 +S11306408F7D8093B000E32FFF27EE58FF4FE49196 +S1130650FF27808120E030E0892311F021E030E0A1 +S1130660C9010895482F5527CA0181569F4FFC019F +S11306702491CA0185579F4FFC01949149585F4FBB +S1130680FA0134913323C1F1222331F1233021F4CF +S1130690809180008F7705C0243031F480918000F0 +S11306A08F7D8093800018C0213019F484B58F7732 +S11306B004C0223021F484B58F7D84BD0DC0263062 +S11306C021F48091B0008F7705C0273029F4809100 +S11306D0B0008F7D8093B000E32FFF27E359FF4FD5 +S11306E0E491FF27662329F48081909589238083F0 +S11306F008958081892B80830895A1E21A2EAA1B74 +S1130700BB1BFD010DC0AA1FBB1FEE1FFF1FA217BD +S1130710B307E407F50720F0A21BB30BE40BF50BBA +S1130720661F771F881F991F1A9469F76095709543 +S1130730809590959B01AC01BD01CF010895FFCF39 +S11307400200030004000500060009000A000B0073 +S10507500100A2 +S9030000FC diff --git a/2009/WII_RGB_rojo/applet/WInterrupts.c.o b/2009/WII_RGB_rojo/applet/WInterrupts.c.o new file mode 100644 index 0000000..cf40f54 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/WInterrupts.c.o differ diff --git a/2009/WII_RGB_rojo/applet/WMath.cpp.o b/2009/WII_RGB_rojo/applet/WMath.cpp.o new file mode 100644 index 0000000..9877142 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/WMath.cpp.o differ diff --git a/2009/WII_RGB_rojo/applet/core.a b/2009/WII_RGB_rojo/applet/core.a new file mode 100644 index 0000000..2440708 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/core.a differ diff --git a/2009/WII_RGB_rojo/applet/pins_arduino.c.o b/2009/WII_RGB_rojo/applet/pins_arduino.c.o new file mode 100644 index 0000000..16e7d16 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/pins_arduino.c.o differ diff --git a/2009/WII_RGB_rojo/applet/wiring.c.o b/2009/WII_RGB_rojo/applet/wiring.c.o new file mode 100644 index 0000000..1ed3052 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/wiring.c.o differ diff --git a/2009/WII_RGB_rojo/applet/wiring_analog.c.o b/2009/WII_RGB_rojo/applet/wiring_analog.c.o new file mode 100644 index 0000000..0499f93 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/wiring_analog.c.o differ diff --git a/2009/WII_RGB_rojo/applet/wiring_digital.c.o b/2009/WII_RGB_rojo/applet/wiring_digital.c.o new file mode 100644 index 0000000..5c5c9de Binary files /dev/null and b/2009/WII_RGB_rojo/applet/wiring_digital.c.o differ diff --git a/2009/WII_RGB_rojo/applet/wiring_pulse.c.o b/2009/WII_RGB_rojo/applet/wiring_pulse.c.o new file mode 100644 index 0000000..5568709 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/wiring_pulse.c.o differ diff --git a/2009/WII_RGB_rojo/applet/wiring_serial.c.o b/2009/WII_RGB_rojo/applet/wiring_serial.c.o new file mode 100644 index 0000000..a7e54c0 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/wiring_serial.c.o differ diff --git a/2009/WII_RGB_rojo/applet/wiring_shift.c.o b/2009/WII_RGB_rojo/applet/wiring_shift.c.o new file mode 100644 index 0000000..1c75fe6 Binary files /dev/null and b/2009/WII_RGB_rojo/applet/wiring_shift.c.o differ diff --git a/2009/WII_test/WII_test.pde b/2009/WII_test/WII_test.pde new file mode 100644 index 0000000..8845ca2 --- /dev/null +++ b/2009/WII_test/WII_test.pde @@ -0,0 +1,158 @@ +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int red = 9; +int green = 10; +int blue = 11; +int time = 0; +int value; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + digitalWrite(onoff, HIGH); + delay(10); + digitalWrite(onoff, LOW); + time = millis(); +} +void loop () { + + + for(value = 0 ; value <= 255; value+=5) + { + analogWrite(red, value); // fade out rojo + analogWrite(blue, (255 - value) ); //fade in azul + delay(30); + } + + for(value = 0 ; value <= 255; value+=5) + { + analogWrite(blue, value); // fade out azul + analogWrite(green, (255 - value) ); //fade in verde + delay(30); + } + + for(value = 0 ; value <= 255; value+=5) + { + analogWrite(green, value ); // fade out verde + analogWrite(red, (255 - value) ); // fade in rojo + delay(30); + } + + /* + if ((millis()-time)>=60000) + { + digitalWrite(onoff, HIGH); + delay(10); + digitalWrite(onoff, LOW); + time = millis(); + } + if ((led1=0)&&(led2=0)&&(led3=0)&&(led4=0)) //0000 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=0)&&(led3=0)&&(led4=1)) //0001 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=0)&&(led3=1)&&(led4=0)) //0010 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=0)&&(led3=1)&&(led4=1)) //0011 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=1)&&(led3=0)&&(led4=0)) //0100 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((led1=0)&&(led2=1)&&(led3=0)&&(led4=1)) //0101 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((led1=0)&&(led2=1)&&(led3=1)&&(led4=0)) //0110 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=1)&&(led3=1)&&(led4=1)) //0111 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((led1=1)&&(led2=0)&&(led3=0)&&(led4=0)) //1000 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((led1=1)&&(led2=0)&&(led3=0)&&(led4=1)) //1001 + { + analogWrite(red, 25); + analogWrite(green, 180); + analogWrite(blue, 120); + } + else if ((led1=1)&&(led2=0)&&(led3=1)&&(led4=0)) //1010 + { + analogWrite(red, 130); + analogWrite(green, 255); + analogWrite(blue, 200); + } + else if ((led1=1)&&(led2=0)&&(led3=1)&&(led4=1)) //1011 + { + analogWrite(red, 170); + analogWrite(green, 7); + analogWrite(blue, 255); + } + else if ((led1=1)&&(led2=1)&&(led3=0)&&(led4=0)) //1100 + { + analogWrite(red, 0); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=1)&&(led2=1)&&(led3=0)&&(led4=1)) //1101 + { + analogWrite(red, 255); + analogWrite(green, 0); + analogWrite(blue, 255); + } + else if ((led1=1)&&(led2=1)&&(led3=1)&&(led4=0)) //1110 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 0); + } + else if ((led1=1)&&(led2=1)&&(led3=1)&&(led4=1)) //1111 + { + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 255); + } + + */ + + } diff --git a/2009/WII_test/applet/HardwareSerial.cpp.o b/2009/WII_test/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..81691ee Binary files /dev/null and b/2009/WII_test/applet/HardwareSerial.cpp.o differ diff --git a/2009/WII_test/applet/WII_test.cpp b/2009/WII_test/applet/WII_test.cpp new file mode 100644 index 0000000..d0b13da --- /dev/null +++ b/2009/WII_test/applet/WII_test.cpp @@ -0,0 +1,172 @@ +#include "WProgram.h" +int led1 = 2; +int led2 = 3; +int led3 = 4; +int led4 = 5; +int onoff = 6; +int red = 9; +int green = 10; +int blue = 11; +int time = 0; +int value; + +void setup () { + + pinMode(led1, INPUT); + pinMode(led2, INPUT); + pinMode(led3, INPUT); + pinMode(led4, INPUT); + pinMode(onoff, OUTPUT); + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + digitalWrite(onoff, HIGH); + delay(10); + digitalWrite(onoff, LOW); + time = millis(); +} +void loop () { + + + for(value = 0 ; value <= 255; value+=5) + { + analogWrite(red, value); // fade out rojo + analogWrite(blue, (255 - value) ); //fade in azul + delay(30); + } + + for(value = 0 ; value <= 255; value+=5) + { + analogWrite(blue, value); // fade out azul + analogWrite(green, (255 - value) ); //fade in verde + delay(30); + } + + for(value = 0 ; value <= 255; value+=5) + { + analogWrite(green, value ); // fade out verde + analogWrite(red, (255 - value) ); // fade in rojo + delay(30); + } + + /* + if ((millis()-time)>=60000) + { + digitalWrite(onoff, HIGH); + delay(10); + digitalWrite(onoff, LOW); + time = millis(); + } + if ((led1=0)&&(led2=0)&&(led3=0)&&(led4=0)) //0000 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=0)&&(led3=0)&&(led4=1)) //0001 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=0)&&(led3=1)&&(led4=0)) //0010 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=0)&&(led3=1)&&(led4=1)) //0011 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=1)&&(led3=0)&&(led4=0)) //0100 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((led1=0)&&(led2=1)&&(led3=0)&&(led4=1)) //0101 + { + analogWrite(red, 100); + analogWrite(green, 255); + analogWrite(blue, 100); + } + else if ((led1=0)&&(led2=1)&&(led3=1)&&(led4=0)) //0110 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 255); + } + else if ((led1=0)&&(led2=1)&&(led3=1)&&(led4=1)) //0111 + { + analogWrite(red, 255); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((led1=1)&&(led2=0)&&(led3=0)&&(led4=0)) //1000 + { + analogWrite(red, 100); + analogWrite(green, 100); + analogWrite(blue, 100); + } + else if ((led1=1)&&(led2=0)&&(led3=0)&&(led4=1)) //1001 + { + analogWrite(red, 25); + analogWrite(green, 180); + analogWrite(blue, 120); + } + else if ((led1=1)&&(led2=0)&&(led3=1)&&(led4=0)) //1010 + { + analogWrite(red, 130); + analogWrite(green, 255); + analogWrite(blue, 200); + } + else if ((led1=1)&&(led2=0)&&(led3=1)&&(led4=1)) //1011 + { + analogWrite(red, 170); + analogWrite(green, 7); + analogWrite(blue, 255); + } + else if ((led1=1)&&(led2=1)&&(led3=0)&&(led4=0)) //1100 + { + analogWrite(red, 0); + analogWrite(green, 255); + analogWrite(blue, 255); + } + else if ((led1=1)&&(led2=1)&&(led3=0)&&(led4=1)) //1101 + { + analogWrite(red, 255); + analogWrite(green, 0); + analogWrite(blue, 255); + } + else if ((led1=1)&&(led2=1)&&(led3=1)&&(led4=0)) //1110 + { + analogWrite(red, 255); + analogWrite(green, 255); + analogWrite(blue, 0); + } + else if ((led1=1)&&(led2=1)&&(led3=1)&&(led4=1)) //1111 + { + analogWrite(red, 0); + analogWrite(green, 0); + analogWrite(blue, 255); + } + + */ + + } + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/WII_test/applet/WII_test.cpp.o b/2009/WII_test/applet/WII_test.cpp.o new file mode 100644 index 0000000..eada4e0 Binary files /dev/null and b/2009/WII_test/applet/WII_test.cpp.o differ diff --git a/2009/WII_test/applet/WII_test.elf b/2009/WII_test/applet/WII_test.elf new file mode 100644 index 0000000..562a8bb Binary files /dev/null and b/2009/WII_test/applet/WII_test.elf differ diff --git a/2009/WII_test/applet/WII_test.hex b/2009/WII_test/applet/WII_test.hex new file mode 100644 index 0000000..c6a9906 --- /dev/null +++ b/2009/WII_test/applet/WII_test.hex @@ -0,0 +1,82 @@ +:1000000038C052C051C050C04FC04EC04DC04CC08F +:100010004BC0F8C049C048C047C046C045C044C0F6 +:1000200043C042C041C0000037343100003835328F +:100030000000363330040404040404040402020201 +:100040000202020303030303030102040810204019 +:1000500080010204081020010204081020000000A2 +:100060000000000000000304050000000000000084 +:10007000000011241FBECFE5D4E0DEBFCDBF10E0ED +:10008000A0E6B0E0E0E0F5E002C005900D92A037F8 +:10009000B107D9F710E0A0E7B0E001C01D92A83782 +:1000A000B107E1F7ABD02BC2ABCF10927300109227 +:1000B000720060E070E080916A0047D16FEF70E0FD +:1000C0008091720090917300681B790B80916E0093 +:1000D0003CD16EE170E080E090E0D0D060917200A1 +:1000E000709173006B5F7F4F709373006093720029 +:1000F0006F3F710501F3FCF21092730010927200D1 +:1001000060E070E080916E0020D16FEF70E0809130 +:10011000720090917300681B790B80916C0015D16F +:100120006EE170E080E090E0A9D060917200709183 +:1001300073006B5F7F4F70937300609372006F3F2B +:10014000710501F3FCF2109273001092720060E0EE +:1001500070E080916C00F9D06FEF70E080917200D8 +:1001600090917300681B790B80916A00EED06EE16C +:1001700070E080E090E082D0609172007091730036 +:100180006B5F7F4F70937300609372006F3F7105D8 +:1001900001F3FCF2089560E08091600005D160E019 +:1001A0008091620001D160E080916400FDD060E048 +:1001B00080916600F9D061E080916800F5D061E03F +:1001C00080916A00F1D061E080916C00EDD061E037 +:1001D00080916E00E9D061E08091680039D16AE0D9 +:1001E00070E080E090E04AD060E08091680030D11B +:1001F0002ED0709371006093700008956CD0CBDFA7 +:1002000054DFFECF1F920F920FB60F9211248F93DF +:100210009F93AF93BF938091740090917500A091CC +:100220007600B09177000196A11DB11D80937400F6 +:1002300090937500A0937600B0937700BF91AF9133 +:100240009F918F910F900FBE0F901F901895609106 +:10025000740070917500809176009091770027E08E +:10026000660F771F881F991F2A95D1F72DE730E079 +:1002700040E050E022D1CA01B9010895AF92BF9287 +:10028000CF92DF92EF92FF920F931F935B016C016D +:10029000DEDF7B018C01DBDF6E197F09800B910BA8 +:1002A0006A157B058C059D05B0F31F910F91FF909A +:1002B000EF90DF90CF90BF90AF900895019751F0ED +:1002C000880F991F880F991F02972FB7F8940197ED +:1002D000F1F72FBF08957894109274001092750072 +:1002E000109276001092770083B7826083BF83B745 +:1002F000816083BF89B7816089BF8EB582608EBD02 +:100300008EB581608EBD8FB581608FBD85B58460EF +:1003100085BD85B5806485BD3F983E9A329A319AF5 +:10032000309A379A1AB8089597B1907F8F70982BAA +:1003300097B9369A3699FECF24B185B19927982F6F +:1003400088273327822B932B08951F93CF93DF9316 +:10035000182FEB0161E028D0E12FFF27E35AFF4F70 +:100360008491833031F48FB580688FBDDBBDCABD09 +:1003700017C0843031F48FB580628FBDD9BDC8BD40 +:100380000FC0853029F485B5806285BDC3BD08C026 +:10039000C038D10514F460E001C061E0812F58D06D +:1003A000DF91CF911F910895282F3327C901875BD3 +:1003B0009F4FFC0194912B5C3F4FF901849188235E +:1003C00081F0E82FFF27EA5DFF4FE491FF276623C6 +:1003D00029F4808190958923808308958081892BD9 +:1003E00080830895482F5527CA01835A9F4FFC01E7 +:1003F0002491CA01875B9F4FFC0194914B5C5F4F36 +:10040000FA013491332319F480E090E00895222317 +:1004100081F0233019F48FB58F7704C0243021F494 +:100420008FB58F7D8FBD05C0253019F485B58F7DC3 +:1004300085BDE32FFF27E05DFF4FE491FF2780811B +:1004400020E030E0892311F021E030E0C901089577 +:10045000482F5527CA01835A9F4FFC012491CA0196 +:10046000875B9F4FFC0194914B5C5F4FFA01349185 +:10047000332311F1222381F0233019F48FB58F77C4 +:1004800004C0243021F48FB58F7D8FBD05C0253089 +:1004900019F485B58F7D85BDE32FFF27E55DFF4FFF +:1004A000E491FF27662329F4808190958923808336 +:1004B00008958081892B80830895A1E21A2EAA1BBA +:1004C000BB1BFD010DC0AA1FBB1FEE1FFF1FA21704 +:1004D000B307E407F50720F0A21BB30BE40BF50B01 +:1004E000661F771F881F991F1A9469F7609570958A +:1004F000809590959B01AC01BD01CF010895FFCF80 +:100500000200030004000500060009000A000B00B9 +:00000001FF diff --git a/2009/WII_test/applet/WII_test.rom b/2009/WII_test/applet/WII_test.rom new file mode 100644 index 0000000..9b44b31 --- /dev/null +++ b/2009/WII_test/applet/WII_test.rom @@ -0,0 +1,83 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C616C65785C4D697320646F63756DC2 +S113000038C052C051C050C04FC04EC04DC04CC08B +S11300104BC0F8C049C048C047C046C045C044C0F2 +S113002043C042C041C0000037343100003835328B +S113003000003633300404040404040404020202FD +S11300400202020303030303030102040810204015 +S1130050800102040810200102040810200000009E +S11300600000000000000304050000000000000080 +S1130070000011241FBECFE5D4E0DEBFCDBF10E0E9 +S1130080A0E6B0E0E0E0F5E002C005900D92A037F4 +S1130090B107D9F710E0A0E7B0E001C01D92A8377E +S11300A0B107E1F7ABD02BC2ABCF10927300109223 +S11300B0720060E070E080916A0047D16FEF70E0F9 +S11300C08091720090917300681B790B80916E008F +S11300D03CD16EE170E080E090E0D0D0609172009D +S11300E0709173006B5F7F4F709373006093720025 +S11300F06F3F710501F3FCF21092730010927200CD +S113010060E070E080916E0020D16FEF70E080912C +S1130110720090917300681B790B80916C0015D16B +S11301206EE170E080E090E0A9D06091720070917F +S113013073006B5F7F4F70937300609372006F3F27 +S1130140710501F3FCF2109273001092720060E0EA +S113015070E080916C00F9D06FEF70E080917200D4 +S113016090917300681B790B80916A00EED06EE168 +S113017070E080E090E082D0609172007091730032 +S11301806B5F7F4F70937300609372006F3F7105D4 +S113019001F3FCF2089560E08091600005D160E015 +S11301A08091620001D160E080916400FDD060E044 +S11301B080916600F9D061E080916800F5D061E03B +S11301C080916A00F1D061E080916C00EDD061E033 +S11301D080916E00E9D061E08091680039D16AE0D5 +S11301E070E080E090E04AD060E08091680030D117 +S11301F02ED0709371006093700008956CD0CBDFA3 +S113020054DFFECF1F920F920FB60F9211248F93DB +S11302109F93AF93BF938091740090917500A091C8 +S11302207600B09177000196A11DB11D80937400F2 +S113023090937500A0937600B0937700BF91AF912F +S11302409F918F910F900FBE0F901F901895609102 +S1130250740070917500809176009091770027E08A +S1130260660F771F881F991F2A95D1F72DE730E075 +S113027040E050E022D1CA01B9010895AF92BF9283 +S1130280CF92DF92EF92FF920F931F935B016C0169 +S1130290DEDF7B018C01DBDF6E197F09800B910BA4 +S11302A06A157B058C059D05B0F31F910F91FF9096 +S11302B0EF90DF90CF90BF90AF900895019751F0E9 +S11302C0880F991F880F991F02972FB7F8940197E9 +S11302D0F1F72FBF0895789410927400109275006E +S11302E0109276001092770083B7826083BF83B741 +S11302F0816083BF89B7816089BF8EB582608EBDFE +S11303008EB581608EBD8FB581608FBD85B58460EB +S113031085BD85B5806485BD3F983E9A329A319AF1 +S1130320309A379A1AB8089597B1907F8F70982BA6 +S113033097B9369A3699FECF24B185B19927982F6B +S113034088273327822B932B08951F93CF93DF9312 +S1130350182FEB0161E028D0E12FFF27E35AFF4F6C +S11303608491833031F48FB580688FBDDBBDCABD05 +S113037017C0843031F48FB580628FBDD9BDC8BD3C +S11303800FC0853029F485B5806285BDC3BD08C022 +S1130390C038D10514F460E001C061E0812F58D069 +S11303A0DF91CF911F910895282F3327C901875BCF +S11303B09F4FFC0194912B5C3F4FF901849188235A +S11303C081F0E82FFF27EA5DFF4FE491FF276623C2 +S11303D029F4808190958923808308958081892BD5 +S11303E080830895482F5527CA01835A9F4FFC01E3 +S11303F02491CA01875B9F4FFC0194914B5C5F4F32 +S1130400FA013491332319F480E090E00895222313 +S113041081F0233019F48FB58F7704C0243021F490 +S11304208FB58F7D8FBD05C0253019F485B58F7DBF +S113043085BDE32FFF27E05DFF4FE491FF27808117 +S113044020E030E0892311F021E030E0C901089573 +S1130450482F5527CA01835A9F4FFC012491CA0192 +S1130460875B9F4FFC0194914B5C5F4FFA01349181 +S1130470332311F1222381F0233019F48FB58F77C0 +S113048004C0243021F48FB58F7D8FBD05C0253085 +S113049019F485B58F7D85BDE32FFF27E55DFF4FFB +S11304A0E491FF27662329F4808190958923808332 +S11304B008958081892B80830895A1E21A2EAA1BB6 +S11304C0BB1BFD010DC0AA1FBB1FEE1FFF1FA21700 +S11304D0B307E407F50720F0A21BB30BE40BF50BFD +S11304E0661F771F881F991F1A9469F76095709586 +S11304F0809590959B01AC01BD01CF010895FFCF7C +S11305000200030004000500060009000A000B00B5 +S9030000FC diff --git a/2009/WII_test/applet/WInterrupts.c.o b/2009/WII_test/applet/WInterrupts.c.o new file mode 100644 index 0000000..3ca33e5 Binary files /dev/null and b/2009/WII_test/applet/WInterrupts.c.o differ diff --git a/2009/WII_test/applet/WRandom.cpp.o b/2009/WII_test/applet/WRandom.cpp.o new file mode 100644 index 0000000..6b97c89 Binary files /dev/null and b/2009/WII_test/applet/WRandom.cpp.o differ diff --git a/2009/WII_test/applet/core.a b/2009/WII_test/applet/core.a new file mode 100644 index 0000000..774f95d Binary files /dev/null and b/2009/WII_test/applet/core.a differ diff --git a/2009/WII_test/applet/pins_arduino.c.o b/2009/WII_test/applet/pins_arduino.c.o new file mode 100644 index 0000000..ccc8a56 Binary files /dev/null and b/2009/WII_test/applet/pins_arduino.c.o differ diff --git a/2009/WII_test/applet/wiring.c.o b/2009/WII_test/applet/wiring.c.o new file mode 100644 index 0000000..0c086be Binary files /dev/null and b/2009/WII_test/applet/wiring.c.o differ diff --git a/2009/WII_test/applet/wiring_analog.c.o b/2009/WII_test/applet/wiring_analog.c.o new file mode 100644 index 0000000..e24a5ff Binary files /dev/null and b/2009/WII_test/applet/wiring_analog.c.o differ diff --git a/2009/WII_test/applet/wiring_digital.c.o b/2009/WII_test/applet/wiring_digital.c.o new file mode 100644 index 0000000..ff1792e Binary files /dev/null and b/2009/WII_test/applet/wiring_digital.c.o differ diff --git a/2009/WII_test/applet/wiring_pulse.c.o b/2009/WII_test/applet/wiring_pulse.c.o new file mode 100644 index 0000000..a434c76 Binary files /dev/null and b/2009/WII_test/applet/wiring_pulse.c.o differ diff --git a/2009/WII_test/applet/wiring_serial.c.o b/2009/WII_test/applet/wiring_serial.c.o new file mode 100644 index 0000000..752eba0 Binary files /dev/null and b/2009/WII_test/applet/wiring_serial.c.o differ diff --git a/2009/WII_test/applet/wiring_shift.c.o b/2009/WII_test/applet/wiring_shift.c.o new file mode 100644 index 0000000..f880ac0 Binary files /dev/null and b/2009/WII_test/applet/wiring_shift.c.o differ diff --git a/2009/alarma_bisbe/alarma_bisbe.pde b/2009/alarma_bisbe/alarma_bisbe.pde new file mode 100644 index 0000000..aff3d15 --- /dev/null +++ b/2009/alarma_bisbe/alarma_bisbe.pde @@ -0,0 +1,120 @@ +#include +#include +#include "util.h" +#include "wave.h" + +AF_Wave card; +File f; +Wavefile wave; // only one! +#define lampara 6 +#define N 8 + +char c, name[15]; + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + //Serial.println("Wave test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(lampara, OUTPUT); + + /*name[0]='A'; + name[1]='L'; + name[2]='A'; + name[3]='R'; + name[4]='M'; + name[5]='.'; + name[6]='W'; + name[7]='A'; + name[8]='V'; + name[9] = 0;*/ + + if (!card.init_card()) { + //putstring_nl("Card init. failed!"); + return; + } + if (!card.open_partition()) { + //putstring_nl("No partition!"); + return; + } + if (!card.open_filesys()) { + //putstring_nl("Couldn't open filesys"); + return; + } + + if (!card.open_rootdir()) { + //putstring_nl("Couldn't open dir"); + return; + } + + //putstring_nl("Files found:"); + ls(); + analogWrite(lampara, 0); + +} + +void ls() { + char name[13]; + int ret; + card.reset_dir(); + //putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; + +void loop() { + uint8_t i=0,flag=0; + + playfile("ALARM.WAV"); + //digitalWrite(lampara, LOW); + while (wave.isplaying) { + if(i==0) + delay(1000); + if((i>=0)&&(i<=20)) delay(38*N); + else if((i>=21)&&(i<=50)) delay(13*N); + else if((i>=51)&&(i<=180)) delay(3*N); + else if((i>=181)&&(i<=230)) delay(2*N); + else delay(N); + + if ((i<(255)&&(!flag))) + { + i=i+1; + } + else if ((i>=255)&&(!flag)) flag=1; + else if ((i>0)&&(flag)) + { + i=i-1; + } + else if ((i==0)&&(flag)) flag=0; + analogWrite(lampara, (int)(i/8) ); // al dividir disminuimos intensidad maxima + + } + + card.close_file(f); + analogWrite(lampara, 0); + +} + + +void playfile(char *name) { + f = card.open_file(name); + if (!f) { + //putstring_nl(" Couldn't open file"); return; + } + if (!wave.create(f)) { + //putstring_nl(" Not a valid WAV"); return; + } + // ok time to play! + wave.play(); +} diff --git a/2009/alarma_bisbe/applet/HardwareSerial.cpp.o b/2009/alarma_bisbe/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/alarma_bisbe/applet/HardwareSerial.cpp.o differ diff --git a/2009/alarma_bisbe/applet/Print.cpp.o b/2009/alarma_bisbe/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/alarma_bisbe/applet/Print.cpp.o differ diff --git a/2009/alarma_bisbe/applet/WInterrupts.c.o b/2009/alarma_bisbe/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/alarma_bisbe/applet/WInterrupts.c.o differ diff --git a/2009/alarma_bisbe/applet/WMath.cpp.o b/2009/alarma_bisbe/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/alarma_bisbe/applet/WMath.cpp.o differ diff --git a/2009/alarma_bisbe/applet/WRandom.cpp.o b/2009/alarma_bisbe/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/alarma_bisbe/applet/WRandom.cpp.o differ diff --git a/2009/alarma_bisbe/applet/alarma_bisbe.cpp b/2009/alarma_bisbe/applet/alarma_bisbe.cpp new file mode 100644 index 0000000..e43bbdb --- /dev/null +++ b/2009/alarma_bisbe/applet/alarma_bisbe.cpp @@ -0,0 +1,138 @@ +#include +#include +#include "util.h" +#include "wave.h" + +#include "WProgram.h" +void setup(); +void ls(); +void loop(); +void playfile(char *name); +AF_Wave card; +File f; +Wavefile wave; // only one! +#define lampara 6 +#define N 8 + +char c, name[15]; + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + //Serial.println("Wave test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(lampara, OUTPUT); + + /*name[0]='A'; + name[1]='L'; + name[2]='A'; + name[3]='R'; + name[4]='M'; + name[5]='.'; + name[6]='W'; + name[7]='A'; + name[8]='V'; + name[9] = 0;*/ + + if (!card.init_card()) { + //putstring_nl("Card init. failed!"); + return; + } + if (!card.open_partition()) { + //putstring_nl("No partition!"); + return; + } + if (!card.open_filesys()) { + //putstring_nl("Couldn't open filesys"); + return; + } + + if (!card.open_rootdir()) { + //putstring_nl("Couldn't open dir"); + return; + } + + //putstring_nl("Files found:"); + ls(); + analogWrite(lampara, 0); + +} + +void ls() { + char name[13]; + int ret; + card.reset_dir(); + //putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; + +void loop() { + uint8_t i=0,flag=0; + + playfile("ALARM.WAV"); + //digitalWrite(lampara, LOW); + while (wave.isplaying) { + if(i==0) + delay(1000); + if((i>=0)&&(i<=20)) delay(38*N); + else if((i>=21)&&(i<=50)) delay(13*N); + else if((i>=51)&&(i<=180)) delay(3*N); + else if((i>=181)&&(i<=230)) delay(2*N); + else delay(N); + + if ((i<(255)&&(!flag))) + { + i=i+1; + } + else if ((i>=255)&&(!flag)) flag=1; + else if ((i>0)&&(flag)) + { + i=i-1; + } + else if ((i==0)&&(flag)) flag=0; + analogWrite(lampara, (int)(i/8) ); // al dividir disminuimos intensidad maxima + + } + + card.close_file(f); + analogWrite(lampara, 0); + +} + + +void playfile(char *name) { + f = card.open_file(name); + if (!f) { + //putstring_nl(" Couldn't open file"); return; + } + if (!wave.create(f)) { + //putstring_nl(" Not a valid WAV"); return; + } + // ok time to play! + wave.play(); +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/alarma_bisbe/applet/alarma_bisbe.cpp.o b/2009/alarma_bisbe/applet/alarma_bisbe.cpp.o new file mode 100644 index 0000000..bfe402b Binary files /dev/null and b/2009/alarma_bisbe/applet/alarma_bisbe.cpp.o differ diff --git a/2009/alarma_bisbe/applet/alarma_bisbe.elf b/2009/alarma_bisbe/applet/alarma_bisbe.elf new file mode 100644 index 0000000..cbefe3b Binary files /dev/null and b/2009/alarma_bisbe/applet/alarma_bisbe.elf differ diff --git a/2009/alarma_bisbe/applet/alarma_bisbe.hex b/2009/alarma_bisbe/applet/alarma_bisbe.hex new file mode 100644 index 0000000..4231865 --- /dev/null +++ b/2009/alarma_bisbe/applet/alarma_bisbe.hex @@ -0,0 +1,751 @@ +:100000000C949C000C94C4000C94C4000C94C40088 +:100010000C94C4000C94C4000C94C4000C94C40050 +:100020000C94C4000C94C4000C94C4000C94CA0C2E +:100030000C94FE100C94C4000C94C4000C94C400E6 +:100040000C94E8130C94C4000C9469160C94C4002E +:100050000C94C4000C94C4000C94C4000C94C40010 +:100060000C94C4000C94C400746F6F206D616E79A1 +:10007000206F70656E2066696C6573006261642034 +:10008000696E707574005941414B00594545454BA7 +:100090000053616D706C65207261746520746F6FC0 +:1000A0002068696768210000436F6D707265737323 +:1000B000696F6E206E6F7420737570706F727465E7 +:1000C00064006661696C656420746F2067657420E4 +:1000D0006E657720636C7573746572002021212131 +:1000E0002000203F3F3F2000000024272A00002559 +:1000F000282B000023262904040404040404040219 +:1001000002020202020303030303030102040810B4 +:100110002040800102040810200102040810200081 +:1001200000000700020100000304060000000000B8 +:10013000000000004811401211241FBECFEFD4E090 +:10014000DEBFCDBF11E0A0E0B1E0EEEAFEE202C00A +:1001500005900D92A232B107D9F714E0A2E2B1E006 +:1001600001C01D92A237B107E1F711E0C8E3D1E069 +:1001700004C02297FE010E945117C433D107C9F76A +:100180000E9439120C9455170C940000089508959C +:10019000CB010E94EA020895FC01848195810E94AE +:1001A0007C040895EF92FF920F931F93CF93DF93F8 +:1001B000EB018A0179010BC0B801C7010E94A616A4 +:1001C000009729F4CE010E947C0481E006C0B701AB +:1001D000CE010E948504882379F7DF91CF911F918A +:1001E0000F91FF90EF900895EF92FF920F931F935E +:1001F000DF93CF93CDB7DEB768970FB6F894DEBF25 +:100200000FBECDBF8C017E010894E11CF11C97014B +:100210000E94D200882319F420E030E005C0B70125 +:10022000C8010E945E089C01C90168960FB6F89447 +:10023000DEBF0FBECDBFCF91DF911F910F91FF9019 +:10024000EF900895FC01AB016481758182819381F7 +:100250000E94F4000895EF92FF920F931F93DF9393 +:10026000CF93CDB7DEB768970FB6F894DEBF0FBE59 +:10027000CDBF8B017E010894E11CF11CB701FC018C +:10028000848195810E948504882349F04CE050E0E8 +:10029000B701C8010E94BD16F801148681E0689676 +:1002A0000FB6F894DEBF0FBECDBFCF91DF911F9187 +:1002B0000F91FF90EF900895FC01848195810E9439 +:1002C00076040895EF92FF920F931F93DF93CF93DD +:1002D000CDB7DEB768970FB6F894DEBF0FBECDBFBF +:1002E0008C017E010894E11CF11CB701FC018281A4 +:1002F00093810E942805B701F801828193810E94B1 +:100300000F07F8019583848320E0892B09F021E011 +:10031000822F68960FB6F894DEBF0FBECDBFCF9187 +:10032000DF911F910F91FF90EF9008950F931F930E +:100330008C01FC01808191810E943905F801938331 +:10034000828320E0892B09F021E0822F1F910F91F9 +:1003500008950F93CF93DF93EC0100E020E030E0AD +:1003600040E050E06BEE7AE081E39AE00E94A5085D +:1003700099838883892B69F40FEF20E030E040E017 +:1003800050E06BEE7AE081E39AE00E94A508998341 +:10039000888320E088819981892B09F021E0822FD0 +:1003A000DF91CF910F9108950E94DB090895FC0120 +:1003B000009711F0118210820895DC018C91853E26 +:1003C00039F1882329F1F9012081318182819381DA +:1003D0002817390799F444835583668377831B96DE +:1003E0008C911B978F3011F080E205C08C91829523 +:1003F000880F807E805E808780E008951B968C91B8 +:100400008F3031F02F5F3F4F3183208381E008959B +:1004100081E008950F931F93CF93DF938C01FC012C +:100420008081853E09F48CC0882309F489C0E901E4 +:100430008C899D89AE89BF890097A105B10521F4FA +:100440004C8B5D8B6E8B7F8B209709F479C00115E7 +:10045000110509F475C0F8018081882309F470C082 +:1004600083858F3011F481E06CC0A801D80180E051 +:1004700090E0282F3C91303251F0FE01E80FF91F37 +:1004800030832F5F019611968830910591F788810E +:10049000853011F485EE8883F80180858032B1F0D3 +:1004A000FE01E20FF11D8EE28083822F8F5F2C5FB1 +:1004B000FA019085903249F0FE01E80FF11D90831A +:1004C0008F5F4F5F5F4F821799F7282FFE01E20F72 +:1004D000F11D1082F80183858D87938D80E0228D38 +:1004E00030E0822B932B9F878E87258D30E040E074 +:1004F00050E0542F432F322F2227868D90E0A0E02A +:10050000B0E0DC0199278827282B392B4A2B5B2B5D +:10051000848D90E0A0E0B0E0282B392B4A2B5B2B98 +:10052000878D90E0A0E0B0E0B82FAA279927882710 +:10053000282B392B4A2B5B2B288B398B4A8B5B8BD7 +:1005400080E0DF91CF911F910F910895DF93CF93BA +:1005500000D0CDB7DEB7DC010097A1F162307105A4 +:1005600088F1ED91FC911197660F771F80E090E084 +:1005700016962D913D914D915C911997620F731FC5 +:10058000841F951F0190F081E02D22E030E0AE0144 +:100590004F5F5F4F09958823A9F09A8180E02981F8 +:1005A00030E0282B392B2115310571F08FEF273FD3 +:1005B000380741F0C9014096079720F08FEF283F98 +:1005C000380710F020E030E0C9010F900F90CF9174 +:1005D000DF910895FC01009711F0118210820895B7 +:1005E0002F923F924F925F926F927F928F929F9243 +:1005F000AF92BF92CF92DF92EF92FF920F931F9331 +:10060000DF93CF93CDB7DEB72C970FB6F894DEBF4C +:100610000FBECDBF3C0178876F835A87498700970B +:1006200009F402C1672B09F4FFC0452B09F4FCC093 +:10063000DC015A96AD90BD90CD90DC905D975296BE +:100640002D913D914D915C915597E985FA85CF01AA +:10065000A0E0B0E08A0D9B1DAC1DBD1D2817390719 +:100660004A075B0740F4B9016A197B097A876987F1 +:10067000672B09F4DCC0D301ED91FC91119720891F +:1006800031893A8329835E966D917C915F977C874F +:100690006B87C901A0E0B0E08B839C83AD83BE83F0 +:1006A000672BE1F5F3010088F189E02DFC87EB87EA +:1006B000EF2B39F4A114B104C104D10409F4B7C07B +:1006C000B3C0A114B104C104D10441F18601750184 +:1006D0002B803C804D805E805094409430942094D8 +:1006E000211C311C411C511C10C06B857C85D30121 +:1006F0008D919C910E94A6029C878B87892B09F47F +:1007000093C0E20CF31C041D151D6B817C818D814F +:100710009E81E616F7060807190738F7C601B501E6 +:100720002B813C814D815E810E9412172B018984AF +:100730009A84D301ED91FC91A980BA80A418B508E0 +:100740008A149B0408F45401C080D180720100E037 +:1007500010E086899789A08DB18DE80EF91E0A1FD9 +:100760001B1FEB85FC853297BF0180E090E032963D +:10077000FC87EB872B813C814D815E810E94CC16EA +:10078000E60EF71E081F191FD601ED91FC91950189 +:100790004F815885C801B7010995882361F18A18EE +:1007A0009B08C501A0E0B0E0F301228D338D448D9C +:1007B000558D280F391F4A1F5B1FD3015A962D9361 +:1007C0003D934D935C935D97C501840D951DE98123 +:1007D000FA818E179F07B0F06B857C858D919C9177 +:1007E0000E94A6029C878B87892B51F4D3015F96C8 +:1007F0001C921E925E9749855A854819590919C05D +:10080000442455242B853C85F301378F268F811492 +:10081000910439F06F8178856A0D7B1D78876F832D +:1008200088CF49855A8505C04FEF5FEF02C040E091 +:1008300050E0CA012C960FB6F894DEBF0FBECDBFB4 +:10084000CF91DF911F910F91FF90EF90DF90CF90AC +:10085000BF90AF909F908F907F906F905F904F90E0 +:100860003F902F900895CF93DF93FC01EB01009709 +:10087000C9F161157105B1F1828D938DA48DB58D8E +:10088000413051F0413018F0423061F50AC0288102 +:1008900039814A815B8111C0288139814A815B811C +:1008A00008C0288139814A815B8182899389A48922 +:1008B000B589280F391F4A1F5B1F82899389A48934 +:1008C000B58982179307A407B50760F0228F338F8D +:1008D000448F558F178E168E288339834A835B8306 +:1008E00081E001C080E0DF91CF910895FC01009785 +:1008F00011F0118210820895FC01009711F480E03C +:100900000895138E128E81E008952F923F924F9298 +:100910005F926F927F928F929F92AF92BF92CF928F +:10092000DF92EF92FF920F931F93DF93CF93CDB798 +:10093000DEB7A9970FB6F894DEBF0FBECDBF3C015E +:100940002B01009709F44AC06115710509F446C0EE +:10095000FC0180899189892B09F040C0228D338D5B +:10096000A081B1811097B9F1ED91FC91119722808E +:100970003380AE014F5F5F4F89E0FA0111928A9593 +:10098000E9F73C832B8352966D917D918D919C91DB +:10099000559756960D911C915797061B170B6A0198 +:1009A0002DEDE22E21E0F22E20E230E0AE01465F96 +:1009B0005F4FF1010995882371F08D809E80AF8093 +:1009C000B88481149104A104B10429F021C0F2017A +:1009D00080818823A9F5F301138E128E80E0A996F9 +:1009E0000FB6F894DEBF0FBECDBFCF91DF911F9140 +:1009F0000F91FF90EF90DF90CF90BF90AF909F90BE +:100A00008F907F906F905F904F903F902F900895C0 +:100A100088E1F20111928A95E9F7098562019AE06D +:100A2000E92E92E0F92E10E020E230E0AE01465FC0 +:100A30005F4FC501B401F1010995882361F2C7CF69 +:100A4000F301828D938D0196938F828F81E0C7CFC2 +:100A5000FB01892B61F06115710549F088E1DB012B +:100A60001D928A95E9F780E1858781E0089580E00D +:100A700008952F923F924F925F926F927F928F9242 +:100A80009F92AF92BF92CF92DF92EF92FF920F931D +:100A90001F93DF93CF93CDB7DEB7E0970FB6F894EF +:100AA000DEBF0FBECDBF6C01009709F490C1ABC192 +:100AB000EAE7F1E08AE1DF011D928A95E9F7D09239 +:100AC0007B01C0927A01D60119962D913D914D91ED +:100AD0005C911C9719E0220F331F441F551F1A9574 +:100AE000D1F72AA33BA34CA35DA3CA01B901655F5B +:100AF0007F4F8F4F9F4FED91FC9129E130E0AE0188 +:100B00004F5F5F4F0995882309F484C1A9804A800B +:100B1000BB81BEA30C81FD801E813F815884698406 +:100B20007A849D8580E02C85E22FF0E0E82BF92B7C +:100B30008E883F88288DE98C309709F46BC1432D4E +:100B400050E060E070E0962F852F742F662769A72C +:100B50007AA78BA79CA7822F90E0A0E0B0E0BC0111 +:100B60005527442789A59AA5ABA5BCA5842B952B11 +:100B7000A62BB72B482D50E060E070E0842B952B1E +:100B8000A62BB72B89A79AA7ABA7BCA78E2D90E061 +:100B9000A0E0B0E0782F66275527442789A59AA5BD +:100BA000ABA5BCA5842B952BA62BB72B89A79AA701 +:100BB000ABA7BCA70097A105B10589F4972D80E0EC +:100BC000662D70E0682B792B6115710509F422C13F +:100BD000CB01A0E0B0E089A79AA7ABA7BCA7942D52 +:100BE00080E02A2C3324282A392A952D80E0A32F4F +:100BF000B0E0A82BB92BB8A7AFA39F2D80E0202F82 +:100C000030E0822B932B9C0140E050E02A8F3B8FF9 +:100C10004C8F5D8FBF0180E090E0212F30E040E0FD +:100C200050E00E94CC166E8F7F8F88A399A3E9A411 +:100C3000FAA40BA51CA54A8D5B8D6C8D7D8DE41AE5 +:100C4000F50A060B170B6E8D7F8D88A199A1E61A08 +:100C5000F70A080B190BC10101972FA138A5B5E0C0 +:100C6000220F331FBA95E1F7820F931FB1010E9443 +:100C7000EB1680E090E0E61AF70A080B190B7EA14C +:100C8000272F30E040E050E0C801B7010E94121762 +:100C900029013A01D301C201855F9F40A040B040C5 +:100CA0008050904FA040B04008F0B4C086E0D6011C +:100CB00018968C93ACE78A2EA1E09A2E88E1F40175 +:100CC00011928A95E9F75101CC24DD2469A57AA512 +:100CD0008BA59CA5A60195010E94CC1660937C0172 +:100CE00070937D0180937E0190937F01C601B501D1 +:100CF0002A8D3B8D4C8D5D8D0E94CC167B018C0125 +:100D00002AA13BA14CA15DA1E20EF31E041F151FF9 +:100D1000E0928001F092810100938201109383019F +:100D200042E050E060E070E0440E551E661E771E03 +:100D3000440C551C661C771C40928401509285011E +:100D40006092860170928701309289012092880119 +:100D50005EA1852F90E0BC01269EC001279E900DCC +:100D6000369E900D112490938B0180938A016E8D95 +:100D70007F8D88A199A1A60195010E94CC166E0DC8 +:100D80007F1D801F911F60938C0170938D01809354 +:100D90008E0190938F01AFA1B8A59D0140E050E076 +:100DA000E5E0220F331F441F551FEA95D1F7620F6C +:100DB000731F841F951F609390017093910180931E +:100DC00092019093930194012250304002C020E0A0 +:100DD00030E0C901E0960FB6F894DEBF0FBECDBF7C +:100DE000CF91DF911F910F91FF90EF90DF90CF9007 +:100DF000BF90AF909F908F907F906F905F904F903B +:100E00003F902F90089580917A0190917B01892BDA +:100E1000F1F64ECE10927B0110927A01D8CFCF938B +:100E2000DF939C01DB01009729F16115710511F138 +:100E30001D968C911D9784FF1DC080912201909179 +:100E40002301892B19F4E2E2F1E008C080913E0110 +:100E500090913F01892B71F4EEE3F1E0EF012296CE +:100E600088E10D9009928150E1F731832083138E40 +:100E7000128E02C0E0E0F0E0CF01DF91CF91089543 +:100E80002F923F924F925F926F927F928F929F929A +:100E9000AF92BF92CF92DF92EF92FF920F931F9388 +:100EA000DF93CF93CDB7DEB72A970FB6F894DEBFA6 +:100EB0000FBECDBF4C017C836B831A01009709F4F0 +:100EC000DEC0672B09F4DBC04115510509F4D7C01A +:100ED000DC015A96ED90FD900D911C915D9780E09C +:100EE0009EEFAFEFBFEFE822F9220A231B23D401C4 +:100EF0005A96ED92FD920D931C935D9752962D910B +:100F00003D914D915C9155972E153F054007510736 +:100F100008F4B8C0C101A0E0B0E08E0D9F1DA01F75 +:100F2000B11F281739074A075B0728F419012E1843 +:100F30003F0809F4A7C0D401ED91FC9111972089D5 +:100F400031893A8329835E968D919C915F979A8728 +:100F50008987290166247724892BD9F550960D902D +:100F6000BC91A02DBA87A987AB2B39F4E114F10409 +:100F70000105110509F486C082C0E114F1040105E0 +:100F8000110539F15701680188279927DC01841977 +:100F90009509A609B7098D839E83AF83B88714C0CE +:100FA00069857A85D4018D919C910E94A6029A87C9 +:100FB0008987892B09F463C08D819E81AF81B885B3 +:100FC000A80EB91ECA1EDB1EA414B504C604D7049D +:100FD00038F7510191E0291692E0390618F0A12C5A +:100FE00082E0B82EC801B701A30192010E94121736 +:100FF0007B0129813A81261B370B65012A153B05A8 +:1010000008F4690100E010E0D401ED91FC918689BB +:101010009789A08DB18DE80EF91E0A1F1B1FE98567 +:10102000FA853297BF0180E090E03296FA87E9872F +:10103000A30192010E94CC16E60EF71E081F191F8D +:1010400096014B815C81C801B7010E943D0C892B40 +:10105000C9F0960140E050E0F401828D938DA48D9B +:10106000B58D820F931FA41FB51F828F938FA48FFE +:10107000B58F29853A85378F268FA50105C04FEF9B +:101080005FEF02C040E050E0CA012A960FB6F89424 +:10109000DEBF0FBECDBFCF91DF911F910F91FF90AB +:1010A000EF90DF90CF90BF90AF909F908F907F9008 +:1010B0006F905F904F903F902F900895CF93DF9364 +:1010C0009C01FB01009731F06115710519F08585D0 +:1010D00084FF2CC060E08CE790E003C060E088E60D +:1010E00090E00E94A60C20E030E0C901DF91CF9192 +:1010F0000895CCE5D1E0DF0188E10D90099281509F +:10110000E1F730935B0120935A0110927401109221 +:1011100075011092760110927701868597859093DC +:101120007901809378012AE531E0DFCF80915A017F +:1011300090915B01892B91F6DCCFFC01009711F4B3 +:1011400080E00895108681E008958F929F92AF927B +:10115000BF92CF92DF92EF92FF920F93DF93CF93E4 +:10116000CDB7DEB760970FB6F894DEBF0FBECDBF28 +:101170007C016B015A014901009709F493C0611584 +:10118000710509F48FC004300CF08CC007FD1DC040 +:10119000602F772767FD7095E4E0660F771FEA956B +:1011A000E1F762547E4F882777FD8095982F20E1E4 +:1011B00030E0AE014F5F5F4FF7010995882309F4D6 +:1011C00071C08D81882309F46DC080919C018823B2 +:1011D00009F068C07CC08D8180939C012A8530E035 +:1011E00040E050E0542F432F322F22278B8590E090 +:1011F000A0E0B0E0DC0199278827282B392B4A2B67 +:101200005B2B898590E0A0E0B0E0282B392B4A2B9E +:101210005B2B8C8590E0A0E0B0E0B82FAA2799273F +:101220008827282B392B4A2B5B2B20939D01309349 +:101230009E0140939F015093A0012E8530E040E035 +:1012400050E0542F432F322F22278F8590E0A0E0CB +:10125000B0E0DC0199278827282B392B4A2B5B2B00 +:101260008D8590E0A0E0B0E0282B392B4A2B5B2B3A +:10127000888990E0A0E0B0E0B82FAA2799278827B6 +:10128000282B392B4A2B5B2B2093A1013093A201F1 +:101290004093A3015093A40103C08FEF80939C015E +:1012A0009F0102C020E030E0C90160960FB6F894BB +:1012B000DEBF0FBECDBFCF91DF910F91FF90EF90BA +:1012C000DF90CF90BF90AF909F908F900895E4E90A +:1012D000F1E081E1DF011D928A95E9F7F092950135 +:1012E000E0929401D0929701C0929601B092990138 +:1012F000A092980190929B0180929A0107FF6BCF78 +:10130000CCCF81E0089581E00895282F8FEF8EBD26 +:101310000DB407FEFDCF8DB58F778DBD8EB5822FB5 +:1013200080648EBD0DB407FEFDCF8DB58F778DBD6A +:10133000872F9927AA27BB278EBD0DB407FEFDCFA7 +:101340008DB58F778DBDCB01AA27BB278EBD0DB480 +:1013500007FEFDCF8DB58F778DBDBB27A72F962FAD +:10136000852F8EBD0DB407FEFDCF8DB58F778DBD5A +:101370004EBD0DB407FEFDCF8DB58F778DBD2223F9 +:1013800011F08FEF01C085E98EBD0DB407FEFDCFD2 +:101390008DB58F778DBD90E02FEF2EBD0DB407FE7C +:1013A000FDCF8DB58F778DBD8EB58F3F19F49F5FC3 +:1013B0009A3099F70895CF93DF93239A259A229A2A +:1013C00024982A9A83E58CBD8DB58E7F8DBD20E053 +:1013D00030E09FEF9EBD0DB407FEFDCF8DB58F773A +:1013E0008DBD8EB52F5F3F4F2A30310599F72A9872 +:1013F000C0E0D0E040E050E060E070E080E00E94BB +:101400008509813031F081E0CF3FD807E1F02196A6 +:10141000F1CFC0E0D0E040E050E060E070E081E07B +:101420000E94850980FF06C08FE7CF3FD80759F09B +:101430002196F1CF40E052E060E070E080E10E9450 +:101440008509882319F02A9A80E008C02A9A8CB569 +:101450008C7F8CBD8DB581608DBD81E0DF91CF919A +:1014600008958F929F92AF92BF92DF92EF92FF9278 +:101470000F931F93CF93DF937B018C015A01E901F6 +:10148000DD24DA94812C42E0942E5EC02A98B801C3 +:10149000A70140705E7F81E10E948509882319F0D1 +:1014A0002A9A80E055C0DEBC0DB407FEFDCF8DB595 +:1014B0008F778DBD8EB58E3FB1F7A7015170B40106 +:1014C000641B750BC617D70708F4BE01FB01E40FB8 +:1014D000F51F20E030E0DEBC0DB407FEFDCF8DB57A +:1014E0008F778DBD8EB52417350730F02E173F0747 +:1014F00018F4D5018D935D012F5F3F4FB2E020308E +:101500003B0749F7DEBC0DB407FEFDCF8DB58F77E5 +:101510008DBD8EB5DEBC0DB407FEFDCF8DB58F77CA +:101520008DBD8EB52A9ADEBC0DB407FEFDCF8DB5FC +:101530008F778DBD8EB5C61BD70BCB01A0E0B0E079 +:10154000E80EF91E0A1F1B1F209709F09FCF81E0AC +:10155000DF91CF911F910F91FF90EF90DF90BF909F +:10156000AF909F908F9008952091000130910101DC +:101570009FEF0AC09EBD0DB407FEFDCF8DB58F77DE +:101580008DBD8EB52F5F3F4F82E02030380790F33E +:101590008FEF8EBD0DB407FEFDCF8DB58F778DBD5E +:1015A0008EB58FEF8EBD0DB407FEFDCF8DB58F7755 +:1015B0008DBD8EB52A9A8FEF8EBD0DB407FEFDCF7F +:1015C0008DB58F778DBD8EB58FEF9FEF9093010115 +:1015D0008093000108952F923F924F925F926F92F5 +:1015E0007F928F929F92AF92BF92CF92DF92EF92B3 +:1015F000FF920F931F93DF93CF93CDB7DEB72C9756 +:101600000FB6F894DEBF0FBECDBF4B015C011A01CF +:101610003C872B872801FE82ED82D886CF82411538 +:10162000510509F4DAC02115310509F4D6C00217B5 +:10163000130708F4D2C0EF2809F4CFC02A983095D8 +:1016400021953F4F3A87298784011170D501C40144 +:1016500080709E7F89839A83AB83BC83AC01BD017C +:1016600081E10E948509882311F02A9AB6C09FEF74 +:101670009EBD0DB407FEFDCF8DB58F778DBD8EB5A8 +:101680008E3FA9F720E030E00BC0AFEFAEBD0DB448 +:1016900007FEFDCF8DB58F778DBD8EB52F5F3F4F88 +:1016A0002017310790F3E12C52E0F52EE01AF10AF1 +:1016B0003701EB85FC856E1A7F0A6201CE1ADF0ABC +:1016C00000E012E00E191F092B853C85E216F30697 +:1016D00048F14216530630F1F10120E030E00CC031 +:1016E0008FEF8EBD0DB407FEFDCF8DB58F778DBD0D +:1016F0008EB581932F5F3F4FAB85BC852A173B0783 +:1017000078F3A80160E070E0480D591D6A1D7B1D4B +:101710002F813885C101ED81FE810995882321F44F +:1017200091E026C090E024C02B853C85E21AF30AA4 +:10173000421A530A61147104A9F389859A85680EC7 +:10174000791EC80ED91E020F131FC9018C0D9D1DD5 +:10175000892B09F0B9CFE6CFAFEFAEBD0DB407FED0 +:10176000FDCF8DB58F778DBD8EB50894E108F1085A +:10177000E114F10489F7BFEFBEBD0DB407FEFDCF44 +:101780008DB58F778DBD8EB5EFEFEEBD0DB407FE35 +:10179000FDCF8DB58F778DBD8EB52B853C854216DF +:1017A000530678F0992369F489809A80AB80BC80D5 +:1017B00080E092E0A0E0B0E0880E991EAA1EBB1E59 +:1017C00043CF2A9A8FEF8EBD0DB407FEFDCF8DB5A6 +:1017D0008F778DBD8EB581E001C080E02C960FB66D +:1017E000F894DEBF0FBECDBFCF91DF911F910F9157 +:1017F000FF90EF90DF90CF90BF90AF909F908F9031 +:101800007F906F905F904F903F902F900895FC01D4 +:1018100020910001309101014FEF2F3F340731F447 +:1018200060E086E890E00E94A60CFFCFCB01820F1B +:10183000931F8150924020F060E072E0621B730BB6 +:1018400020E030E04FEF14C04EBD0DB407FEFDCFD9 +:101850008DB58F778DBD8EB581938091000190916C +:101860000101019690930101809300012F5F3F4F8A +:101870002617370748F3CB010895CF92DF92EF92F6 +:10188000FF920F931F93CF93DF937B018C016A012B +:1018900080910001909101018F5F9F4F31F060E0D6 +:1018A0008BE890E00E94A60CFFCFE90182E0213096 +:1018B000380710F0C0E0D2E02A9880E09EEFAFEF4A +:1018C000BFEFE822F9220A231B23B801A70181E117 +:1018D0000E948509882321F02A9AC0E0D0E02CC01C +:1018E0009FEF9EBD0DB407FEFDCF8DB58F778DBDEB +:1018F0008EB58E3FB1F710920101109200012FEFCB +:1019000014C02EBD0DB407FEFDCF8DB58F778DBDF4 +:101910008EB5D6018D936D018091000190910101EA +:1019200001969093010180930001809100019091B4 +:1019300001018C179D0728F3CE01DF91CF911F91F4 +:101940000F91FF90EF90DF90CF9008950F931F932A +:10195000CF93DF93EC01062F10E005C084EE93E0F7 +:101960000E9459121F5FFE01E10FF11D6491662371 +:10197000A9F7002351F06AE084EE93E00E9461121F +:101980006DE084EE93E00E946112DF91CF911F9190 +:101990000F9108951F920F920FB60F9211242F935B +:1019A0003F934F938F939F93AF93BF93EF93FF9387 +:1019B000E091A501F091A601309709F4A8C020910B +:1019C000AB033091AC038091AD039091AE03281727 +:1019D000390709F047C08091B0038823B9F180919D +:1019E000A7039091A80327EA32E041E0873A9407E1 +:1019F00049F43093A8032093A7039093AA038093FC +:101A0000A9030AC087EA91E09093A8038093A703F3 +:101A10003093AA032093A9038091A7039091A80370 +:101A20009093AC038093AB0380509F4F9093AE0391 +:101A30008093AD031092B0038091AF03882391F49B +:101A400080916F00846080936F000CC081899289BF +:101A5000A389B4890196A11DB11D818B928BA38BA3 +:101A6000B48B55C05A985C985B9A5B985C9A5B9A69 +:101A70005B985B9A5B985B9A5B988781803119F5DC +:101A8000E091AB03F091AC038181805890E087FF37 +:101A900002C05C9A01C05C985B9A5B989F5F98302B +:101AA00011F0880FF4CF908180E097FF02C05C9A1C +:101AB00001C05C985B9A5B988F5F843011F0990F3E +:101AC000F4CF32961DC08830F9F4E091AB03F09169 +:101AD000AC03908180E097FF02C05C9A01C05C98E3 +:101AE0005B9A5B988F5F883011F0990FF4CF5B9A07 +:101AF0005B985B9A5B985B9A5B985B9A5B98319674 +:101B0000F093AC03E093AB035A9A5D985D9AFF9112 +:101B1000EF91BF91AF919F918F914F913F912F91F5 +:101B20000F900FBE0F901F90189508950895DC0137 +:101B30005696ED91FC9157976289738984899589AE +:101B400008959A01AB0160E074E284EF90E00E9496 +:101B5000121730938900209388000895CF93DF9364 +:101B6000EC0180916F008D7F80936F008D898823B9 +:101B700019F00E94B40A1D8AE091A501F091A60116 +:101B8000108A1092A6011092A501DF91CF910895BD +:101B90000F931F93DF93CF9300D000D0CDB7DEB764 +:101BA0008C01407049835A836B837C83DC0150969F +:101BB0008C91882351F0F894F8018589882329F0C5 +:101BC0000E94B40AD80155961C9240E0BE016F5F96 +:101BD0007F4FF801868997890E943304D801569671 +:101BE000ED91FC91579782899389A489B5892981C0 +:101BF0003A814B815C81821B930BA40BB50BF801DE +:101C000080879187A287B38778940F900F900F9069 +:101C10000F90CF91DF911F910F910895CF92DF9296 +:101C2000EF92FF920F931F93DF93CF93CDB7DEB761 +:101C300028970FB6F894DEBF0FBECDBF8C016B01A5 +:101C400044E050E07E010894E11CF11CB701C6019C +:101C50000E94F002049709F0F0C044E050E062E016 +:101C600071E0C7010E94AF16009709F0E6C0F5C009 +:101C700044E050E067E071E0CE0105960E94AF16A7 +:101C8000009709F0DAC0F2C044E050E06CE071E087 +:101C9000C7010E94AF16009709F0CFC0F0C0542FC3 +:101CA000432F322F22278081280F311D411D511DC6 +:101CB0003197EC17FD0799F7F80124873587468798 +:101CC0005787203131054105510509F0B6C048E07C +:101CD00050E0BE016F5F7F4FC6010E94F00208977F +:101CE00009F0ABC08A8190E0A0E0B0E0BA2FA92F44 +:101CF000982F88272981820F911DA11DB11D019761 +:101D0000A105B10521F061E088EA90E084C08C81F2 +:101D100090E0A0E0B0E02227382F492F5A2F8B8186 +:101D2000280F311D411D511D23303105410551053D +:101D300008F083C0F8012083FE013896BE016C5F75 +:101D40007F4F542F432F322F22278081280F311DA0 +:101D5000411D511D3197E617F70799F7F8012183C7 +:101D600032834383548348E050E0BE016F5F7F4F6E +:101D7000C6010E94F002089709F05FC08E8190E0D2 +:101D8000A0E0B0E0BA2FA92F982F88272D81820FCD +:101D9000911DA11DB11DF80196838583888590E072 +:101DA000A0E0B0E02227382F492F5A2F8F81280F2B +:101DB000311D411D511D213131054105510508F0ED +:101DC0003CC0278381819281A381B4818332F6E56F +:101DD0009F07F0E0AF07F0E0BF0718F0293040F0B0 +:101DE0000CC081589E43A040B04050F0293040F0D4 +:101DF000FF24F8018081823020F0FF24F39401C099 +:101E0000FF2461E087EA90E00E94A60CFF2031F0F9 +:101E100061E081E990E00E94A60C0FC0F8011086F5 +:101E2000118612861386D78AC68A118A128A138A65 +:101E3000148A108A158A81E001C080E028960FB6C6 +:101E4000F894DEBF0FBECDBFCF91DF911F910F91F0 +:101E5000FF90EF90DF90CF90089548E050E0B701F9 +:101E6000C6010E94F002089741F702CF44E050E01B +:101E7000B701C6010E94F0020497F9F605CFF801F8 +:101E8000148615861686178644E050E0B701C60111 +:101E90000E94F002049789F6F8012485358546856D +:101EA0005785FE013496FBCEAF92BF92CF92DF9260 +:101EB000EF92FF920F931F93DF93CF9300D000D048 +:101EC0000F92CDB7DEB76C015B01F42EE52EFC015D +:101ED00080859185A285B3850097A105B105D1F5CF +:101EE00044E050E08E010F5F1F4FB801868997894B +:101EF0000E94F002049709F0F5C01D8244E050E012 +:101F0000B801D60156968D919C9157970E94F00288 +:101F1000049709F0E7C0F601108611861286138631 +:101F2000FE01349620E030E040E050E0542F432F93 +:101F3000322F22278081280F311D411D511D3197DD +:101F4000EC17FD0799F7D60118962D933D934D9305 +:101F50005C931B978F2D9E2D9C017901B2E021305F +:101F60003B0718F0E12C72E0F72EF6012085318551 +:101F700042855385C701A0E0B0E0281739074A071A +:101F80005B0708F47901D6015696ED91FC915797BD +:101F9000828D938DA48DB58D9170A070B0700097D7 +:101FA000A105B105D1F4D60155968C918823A9F4E9 +:101FB000A701B501CF010E9440078C018E159F0536 +:101FC00041F060E082EE90E00E94A60C0E94B40A0C +:101FD0008BC081E0F601858B73C0D60155968C913C +:101FE000882309F463C0B701C5010E94070C5C0196 +:101FF0008E159F0539F060E08CED90E00E94A60CF4 +:102000000E94B40AD6015696ED91FC915797C501EE +:10201000A0E0B0E0228D338D448D558D820F931F4B +:10202000A41FB51F828F938FA48FB58F9170A0705E +:10203000B0700097A105B10509F041C00E94B40A33 +:10204000F601158A06891789D801ED90FC90119741 +:10205000F7012089318940E050E05A966D917D91D9 +:102060008D919C915D970E941217611571058105F4 +:10207000910529F5D8015E966D917C915F97C70116 +:102080000E94A602F801978F868F892BC1F4D60192 +:102090005696ED91FC915797178E168E61E082EC63 +:1020A00090E00E94A60C0FEF1FEF1EC0A701B50124 +:1020B000CF010E94F0028E159F05A1F401C07501A9 +:1020C000970140E050E0F60180859185A285B385B7 +:1020D000821B930BA40BB50B80879187A287B387D4 +:1020E000870102C000E010E0C8010F900F900F9030 +:1020F0000F900F90CF91DF911F910F91FF90EF9074 +:10210000DF90CF90BF90AF900895CF92DF92EF9283 +:10211000FF920F931F93CF93DF93EC01C980DA8076 +:10212000EB80FC809093A6018093A50107EA11E063 +:102130001093AC030093AB0342E050E0B8010E945F +:10214000540F892B09F451C08091AB039091AC03DB +:1021500002969093AE038093AD03EE89FF89828D42 +:1021600040E051E0481B5109B8016E5F7F4F8091FC +:10217000A5019091A6010E94540F9C010097A9F11E +:102180008091AD039091AE03820F931F9093AE03A5 +:102190008093AD0340E051E067EA72E08091A501D1 +:1021A0009091A6010E94540F81E08093B003888B28 +:1021B0001092800089E08093810060E074E284EFF7 +:1021C00090E0A70196010E94121730938900209396 +:1021D000880081E090E090938B0080938A0080914A +:1021E0006F00826080936F007894DF91CF911F9190 +:1021F0000F91FF90EF90DF90CF9008951F920F9274 +:102200000FB60F9211242F933F934F935F936F93C9 +:102210007F938F939F93AF93BF93EF93FF9380919F +:102220006F008B7F80936F008091B0038823F9F457 +:1022300081E08093AF0378946091A9037091AA0321 +:1022400040E051E08091A5019091A6010E94540FB9 +:10225000892B31F48091A5019091A6010E94AE0DC9 +:10226000F8941092AF0381E08093B0037894FF91CB +:10227000EF91BF91AF919F918F917F916F915F91FE +:102280004F913F912F910F900FBE0F901F90189577 +:1022900083EB93E00E94C7008BEB93E00E94960DC6 +:1022A00008950F931F93BC0183EB93E00E942201DA +:1022B0009093BA038093B9030BEB13E0BC01C80100 +:1022C0000E940E0EC8010E9485101F910F91089563 +:1022D0000F931F9381E191E00E94511110E000E003 +:1022E00048C0112339F468EE73E080E090E00E946A +:1022F000531402C0153128F460E371E080E090E0EF +:102300001FC0812F85518E3128F468E670E080E08F +:1023100090E016C0812F8353823828F468E170E082 +:1023200080E090E00DC0812F855B823328F460E16E +:1023300070E080E090E004C068E070E080E090E051 +:102340000E9453141F3F21F0002331F41F5F09C086 +:10235000002331F401E005C0112311F400E001C0B5 +:102360001150612F66956695669570E086E00E9433 +:10237000E6148091CB03882309F0B3CF6091B903B1 +:102380007091BA0383EB93E00E94C80060E070E0B4 +:1023900086E00E94E6141F910F9108950F931F93FA +:1023A000DF93CF93CDB7DEB72D970FB6F894DEBF8E +:1023B0000FBECDBF83EB93E00E94CC008E010F5F78 +:1023C0001F4FB80183EB93E00E942B01882379F41F +:1023D00083EB93E00E94CC002D960FB6F894DEBFFD +:1023E0000FBECDBFCF91DF911F910F910895B8011E +:1023F00084EE93E00E94A812E4CF40E855E260E04A +:1024000070E084EE93E00E94541261E082E00E944A +:102410003A1561E083E00E943A1561E084E00E9491 +:102420003A1561E085E00E943A1561E086E00E947D +:102430003A1583EB93E00E94D4018823C9F083EB23 +:1024400093E00E94A901882399F083EB93E00E9416 +:102450009601882369F083EB93E00E946201882350 +:1024600039F00E94CE1160E070E086E00E94E61430 +:1024700008950E948B140E94FD110E946811FDCFE7 +:102480008FE191E09093E5038093E4030895862F14 +:102490000E94281608950E94601608950E94411611 +:1024A00008950E9430160895CB01BA010E94EF15DD +:1024B0000895DC01ED91FC910190F081E02D0995EA +:1024C0000895DC01ED91FC910190F081E02D0995DA +:1024D00008950F931F93CF93DF938C01EB0109C0F5 +:1024E0002196D801ED91FC910190F081E02DC80179 +:1024F000099568816623A1F7DF91CF911F910F9114 +:1025000008950F931F938C01DC01ED91FC910190D4 +:10251000F081E02D6DE00995D801ED91FC910190DD +:10252000F081E02D6AE0C80109951F910F9108958F +:102530000F931F938C01DC01ED91FC910190F081D0 +:10254000E02D0995C8010E9481121F910F910895F5 +:102550000F931F938C010E946912C8010E9481127F +:102560001F910F9108950F931F938C01DC01ED9142 +:10257000FC910190F081E02D0995C8010E94811223 +:102580001F910F9108952F923F924F925F926F92F9 +:102590007F928F929F92AF92BF92CF92DF92EF92F3 +:1025A000FF920F931F93DF93CF93CDB7DEB7A09722 +:1025B0000FB6F894DEBF0FBECDBF1C016A017B01D0 +:1025C000411551056105710549F4DC01ED91FC915E +:1025D0000190F081E02D60E3099554C0882499248E +:1025E0005401422E55246624772401E010E00C0F9C +:1025F0001D1F080D191DC701B601A30192010E94FC +:102600001217F80160830894811C911CA11CB11C55 +:10261000C701B601A30192010E941217C901DA0194 +:102620006C017D01C114D104E104F104F1F681E0F3 +:10263000E82EF12CEC0EFD1EE80CF91C3E0108946E +:10264000611C711CD501C4010197A109B1096C017C +:10265000C818D90814C0F601EE0DFF1D60816A305C +:1026600010F4605D01C0695CD101ED91FC910190B5 +:10267000F081E02DC10109950894E108F1086E147C +:102680007F0449F7A0960FB6F894DEBF0FBECDBF0A +:10269000CF91DF911F910F91FF90EF90DF90CF903E +:1026A000BF90AF909F908F907F906F905F904F9072 +:1026B0003F902F9008952AE00E94C31208950F932F +:1026C0001F938C010E945B13C8010E9481121F910D +:1026D0000F910895AB0160E070E00E945B130895D4 +:1026E0000F931F938C01AB0160E070E00E945B13BD +:1026F000C8010E9481121F910F910895EF92FF92DD +:102700000F931F93CF93DF93EC017A018B0177FF37 +:102710000FC0E881F9810190F081E02D6DE209950B +:1027200010950095F094E094E11CF11C011D111D21 +:102730002AE0B801A701CE010E94C312DF91CF9118 +:102740001F910F91FF90EF9008950F931F938C01AD +:102750000E947E13C8010E9481121F910F9108955B +:10276000AB01662757FD6095762F0E947E13089572 +:102770000F931F938C01AB01662757FD6095762F51 +:102780000E947E13C8010E9481121F910F9108952B +:10279000DC012115310541F4ED91FC910190F081AE +:1027A000E02D642F099508952A30310519F40E940F +:1027B0007E1308950E94C31208950F931F938C01F6 +:1027C0000E94C813C8010E9481121F910F910895A1 +:1027D0001F920F920FB60F9211242F938F939F93F6 +:1027E000AF93BF938091E6039091E703A091E80334 +:1027F000B091E9038050904CAF4FBF4F8093E603F8 +:102800009093E703A093E803B093E90327C0809176 +:10281000E6039091E703A091E803B091E9038058A3 +:102820009E43A040B0408093E6039093E703A093BB +:10283000E803B093E9038091EA039091EB03A09140 +:10284000EC03B091ED030196A11DB11D8093EA0345 +:102850009093EB03A093EC03B093ED038091E60318 +:102860009091E703A091E803B091E90381589E435A +:10287000A040B04060F6BF91AF919F918F912F9192 +:102880000F900FBE0F901F9018958FB7F89420915E +:10289000EA033091EB034091EC035091ED038FBFBD +:1028A000B901CA010895EF92FF920F931F937B0124 +:1028B0008C018FB7F8944091EA035091EB0360913B +:1028C000EC037091ED038FBF2FB7F8948091EA036A +:1028D0009091EB03A091EC03B091ED032FBF841B0B +:1028E000950BA60BB70B8E159F05A007B10760F3DC +:1028F0001F910F91FF90EF900895019759F0FC01FF +:10290000EE0FFF1FEE0FFF1F32978FB7F89431972E +:10291000F1F78FBF0895789484B5826084BD84B543 +:10292000816084BD85B5826085BD85B5816085BDCA +:10293000EEE6F0E0808181608083E1E8F0E0808174 +:1029400082608083808181608083E0E8F0E0808124 +:1029500081608083E1EBF0E0808184608083E0EB44 +:10296000F0E0808181608083EAE7F0E0808184602C +:102970008083808182608083808181608083808188 +:10298000806880831092C10008958093210108958A +:102990008F70909121019295990F990F907C982BAF +:1029A00090937C0080917A00806480937A0080917B +:1029B0007A0086FDFCCF2091780040917900942F19 +:1029C00080E030E0282B392BC90108951F93CF9365 +:1029D000DF93182FEB0161E00E943A15E12FF0E040 +:1029E000E15EFE4F8491833051F4809180008068D5 +:1029F00080938000D0938900C093880037C08430D2 +:102A000051F480918000806280938000D0938B008D +:102A1000C0938A002BC0813029F484B5806884BDBE +:102A2000C7BD24C0823029F484B5806284BDC8BD8E +:102A30001DC0863041F48091B00080688093B00062 +:102A4000C093B30013C0873041F48091B00080621E +:102A50008093B000C093B40009C0C038D10514F40D +:102A600060E001C061E0812F0E945815DF91CF9195 +:102A70001F910895282F30E0C901855F9E4FFC010A +:102A8000949129503F4FF9018491882381F0E82FD8 +:102A9000F0E0E851FF4FE491F0E0662329F48081F3 +:102AA00090958923808308958081892B8083089560 +:102AB000482F50E0CA01815E9E4FFC012491CA015B +:102AC000855F9E4FFC01949149505F4FFA0134910C +:102AD0003323C1F1222331F1233021F4809180008E +:102AE0008F7705C0243031F4809180008F7D8093F2 +:102AF000800018C0213019F484B58F7704C02230CB +:102B000021F484B58F7D84BD0DC0263021F48091E1 +:102B1000B0008F7705C0273029F48091B0008F7DF9 +:102B20008093B000E32FF0E0E351FF4FE491F0E039 +:102B3000662329F48081909589238083089580817C +:102B4000892B80830895482F50E0CA01815E9E4FF3 +:102B5000FC012491CA01855F9E4FFC01949149506C +:102B60005F4FFA013491332319F420E030E035C08F +:102B7000222331F1233021F4809180008F7705C02A +:102B8000243031F4809180008F7D8093800018C0C4 +:102B9000213019F484B58F7704C0223021F484B534 +:102BA0008F7D84BD0DC0263021F48091B0008F77D9 +:102BB00005C0273029F48091B0008F7D8093B0004C +:102BC000E32FF0E0EE50FF4FE491F0E0808120E051 +:102BD00030E0892311F021E030E0C9010895EF923F +:102BE000FF920F931F937B018C0122E030E040E0C5 +:102BF00050E00E943417205C3D4B404F5F4FCA01AC +:102C0000B901A80197010E943417C901DA0101979F +:102C1000A109B109292F3A2F4B2F552747FD5A9566 +:102C20000196A11DB11D2093C50081508093C40061 +:102C3000E1ECF0E080818061808380818860808326 +:102C40008081806880831F910F91FF90EF9008959D +:102C5000982F8091C00085FFFCCF9093C600089507 +:102C60008091EE039091EF0380589F4F2091F003E5 +:102C70003091F103821B930B60E870E00E94FF1615 +:102C800008954091F0035091F1038091EE039091EB +:102C9000EF038417950719F42FEF3FEF0FC0FA01E8 +:102CA000EE50FC4F2081CA01019660E870E00E945E +:102CB000FF169093F1038093F00330E0C90108956B +:102CC0008091F0039091F1039093EF038093EE03D2 +:102CD00008951F920F920FB60F9211242F933F93D6 +:102CE0004F935F936F937F938F939F93AF93BF9314 +:102CF000EF93FF934091C600E091EE03F091EF0354 +:102D0000CF01019660E870E00E94FF169C0180915F +:102D1000F0039091F1032817390739F0EE50FC4F7A +:102D200040833093EF032093EE03FF91EF91BF9127 +:102D3000AF919F918F917F916F915F914F913F9153 +:102D40002F910F900FBE0F901F901895FB01DC0183 +:102D50008D91019080190110D9F3990B0895FB0111 +:102D6000DC014150504030F08D910190801919F4F0 +:102D70000020B9F7881B990B0895FB01DC01415035 +:102D8000504048F001900D920020C9F701C01D92FB +:102D900041505040E0F70895629FD001739FF001C9 +:102DA000829FE00DF11D649FE00DF11D929FF00DDB +:102DB000839FF00D749FF00D659FF00D9927729F12 +:102DC000B00DE11DF91F639FB00DE11DF91FBD019D +:102DD000CF0111240895AA1BBB1B51E107C0AA1FF4 +:102DE000BB1FA617B70710F0A61BB70B881F991FAC +:102DF0005A95A9F780959095BC01CD01089597FB50 +:102E0000092E07260AD077FD04D0E5DF06D0002082 +:102E10001AF4709561957F4F0895F6F79095819516 +:102E20009F4F0895A1E21A2EAA1BBB1BFD010DC0E6 +:102E3000AA1FBB1FEE1FFF1FA217B307E407F5076A +:102E400020F0A21BB30BE40BF50B661F771F881F46 +:102E5000991F1A9469F760957095809590959B01DC +:102E6000AC01BD01CF01089597FB092E05260ED0B8 +:102E700057FD04D0D7DF0AD0001C38F45095409598 +:102E8000309521953F4F4F4F5F4F0895F6F790953E +:102E90008095709561957F4F8F4F9F4F0895EE0FEE +:0E2EA000FF1F0590F491E02D0994F894FFCFE8 +:102EAE00FFFF52494646005741564500666D742055 +:102EBE0000414C41524D2E57415600000000004734 +:022ECE001201EF +:00000001FF diff --git a/2009/alarma_bisbe/applet/alarma_bisbe.rom b/2009/alarma_bisbe/applet/alarma_bisbe.rom new file mode 100644 index 0000000..137b625 --- /dev/null +++ b/2009/alarma_bisbe/applet/alarma_bisbe.rom @@ -0,0 +1,752 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4D697320646F63FD +S11300000C949C000C94C4000C94C4000C94C40084 +S11300100C94C4000C94C4000C94C4000C94C4004C +S11300200C94C4000C94C4000C94C4000C94CA0C2A +S11300300C94FE100C94C4000C94C4000C94C400E2 +S11300400C94E8130C94C4000C9469160C94C4002A +S11300500C94C4000C94C4000C94C4000C94C4000C +S11300600C94C4000C94C400746F6F206D616E799D +S1130070206F70656E2066696C6573006261642030 +S1130080696E707574005941414B00594545454BA3 +S11300900053616D706C65207261746520746F6FBC +S11300A02068696768210000436F6D70726573731F +S11300B0696F6E206E6F7420737570706F727465E3 +S11300C064006661696C656420746F2067657420E0 +S11300D06E657720636C757374657200202121212D +S11300E02000203F3F3F2000000024272A00002555 +S11300F0282B000023262904040404040404040215 +S113010002020202020303030303030102040810B0 +S1130110204080010204081020010204081020007D +S113012000000700020100000304060000000000B4 +S1130130000000004811401211241FBECFEFD4E08C +S1130140DEBFCDBF11E0A0E0B1E0EEEAFEE202C006 +S113015005900D92A232B107D9F714E0A2E2B1E002 +S113016001C01D92A237B107E1F711E0C8E3D1E065 +S113017004C02297FE010E945117C433D107C9F766 +S11301800E9439120C9455170C9400000895089598 +S1130190CB010E94EA020895FC01848195810E94AA +S11301A07C040895EF92FF920F931F93CF93DF93F4 +S11301B0EB018A0179010BC0B801C7010E94A616A0 +S11301C0009729F4CE010E947C0481E006C0B701A7 +S11301D0CE010E948504882379F7DF91CF911F9186 +S11301E00F91FF90EF900895EF92FF920F931F935A +S11301F0DF93CF93CDB7DEB768970FB6F894DEBF21 +S11302000FBECDBF8C017E010894E11CF11C970147 +S11302100E94D200882319F420E030E005C0B70121 +S1130220C8010E945E089C01C90168960FB6F89443 +S1130230DEBF0FBECDBFCF91DF911F910F91FF9015 +S1130240EF900895FC01AB016481758182819381F3 +S11302500E94F4000895EF92FF920F931F93DF938F +S1130260CF93CDB7DEB768970FB6F894DEBF0FBE55 +S1130270CDBF8B017E010894E11CF11CB701FC0188 +S1130280848195810E948504882349F04CE050E0E4 +S1130290B701C8010E94BD16F801148681E0689672 +S11302A00FB6F894DEBF0FBECDBFCF91DF911F9183 +S11302B00F91FF90EF900895FC01848195810E9435 +S11302C076040895EF92FF920F931F93DF93CF93D9 +S11302D0CDB7DEB768970FB6F894DEBF0FBECDBFBB +S11302E08C017E010894E11CF11CB701FC018281A0 +S11302F093810E942805B701F801828193810E94AD +S11303000F07F8019583848320E0892B09F021E00D +S1130310822F68960FB6F894DEBF0FBECDBFCF9183 +S1130320DF911F910F91FF90EF9008950F931F930A +S11303308C01FC01808191810E943905F80193832D +S1130340828320E0892B09F021E0822F1F910F91F5 +S113035008950F93CF93DF93EC0100E020E030E0A9 +S113036040E050E06BEE7AE081E39AE00E94A50859 +S113037099838883892B69F40FEF20E030E040E013 +S113038050E06BEE7AE081E39AE00E94A50899833D +S1130390888320E088819981892B09F021E0822FCC +S11303A0DF91CF910F9108950E94DB090895FC011C +S11303B0009711F0118210820895DC018C91853E22 +S11303C039F1882329F1F9012081318182819381D6 +S11303D02817390799F444835583668377831B96DA +S11303E08C911B978F3011F080E205C08C9182951F +S11303F0880F807E805E808780E008951B968C91B4 +S11304008F3031F02F5F3F4F3183208381E0089597 +S113041081E008950F931F93CF93DF938C01FC0128 +S11304208081853E09F48CC0882309F489C0E901E0 +S11304308C899D89AE89BF890097A105B10521F4F6 +S11304404C8B5D8B6E8B7F8B209709F479C00115E3 +S1130450110509F475C0F8018081882309F470C07E +S113046083858F3011F481E06CC0A801D80180E04D +S113047090E0282F3C91303251F0FE01E80FF91F33 +S113048030832F5F019611968830910591F788810A +S1130490853011F485EE8883F80180858032B1F0CF +S11304A0FE01E20FF11D8EE28083822F8F5F2C5FAD +S11304B0FA019085903249F0FE01E80FF11D908316 +S11304C08F5F4F5F5F4F821799F7282FFE01E20F6E +S11304D0F11D1082F80183858D87938D80E0228D34 +S11304E030E0822B932B9F878E87258D30E040E070 +S11304F050E0542F432F322F2227868D90E0A0E026 +S1130500B0E0DC0199278827282B392B4A2B5B2B59 +S1130510848D90E0A0E0B0E0282B392B4A2B5B2B94 +S1130520878D90E0A0E0B0E0B82FAA27992788270C +S1130530282B392B4A2B5B2B288B398B4A8B5B8BD3 +S113054080E0DF91CF911F910F910895DF93CF93B6 +S113055000D0CDB7DEB7DC010097A1F162307105A0 +S113056088F1ED91FC911197660F771F80E090E080 +S113057016962D913D914D915C911997620F731FC1 +S1130580841F951F0190F081E02D22E030E0AE0140 +S11305904F5F5F4F09958823A9F09A8180E02981F4 +S11305A030E0282B392B2115310571F08FEF273FCF +S11305B0380741F0C9014096079720F08FEF283F94 +S11305C0380710F020E030E0C9010F900F90CF9170 +S11305D0DF910895FC01009711F0118210820895B3 +S11305E02F923F924F925F926F927F928F929F923F +S11305F0AF92BF92CF92DF92EF92FF920F931F932D +S1130600DF93CF93CDB7DEB72C970FB6F894DEBF48 +S11306100FBECDBF3C0178876F835A874987009707 +S113062009F402C1672B09F4FFC0452B09F4FCC08F +S1130630DC015A96AD90BD90CD90DC905D975296BA +S11306402D913D914D915C915597E985FA85CF01A6 +S1130650A0E0B0E08A0D9B1DAC1DBD1D2817390715 +S11306604A075B0740F4B9016A197B097A876987ED +S1130670672B09F4DCC0D301ED91FC91119720891B +S113068031893A8329835E966D917C915F977C874B +S11306906B87C901A0E0B0E08B839C83AD83BE83EC +S11306A0672BE1F5F3010088F189E02DFC87EB87E6 +S11306B0EF2B39F4A114B104C104D10409F4B7C077 +S11306C0B3C0A114B104C104D10441F18601750180 +S11306D02B803C804D805E805094409430942094D4 +S11306E0211C311C411C511C10C06B857C85D3011D +S11306F08D919C910E94A6029C878B87892B09F47B +S113070093C0E20CF31C041D151D6B817C818D814B +S11307109E81E616F7060807190738F7C601B501E2 +S11307202B813C814D815E810E9412172B018984AB +S11307309A84D301ED91FC91A980BA80A418B508DC +S11307408A149B0408F45401C080D180720100E033 +S113075010E086899789A08DB18DE80EF91E0A1FD5 +S11307601B1FEB85FC853297BF0180E090E0329639 +S1130770FC87EB872B813C814D815E810E94CC16E6 +S1130780E60EF71E081F191FD601ED91FC91950185 +S11307904F815885C801B7010995882361F18A18EA +S11307A09B08C501A0E0B0E0F301228D338D448D98 +S11307B0558D280F391F4A1F5B1FD3015A962D935D +S11307C03D934D935C935D97C501840D951DE9811F +S11307D0FA818E179F07B0F06B857C858D919C9173 +S11307E00E94A6029C878B87892B51F4D3015F96C4 +S11307F01C921E925E9749855A854819590919C059 +S1130800442455242B853C85F301378F268F81148E +S1130810910439F06F8178856A0D7B1D78876F8329 +S113082088CF49855A8505C04FEF5FEF02C040E08D +S113083050E0CA012C960FB6F894DEBF0FBECDBFB0 +S1130840CF91DF911F910F91FF90EF90DF90CF90A8 +S1130850BF90AF909F908F907F906F905F904F90DC +S11308603F902F900895CF93DF93FC01EB01009705 +S1130870C9F161157105B1F1828D938DA48DB58D8A +S1130880413051F0413018F0423061F50AC02881FE +S113089039814A815B8111C0288139814A815B8118 +S11308A008C0288139814A815B8182899389A4891E +S11308B0B589280F391F4A1F5B1F82899389A48930 +S11308C0B58982179307A407B50760F0228F338F89 +S11308D0448F558F178E168E288339834A835B8302 +S11308E081E001C080E0DF91CF910895FC01009781 +S11308F011F0118210820895FC01009711F480E038 +S11309000895138E128E81E008952F923F924F9294 +S11309105F926F927F928F929F92AF92BF92CF928B +S1130920DF92EF92FF920F931F93DF93CF93CDB794 +S1130930DEB7A9970FB6F894DEBF0FBECDBF3C015A +S11309402B01009709F44AC06115710509F446C0EA +S1130950FC0180899189892B09F040C0228D338D57 +S1130960A081B1811097B9F1ED91FC91119722808A +S11309703380AE014F5F5F4F89E0FA0111928A958F +S1130980E9F73C832B8352966D917D918D919C91D7 +S1130990559756960D911C915797061B170B6A0194 +S11309A02DEDE22E21E0F22E20E230E0AE01465F92 +S11309B05F4FF1010995882371F08D809E80AF808F +S11309C0B88481149104A104B10429F021C0F20176 +S11309D080818823A9F5F301138E128E80E0A996F5 +S11309E00FB6F894DEBF0FBECDBFCF91DF911F913C +S11309F00F91FF90EF90DF90CF90BF90AF909F90BA +S1130A008F907F906F905F904F903F902F900895BC +S1130A1088E1F20111928A95E9F7098562019AE069 +S1130A20E92E92E0F92E10E020E230E0AE01465FBC +S1130A305F4FC501B401F1010995882361F2C7CF65 +S1130A40F301828D938D0196938F828F81E0C7CFBE +S1130A50FB01892B61F06115710549F088E1DB0127 +S1130A601D928A95E9F780E1858781E0089580E009 +S1130A7008952F923F924F925F926F927F928F923E +S1130A809F92AF92BF92CF92DF92EF92FF920F9319 +S1130A901F93DF93CF93CDB7DEB7E0970FB6F894EB +S1130AA0DEBF0FBECDBF6C01009709F490C1ABC18E +S1130AB0EAE7F1E08AE1DF011D928A95E9F7D09235 +S1130AC07B01C0927A01D60119962D913D914D91E9 +S1130AD05C911C9719E0220F331F441F551F1A9570 +S1130AE0D1F72AA33BA34CA35DA3CA01B901655F57 +S1130AF07F4F8F4F9F4FED91FC9129E130E0AE0184 +S1130B004F5F5F4F0995882309F484C1A9804A8007 +S1130B10BB81BEA30C81FD801E813F815884698402 +S1130B207A849D8580E02C85E22FF0E0E82BF92B78 +S1130B308E883F88288DE98C309709F46BC1432D4A +S1130B4050E060E070E0962F852F742F662769A728 +S1130B507AA78BA79CA7822F90E0A0E0B0E0BC010D +S1130B605527442789A59AA5ABA5BCA5842B952B0D +S1130B70A62BB72B482D50E060E070E0842B952B1A +S1130B80A62BB72B89A79AA7ABA7BCA78E2D90E05D +S1130B90A0E0B0E0782F66275527442789A59AA5B9 +S1130BA0ABA5BCA5842B952BA62BB72B89A79AA7FD +S1130BB0ABA7BCA70097A105B10589F4972D80E0E8 +S1130BC0662D70E0682B792B6115710509F422C13B +S1130BD0CB01A0E0B0E089A79AA7ABA7BCA7942D4E +S1130BE080E02A2C3324282A392A952D80E0A32F4B +S1130BF0B0E0A82BB92BB8A7AFA39F2D80E0202F7E +S1130C0030E0822B932B9C0140E050E02A8F3B8FF5 +S1130C104C8F5D8FBF0180E090E0212F30E040E0F9 +S1130C2050E00E94CC166E8F7F8F88A399A3E9A40D +S1130C30FAA40BA51CA54A8D5B8D6C8D7D8DE41AE1 +S1130C40F50A060B170B6E8D7F8D88A199A1E61A04 +S1130C50F70A080B190BC10101972FA138A5B5E0BC +S1130C60220F331FBA95E1F7820F931FB1010E943F +S1130C70EB1680E090E0E61AF70A080B190B7EA148 +S1130C80272F30E040E050E0C801B7010E9412175E +S1130C9029013A01D301C201855F9F40A040B040C1 +S1130CA08050904FA040B04008F0B4C086E0D60118 +S1130CB018968C93ACE78A2EA1E09A2E88E1F40171 +S1130CC011928A95E9F75101CC24DD2469A57AA50E +S1130CD08BA59CA5A60195010E94CC1660937C016E +S1130CE070937D0180937E0190937F01C601B501CD +S1130CF02A8D3B8D4C8D5D8D0E94CC167B018C0121 +S1130D002AA13BA14CA15DA1E20EF31E041F151FF5 +S1130D10E0928001F092810100938201109383019B +S1130D2042E050E060E070E0440E551E661E771EFF +S1130D30440C551C661C771C40928401509285011A +S1130D406092860170928701309289012092880115 +S1130D505EA1852F90E0BC01269EC001279E900DC8 +S1130D60369E900D112490938B0180938A016E8D91 +S1130D707F8D88A199A1A60195010E94CC166E0DC4 +S1130D807F1D801F911F60938C0170938D01809350 +S1130D908E0190938F01AFA1B8A59D0140E050E072 +S1130DA0E5E0220F331F441F551FEA95D1F7620F68 +S1130DB0731F841F951F609390017093910180931A +S1130DC092019093930194012250304002C020E09C +S1130DD030E0C901E0960FB6F894DEBF0FBECDBF78 +S1130DE0CF91DF911F910F91FF90EF90DF90CF9003 +S1130DF0BF90AF909F908F907F906F905F904F9037 +S1130E003F902F90089580917A0190917B01892BD6 +S1130E10F1F64ECE10927B0110927A01D8CFCF9387 +S1130E20DF939C01DB01009729F16115710511F134 +S1130E301D968C911D9784FF1DC080912201909175 +S1130E402301892B19F4E2E2F1E008C080913E010C +S1130E5090913F01892B71F4EEE3F1E0EF012296CA +S1130E6088E10D9009928150E1F731832083138E3C +S1130E70128E02C0E0E0F0E0CF01DF91CF9108953F +S1130E802F923F924F925F926F927F928F929F9296 +S1130E90AF92BF92CF92DF92EF92FF920F931F9384 +S1130EA0DF93CF93CDB7DEB72A970FB6F894DEBFA2 +S1130EB00FBECDBF4C017C836B831A01009709F4EC +S1130EC0DEC0672B09F4DBC04115510509F4D7C016 +S1130ED0DC015A96ED90FD900D911C915D9780E098 +S1130EE09EEFAFEFBFEFE822F9220A231B23D401C0 +S1130EF05A96ED92FD920D931C935D9752962D9107 +S1130F003D914D915C9155972E153F054007510732 +S1130F1008F4B8C0C101A0E0B0E08E0D9F1DA01F71 +S1130F20B11F281739074A075B0728F419012E183F +S1130F303F0809F4A7C0D401ED91FC9111972089D1 +S1130F4031893A8329835E968D919C915F979A8724 +S1130F508987290166247724892BD9F550960D9029 +S1130F60BC91A02DBA87A987AB2B39F4E114F10405 +S1130F700105110509F486C082C0E114F1040105DC +S1130F80110539F15701680188279927DC01841973 +S1130F909509A609B7098D839E83AF83B88714C0CA +S1130FA069857A85D4018D919C910E94A6029A87C5 +S1130FB08987892B09F463C08D819E81AF81B885AF +S1130FC0A80EB91ECA1EDB1EA414B504C604D70499 +S1130FD038F7510191E0291692E0390618F0A12C56 +S1130FE082E0B82EC801B701A30192010E94121732 +S1130FF07B0129813A81261B370B65012A153B05A4 +S113100008F4690100E010E0D401ED91FC918689B7 +S11310109789A08DB18DE80EF91E0A1F1B1FE98563 +S1131020FA853297BF0180E090E03296FA87E9872B +S1131030A30192010E94CC16E60EF71E081F191F89 +S113104096014B815C81C801B7010E943D0C892B3C +S1131050C9F0960140E050E0F401828D938DA48D97 +S1131060B58D820F931FA41FB51F828F938FA48FFA +S1131070B58F29853A85378F268FA50105C04FEF97 +S11310805FEF02C040E050E0CA012A960FB6F89420 +S1131090DEBF0FBECDBFCF91DF911F910F91FF90A7 +S11310A0EF90DF90CF90BF90AF909F908F907F9004 +S11310B06F905F904F903F902F900895CF93DF9360 +S11310C09C01FB01009731F06115710519F08585CC +S11310D084FF2CC060E08CE790E003C060E088E609 +S11310E090E00E94A60C20E030E0C901DF91CF918E +S11310F00895CCE5D1E0DF0188E10D90099281509B +S1131100E1F730935B0120935A011092740110921D +S113111075011092760110927701868597859093D8 +S11311207901809378012AE531E0DFCF80915A017B +S113113090915B01892B91F6DCCFFC01009711F4AF +S113114080E00895108681E008958F929F92AF9277 +S1131150BF92CF92DF92EF92FF920F93DF93CF93E0 +S1131160CDB7DEB760970FB6F894DEBF0FBECDBF24 +S11311707C016B015A014901009709F493C0611580 +S1131180710509F48FC004300CF08CC007FD1DC03C +S1131190602F772767FD7095E4E0660F771FEA9567 +S11311A0E1F762547E4F882777FD8095982F20E1E0 +S11311B030E0AE014F5F5F4FF7010995882309F4D2 +S11311C071C08D81882309F46DC080919C018823AE +S11311D009F068C07CC08D8180939C012A8530E031 +S11311E040E050E0542F432F322F22278B8590E08C +S11311F0A0E0B0E0DC0199278827282B392B4A2B63 +S11312005B2B898590E0A0E0B0E0282B392B4A2B9A +S11312105B2B8C8590E0A0E0B0E0B82FAA2799273B +S11312208827282B392B4A2B5B2B20939D01309345 +S11312309E0140939F015093A0012E8530E040E031 +S113124050E0542F432F322F22278F8590E0A0E0C7 +S1131250B0E0DC0199278827282B392B4A2B5B2BFC +S11312608D8590E0A0E0B0E0282B392B4A2B5B2B36 +S1131270888990E0A0E0B0E0B82FAA2799278827B2 +S1131280282B392B4A2B5B2B2093A1013093A201ED +S11312904093A3015093A40103C08FEF80939C015A +S11312A09F0102C020E030E0C90160960FB6F894B7 +S11312B0DEBF0FBECDBFCF91DF910F91FF90EF90B6 +S11312C0DF90CF90BF90AF909F908F900895E4E906 +S11312D0F1E081E1DF011D928A95E9F7F092950131 +S11312E0E0929401D0929701C0929601B092990134 +S11312F0A092980190929B0180929A0107FF6BCF74 +S1131300CCCF81E0089581E00895282F8FEF8EBD22 +S11313100DB407FEFDCF8DB58F778DBD8EB5822FB1 +S113132080648EBD0DB407FEFDCF8DB58F778DBD66 +S1131330872F9927AA27BB278EBD0DB407FEFDCFA3 +S11313408DB58F778DBDCB01AA27BB278EBD0DB47C +S113135007FEFDCF8DB58F778DBDBB27A72F962FA9 +S1131360852F8EBD0DB407FEFDCF8DB58F778DBD56 +S11313704EBD0DB407FEFDCF8DB58F778DBD2223F5 +S113138011F08FEF01C085E98EBD0DB407FEFDCFCE +S11313908DB58F778DBD90E02FEF2EBD0DB407FE78 +S11313A0FDCF8DB58F778DBD8EB58F3F19F49F5FBF +S11313B09A3099F70895CF93DF93239A259A229A26 +S11313C024982A9A83E58CBD8DB58E7F8DBD20E04F +S11313D030E09FEF9EBD0DB407FEFDCF8DB58F7736 +S11313E08DBD8EB52F5F3F4F2A30310599F72A986E +S11313F0C0E0D0E040E050E060E070E080E00E94B7 +S11314008509813031F081E0CF3FD807E1F02196A2 +S1131410F1CFC0E0D0E040E050E060E070E081E077 +S11314200E94850980FF06C08FE7CF3FD80759F097 +S11314302196F1CF40E052E060E070E080E10E944C +S11314408509882319F02A9A80E008C02A9A8CB565 +S11314508C7F8CBD8DB581608DBD81E0DF91CF9196 +S113146008958F929F92AF92BF92DF92EF92FF9274 +S11314700F931F93CF93DF937B018C015A01E901F2 +S1131480DD24DA94812C42E0942E5EC02A98B801BF +S1131490A70140705E7F81E10E948509882319F0CD +S11314A02A9A80E055C0DEBC0DB407FEFDCF8DB591 +S11314B08F778DBD8EB58E3FB1F7A7015170B40102 +S11314C0641B750BC617D70708F4BE01FB01E40FB4 +S11314D0F51F20E030E0DEBC0DB407FEFDCF8DB576 +S11314E08F778DBD8EB52417350730F02E173F0743 +S11314F018F4D5018D935D012F5F3F4FB2E020308A +S11315003B0749F7DEBC0DB407FEFDCF8DB58F77E1 +S11315108DBD8EB5DEBC0DB407FEFDCF8DB58F77C6 +S11315208DBD8EB52A9ADEBC0DB407FEFDCF8DB5F8 +S11315308F778DBD8EB5C61BD70BCB01A0E0B0E075 +S1131540E80EF91E0A1F1B1F209709F09FCF81E0A8 +S1131550DF91CF911F910F91FF90EF90DF90BF909B +S1131560AF909F908F9008952091000130910101D8 +S11315709FEF0AC09EBD0DB407FEFDCF8DB58F77DA +S11315808DBD8EB52F5F3F4F82E02030380790F33A +S11315908FEF8EBD0DB407FEFDCF8DB58F778DBD5A +S11315A08EB58FEF8EBD0DB407FEFDCF8DB58F7751 +S11315B08DBD8EB52A9A8FEF8EBD0DB407FEFDCF7B +S11315C08DB58F778DBD8EB58FEF9FEF9093010111 +S11315D08093000108952F923F924F925F926F92F1 +S11315E07F928F929F92AF92BF92CF92DF92EF92AF +S11315F0FF920F931F93DF93CF93CDB7DEB72C9752 +S11316000FB6F894DEBF0FBECDBF4B015C011A01CB +S11316103C872B872801FE82ED82D886CF82411534 +S1131620510509F4DAC02115310509F4D6C00217B1 +S1131630130708F4D2C0EF2809F4CFC02A983095D4 +S113164021953F4F3A87298784011170D501C40140 +S113165080709E7F89839A83AB83BC83AC01BD0178 +S113166081E10E948509882311F02A9AB6C09FEF70 +S11316709EBD0DB407FEFDCF8DB58F778DBD8EB5A4 +S11316808E3FA9F720E030E00BC0AFEFAEBD0DB444 +S113169007FEFDCF8DB58F778DBD8EB52F5F3F4F84 +S11316A02017310790F3E12C52E0F52EE01AF10AED +S11316B03701EB85FC856E1A7F0A6201CE1ADF0AB8 +S11316C000E012E00E191F092B853C85E216F30693 +S11316D048F14216530630F1F10120E030E00CC02D +S11316E08FEF8EBD0DB407FEFDCF8DB58F778DBD09 +S11316F08EB581932F5F3F4FAB85BC852A173B077F +S113170078F3A80160E070E0480D591D6A1D7B1D47 +S11317102F813885C101ED81FE810995882321F44B +S113172091E026C090E024C02B853C85E21AF30AA0 +S1131730421A530A61147104A9F389859A85680EC3 +S1131740791EC80ED91E020F131FC9018C0D9D1DD1 +S1131750892B09F0B9CFE6CFAFEFAEBD0DB407FECC +S1131760FDCF8DB58F778DBD8EB50894E108F10856 +S1131770E114F10489F7BFEFBEBD0DB407FEFDCF40 +S11317808DB58F778DBD8EB5EFEFEEBD0DB407FE31 +S1131790FDCF8DB58F778DBD8EB52B853C854216DB +S11317A0530678F0992369F489809A80AB80BC80D1 +S11317B080E092E0A0E0B0E0880E991EAA1EBB1E55 +S11317C043CF2A9A8FEF8EBD0DB407FEFDCF8DB5A2 +S11317D08F778DBD8EB581E001C080E02C960FB669 +S11317E0F894DEBF0FBECDBFCF91DF911F910F9153 +S11317F0FF90EF90DF90CF90BF90AF909F908F902D +S11318007F906F905F904F903F902F900895FC01D0 +S113181020910001309101014FEF2F3F340731F443 +S113182060E086E890E00E94A60CFFCFCB01820F17 +S1131830931F8150924020F060E072E0621B730BB2 +S113184020E030E04FEF14C04EBD0DB407FEFDCFD5 +S11318508DB58F778DBD8EB5819380910001909168 +S11318600101019690930101809300012F5F3F4F86 +S11318702617370748F3CB010895CF92DF92EF92F2 +S1131880FF920F931F93CF93DF937B018C016A0127 +S113189080910001909101018F5F9F4F31F060E0D2 +S11318A08BE890E00E94A60CFFCFE90182E0213092 +S11318B0380710F0C0E0D2E02A9880E09EEFAFEF46 +S11318C0BFEFE822F9220A231B23B801A70181E113 +S11318D00E948509882321F02A9AC0E0D0E02CC018 +S11318E09FEF9EBD0DB407FEFDCF8DB58F778DBDE7 +S11318F08EB58E3FB1F710920101109200012FEFC7 +S113190014C02EBD0DB407FEFDCF8DB58F778DBDF0 +S11319108EB5D6018D936D018091000190910101E6 +S113192001969093010180930001809100019091B0 +S113193001018C179D0728F3CE01DF91CF911F91F0 +S11319400F91FF90EF90DF90CF9008950F931F9326 +S1131950CF93DF93EC01062F10E005C084EE93E0F3 +S11319600E9459121F5FFE01E10FF11D649166236D +S1131970A9F7002351F06AE084EE93E00E9461121B +S11319806DE084EE93E00E946112DF91CF911F918C +S11319900F9108951F920F920FB60F9211242F9357 +S11319A03F934F938F939F93AF93BF93EF93FF9383 +S11319B0E091A501F091A601309709F4A8C0209107 +S11319C0AB033091AC038091AD039091AE03281723 +S11319D0390709F047C08091B0038823B9F1809199 +S11319E0A7039091A80327EA32E041E0873A9407DD +S11319F049F43093A8032093A7039093AA038093F8 +S1131A00A9030AC087EA91E09093A8038093A703EF +S1131A103093AA032093A9038091A7039091A8036C +S1131A209093AC038093AB0380509F4F9093AE038D +S1131A308093AD031092B0038091AF03882391F497 +S1131A4080916F00846080936F000CC081899289BB +S1131A50A389B4890196A11DB11D818B928BA38B9F +S1131A60B48B55C05A985C985B9A5B985C9A5B9A65 +S1131A705B985B9A5B985B9A5B988781803119F5D8 +S1131A80E091AB03F091AC038181805890E087FF33 +S1131A9002C05C9A01C05C985B9A5B989F5F983027 +S1131AA011F0880FF4CF908180E097FF02C05C9A18 +S1131AB001C05C985B9A5B988F5F843011F0990F3A +S1131AC0F4CF32961DC08830F9F4E091AB03F09165 +S1131AD0AC03908180E097FF02C05C9A01C05C98DF +S1131AE05B9A5B988F5F883011F0990FF4CF5B9A03 +S1131AF05B985B9A5B985B9A5B985B9A5B98319670 +S1131B00F093AC03E093AB035A9A5D985D9AFF910E +S1131B10EF91BF91AF919F918F914F913F912F91F1 +S1131B200F900FBE0F901F90189508950895DC0133 +S1131B305696ED91FC9157976289738984899589AA +S1131B4008959A01AB0160E074E284EF90E00E9492 +S1131B50121730938900209388000895CF93DF9360 +S1131B60EC0180916F008D7F80936F008D898823B5 +S1131B7019F00E94B40A1D8AE091A501F091A60112 +S1131B80108A1092A6011092A501DF91CF910895B9 +S1131B900F931F93DF93CF9300D000D0CDB7DEB760 +S1131BA08C01407049835A836B837C83DC0150969B +S1131BB08C91882351F0F894F8018589882329F0C1 +S1131BC00E94B40AD80155961C9240E0BE016F5F92 +S1131BD07F4FF801868997890E943304D80156966D +S1131BE0ED91FC91579782899389A489B5892981BC +S1131BF03A814B815C81821B930BA40BB50BF801DA +S1131C0080879187A287B38778940F900F900F9065 +S1131C100F90CF91DF911F910F910895CF92DF9292 +S1131C20EF92FF920F931F93DF93CF93CDB7DEB75D +S1131C3028970FB6F894DEBF0FBECDBF8C016B01A1 +S1131C4044E050E07E010894E11CF11CB701C60198 +S1131C500E94F002049709F0F0C044E050E062E012 +S1131C6071E0C7010E94AF16009709F0E6C0F5C005 +S1131C7044E050E067E071E0CE0105960E94AF16A3 +S1131C80009709F0DAC0F2C044E050E06CE071E083 +S1131C90C7010E94AF16009709F0CFC0F0C0542FBF +S1131CA0432F322F22278081280F311D411D511DC2 +S1131CB03197EC17FD0799F7F80124873587468794 +S1131CC05787203131054105510509F0B6C048E078 +S1131CD050E0BE016F5F7F4FC6010E94F00208977B +S1131CE009F0ABC08A8190E0A0E0B0E0BA2FA92F40 +S1131CF0982F88272981820F911DA11DB11D01975D +S1131D00A105B10521F061E088EA90E084C08C81EE +S1131D1090E0A0E0B0E02227382F492F5A2F8B8182 +S1131D20280F311D411D511D233031054105510539 +S1131D3008F083C0F8012083FE013896BE016C5F71 +S1131D407F4F542F432F322F22278081280F311D9C +S1131D50411D511D3197E617F70799F7F8012183C3 +S1131D6032834383548348E050E0BE016F5F7F4F6A +S1131D70C6010E94F002089709F05FC08E8190E0CE +S1131D80A0E0B0E0BA2FA92F982F88272D81820FC9 +S1131D90911DA11DB11DF80196838583888590E06E +S1131DA0A0E0B0E02227382F492F5A2F8F81280F27 +S1131DB0311D411D511D213131054105510508F0E9 +S1131DC03CC0278381819281A381B4818332F6E56B +S1131DD09F07F0E0AF07F0E0BF0718F0293040F0AC +S1131DE00CC081589E43A040B04050F0293040F0D0 +S1131DF0FF24F8018081823020F0FF24F39401C095 +S1131E00FF2461E087EA90E00E94A60CFF2031F0F5 +S1131E1061E081E990E00E94A60C0FC0F8011086F1 +S1131E20118612861386D78AC68A118A128A138A61 +S1131E30148A108A158A81E001C080E028960FB6C2 +S1131E40F894DEBF0FBECDBFCF91DF911F910F91EC +S1131E50FF90EF90DF90CF90089548E050E0B701F5 +S1131E60C6010E94F002089741F702CF44E050E017 +S1131E70B701C6010E94F0020497F9F605CFF801F4 +S1131E80148615861686178644E050E0B701C6010D +S1131E900E94F002049789F6F80124853585468569 +S1131EA05785FE013496FBCEAF92BF92CF92DF925C +S1131EB0EF92FF920F931F93DF93CF9300D000D044 +S1131EC00F92CDB7DEB76C015B01F42EE52EFC0159 +S1131ED080859185A285B3850097A105B105D1F5CB +S1131EE044E050E08E010F5F1F4FB8018689978947 +S1131EF00E94F002049709F0F5C01D8244E050E00E +S1131F00B801D60156968D919C9157970E94F00284 +S1131F10049709F0E7C0F60110861186128613862D +S1131F20FE01349620E030E040E050E0542F432F8F +S1131F30322F22278081280F311D411D511D3197D9 +S1131F40EC17FD0799F7D60118962D933D934D9301 +S1131F505C931B978F2D9E2D9C017901B2E021305B +S1131F603B0718F0E12C72E0F72EF601208531854D +S1131F7042855385C701A0E0B0E0281739074A0716 +S1131F805B0708F47901D6015696ED91FC915797B9 +S1131F90828D938DA48DB58D9170A070B0700097D3 +S1131FA0A105B105D1F4D60155968C918823A9F4E5 +S1131FB0A701B501CF010E9440078C018E159F0532 +S1131FC041F060E082EE90E00E94A60C0E94B40A08 +S1131FD08BC081E0F601858B73C0D60155968C9138 +S1131FE0882309F463C0B701C5010E94070C5C0192 +S1131FF08E159F0539F060E08CED90E00E94A60CF0 +S11320000E94B40AD6015696ED91FC915797C501EA +S1132010A0E0B0E0228D338D448D558D820F931F47 +S1132020A41FB51F828F938FA48FB58F9170A0705A +S1132030B0700097A105B10509F041C00E94B40A2F +S1132040F601158A06891789D801ED90FC9011973D +S1132050F7012089318940E050E05A966D917D91D5 +S11320608D919C915D970E941217611571058105F0 +S1132070910529F5D8015E966D917C915F97C70112 +S11320800E94A602F801978F868F892BC1F4D6018E +S11320905696ED91FC915797178E168E61E082EC5F +S11320A090E00E94A60C0FEF1FEF1EC0A701B50120 +S11320B0CF010E94F0028E159F05A1F401C07501A5 +S11320C0970140E050E0F60180859185A285B385B3 +S11320D0821B930BA40BB50B80879187A287B387D0 +S11320E0870102C000E010E0C8010F900F900F902C +S11320F00F900F90CF91DF911F910F91FF90EF9070 +S1132100DF90CF90BF90AF900895CF92DF92EF927F +S1132110FF920F931F93CF93DF93EC01C980DA8072 +S1132120EB80FC809093A6018093A50107EA11E05F +S11321301093AC030093AB0342E050E0B8010E945B +S1132140540F892B09F451C08091AB039091AC03D7 +S113215002969093AE038093AD03EE89FF89828D3E +S113216040E051E0481B5109B8016E5F7F4F8091F8 +S1132170A5019091A6010E94540F9C010097A9F11A +S11321808091AD039091AE03820F931F9093AE03A1 +S11321908093AD0340E051E067EA72E08091A501CD +S11321A09091A6010E94540F81E08093B003888B24 +S11321B01092800089E08093810060E074E284EFF3 +S11321C090E0A70196010E94121730938900209392 +S11321D0880081E090E090938B0080938A00809146 +S11321E06F00826080936F007894DF91CF911F918C +S11321F00F91FF90EF90DF90CF9008951F920F9270 +S11322000FB60F9211242F933F934F935F936F93C5 +S11322107F938F939F93AF93BF93EF93FF9380919B +S11322206F008B7F80936F008091B0038823F9F453 +S113223081E08093AF0378946091A9037091AA031D +S113224040E051E08091A5019091A6010E94540FB5 +S1132250892B31F48091A5019091A6010E94AE0DC5 +S1132260F8941092AF0381E08093B0037894FF91C7 +S1132270EF91BF91AF919F918F917F916F915F91FA +S11322804F913F912F910F900FBE0F901F90189573 +S113229083EB93E00E94C7008BEB93E00E94960DC2 +S11322A008950F931F93BC0183EB93E00E942201D6 +S11322B09093BA038093B9030BEB13E0BC01C801FC +S11322C00E940E0EC8010E9485101F910F9108955F +S11322D00F931F9381E191E00E94511110E000E0FF +S11322E048C0112339F468EE73E080E090E00E9466 +S11322F0531402C0153128F460E371E080E090E0EB +S11323001FC0812F85518E3128F468E670E080E08B +S113231090E016C0812F8353823828F468E170E07E +S113232080E090E00DC0812F855B823328F460E16A +S113233070E080E090E004C068E070E080E090E04D +S11323400E9453141F3F21F0002331F41F5F09C082 +S1132350002331F401E005C0112311F400E001C0B1 +S11323601150612F66956695669570E086E00E942F +S1132370E6148091CB03882309F0B3CF6091B903AD +S11323807091BA0383EB93E00E94C80060E070E0B0 +S113239086E00E94E6141F910F9108950F931F93F6 +S11323A0DF93CF93CDB7DEB72D970FB6F894DEBF8A +S11323B00FBECDBF83EB93E00E94CC008E010F5F74 +S11323C01F4FB80183EB93E00E942B01882379F41B +S11323D083EB93E00E94CC002D960FB6F894DEBFF9 +S11323E00FBECDBFCF91DF911F910F910895B8011A +S11323F084EE93E00E94A812E4CF40E855E260E046 +S113240070E084EE93E00E94541261E082E00E9446 +S11324103A1561E083E00E943A1561E084E00E948D +S11324203A1561E085E00E943A1561E086E00E9479 +S11324303A1583EB93E00E94D4018823C9F083EB1F +S113244093E00E94A901882399F083EB93E00E9412 +S11324509601882369F083EB93E00E94620188234C +S113246039F00E94CE1160E070E086E00E94E6142C +S113247008950E948B140E94FD110E946811FDCFE3 +S11324808FE191E09093E5038093E4030895862F10 +S11324900E94281608950E94601608950E9441160D +S11324A008950E9430160895CB01BA010E94EF15D9 +S11324B00895DC01ED91FC910190F081E02D0995E6 +S11324C00895DC01ED91FC910190F081E02D0995D6 +S11324D008950F931F93CF93DF938C01EB0109C0F1 +S11324E02196D801ED91FC910190F081E02DC80175 +S11324F0099568816623A1F7DF91CF911F910F9110 +S113250008950F931F938C01DC01ED91FC910190D0 +S1132510F081E02D6DE00995D801ED91FC910190D9 +S1132520F081E02D6AE0C80109951F910F9108958B +S11325300F931F938C01DC01ED91FC910190F081CC +S1132540E02D0995C8010E9481121F910F910895F1 +S11325500F931F938C010E946912C8010E9481127B +S11325601F910F9108950F931F938C01DC01ED913E +S1132570FC910190F081E02D0995C8010E9481121F +S11325801F910F9108952F923F924F925F926F92F5 +S11325907F928F929F92AF92BF92CF92DF92EF92EF +S11325A0FF920F931F93DF93CF93CDB7DEB7A0971E +S11325B00FB6F894DEBF0FBECDBF1C016A017B01CC +S11325C0411551056105710549F4DC01ED91FC915A +S11325D00190F081E02D60E3099554C0882499248A +S11325E05401422E55246624772401E010E00C0F98 +S11325F01D1F080D191DC701B601A30192010E94F8 +S11326001217F80160830894811C911CA11CB11C51 +S1132610C701B601A30192010E941217C901DA0190 +S11326206C017D01C114D104E104F104F1F681E0EF +S1132630E82EF12CEC0EFD1EE80CF91C3E0108946A +S1132640611C711CD501C4010197A109B1096C0178 +S1132650C818D90814C0F601EE0DFF1D60816A3058 +S113266010F4605D01C0695CD101ED91FC910190B1 +S1132670F081E02DC10109950894E108F1086E1478 +S11326807F0449F7A0960FB6F894DEBF0FBECDBF06 +S1132690CF91DF911F910F91FF90EF90DF90CF903A +S11326A0BF90AF909F908F907F906F905F904F906E +S11326B03F902F9008952AE00E94C31208950F932B +S11326C01F938C010E945B13C8010E9481121F9109 +S11326D00F910895AB0160E070E00E945B130895D0 +S11326E00F931F938C01AB0160E070E00E945B13B9 +S11326F0C8010E9481121F910F910895EF92FF92D9 +S11327000F931F93CF93DF93EC017A018B0177FF33 +S11327100FC0E881F9810190F081E02D6DE2099507 +S113272010950095F094E094E11CF11C011D111D1D +S11327302AE0B801A701CE010E94C312DF91CF9114 +S11327401F910F91FF90EF9008950F931F938C01A9 +S11327500E947E13C8010E9481121F910F91089557 +S1132760AB01662757FD6095762F0E947E1308956E +S11327700F931F938C01AB01662757FD6095762F4D +S11327800E947E13C8010E9481121F910F91089527 +S1132790DC012115310541F4ED91FC910190F081AA +S11327A0E02D642F099508952A30310519F40E940B +S11327B07E1308950E94C31208950F931F938C01F2 +S11327C00E94C813C8010E9481121F910F9108959D +S11327D01F920F920FB60F9211242F938F939F93F2 +S11327E0AF93BF938091E6039091E703A091E80330 +S11327F0B091E9038050904CAF4FBF4F8093E603F4 +S11328009093E703A093E803B093E90327C0809172 +S1132810E6039091E703A091E803B091E90380589F +S11328209E43A040B0408093E6039093E703A093B7 +S1132830E803B093E9038091EA039091EB03A0913C +S1132840EC03B091ED030196A11DB11D8093EA0341 +S11328509093EB03A093EC03B093ED038091E60314 +S11328609091E703A091E803B091E90381589E4356 +S1132870A040B04060F6BF91AF919F918F912F918E +S11328800F900FBE0F901F9018958FB7F89420915A +S1132890EA033091EB034091EC035091ED038FBFB9 +S11328A0B901CA010895EF92FF920F931F937B0120 +S11328B08C018FB7F8944091EA035091EB03609137 +S11328C0EC037091ED038FBF2FB7F8948091EA0366 +S11328D09091EB03A091EC03B091ED032FBF841B07 +S11328E0950BA60BB70B8E159F05A007B10760F3D8 +S11328F01F910F91FF90EF900895019759F0FC01FB +S1132900EE0FFF1FEE0FFF1F32978FB7F89431972A +S1132910F1F78FBF0895789484B5826084BD84B53F +S1132920816084BD85B5826085BD85B5816085BDC6 +S1132930EEE6F0E0808181608083E1E8F0E0808170 +S113294082608083808181608083E0E8F0E0808120 +S113295081608083E1EBF0E0808184608083E0EB40 +S1132960F0E0808181608083EAE7F0E08081846028 +S11329708083808182608083808181608083808184 +S1132980806880831092C100089580932101089586 +S11329908F70909121019295990F990F907C982BAB +S11329A090937C0080917A00806480937A00809177 +S11329B07A0086FDFCCF2091780040917900942F15 +S11329C080E030E0282B392BC90108951F93CF9361 +S11329D0DF93182FEB0161E00E943A15E12FF0E03C +S11329E0E15EFE4F8491833051F4809180008068D1 +S11329F080938000D0938900C093880037C08430CE +S1132A0051F480918000806280938000D0938B0089 +S1132A10C0938A002BC0813029F484B5806884BDBA +S1132A20C7BD24C0823029F484B5806284BDC8BD8A +S1132A301DC0863041F48091B00080688093B0005E +S1132A40C093B30013C0873041F48091B00080621A +S1132A508093B000C093B40009C0C038D10514F409 +S1132A6060E001C061E0812F0E945815DF91CF9191 +S1132A701F910895282F30E0C901855F9E4FFC0106 +S1132A80949129503F4FF9018491882381F0E82FD4 +S1132A90F0E0E851FF4FE491F0E0662329F48081EF +S1132AA090958923808308958081892B808308955C +S1132AB0482F50E0CA01815E9E4FFC012491CA0157 +S1132AC0855F9E4FFC01949149505F4FFA01349108 +S1132AD03323C1F1222331F1233021F4809180008A +S1132AE08F7705C0243031F4809180008F7D8093EE +S1132AF0800018C0213019F484B58F7704C02230C7 +S1132B0021F484B58F7D84BD0DC0263021F48091DD +S1132B10B0008F7705C0273029F48091B0008F7DF5 +S1132B208093B000E32FF0E0E351FF4FE491F0E035 +S1132B30662329F480819095892380830895808178 +S1132B40892B80830895482F50E0CA01815E9E4FEF +S1132B50FC012491CA01855F9E4FFC019491495068 +S1132B605F4FFA013491332319F420E030E035C08B +S1132B70222331F1233021F4809180008F7705C026 +S1132B80243031F4809180008F7D8093800018C0C0 +S1132B90213019F484B58F7704C0223021F484B530 +S1132BA08F7D84BD0DC0263021F48091B0008F77D5 +S1132BB005C0273029F48091B0008F7D8093B00048 +S1132BC0E32FF0E0EE50FF4FE491F0E0808120E04D +S1132BD030E0892311F021E030E0C9010895EF923B +S1132BE0FF920F931F937B018C0122E030E040E0C1 +S1132BF050E00E943417205C3D4B404F5F4FCA01A8 +S1132C00B901A80197010E943417C901DA0101979B +S1132C10A109B109292F3A2F4B2F552747FD5A9562 +S1132C200196A11DB11D2093C50081508093C4005D +S1132C30E1ECF0E080818061808380818860808322 +S1132C408081806880831F910F91FF90EF90089599 +S1132C50982F8091C00085FFFCCF9093C600089503 +S1132C608091EE039091EF0380589F4F2091F003E1 +S1132C703091F103821B930B60E870E00E94FF1611 +S1132C8008954091F0035091F1038091EE039091E7 +S1132C90EF038417950719F42FEF3FEF0FC0FA01E4 +S1132CA0EE50FC4F2081CA01019660E870E00E945A +S1132CB0FF169093F1038093F00330E0C901089567 +S1132CC08091F0039091F1039093EF038093EE03CE +S1132CD008951F920F920FB60F9211242F933F93D2 +S1132CE04F935F936F937F938F939F93AF93BF9310 +S1132CF0EF93FF934091C600E091EE03F091EF0350 +S1132D00CF01019660E870E00E94FF169C0180915B +S1132D10F0039091F1032817390739F0EE50FC4F76 +S1132D2040833093EF032093EE03FF91EF91BF9123 +S1132D30AF919F918F917F916F915F914F913F914F +S1132D402F910F900FBE0F901F901895FB01DC017F +S1132D508D91019080190110D9F3990B0895FB010D +S1132D60DC014150504030F08D910190801919F4EC +S1132D700020B9F7881B990B0895FB01DC01415031 +S1132D80504048F001900D920020C9F701C01D92F7 +S1132D9041505040E0F70895629FD001739FF001C5 +S1132DA0829FE00DF11D649FE00DF11D929FF00DD7 +S1132DB0839FF00D749FF00D659FF00D9927729F0E +S1132DC0B00DE11DF91F639FB00DE11DF91FBD0199 +S1132DD0CF0111240895AA1BBB1B51E107C0AA1FF0 +S1132DE0BB1FA617B70710F0A61BB70B881F991FA8 +S1132DF05A95A9F780959095BC01CD01089597FB4C +S1132E00092E07260AD077FD04D0E5DF06D000207E +S1132E101AF4709561957F4F0895F6F79095819512 +S1132E209F4F0895A1E21A2EAA1BBB1BFD010DC0E2 +S1132E30AA1FBB1FEE1FFF1FA217B307E407F50766 +S1132E4020F0A21BB30BE40BF50B661F771F881F42 +S1132E50991F1A9469F760957095809590959B01D8 +S1132E60AC01BD01CF01089597FB092E05260ED0B4 +S1132E7057FD04D0D7DF0AD0001C38F45095409594 +S1132E80309521953F4F4F4F5F4F0895F6F790953A +S1132E908095709561957F4F8F4F9F4F0895EE0FEA +S1112EA0FF1F0590F491E02D0994F894FFCFE4 +S1132EAEFFFF52494646005741564500666D742051 +S1132EBE00414C41524D2E57415600000000004730 +S1052ECE1201EB +S9030000FC diff --git a/2009/alarma_bisbe/applet/core.a b/2009/alarma_bisbe/applet/core.a new file mode 100644 index 0000000..675f665 Binary files /dev/null and b/2009/alarma_bisbe/applet/core.a differ diff --git a/2009/alarma_bisbe/applet/pins_arduino.c.o b/2009/alarma_bisbe/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/alarma_bisbe/applet/pins_arduino.c.o differ diff --git a/2009/alarma_bisbe/applet/wiring.c.o b/2009/alarma_bisbe/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/alarma_bisbe/applet/wiring.c.o differ diff --git a/2009/alarma_bisbe/applet/wiring_analog.c.o b/2009/alarma_bisbe/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/alarma_bisbe/applet/wiring_analog.c.o differ diff --git a/2009/alarma_bisbe/applet/wiring_digital.c.o b/2009/alarma_bisbe/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/alarma_bisbe/applet/wiring_digital.c.o differ diff --git a/2009/alarma_bisbe/applet/wiring_pulse.c.o b/2009/alarma_bisbe/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/alarma_bisbe/applet/wiring_pulse.c.o differ diff --git a/2009/alarma_bisbe/applet/wiring_serial.c.o b/2009/alarma_bisbe/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/alarma_bisbe/applet/wiring_serial.c.o differ diff --git a/2009/alarma_bisbe/applet/wiring_shift.c.o b/2009/alarma_bisbe/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/alarma_bisbe/applet/wiring_shift.c.o differ diff --git a/2009/alarma_bisbe_2/alarma_bisbe_2.pde b/2009/alarma_bisbe_2/alarma_bisbe_2.pde new file mode 100644 index 0000000..746f65a --- /dev/null +++ b/2009/alarma_bisbe_2/alarma_bisbe_2.pde @@ -0,0 +1,120 @@ +#include +#include +#include "util.h" +#include "wave.h" + +AF_Wave card; +File f; +Wavefile wave; // only one! +#define lampara 6 +#define N 8 + +char c, name[15]; + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + //Serial.println("Wave test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(lampara, OUTPUT); + + /*name[0]='A'; + name[1]='L'; + name[2]='A'; + name[3]='R'; + name[4]='M'; + name[5]='.'; + name[6]='W'; + name[7]='A'; + name[8]='V'; + name[9] = 0;*/ + + if (!card.init_card()) { + //putstring_nl("Card init. failed!"); + return; + } + if (!card.open_partition()) { + //putstring_nl("No partition!"); + return; + } + if (!card.open_filesys()) { + //putstring_nl("Couldn't open filesys"); + return; + } + + if (!card.open_rootdir()) { + //putstring_nl("Couldn't open dir"); + return; + } + + //putstring_nl("Files found:"); + ls(); + analogWrite(lampara, 0); + +} + +void ls() { + char name[13]; + int ret; + card.reset_dir(); + //putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; + +void loop() { + uint8_t i=0,flag=0; + + playfile("ALARM.WAV"); + //digitalWrite(lampara, LOW); + while (wave.isplaying) { + if(i==0) + delay(1000); + if((i>=0)&&(i<=10)) delay(42*N); + else if((i>=11)&&(i<=30)) delay(30*N); + else if((i>=31)&&(i<=60)) delay(10*N); + else if((i>=61)&&(i<=120)) delay(4*N); + else delay(N); + + if ((i<(255)&&(!flag))) + { + i=i+1; + } + else if ((i>=255)&&(!flag)) flag=1; + else if ((i>0)&&(flag)) + { + i=i-1; + } + else if ((i==0)&&(flag)) flag=0; + analogWrite( lampara, (int)(i/1) ); // al dividir disminuimos intensidad maxima + + } + + card.close_file(f); + analogWrite(lampara, 0); + +} + + +void playfile(char *name) { + f = card.open_file(name); + if (!f) { + //putstring_nl(" Couldn't open file"); return; + } + if (!wave.create(f)) { + //putstring_nl(" Not a valid WAV"); return; + } + // ok time to play! + wave.play(); +} diff --git a/2009/alarma_bisbe_2/applet/HardwareSerial.cpp.o b/2009/alarma_bisbe_2/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/alarma_bisbe_2/applet/HardwareSerial.cpp.o differ diff --git a/2009/alarma_bisbe_2/applet/Print.cpp.o b/2009/alarma_bisbe_2/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/Print.cpp.o differ diff --git a/2009/alarma_bisbe_2/applet/WInterrupts.c.o b/2009/alarma_bisbe_2/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/WInterrupts.c.o differ diff --git a/2009/alarma_bisbe_2/applet/WMath.cpp.o b/2009/alarma_bisbe_2/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/WMath.cpp.o differ diff --git a/2009/alarma_bisbe_2/applet/WRandom.cpp.o b/2009/alarma_bisbe_2/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/WRandom.cpp.o differ diff --git a/2009/alarma_bisbe_2/applet/alarma_bisbe_2.cpp b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.cpp new file mode 100644 index 0000000..ffb36a4 --- /dev/null +++ b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.cpp @@ -0,0 +1,138 @@ +#include +#include +#include "util.h" +#include "wave.h" + +#include "WProgram.h" +void setup(); +void ls(); +void loop(); +void playfile(char *name); +AF_Wave card; +File f; +Wavefile wave; // only one! +#define lampara 6 +#define N 8 + +char c, name[15]; + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + //Serial.println("Wave test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(lampara, OUTPUT); + + /*name[0]='A'; + name[1]='L'; + name[2]='A'; + name[3]='R'; + name[4]='M'; + name[5]='.'; + name[6]='W'; + name[7]='A'; + name[8]='V'; + name[9] = 0;*/ + + if (!card.init_card()) { + //putstring_nl("Card init. failed!"); + return; + } + if (!card.open_partition()) { + //putstring_nl("No partition!"); + return; + } + if (!card.open_filesys()) { + //putstring_nl("Couldn't open filesys"); + return; + } + + if (!card.open_rootdir()) { + //putstring_nl("Couldn't open dir"); + return; + } + + //putstring_nl("Files found:"); + ls(); + analogWrite(lampara, 0); + +} + +void ls() { + char name[13]; + int ret; + card.reset_dir(); + //putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; + +void loop() { + uint8_t i=0,flag=0; + + playfile("ALARM.WAV"); + //digitalWrite(lampara, LOW); + while (wave.isplaying) { + if(i==0) + delay(1000); + if((i>=0)&&(i<=10)) delay(42*N); + else if((i>=11)&&(i<=30)) delay(30*N); + else if((i>=31)&&(i<=60)) delay(10*N); + else if((i>=61)&&(i<=120)) delay(4*N); + else delay(N); + + if ((i<(255)&&(!flag))) + { + i=i+1; + } + else if ((i>=255)&&(!flag)) flag=1; + else if ((i>0)&&(flag)) + { + i=i-1; + } + else if ((i==0)&&(flag)) flag=0; + analogWrite(lampara, (int)(i) ); // al dividir disminuimos intensidad maxima + + } + + card.close_file(f); + analogWrite(lampara, 0); + +} + + +void playfile(char *name) { + f = card.open_file(name); + if (!f) { + //putstring_nl(" Couldn't open file"); return; + } + if (!wave.create(f)) { + //putstring_nl(" Not a valid WAV"); return; + } + // ok time to play! + wave.play(); +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/alarma_bisbe_2/applet/alarma_bisbe_2.cpp.o b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.cpp.o new file mode 100644 index 0000000..0df2bfb Binary files /dev/null and b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.cpp.o differ diff --git a/2009/alarma_bisbe_2/applet/alarma_bisbe_2.elf b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.elf new file mode 100644 index 0000000..dc3a751 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.elf differ diff --git a/2009/alarma_bisbe_2/applet/alarma_bisbe_2.hex b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.hex new file mode 100644 index 0000000..672fb37 --- /dev/null +++ b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.hex @@ -0,0 +1,751 @@ +:100000000C949C000C94C4000C94C4000C94C40088 +:100010000C94C4000C94C4000C94C4000C94C40050 +:100020000C94C4000C94C4000C94C4000C94CA0C2E +:100030000C94FE100C94C4000C94C4000C94C400E6 +:100040000C94E5130C94C4000C9466160C94C40034 +:100050000C94C4000C94C4000C94C4000C94C40010 +:100060000C94C4000C94C400746F6F206D616E79A1 +:10007000206F70656E2066696C6573006261642034 +:10008000696E707574005941414B00594545454BA7 +:100090000053616D706C65207261746520746F6FC0 +:1000A0002068696768210000436F6D707265737323 +:1000B000696F6E206E6F7420737570706F727465E7 +:1000C00064006661696C656420746F2067657420E4 +:1000D0006E657720636C7573746572002021212131 +:1000E0002000203F3F3F2000000024272A00002559 +:1000F000282B000023262904040404040404040219 +:1001000002020202020303030303030102040810B4 +:100110002040800102040810200102040810200081 +:1001200000000700020100000304060000000000B8 +:100130000000000048113D1211241FBECFEFD4E093 +:10014000DEBFCDBF11E0A0E0B1E0E8EAFEE202C010 +:1001500005900D92A232B107D9F714E0A2E2B1E006 +:1001600001C01D92A237B107E1F711E0C8E3D1E069 +:1001700004C02297FE010E944E17C433D107C9F76D +:100180000E9436120C9452170C94000008950895A2 +:10019000CB010E94EA020895FC01848195810E94AE +:1001A0007C040895EF92FF920F931F93CF93DF93F8 +:1001B000EB018A0179010BC0B801C7010E94A316A7 +:1001C000009729F4CE010E947C0481E006C0B701AB +:1001D000CE010E948504882379F7DF91CF911F918A +:1001E0000F91FF90EF900895EF92FF920F931F935E +:1001F000DF93CF93CDB7DEB768970FB6F894DEBF25 +:100200000FBECDBF8C017E010894E11CF11C97014B +:100210000E94D200882319F420E030E005C0B70125 +:10022000C8010E945E089C01C90168960FB6F89447 +:10023000DEBF0FBECDBFCF91DF911F910F91FF9019 +:10024000EF900895FC01AB016481758182819381F7 +:100250000E94F4000895EF92FF920F931F93DF9393 +:10026000CF93CDB7DEB768970FB6F894DEBF0FBE59 +:10027000CDBF8B017E010894E11CF11CB701FC018C +:10028000848195810E948504882349F04CE050E0E8 +:10029000B701C8010E94BA16F801148681E0689679 +:1002A0000FB6F894DEBF0FBECDBFCF91DF911F9187 +:1002B0000F91FF90EF900895FC01848195810E9439 +:1002C00076040895EF92FF920F931F93DF93CF93DD +:1002D000CDB7DEB768970FB6F894DEBF0FBECDBFBF +:1002E0008C017E010894E11CF11CB701FC018281A4 +:1002F00093810E942805B701F801828193810E94B1 +:100300000F07F8019583848320E0892B09F021E011 +:10031000822F68960FB6F894DEBF0FBECDBFCF9187 +:10032000DF911F910F91FF90EF9008950F931F930E +:100330008C01FC01808191810E943905F801938331 +:10034000828320E0892B09F021E0822F1F910F91F9 +:1003500008950F93CF93DF93EC0100E020E030E0AD +:1003600040E050E06BEE7AE081E39AE00E94A5085D +:1003700099838883892B69F40FEF20E030E040E017 +:1003800050E06BEE7AE081E39AE00E94A508998341 +:10039000888320E088819981892B09F021E0822FD0 +:1003A000DF91CF910F9108950E94DB090895FC0120 +:1003B000009711F0118210820895DC018C91853E26 +:1003C00039F1882329F1F9012081318182819381DA +:1003D0002817390799F444835583668377831B96DE +:1003E0008C911B978F3011F080E205C08C91829523 +:1003F000880F807E805E808780E008951B968C91B8 +:100400008F3031F02F5F3F4F3183208381E008959B +:1004100081E008950F931F93CF93DF938C01FC012C +:100420008081853E09F48CC0882309F489C0E901E4 +:100430008C899D89AE89BF890097A105B10521F4FA +:100440004C8B5D8B6E8B7F8B209709F479C00115E7 +:10045000110509F475C0F8018081882309F470C082 +:1004600083858F3011F481E06CC0A801D80180E051 +:1004700090E0282F3C91303251F0FE01E80FF91F37 +:1004800030832F5F019611968830910591F788810E +:10049000853011F485EE8883F80180858032B1F0D3 +:1004A000FE01E20FF11D8EE28083822F8F5F2C5FB1 +:1004B000FA019085903249F0FE01E80FF11D90831A +:1004C0008F5F4F5F5F4F821799F7282FFE01E20F72 +:1004D000F11D1082F80183858D87938D80E0228D38 +:1004E00030E0822B932B9F878E87258D30E040E074 +:1004F00050E0542F432F322F2227868D90E0A0E02A +:10050000B0E0DC0199278827282B392B4A2B5B2B5D +:10051000848D90E0A0E0B0E0282B392B4A2B5B2B98 +:10052000878D90E0A0E0B0E0B82FAA279927882710 +:10053000282B392B4A2B5B2B288B398B4A8B5B8BD7 +:1005400080E0DF91CF911F910F910895DF93CF93BA +:1005500000D0CDB7DEB7DC010097A1F162307105A4 +:1005600088F1ED91FC911197660F771F80E090E084 +:1005700016962D913D914D915C911997620F731FC5 +:10058000841F951F0190F081E02D22E030E0AE0144 +:100590004F5F5F4F09958823A9F09A8180E02981F8 +:1005A00030E0282B392B2115310571F08FEF273FD3 +:1005B000380741F0C9014096079720F08FEF283F98 +:1005C000380710F020E030E0C9010F900F90CF9174 +:1005D000DF910895FC01009711F0118210820895B7 +:1005E0002F923F924F925F926F927F928F929F9243 +:1005F000AF92BF92CF92DF92EF92FF920F931F9331 +:10060000DF93CF93CDB7DEB72C970FB6F894DEBF4C +:100610000FBECDBF3C0178876F835A87498700970B +:1006200009F402C1672B09F4FFC0452B09F4FCC093 +:10063000DC015A96AD90BD90CD90DC905D975296BE +:100640002D913D914D915C915597E985FA85CF01AA +:10065000A0E0B0E08A0D9B1DAC1DBD1D2817390719 +:100660004A075B0740F4B9016A197B097A876987F1 +:10067000672B09F4DCC0D301ED91FC91119720891F +:1006800031893A8329835E966D917C915F977C874F +:100690006B87C901A0E0B0E08B839C83AD83BE83F0 +:1006A000672BE1F5F3010088F189E02DFC87EB87EA +:1006B000EF2B39F4A114B104C104D10409F4B7C07B +:1006C000B3C0A114B104C104D10441F18601750184 +:1006D0002B803C804D805E805094409430942094D8 +:1006E000211C311C411C511C10C06B857C85D30121 +:1006F0008D919C910E94A6029C878B87892B09F47F +:1007000093C0E20CF31C041D151D6B817C818D814F +:100710009E81E616F7060807190738F7C601B501E6 +:100720002B813C814D815E810E940F172B018984B2 +:100730009A84D301ED91FC91A980BA80A418B508E0 +:100740008A149B0408F45401C080D180720100E037 +:1007500010E086899789A08DB18DE80EF91E0A1FD9 +:100760001B1FEB85FC853297BF0180E090E032963D +:10077000FC87EB872B813C814D815E810E94C916ED +:10078000E60EF71E081F191FD601ED91FC91950189 +:100790004F815885C801B7010995882361F18A18EE +:1007A0009B08C501A0E0B0E0F301228D338D448D9C +:1007B000558D280F391F4A1F5B1FD3015A962D9361 +:1007C0003D934D935C935D97C501840D951DE98123 +:1007D000FA818E179F07B0F06B857C858D919C9177 +:1007E0000E94A6029C878B87892B51F4D3015F96C8 +:1007F0001C921E925E9749855A854819590919C05D +:10080000442455242B853C85F301378F268F811492 +:10081000910439F06F8178856A0D7B1D78876F832D +:1008200088CF49855A8505C04FEF5FEF02C040E091 +:1008300050E0CA012C960FB6F894DEBF0FBECDBFB4 +:10084000CF91DF911F910F91FF90EF90DF90CF90AC +:10085000BF90AF909F908F907F906F905F904F90E0 +:100860003F902F900895CF93DF93FC01EB01009709 +:10087000C9F161157105B1F1828D938DA48DB58D8E +:10088000413051F0413018F0423061F50AC0288102 +:1008900039814A815B8111C0288139814A815B811C +:1008A00008C0288139814A815B8182899389A48922 +:1008B000B589280F391F4A1F5B1F82899389A48934 +:1008C000B58982179307A407B50760F0228F338F8D +:1008D000448F558F178E168E288339834A835B8306 +:1008E00081E001C080E0DF91CF910895FC01009785 +:1008F00011F0118210820895FC01009711F480E03C +:100900000895138E128E81E008952F923F924F9298 +:100910005F926F927F928F929F92AF92BF92CF928F +:10092000DF92EF92FF920F931F93DF93CF93CDB798 +:10093000DEB7A9970FB6F894DEBF0FBECDBF3C015E +:100940002B01009709F44AC06115710509F446C0EE +:10095000FC0180899189892B09F040C0228D338D5B +:10096000A081B1811097B9F1ED91FC91119722808E +:100970003380AE014F5F5F4F89E0FA0111928A9593 +:10098000E9F73C832B8352966D917D918D919C91DB +:10099000559756960D911C915797061B170B6A0198 +:1009A0002DEDE22E21E0F22E20E230E0AE01465F96 +:1009B0005F4FF1010995882371F08D809E80AF8093 +:1009C000B88481149104A104B10429F021C0F2017A +:1009D00080818823A9F5F301138E128E80E0A996F9 +:1009E0000FB6F894DEBF0FBECDBFCF91DF911F9140 +:1009F0000F91FF90EF90DF90CF90BF90AF909F90BE +:100A00008F907F906F905F904F903F902F900895C0 +:100A100088E1F20111928A95E9F7098562019AE06D +:100A2000E92E92E0F92E10E020E230E0AE01465FC0 +:100A30005F4FC501B401F1010995882361F2C7CF69 +:100A4000F301828D938D0196938F828F81E0C7CFC2 +:100A5000FB01892B61F06115710549F088E1DB012B +:100A60001D928A95E9F780E1858781E0089580E00D +:100A700008952F923F924F925F926F927F928F9242 +:100A80009F92AF92BF92CF92DF92EF92FF920F931D +:100A90001F93DF93CF93CDB7DEB7E0970FB6F894EF +:100AA000DEBF0FBECDBF6C01009709F490C1ABC192 +:100AB000EAE7F1E08AE1DF011D928A95E9F7D09239 +:100AC0007B01C0927A01D60119962D913D914D91ED +:100AD0005C911C9719E0220F331F441F551F1A9574 +:100AE000D1F72AA33BA34CA35DA3CA01B901655F5B +:100AF0007F4F8F4F9F4FED91FC9129E130E0AE0188 +:100B00004F5F5F4F0995882309F484C1A9804A800B +:100B1000BB81BEA30C81FD801E813F815884698406 +:100B20007A849D8580E02C85E22FF0E0E82BF92B7C +:100B30008E883F88288DE98C309709F46BC1432D4E +:100B400050E060E070E0962F852F742F662769A72C +:100B50007AA78BA79CA7822F90E0A0E0B0E0BC0111 +:100B60005527442789A59AA5ABA5BCA5842B952B11 +:100B7000A62BB72B482D50E060E070E0842B952B1E +:100B8000A62BB72B89A79AA7ABA7BCA78E2D90E061 +:100B9000A0E0B0E0782F66275527442789A59AA5BD +:100BA000ABA5BCA5842B952BA62BB72B89A79AA701 +:100BB000ABA7BCA70097A105B10589F4972D80E0EC +:100BC000662D70E0682B792B6115710509F422C13F +:100BD000CB01A0E0B0E089A79AA7ABA7BCA7942D52 +:100BE00080E02A2C3324282A392A952D80E0A32F4F +:100BF000B0E0A82BB92BB8A7AFA39F2D80E0202F82 +:100C000030E0822B932B9C0140E050E02A8F3B8FF9 +:100C10004C8F5D8FBF0180E090E0212F30E040E0FD +:100C200050E00E94C9166E8F7F8F88A399A3E9A414 +:100C3000FAA40BA51CA54A8D5B8D6C8D7D8DE41AE5 +:100C4000F50A060B170B6E8D7F8D88A199A1E61A08 +:100C5000F70A080B190BC10101972FA138A5B5E0C0 +:100C6000220F331FBA95E1F7820F931FB1010E9443 +:100C7000E81680E090E0E61AF70A080B190B7EA14F +:100C8000272F30E040E050E0C801B7010E940F1765 +:100C900029013A01D301C201855F9F40A040B040C5 +:100CA0008050904FA040B04008F0B4C086E0D6011C +:100CB00018968C93ACE78A2EA1E09A2E88E1F40175 +:100CC00011928A95E9F75101CC24DD2469A57AA512 +:100CD0008BA59CA5A60195010E94C91660937C0175 +:100CE00070937D0180937E0190937F01C601B501D1 +:100CF0002A8D3B8D4C8D5D8D0E94C9167B018C0128 +:100D00002AA13BA14CA15DA1E20EF31E041F151FF9 +:100D1000E0928001F092810100938201109383019F +:100D200042E050E060E070E0440E551E661E771E03 +:100D3000440C551C661C771C40928401509285011E +:100D40006092860170928701309289012092880119 +:100D50005EA1852F90E0BC01269EC001279E900DCC +:100D6000369E900D112490938B0180938A016E8D95 +:100D70007F8D88A199A1A60195010E94C9166E0DCB +:100D80007F1D801F911F60938C0170938D01809354 +:100D90008E0190938F01AFA1B8A59D0140E050E076 +:100DA000E5E0220F331F441F551FEA95D1F7620F6C +:100DB000731F841F951F609390017093910180931E +:100DC00092019093930194012250304002C020E0A0 +:100DD00030E0C901E0960FB6F894DEBF0FBECDBF7C +:100DE000CF91DF911F910F91FF90EF90DF90CF9007 +:100DF000BF90AF909F908F907F906F905F904F903B +:100E00003F902F90089580917A0190917B01892BDA +:100E1000F1F64ECE10927B0110927A01D8CFCF938B +:100E2000DF939C01DB01009729F16115710511F138 +:100E30001D968C911D9784FF1DC080912201909179 +:100E40002301892B19F4E2E2F1E008C080913E0110 +:100E500090913F01892B71F4EEE3F1E0EF012296CE +:100E600088E10D9009928150E1F731832083138E40 +:100E7000128E02C0E0E0F0E0CF01DF91CF91089543 +:100E80002F923F924F925F926F927F928F929F929A +:100E9000AF92BF92CF92DF92EF92FF920F931F9388 +:100EA000DF93CF93CDB7DEB72A970FB6F894DEBFA6 +:100EB0000FBECDBF4C017C836B831A01009709F4F0 +:100EC000DEC0672B09F4DBC04115510509F4D7C01A +:100ED000DC015A96ED90FD900D911C915D9780E09C +:100EE0009EEFAFEFBFEFE822F9220A231B23D401C4 +:100EF0005A96ED92FD920D931C935D9752962D910B +:100F00003D914D915C9155972E153F054007510736 +:100F100008F4B8C0C101A0E0B0E08E0D9F1DA01F75 +:100F2000B11F281739074A075B0728F419012E1843 +:100F30003F0809F4A7C0D401ED91FC9111972089D5 +:100F400031893A8329835E968D919C915F979A8728 +:100F50008987290166247724892BD9F550960D902D +:100F6000BC91A02DBA87A987AB2B39F4E114F10409 +:100F70000105110509F486C082C0E114F1040105E0 +:100F8000110539F15701680188279927DC01841977 +:100F90009509A609B7098D839E83AF83B88714C0CE +:100FA00069857A85D4018D919C910E94A6029A87C9 +:100FB0008987892B09F463C08D819E81AF81B885B3 +:100FC000A80EB91ECA1EDB1EA414B504C604D7049D +:100FD00038F7510191E0291692E0390618F0A12C5A +:100FE00082E0B82EC801B701A30192010E940F1739 +:100FF0007B0129813A81261B370B65012A153B05A8 +:1010000008F4690100E010E0D401ED91FC918689BB +:101010009789A08DB18DE80EF91E0A1F1B1FE98567 +:10102000FA853297BF0180E090E03296FA87E9872F +:10103000A30192010E94C916E60EF71E081F191F90 +:1010400096014B815C81C801B7010E943D0C892B40 +:10105000C9F0960140E050E0F401828D938DA48D9B +:10106000B58D820F931FA41FB51F828F938FA48FFE +:10107000B58F29853A85378F268FA50105C04FEF9B +:101080005FEF02C040E050E0CA012A960FB6F89424 +:10109000DEBF0FBECDBFCF91DF911F910F91FF90AB +:1010A000EF90DF90CF90BF90AF909F908F907F9008 +:1010B0006F905F904F903F902F900895CF93DF9364 +:1010C0009C01FB01009731F06115710519F08585D0 +:1010D00084FF2CC060E08CE790E003C060E088E60D +:1010E00090E00E94A60C20E030E0C901DF91CF9192 +:1010F0000895CCE5D1E0DF0188E10D90099281509F +:10110000E1F730935B0120935A0110927401109221 +:1011100075011092760110927701868597859093DC +:101120007901809378012AE531E0DFCF80915A017F +:1011300090915B01892B91F6DCCFFC01009711F4B3 +:1011400080E00895108681E008958F929F92AF927B +:10115000BF92CF92DF92EF92FF920F93DF93CF93E4 +:10116000CDB7DEB760970FB6F894DEBF0FBECDBF28 +:101170007C016B015A014901009709F493C0611584 +:10118000710509F48FC004300CF08CC007FD1DC040 +:10119000602F772767FD7095E4E0660F771FEA956B +:1011A000E1F762547E4F882777FD8095982F20E1E4 +:1011B00030E0AE014F5F5F4FF7010995882309F4D6 +:1011C00071C08D81882309F46DC080919C018823B2 +:1011D00009F068C07CC08D8180939C012A8530E035 +:1011E00040E050E0542F432F322F22278B8590E090 +:1011F000A0E0B0E0DC0199278827282B392B4A2B67 +:101200005B2B898590E0A0E0B0E0282B392B4A2B9E +:101210005B2B8C8590E0A0E0B0E0B82FAA2799273F +:101220008827282B392B4A2B5B2B20939D01309349 +:101230009E0140939F015093A0012E8530E040E035 +:1012400050E0542F432F322F22278F8590E0A0E0CB +:10125000B0E0DC0199278827282B392B4A2B5B2B00 +:101260008D8590E0A0E0B0E0282B392B4A2B5B2B3A +:10127000888990E0A0E0B0E0B82FAA2799278827B6 +:10128000282B392B4A2B5B2B2093A1013093A201F1 +:101290004093A3015093A40103C08FEF80939C015E +:1012A0009F0102C020E030E0C90160960FB6F894BB +:1012B000DEBF0FBECDBFCF91DF910F91FF90EF90BA +:1012C000DF90CF90BF90AF909F908F900895E4E90A +:1012D000F1E081E1DF011D928A95E9F7F092950135 +:1012E000E0929401D0929701C0929601B092990138 +:1012F000A092980190929B0180929A0107FF6BCF78 +:10130000CCCF81E0089581E00895282F8FEF8EBD26 +:101310000DB407FEFDCF8DB58F778DBD8EB5822FB5 +:1013200080648EBD0DB407FEFDCF8DB58F778DBD6A +:10133000872F9927AA27BB278EBD0DB407FEFDCFA7 +:101340008DB58F778DBDCB01AA27BB278EBD0DB480 +:1013500007FEFDCF8DB58F778DBDBB27A72F962FAD +:10136000852F8EBD0DB407FEFDCF8DB58F778DBD5A +:101370004EBD0DB407FEFDCF8DB58F778DBD2223F9 +:1013800011F08FEF01C085E98EBD0DB407FEFDCFD2 +:101390008DB58F778DBD90E02FEF2EBD0DB407FE7C +:1013A000FDCF8DB58F778DBD8EB58F3F19F49F5FC3 +:1013B0009A3099F70895CF93DF93239A259A229A2A +:1013C00024982A9A83E58CBD8DB58E7F8DBD20E053 +:1013D00030E09FEF9EBD0DB407FEFDCF8DB58F773A +:1013E0008DBD8EB52F5F3F4F2A30310599F72A9872 +:1013F000C0E0D0E040E050E060E070E080E00E94BB +:101400008509813031F081E0CF3FD807E1F02196A6 +:10141000F1CFC0E0D0E040E050E060E070E081E07B +:101420000E94850980FF06C08FE7CF3FD80759F09B +:101430002196F1CF40E052E060E070E080E10E9450 +:101440008509882319F02A9A80E008C02A9A8CB569 +:101450008C7F8CBD8DB581608DBD81E0DF91CF919A +:1014600008958F929F92AF92BF92DF92EF92FF9278 +:101470000F931F93CF93DF937B018C015A01E901F6 +:10148000DD24DA94812C42E0942E5EC02A98B801C3 +:10149000A70140705E7F81E10E948509882319F0D1 +:1014A0002A9A80E055C0DEBC0DB407FEFDCF8DB595 +:1014B0008F778DBD8EB58E3FB1F7A7015170B40106 +:1014C000641B750BC617D70708F4BE01FB01E40FB8 +:1014D000F51F20E030E0DEBC0DB407FEFDCF8DB57A +:1014E0008F778DBD8EB52417350730F02E173F0747 +:1014F00018F4D5018D935D012F5F3F4FB2E020308E +:101500003B0749F7DEBC0DB407FEFDCF8DB58F77E5 +:101510008DBD8EB5DEBC0DB407FEFDCF8DB58F77CA +:101520008DBD8EB52A9ADEBC0DB407FEFDCF8DB5FC +:101530008F778DBD8EB5C61BD70BCB01A0E0B0E079 +:10154000E80EF91E0A1F1B1F209709F09FCF81E0AC +:10155000DF91CF911F910F91FF90EF90DF90BF909F +:10156000AF909F908F9008952091000130910101DC +:101570009FEF0AC09EBD0DB407FEFDCF8DB58F77DE +:101580008DBD8EB52F5F3F4F82E02030380790F33E +:101590008FEF8EBD0DB407FEFDCF8DB58F778DBD5E +:1015A0008EB58FEF8EBD0DB407FEFDCF8DB58F7755 +:1015B0008DBD8EB52A9A8FEF8EBD0DB407FEFDCF7F +:1015C0008DB58F778DBD8EB58FEF9FEF9093010115 +:1015D0008093000108952F923F924F925F926F92F5 +:1015E0007F928F929F92AF92BF92CF92DF92EF92B3 +:1015F000FF920F931F93DF93CF93CDB7DEB72C9756 +:101600000FB6F894DEBF0FBECDBF4B015C011A01CF +:101610003C872B872801FE82ED82D886CF82411538 +:10162000510509F4DAC02115310509F4D6C00217B5 +:10163000130708F4D2C0EF2809F4CFC02A983095D8 +:1016400021953F4F3A87298784011170D501C40144 +:1016500080709E7F89839A83AB83BC83AC01BD017C +:1016600081E10E948509882311F02A9AB6C09FEF74 +:101670009EBD0DB407FEFDCF8DB58F778DBD8EB5A8 +:101680008E3FA9F720E030E00BC0AFEFAEBD0DB448 +:1016900007FEFDCF8DB58F778DBD8EB52F5F3F4F88 +:1016A0002017310790F3E12C52E0F52EE01AF10AF1 +:1016B0003701EB85FC856E1A7F0A6201CE1ADF0ABC +:1016C00000E012E00E191F092B853C85E216F30697 +:1016D00048F14216530630F1F10120E030E00CC031 +:1016E0008FEF8EBD0DB407FEFDCF8DB58F778DBD0D +:1016F0008EB581932F5F3F4FAB85BC852A173B0783 +:1017000078F3A80160E070E0480D591D6A1D7B1D4B +:101710002F813885C101ED81FE810995882321F44F +:1017200091E026C090E024C02B853C85E21AF30AA4 +:10173000421A530A61147104A9F389859A85680EC7 +:10174000791EC80ED91E020F131FC9018C0D9D1DD5 +:10175000892B09F0B9CFE6CFAFEFAEBD0DB407FED0 +:10176000FDCF8DB58F778DBD8EB50894E108F1085A +:10177000E114F10489F7BFEFBEBD0DB407FEFDCF44 +:101780008DB58F778DBD8EB5EFEFEEBD0DB407FE35 +:10179000FDCF8DB58F778DBD8EB52B853C854216DF +:1017A000530678F0992369F489809A80AB80BC80D5 +:1017B00080E092E0A0E0B0E0880E991EAA1EBB1E59 +:1017C00043CF2A9A8FEF8EBD0DB407FEFDCF8DB5A6 +:1017D0008F778DBD8EB581E001C080E02C960FB66D +:1017E000F894DEBF0FBECDBFCF91DF911F910F9157 +:1017F000FF90EF90DF90CF90BF90AF909F908F9031 +:101800007F906F905F904F903F902F900895FC01D4 +:1018100020910001309101014FEF2F3F340731F447 +:1018200060E086E890E00E94A60CFFCFCB01820F1B +:10183000931F8150924020F060E072E0621B730BB6 +:1018400020E030E04FEF14C04EBD0DB407FEFDCFD9 +:101850008DB58F778DBD8EB581938091000190916C +:101860000101019690930101809300012F5F3F4F8A +:101870002617370748F3CB010895CF92DF92EF92F6 +:10188000FF920F931F93CF93DF937B018C016A012B +:1018900080910001909101018F5F9F4F31F060E0D6 +:1018A0008BE890E00E94A60CFFCFE90182E0213096 +:1018B000380710F0C0E0D2E02A9880E09EEFAFEF4A +:1018C000BFEFE822F9220A231B23B801A70181E117 +:1018D0000E948509882321F02A9AC0E0D0E02CC01C +:1018E0009FEF9EBD0DB407FEFDCF8DB58F778DBDEB +:1018F0008EB58E3FB1F710920101109200012FEFCB +:1019000014C02EBD0DB407FEFDCF8DB58F778DBDF4 +:101910008EB5D6018D936D018091000190910101EA +:1019200001969093010180930001809100019091B4 +:1019300001018C179D0728F3CE01DF91CF911F91F4 +:101940000F91FF90EF90DF90CF9008950F931F932A +:10195000CF93DF93EC01062F10E005C084EE93E0F7 +:101960000E9456121F5FFE01E10FF11D6491662374 +:10197000A9F7002351F06AE084EE93E00E945E1222 +:101980006DE084EE93E00E945E12DF91CF911F9193 +:101990000F9108951F920F920FB60F9211242F935B +:1019A0003F934F938F939F93AF93BF93EF93FF9387 +:1019B000E091A501F091A601309709F4A8C020910B +:1019C000AB033091AC038091AD039091AE03281727 +:1019D000390709F047C08091B0038823B9F180919D +:1019E000A7039091A80327EA32E041E0873A9407E1 +:1019F00049F43093A8032093A7039093AA038093FC +:101A0000A9030AC087EA91E09093A8038093A703F3 +:101A10003093AA032093A9038091A7039091A80370 +:101A20009093AC038093AB0380509F4F9093AE0391 +:101A30008093AD031092B0038091AF03882391F49B +:101A400080916F00846080936F000CC081899289BF +:101A5000A389B4890196A11DB11D818B928BA38BA3 +:101A6000B48B55C05A985C985B9A5B985C9A5B9A69 +:101A70005B985B9A5B985B9A5B988781803119F5DC +:101A8000E091AB03F091AC038181805890E087FF37 +:101A900002C05C9A01C05C985B9A5B989F5F98302B +:101AA00011F0880FF4CF908180E097FF02C05C9A1C +:101AB00001C05C985B9A5B988F5F843011F0990F3E +:101AC000F4CF32961DC08830F9F4E091AB03F09169 +:101AD000AC03908180E097FF02C05C9A01C05C98E3 +:101AE0005B9A5B988F5F883011F0990FF4CF5B9A07 +:101AF0005B985B9A5B985B9A5B985B9A5B98319674 +:101B0000F093AC03E093AB035A9A5D985D9AFF9112 +:101B1000EF91BF91AF919F918F914F913F912F91F5 +:101B20000F900FBE0F901F90189508950895DC0137 +:101B30005696ED91FC9157976289738984899589AE +:101B400008959A01AB0160E074E284EF90E00E9496 +:101B50000F1730938900209388000895CF93DF9367 +:101B6000EC0180916F008D7F80936F008D898823B9 +:101B700019F00E94B40A1D8AE091A501F091A60116 +:101B8000108A1092A6011092A501DF91CF910895BD +:101B90000F931F93DF93CF9300D000D0CDB7DEB764 +:101BA0008C01407049835A836B837C83DC0150969F +:101BB0008C91882351F0F894F8018589882329F0C5 +:101BC0000E94B40AD80155961C9240E0BE016F5F96 +:101BD0007F4FF801868997890E943304D801569671 +:101BE000ED91FC91579782899389A489B5892981C0 +:101BF0003A814B815C81821B930BA40BB50BF801DE +:101C000080879187A287B38778940F900F900F9069 +:101C10000F90CF91DF911F910F910895CF92DF9296 +:101C2000EF92FF920F931F93DF93CF93CDB7DEB761 +:101C300028970FB6F894DEBF0FBECDBF8C016B01A5 +:101C400044E050E07E010894E11CF11CB701C6019C +:101C50000E94F002049709F0F0C044E050E062E016 +:101C600071E0C7010E94AC16009709F0E6C0F5C00C +:101C700044E050E067E071E0CE0105960E94AC16AA +:101C8000009709F0DAC0F2C044E050E06CE071E087 +:101C9000C7010E94AC16009709F0CFC0F0C0542FC6 +:101CA000432F322F22278081280F311D411D511DC6 +:101CB0003197EC17FD0799F7F80124873587468798 +:101CC0005787203131054105510509F0B6C048E07C +:101CD00050E0BE016F5F7F4FC6010E94F00208977F +:101CE00009F0ABC08A8190E0A0E0B0E0BA2FA92F44 +:101CF000982F88272981820F911DA11DB11D019761 +:101D0000A105B10521F061E088EA90E084C08C81F2 +:101D100090E0A0E0B0E02227382F492F5A2F8B8186 +:101D2000280F311D411D511D23303105410551053D +:101D300008F083C0F8012083FE013896BE016C5F75 +:101D40007F4F542F432F322F22278081280F311DA0 +:101D5000411D511D3197E617F70799F7F8012183C7 +:101D600032834383548348E050E0BE016F5F7F4F6E +:101D7000C6010E94F002089709F05FC08E8190E0D2 +:101D8000A0E0B0E0BA2FA92F982F88272D81820FCD +:101D9000911DA11DB11DF80196838583888590E072 +:101DA000A0E0B0E02227382F492F5A2F8F81280F2B +:101DB000311D411D511D213131054105510508F0ED +:101DC0003CC0278381819281A381B4818332F6E56F +:101DD0009F07F0E0AF07F0E0BF0718F0293040F0B0 +:101DE0000CC081589E43A040B04050F0293040F0D4 +:101DF000FF24F8018081823020F0FF24F39401C099 +:101E0000FF2461E087EA90E00E94A60CFF2031F0F9 +:101E100061E081E990E00E94A60C0FC0F8011086F5 +:101E2000118612861386D78AC68A118A128A138A65 +:101E3000148A108A158A81E001C080E028960FB6C6 +:101E4000F894DEBF0FBECDBFCF91DF911F910F91F0 +:101E5000FF90EF90DF90CF90089548E050E0B701F9 +:101E6000C6010E94F002089741F702CF44E050E01B +:101E7000B701C6010E94F0020497F9F605CFF801F8 +:101E8000148615861686178644E050E0B701C60111 +:101E90000E94F002049789F6F8012485358546856D +:101EA0005785FE013496FBCEAF92BF92CF92DF9260 +:101EB000EF92FF920F931F93DF93CF9300D000D048 +:101EC0000F92CDB7DEB76C015B01F42EE52EFC015D +:101ED00080859185A285B3850097A105B105D1F5CF +:101EE00044E050E08E010F5F1F4FB801868997894B +:101EF0000E94F002049709F0F5C01D8244E050E012 +:101F0000B801D60156968D919C9157970E94F00288 +:101F1000049709F0E7C0F601108611861286138631 +:101F2000FE01349620E030E040E050E0542F432F93 +:101F3000322F22278081280F311D411D511D3197DD +:101F4000EC17FD0799F7D60118962D933D934D9305 +:101F50005C931B978F2D9E2D9C017901B2E021305F +:101F60003B0718F0E12C72E0F72EF6012085318551 +:101F700042855385C701A0E0B0E0281739074A071A +:101F80005B0708F47901D6015696ED91FC915797BD +:101F9000828D938DA48DB58D9170A070B0700097D7 +:101FA000A105B105D1F4D60155968C918823A9F4E9 +:101FB000A701B501CF010E9440078C018E159F0536 +:101FC00041F060E082EE90E00E94A60C0E94B40A0C +:101FD0008BC081E0F601858B73C0D60155968C913C +:101FE000882309F463C0B701C5010E94070C5C0196 +:101FF0008E159F0539F060E08CED90E00E94A60CF4 +:102000000E94B40AD6015696ED91FC915797C501EE +:10201000A0E0B0E0228D338D448D558D820F931F4B +:10202000A41FB51F828F938FA48FB58F9170A0705E +:10203000B0700097A105B10509F041C00E94B40A33 +:10204000F601158A06891789D801ED90FC90119741 +:10205000F7012089318940E050E05A966D917D91D9 +:102060008D919C915D970E940F17611571058105F7 +:10207000910529F5D8015E966D917C915F97C70116 +:102080000E94A602F801978F868F892BC1F4D60192 +:102090005696ED91FC915797178E168E61E082EC63 +:1020A00090E00E94A60C0FEF1FEF1EC0A701B50124 +:1020B000CF010E94F0028E159F05A1F401C07501A9 +:1020C000970140E050E0F60180859185A285B385B7 +:1020D000821B930BA40BB50B80879187A287B387D4 +:1020E000870102C000E010E0C8010F900F900F9030 +:1020F0000F900F90CF91DF911F910F91FF90EF9074 +:10210000DF90CF90BF90AF900895CF92DF92EF9283 +:10211000FF920F931F93CF93DF93EC01C980DA8076 +:10212000EB80FC809093A6018093A50107EA11E063 +:102130001093AC030093AB0342E050E0B8010E945F +:10214000540F892B09F451C08091AB039091AC03DB +:1021500002969093AE038093AD03EE89FF89828D42 +:1021600040E051E0481B5109B8016E5F7F4F8091FC +:10217000A5019091A6010E94540F9C010097A9F11E +:102180008091AD039091AE03820F931F9093AE03A5 +:102190008093AD0340E051E067EA72E08091A501D1 +:1021A0009091A6010E94540F81E08093B003888B28 +:1021B0001092800089E08093810060E074E284EFF7 +:1021C00090E0A70196010E940F1730938900209399 +:1021D000880081E090E090938B0080938A0080914A +:1021E0006F00826080936F007894DF91CF911F9190 +:1021F0000F91FF90EF90DF90CF9008951F920F9274 +:102200000FB60F9211242F933F934F935F936F93C9 +:102210007F938F939F93AF93BF93EF93FF9380919F +:102220006F008B7F80936F008091B0038823F9F457 +:1022300081E08093AF0378946091A9037091AA0321 +:1022400040E051E08091A5019091A6010E94540FB9 +:10225000892B31F48091A5019091A6010E94AE0DC9 +:10226000F8941092AF0381E08093B0037894FF91CB +:10227000EF91BF91AF919F918F917F916F915F91FE +:102280004F913F912F910F900FBE0F901F90189577 +:1022900083EB93E00E94C7008BEB93E00E94960DC6 +:1022A00008950F931F93BC0183EB93E00E942201DA +:1022B0009093BA038093B9030BEB13E0BC01C80100 +:1022C0000E940E0EC8010E9485101F910F91089563 +:1022D0000F931F9381E191E00E94511110E000E003 +:1022E00045C0112339F468EE73E080E090E00E946D +:1022F000501402C01B3028F460E571E080E090E0EB +:102300001FC0812F8B50843128F460EF70E080E093 +:1023100090E016C0812F8F518E3128F460E570E077 +:1023200080E090E00DC0812F8D538C3328F460E263 +:1023300070E080E090E004C068E070E080E090E051 +:102340000E9450141F3F21F0002331F41F5F09C089 +:10235000002331F401E005C0112311F400E001C0B5 +:102360001150612F70E086E00E94E3148091CB034E +:10237000882309F0B6CF6091B9037091BA0383EB5B +:1023800093E00E94C80060E070E086E00E94E314E1 +:102390001F910F9108950F931F93DF93CF93CDB7A4 +:1023A000DEB72D970FB6F894DEBF0FBECDBF83EB1F +:1023B00093E00E94CC008E010F5F1F4FB80183EBAA +:1023C00093E00E942B01882379F483EB93E00E9431 +:1023D000CC002D960FB6F894DEBF0FBECDBFCF91C7 +:1023E000DF911F910F910895B80184EE93E00E9450 +:1023F000A512E4CF40E855E260E070E084EE93E09F +:102400000E94511261E082E00E94371561E083E092 +:102410000E94371561E084E00E94371561E085E095 +:102420000E94371561E086E00E94371583EB93E048 +:102430000E94D4018823C9F083EB93E00E94A90194 +:10244000882399F083EB93E00E949601882369F03A +:1024500083EB93E00E946201882339F00E94CB1144 +:1024600060E070E086E00E94E31408950E94881402 +:102470000E94FA110E946811FDCF8FE191E09093C4 +:10248000E5038093E4030895862F0E94251608959E +:102490000E945D1608950E943E1608950E942D1612 +:1024A0000895CB01BA010E94EC150895DC01ED916D +:1024B000FC910190F081E02D09950895DC01ED91EA +:1024C000FC910190F081E02D099508950F931F93E1 +:1024D000CF93DF938C01EB0109C02196D801ED91D8 +:1024E000FC910190F081E02DC80109956881662377 +:1024F000A1F7DF91CF911F910F9108950F931F9333 +:102500008C01DC01ED91FC910190F081E02D6DE0FA +:102510000995D801ED91FC910190F081E02D6AE0E0 +:10252000C80109951F910F9108950F931F938C0176 +:10253000DC01ED91FC910190F081E02D0995C8013D +:102540000E947E121F910F9108950F931F938C018B +:102550000E946612C8010E947E121F910F91089579 +:102560000F931F938C01DC01ED91FC910190F081A0 +:10257000E02D0995C8010E947E121F910F910895C8 +:102580002F923F924F925F926F927F928F929F9283 +:10259000AF92BF92CF92DF92EF92FF920F931F9371 +:1025A000DF93CF93CDB7DEB7A0970FB6F894DEBF19 +:1025B0000FBECDBF1C016A017B01411551056105AC +:1025C000710549F4DC01ED91FC910190F081E02D61 +:1025D00060E3099554C0882499245401422E55245F +:1025E0006624772401E010E00C0F1D1F080D191D53 +:1025F000C701B601A30192010E940F17F801608381 +:102600000894811C911CA11CB11CC701B601A30137 +:1026100092010E940F17C901DA016C017D01C114FA +:10262000D104E104F104F1F681E0E82EF12CEC0E86 +:10263000FD1EE80CF91C3E010894611C711CD501BB +:10264000C4010197A109B1096C01C818D90814C0C7 +:10265000F601EE0DFF1D60816A3010F4605D01C06F +:10266000695CD101ED91FC910190F081E02DC101F7 +:1026700009950894E108F1086E147F0449F7A096C3 +:102680000FB6F894DEBF0FBECDBFCF91DF911F9183 +:102690000F91FF90EF90DF90CF90BF90AF909F9001 +:1026A0008F907F906F905F904F903F902F90089504 +:1026B0002AE00E94C01208950F931F938C010E947C +:1026C0005813C8010E947E121F910F910895AB010B +:1026D00060E070E00E94581308950F931F938C01DF +:1026E000AB0160E070E00E945813C8010E947E12A6 +:1026F0001F910F910895EF92FF920F931F93CF9325 +:10270000DF93EC017A018B0177FF0FC0E881F9813B +:102710000190F081E02D6DE2099510950095F094FF +:10272000E094E11CF11C011D111D2AE0B801A70174 +:10273000CE010E94C012DF91CF911F910F91FF90A7 +:10274000EF9008950F931F938C010E947B13C80193 +:102750000E947E121F910F910895AB01662757FDCD +:102760006095762F0E947B1308950F931F938C0121 +:10277000AB01662757FD6095762F0E947B13C80139 +:102780000E947E121F910F910895DC0121153105E1 +:1027900041F4ED91FC910190F081E02D642F0995B9 +:1027A00008952A30310519F40E947B1308950E9480 +:1027B000C01208950F931F938C010E94C513C80186 +:1027C0000E947E121F910F9108951F920F920FB6D3 +:1027D0000F9211242F938F939F93AF93BF93809168 +:1027E000E6039091E703A091E803B091E9038050DC +:1027F000904CAF4FBF4F8093E6039093E703A093B5 +:10280000E803B093E90327C08091E6039091E703C2 +:10281000A091E803B091E90380589E43A040B040E6 +:102820008093E6039093E703A093E803B093E90352 +:102830008091EA039091EB03A091EC03B091ED033A +:102840000196A11DB11D8093EA039093EB03A09321 +:10285000EC03B093ED038091E6039091E703A09120 +:10286000E803B091E90381589E43A040B04060F670 +:10287000BF91AF919F918F912F910F900FBE0F90AD +:102880001F9018958FB7F8942091EA033091EB03CD +:102890004091EC035091ED038FBFB901CA01089537 +:1028A000EF92FF920F931F937B018C018FB7F894E7 +:1028B0004091EA035091EB036091EC037091ED03BA +:1028C0008FBF2FB7F8948091EA039091EB03A0910A +:1028D000EC03B091ED032FBF841B950BA60BB70B38 +:1028E0008E159F05A007B10760F31F910F91FF9010 +:1028F000EF900895019759F0FC01EE0FFF1FEE0FC6 +:10290000FF1F32978FB7F8943197F1F78FBF089573 +:10291000789484B5826084BD84B5816084BD85B5BA +:10292000826085BD85B5816085BDEEE6F0E0808181 +:1029300081608083E1E8F0E0808182608083808133 +:1029400081608083E0E8F0E0808181608083E1EB5A +:10295000F0E0808184608083E0EBF0E08081816042 +:102960008083EAE7F0E080818460808380818260F8 +:1029700080838081816080838081806880831092E1 +:10298000C10008958093210108958F7090912101D5 +:102990009295990F990F907C982B90937C00809141 +:1029A0007A00806480937A0080917A0086FDFCCF63 +:1029B0002091780040917900942F80E030E0282B1E +:1029C000392BC90108951F93CF93DF93182FEB0183 +:1029D00061E00E943715E12FF0E0E15EFE4F849147 +:1029E000833051F480918000806880938000D09380 +:1029F0008900C093880037C0843051F480918000F2 +:102A0000806280938000D0938B00C0938A002BC09B +:102A1000813029F484B5806884BDC7BD24C082306C +:102A200029F484B5806284BDC8BD1DC0863041F4E0 +:102A30008091B00080688093B000C093B30013C051 +:102A4000873041F48091B00080628093B000C093E1 +:102A5000B40009C0C038D10514F460E001C061E0E1 +:102A6000812F0E945515DF91CF911F910895282F36 +:102A700030E0C901855F9E4FFC01949129503F4F82 +:102A8000F9018491882381F0E82FF0E0E851FF4FAD +:102A9000E491F0E0662329F4808190958923808376 +:102AA00008958081892B80830895482F50E0CA01C2 +:102AB000815E9E4FFC012491CA01855F9E4FFC01FF +:102AC000949149505F4FFA0134913323C1F122238D +:102AD00031F1233021F4809180008F7705C02430BC +:102AE00031F4809180008F7D8093800018C0213068 +:102AF00019F484B58F7704C0223021F484B58F7D1A +:102B000084BD0DC0263021F48091B0008F7705C0C0 +:102B1000273029F48091B0008F7D8093B000E32F9F +:102B2000F0E0E351FF4FE491F0E0662329F4808167 +:102B300090958923808308958081892B80830895CF +:102B4000482F50E0CA01815E9E4FFC012491CA01CA +:102B5000855F9E4FFC01949149505F4FFA0134917B +:102B6000332319F420E030E035C0222331F1233043 +:102B700021F4809180008F7705C0243031F480915A +:102B800080008F7D8093800018C0213019F484B5B7 +:102B90008F7704C0223021F484B58F7D84BD0DC0B1 +:102BA000263021F48091B0008F7705C0273029F4BA +:102BB0008091B0008F7D8093B000E32FF0E0EE5065 +:102BC000FF4FE491F0E0808120E030E0892311F0B4 +:102BD00021E030E0C9010895EF92FF920F931F9317 +:102BE0007B018C0122E030E040E050E00E94311790 +:102BF000205C3D4B404F5F4FCA01B901A8019701CE +:102C00000E943117C901DA010197A109B109292FE1 +:102C10003A2F4B2F552747FD5A950196A11DB11DFF +:102C20002093C50081508093C400E1ECF0E08081E6 +:102C300080618083808188608083808180688083D8 +:102C40001F910F91FF90EF900895982F8091C000F1 +:102C500085FFFCCF9093C60008958091EE0390917C +:102C6000EF0380589F4F2091F0033091F103821BB6 +:102C7000930B60E870E00E94FC1608954091F00309 +:102C80005091F1038091EE039091EF038417950723 +:102C900019F42FEF3FEF0FC0FA01EE50FC4F2081E7 +:102CA000CA01019660E870E00E94FC169093F1035F +:102CB0008093F00330E0C90108958091F003909172 +:102CC000F1039093EF038093EE0308951F920F9208 +:102CD0000FB60F9211242F933F934F935F936F93EF +:102CE0007F938F939F93AF93BF93EF93FF93409105 +:102CF000C600E091EE03F091EF03CF01019660E88A +:102D000070E00E94FC169C018091F0039091F10309 +:102D10002817390739F0EE50FC4F40833093EF030A +:102D20002093EE03FF91EF91BF91AF919F918F910F +:102D30007F916F915F914F913F912F910F900FBEB7 +:102D40000F901F901895FB01DC018D910190801967 +:102D50000110D9F3990B0895FB01DC01415050405B +:102D600030F08D910190801919F40020B9F7881B7B +:102D7000990B0895FB01DC014150504048F001904F +:102D80000D920020C9F701C01D9241505040E0F75C +:102D90000895629FD001739FF001829FE00DF11DA5 +:102DA000649FE00DF11D929FF00D839FF00D749FC5 +:102DB000F00D659FF00D9927729FB00DE11DF91F71 +:102DC000639FB00DE11DF91FBD01CF0111240895CE +:102DD000AA1BBB1B51E107C0AA1FBB1FA617B70741 +:102DE00010F0A61BB70B881F991F5A95A9F780955D +:102DF0009095BC01CD01089597FB092E07260AD0B6 +:102E000077FD04D0E5DF06D000201AF470956195B7 +:102E10007F4F0895F6F7909581959F4F0895A1E211 +:102E20001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F44 +:102E3000FF1FA217B307E407F50720F0A21BB30B8F +:102E4000E40BF50B661F771F881F991F1A9469F70B +:102E500060957095809590959B01AC01BD01CF0167 +:102E6000089597FB092E05260ED057FD04D0D7DF15 +:102E70000AD0001C38F450954095309521953F4F6D +:102E80004F4F5F4F0895F6F7909580957095619537 +:102E90007F4F8F4F9F4F0895EE0FFF1F0590F491C6 +:082EA000E02D0994F894FFCF26 +:102EA800FFFF52494646005741564500666D74205B +:102EB80000414C41524D2E5741560000000000443D +:022EC8001201F5 +:00000001FF diff --git a/2009/alarma_bisbe_2/applet/alarma_bisbe_2.rom b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.rom new file mode 100644 index 0000000..ee27d47 --- /dev/null +++ b/2009/alarma_bisbe_2/applet/alarma_bisbe_2.rom @@ -0,0 +1,752 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4D697320646F63FD +S11300000C949C000C94C4000C94C4000C94C40084 +S11300100C94C4000C94C4000C94C4000C94C4004C +S11300200C94C4000C94C4000C94C4000C94CA0C2A +S11300300C94FE100C94C4000C94C4000C94C400E2 +S11300400C94E5130C94C4000C9466160C94C40030 +S11300500C94C4000C94C4000C94C4000C94C4000C +S11300600C94C4000C94C400746F6F206D616E799D +S1130070206F70656E2066696C6573006261642030 +S1130080696E707574005941414B00594545454BA3 +S11300900053616D706C65207261746520746F6FBC +S11300A02068696768210000436F6D70726573731F +S11300B0696F6E206E6F7420737570706F727465E3 +S11300C064006661696C656420746F2067657420E0 +S11300D06E657720636C757374657200202121212D +S11300E02000203F3F3F2000000024272A00002555 +S11300F0282B000023262904040404040404040215 +S113010002020202020303030303030102040810B0 +S1130110204080010204081020010204081020007D +S113012000000700020100000304060000000000B4 +S11301300000000048113D1211241FBECFEFD4E08F +S1130140DEBFCDBF11E0A0E0B1E0E8EAFEE202C00C +S113015005900D92A232B107D9F714E0A2E2B1E002 +S113016001C01D92A237B107E1F711E0C8E3D1E065 +S113017004C02297FE010E944E17C433D107C9F769 +S11301800E9436120C9452170C940000089508959E +S1130190CB010E94EA020895FC01848195810E94AA +S11301A07C040895EF92FF920F931F93CF93DF93F4 +S11301B0EB018A0179010BC0B801C7010E94A316A3 +S11301C0009729F4CE010E947C0481E006C0B701A7 +S11301D0CE010E948504882379F7DF91CF911F9186 +S11301E00F91FF90EF900895EF92FF920F931F935A +S11301F0DF93CF93CDB7DEB768970FB6F894DEBF21 +S11302000FBECDBF8C017E010894E11CF11C970147 +S11302100E94D200882319F420E030E005C0B70121 +S1130220C8010E945E089C01C90168960FB6F89443 +S1130230DEBF0FBECDBFCF91DF911F910F91FF9015 +S1130240EF900895FC01AB016481758182819381F3 +S11302500E94F4000895EF92FF920F931F93DF938F +S1130260CF93CDB7DEB768970FB6F894DEBF0FBE55 +S1130270CDBF8B017E010894E11CF11CB701FC0188 +S1130280848195810E948504882349F04CE050E0E4 +S1130290B701C8010E94BA16F801148681E0689675 +S11302A00FB6F894DEBF0FBECDBFCF91DF911F9183 +S11302B00F91FF90EF900895FC01848195810E9435 +S11302C076040895EF92FF920F931F93DF93CF93D9 +S11302D0CDB7DEB768970FB6F894DEBF0FBECDBFBB +S11302E08C017E010894E11CF11CB701FC018281A0 +S11302F093810E942805B701F801828193810E94AD +S11303000F07F8019583848320E0892B09F021E00D +S1130310822F68960FB6F894DEBF0FBECDBFCF9183 +S1130320DF911F910F91FF90EF9008950F931F930A +S11303308C01FC01808191810E943905F80193832D +S1130340828320E0892B09F021E0822F1F910F91F5 +S113035008950F93CF93DF93EC0100E020E030E0A9 +S113036040E050E06BEE7AE081E39AE00E94A50859 +S113037099838883892B69F40FEF20E030E040E013 +S113038050E06BEE7AE081E39AE00E94A50899833D +S1130390888320E088819981892B09F021E0822FCC +S11303A0DF91CF910F9108950E94DB090895FC011C +S11303B0009711F0118210820895DC018C91853E22 +S11303C039F1882329F1F9012081318182819381D6 +S11303D02817390799F444835583668377831B96DA +S11303E08C911B978F3011F080E205C08C9182951F +S11303F0880F807E805E808780E008951B968C91B4 +S11304008F3031F02F5F3F4F3183208381E0089597 +S113041081E008950F931F93CF93DF938C01FC0128 +S11304208081853E09F48CC0882309F489C0E901E0 +S11304308C899D89AE89BF890097A105B10521F4F6 +S11304404C8B5D8B6E8B7F8B209709F479C00115E3 +S1130450110509F475C0F8018081882309F470C07E +S113046083858F3011F481E06CC0A801D80180E04D +S113047090E0282F3C91303251F0FE01E80FF91F33 +S113048030832F5F019611968830910591F788810A +S1130490853011F485EE8883F80180858032B1F0CF +S11304A0FE01E20FF11D8EE28083822F8F5F2C5FAD +S11304B0FA019085903249F0FE01E80FF11D908316 +S11304C08F5F4F5F5F4F821799F7282FFE01E20F6E +S11304D0F11D1082F80183858D87938D80E0228D34 +S11304E030E0822B932B9F878E87258D30E040E070 +S11304F050E0542F432F322F2227868D90E0A0E026 +S1130500B0E0DC0199278827282B392B4A2B5B2B59 +S1130510848D90E0A0E0B0E0282B392B4A2B5B2B94 +S1130520878D90E0A0E0B0E0B82FAA27992788270C +S1130530282B392B4A2B5B2B288B398B4A8B5B8BD3 +S113054080E0DF91CF911F910F910895DF93CF93B6 +S113055000D0CDB7DEB7DC010097A1F162307105A0 +S113056088F1ED91FC911197660F771F80E090E080 +S113057016962D913D914D915C911997620F731FC1 +S1130580841F951F0190F081E02D22E030E0AE0140 +S11305904F5F5F4F09958823A9F09A8180E02981F4 +S11305A030E0282B392B2115310571F08FEF273FCF +S11305B0380741F0C9014096079720F08FEF283F94 +S11305C0380710F020E030E0C9010F900F90CF9170 +S11305D0DF910895FC01009711F0118210820895B3 +S11305E02F923F924F925F926F927F928F929F923F +S11305F0AF92BF92CF92DF92EF92FF920F931F932D +S1130600DF93CF93CDB7DEB72C970FB6F894DEBF48 +S11306100FBECDBF3C0178876F835A874987009707 +S113062009F402C1672B09F4FFC0452B09F4FCC08F +S1130630DC015A96AD90BD90CD90DC905D975296BA +S11306402D913D914D915C915597E985FA85CF01A6 +S1130650A0E0B0E08A0D9B1DAC1DBD1D2817390715 +S11306604A075B0740F4B9016A197B097A876987ED +S1130670672B09F4DCC0D301ED91FC91119720891B +S113068031893A8329835E966D917C915F977C874B +S11306906B87C901A0E0B0E08B839C83AD83BE83EC +S11306A0672BE1F5F3010088F189E02DFC87EB87E6 +S11306B0EF2B39F4A114B104C104D10409F4B7C077 +S11306C0B3C0A114B104C104D10441F18601750180 +S11306D02B803C804D805E805094409430942094D4 +S11306E0211C311C411C511C10C06B857C85D3011D +S11306F08D919C910E94A6029C878B87892B09F47B +S113070093C0E20CF31C041D151D6B817C818D814B +S11307109E81E616F7060807190738F7C601B501E2 +S11307202B813C814D815E810E940F172B018984AE +S11307309A84D301ED91FC91A980BA80A418B508DC +S11307408A149B0408F45401C080D180720100E033 +S113075010E086899789A08DB18DE80EF91E0A1FD5 +S11307601B1FEB85FC853297BF0180E090E0329639 +S1130770FC87EB872B813C814D815E810E94C916E9 +S1130780E60EF71E081F191FD601ED91FC91950185 +S11307904F815885C801B7010995882361F18A18EA +S11307A09B08C501A0E0B0E0F301228D338D448D98 +S11307B0558D280F391F4A1F5B1FD3015A962D935D +S11307C03D934D935C935D97C501840D951DE9811F +S11307D0FA818E179F07B0F06B857C858D919C9173 +S11307E00E94A6029C878B87892B51F4D3015F96C4 +S11307F01C921E925E9749855A854819590919C059 +S1130800442455242B853C85F301378F268F81148E +S1130810910439F06F8178856A0D7B1D78876F8329 +S113082088CF49855A8505C04FEF5FEF02C040E08D +S113083050E0CA012C960FB6F894DEBF0FBECDBFB0 +S1130840CF91DF911F910F91FF90EF90DF90CF90A8 +S1130850BF90AF909F908F907F906F905F904F90DC +S11308603F902F900895CF93DF93FC01EB01009705 +S1130870C9F161157105B1F1828D938DA48DB58D8A +S1130880413051F0413018F0423061F50AC02881FE +S113089039814A815B8111C0288139814A815B8118 +S11308A008C0288139814A815B8182899389A4891E +S11308B0B589280F391F4A1F5B1F82899389A48930 +S11308C0B58982179307A407B50760F0228F338F89 +S11308D0448F558F178E168E288339834A835B8302 +S11308E081E001C080E0DF91CF910895FC01009781 +S11308F011F0118210820895FC01009711F480E038 +S11309000895138E128E81E008952F923F924F9294 +S11309105F926F927F928F929F92AF92BF92CF928B +S1130920DF92EF92FF920F931F93DF93CF93CDB794 +S1130930DEB7A9970FB6F894DEBF0FBECDBF3C015A +S11309402B01009709F44AC06115710509F446C0EA +S1130950FC0180899189892B09F040C0228D338D57 +S1130960A081B1811097B9F1ED91FC91119722808A +S11309703380AE014F5F5F4F89E0FA0111928A958F +S1130980E9F73C832B8352966D917D918D919C91D7 +S1130990559756960D911C915797061B170B6A0194 +S11309A02DEDE22E21E0F22E20E230E0AE01465F92 +S11309B05F4FF1010995882371F08D809E80AF808F +S11309C0B88481149104A104B10429F021C0F20176 +S11309D080818823A9F5F301138E128E80E0A996F5 +S11309E00FB6F894DEBF0FBECDBFCF91DF911F913C +S11309F00F91FF90EF90DF90CF90BF90AF909F90BA +S1130A008F907F906F905F904F903F902F900895BC +S1130A1088E1F20111928A95E9F7098562019AE069 +S1130A20E92E92E0F92E10E020E230E0AE01465FBC +S1130A305F4FC501B401F1010995882361F2C7CF65 +S1130A40F301828D938D0196938F828F81E0C7CFBE +S1130A50FB01892B61F06115710549F088E1DB0127 +S1130A601D928A95E9F780E1858781E0089580E009 +S1130A7008952F923F924F925F926F927F928F923E +S1130A809F92AF92BF92CF92DF92EF92FF920F9319 +S1130A901F93DF93CF93CDB7DEB7E0970FB6F894EB +S1130AA0DEBF0FBECDBF6C01009709F490C1ABC18E +S1130AB0EAE7F1E08AE1DF011D928A95E9F7D09235 +S1130AC07B01C0927A01D60119962D913D914D91E9 +S1130AD05C911C9719E0220F331F441F551F1A9570 +S1130AE0D1F72AA33BA34CA35DA3CA01B901655F57 +S1130AF07F4F8F4F9F4FED91FC9129E130E0AE0184 +S1130B004F5F5F4F0995882309F484C1A9804A8007 +S1130B10BB81BEA30C81FD801E813F815884698402 +S1130B207A849D8580E02C85E22FF0E0E82BF92B78 +S1130B308E883F88288DE98C309709F46BC1432D4A +S1130B4050E060E070E0962F852F742F662769A728 +S1130B507AA78BA79CA7822F90E0A0E0B0E0BC010D +S1130B605527442789A59AA5ABA5BCA5842B952B0D +S1130B70A62BB72B482D50E060E070E0842B952B1A +S1130B80A62BB72B89A79AA7ABA7BCA78E2D90E05D +S1130B90A0E0B0E0782F66275527442789A59AA5B9 +S1130BA0ABA5BCA5842B952BA62BB72B89A79AA7FD +S1130BB0ABA7BCA70097A105B10589F4972D80E0E8 +S1130BC0662D70E0682B792B6115710509F422C13B +S1130BD0CB01A0E0B0E089A79AA7ABA7BCA7942D4E +S1130BE080E02A2C3324282A392A952D80E0A32F4B +S1130BF0B0E0A82BB92BB8A7AFA39F2D80E0202F7E +S1130C0030E0822B932B9C0140E050E02A8F3B8FF5 +S1130C104C8F5D8FBF0180E090E0212F30E040E0F9 +S1130C2050E00E94C9166E8F7F8F88A399A3E9A410 +S1130C30FAA40BA51CA54A8D5B8D6C8D7D8DE41AE1 +S1130C40F50A060B170B6E8D7F8D88A199A1E61A04 +S1130C50F70A080B190BC10101972FA138A5B5E0BC +S1130C60220F331FBA95E1F7820F931FB1010E943F +S1130C70E81680E090E0E61AF70A080B190B7EA14B +S1130C80272F30E040E050E0C801B7010E940F1761 +S1130C9029013A01D301C201855F9F40A040B040C1 +S1130CA08050904FA040B04008F0B4C086E0D60118 +S1130CB018968C93ACE78A2EA1E09A2E88E1F40171 +S1130CC011928A95E9F75101CC24DD2469A57AA50E +S1130CD08BA59CA5A60195010E94C91660937C0171 +S1130CE070937D0180937E0190937F01C601B501CD +S1130CF02A8D3B8D4C8D5D8D0E94C9167B018C0124 +S1130D002AA13BA14CA15DA1E20EF31E041F151FF5 +S1130D10E0928001F092810100938201109383019B +S1130D2042E050E060E070E0440E551E661E771EFF +S1130D30440C551C661C771C40928401509285011A +S1130D406092860170928701309289012092880115 +S1130D505EA1852F90E0BC01269EC001279E900DC8 +S1130D60369E900D112490938B0180938A016E8D91 +S1130D707F8D88A199A1A60195010E94C9166E0DC7 +S1130D807F1D801F911F60938C0170938D01809350 +S1130D908E0190938F01AFA1B8A59D0140E050E072 +S1130DA0E5E0220F331F441F551FEA95D1F7620F68 +S1130DB0731F841F951F609390017093910180931A +S1130DC092019093930194012250304002C020E09C +S1130DD030E0C901E0960FB6F894DEBF0FBECDBF78 +S1130DE0CF91DF911F910F91FF90EF90DF90CF9003 +S1130DF0BF90AF909F908F907F906F905F904F9037 +S1130E003F902F90089580917A0190917B01892BD6 +S1130E10F1F64ECE10927B0110927A01D8CFCF9387 +S1130E20DF939C01DB01009729F16115710511F134 +S1130E301D968C911D9784FF1DC080912201909175 +S1130E402301892B19F4E2E2F1E008C080913E010C +S1130E5090913F01892B71F4EEE3F1E0EF012296CA +S1130E6088E10D9009928150E1F731832083138E3C +S1130E70128E02C0E0E0F0E0CF01DF91CF9108953F +S1130E802F923F924F925F926F927F928F929F9296 +S1130E90AF92BF92CF92DF92EF92FF920F931F9384 +S1130EA0DF93CF93CDB7DEB72A970FB6F894DEBFA2 +S1130EB00FBECDBF4C017C836B831A01009709F4EC +S1130EC0DEC0672B09F4DBC04115510509F4D7C016 +S1130ED0DC015A96ED90FD900D911C915D9780E098 +S1130EE09EEFAFEFBFEFE822F9220A231B23D401C0 +S1130EF05A96ED92FD920D931C935D9752962D9107 +S1130F003D914D915C9155972E153F054007510732 +S1130F1008F4B8C0C101A0E0B0E08E0D9F1DA01F71 +S1130F20B11F281739074A075B0728F419012E183F +S1130F303F0809F4A7C0D401ED91FC9111972089D1 +S1130F4031893A8329835E968D919C915F979A8724 +S1130F508987290166247724892BD9F550960D9029 +S1130F60BC91A02DBA87A987AB2B39F4E114F10405 +S1130F700105110509F486C082C0E114F1040105DC +S1130F80110539F15701680188279927DC01841973 +S1130F909509A609B7098D839E83AF83B88714C0CA +S1130FA069857A85D4018D919C910E94A6029A87C5 +S1130FB08987892B09F463C08D819E81AF81B885AF +S1130FC0A80EB91ECA1EDB1EA414B504C604D70499 +S1130FD038F7510191E0291692E0390618F0A12C56 +S1130FE082E0B82EC801B701A30192010E940F1735 +S1130FF07B0129813A81261B370B65012A153B05A4 +S113100008F4690100E010E0D401ED91FC918689B7 +S11310109789A08DB18DE80EF91E0A1F1B1FE98563 +S1131020FA853297BF0180E090E03296FA87E9872B +S1131030A30192010E94C916E60EF71E081F191F8C +S113104096014B815C81C801B7010E943D0C892B3C +S1131050C9F0960140E050E0F401828D938DA48D97 +S1131060B58D820F931FA41FB51F828F938FA48FFA +S1131070B58F29853A85378F268FA50105C04FEF97 +S11310805FEF02C040E050E0CA012A960FB6F89420 +S1131090DEBF0FBECDBFCF91DF911F910F91FF90A7 +S11310A0EF90DF90CF90BF90AF909F908F907F9004 +S11310B06F905F904F903F902F900895CF93DF9360 +S11310C09C01FB01009731F06115710519F08585CC +S11310D084FF2CC060E08CE790E003C060E088E609 +S11310E090E00E94A60C20E030E0C901DF91CF918E +S11310F00895CCE5D1E0DF0188E10D90099281509B +S1131100E1F730935B0120935A011092740110921D +S113111075011092760110927701868597859093D8 +S11311207901809378012AE531E0DFCF80915A017B +S113113090915B01892B91F6DCCFFC01009711F4AF +S113114080E00895108681E008958F929F92AF9277 +S1131150BF92CF92DF92EF92FF920F93DF93CF93E0 +S1131160CDB7DEB760970FB6F894DEBF0FBECDBF24 +S11311707C016B015A014901009709F493C0611580 +S1131180710509F48FC004300CF08CC007FD1DC03C +S1131190602F772767FD7095E4E0660F771FEA9567 +S11311A0E1F762547E4F882777FD8095982F20E1E0 +S11311B030E0AE014F5F5F4FF7010995882309F4D2 +S11311C071C08D81882309F46DC080919C018823AE +S11311D009F068C07CC08D8180939C012A8530E031 +S11311E040E050E0542F432F322F22278B8590E08C +S11311F0A0E0B0E0DC0199278827282B392B4A2B63 +S11312005B2B898590E0A0E0B0E0282B392B4A2B9A +S11312105B2B8C8590E0A0E0B0E0B82FAA2799273B +S11312208827282B392B4A2B5B2B20939D01309345 +S11312309E0140939F015093A0012E8530E040E031 +S113124050E0542F432F322F22278F8590E0A0E0C7 +S1131250B0E0DC0199278827282B392B4A2B5B2BFC +S11312608D8590E0A0E0B0E0282B392B4A2B5B2B36 +S1131270888990E0A0E0B0E0B82FAA2799278827B2 +S1131280282B392B4A2B5B2B2093A1013093A201ED +S11312904093A3015093A40103C08FEF80939C015A +S11312A09F0102C020E030E0C90160960FB6F894B7 +S11312B0DEBF0FBECDBFCF91DF910F91FF90EF90B6 +S11312C0DF90CF90BF90AF909F908F900895E4E906 +S11312D0F1E081E1DF011D928A95E9F7F092950131 +S11312E0E0929401D0929701C0929601B092990134 +S11312F0A092980190929B0180929A0107FF6BCF74 +S1131300CCCF81E0089581E00895282F8FEF8EBD22 +S11313100DB407FEFDCF8DB58F778DBD8EB5822FB1 +S113132080648EBD0DB407FEFDCF8DB58F778DBD66 +S1131330872F9927AA27BB278EBD0DB407FEFDCFA3 +S11313408DB58F778DBDCB01AA27BB278EBD0DB47C +S113135007FEFDCF8DB58F778DBDBB27A72F962FA9 +S1131360852F8EBD0DB407FEFDCF8DB58F778DBD56 +S11313704EBD0DB407FEFDCF8DB58F778DBD2223F5 +S113138011F08FEF01C085E98EBD0DB407FEFDCFCE +S11313908DB58F778DBD90E02FEF2EBD0DB407FE78 +S11313A0FDCF8DB58F778DBD8EB58F3F19F49F5FBF +S11313B09A3099F70895CF93DF93239A259A229A26 +S11313C024982A9A83E58CBD8DB58E7F8DBD20E04F +S11313D030E09FEF9EBD0DB407FEFDCF8DB58F7736 +S11313E08DBD8EB52F5F3F4F2A30310599F72A986E +S11313F0C0E0D0E040E050E060E070E080E00E94B7 +S11314008509813031F081E0CF3FD807E1F02196A2 +S1131410F1CFC0E0D0E040E050E060E070E081E077 +S11314200E94850980FF06C08FE7CF3FD80759F097 +S11314302196F1CF40E052E060E070E080E10E944C +S11314408509882319F02A9A80E008C02A9A8CB565 +S11314508C7F8CBD8DB581608DBD81E0DF91CF9196 +S113146008958F929F92AF92BF92DF92EF92FF9274 +S11314700F931F93CF93DF937B018C015A01E901F2 +S1131480DD24DA94812C42E0942E5EC02A98B801BF +S1131490A70140705E7F81E10E948509882319F0CD +S11314A02A9A80E055C0DEBC0DB407FEFDCF8DB591 +S11314B08F778DBD8EB58E3FB1F7A7015170B40102 +S11314C0641B750BC617D70708F4BE01FB01E40FB4 +S11314D0F51F20E030E0DEBC0DB407FEFDCF8DB576 +S11314E08F778DBD8EB52417350730F02E173F0743 +S11314F018F4D5018D935D012F5F3F4FB2E020308A +S11315003B0749F7DEBC0DB407FEFDCF8DB58F77E1 +S11315108DBD8EB5DEBC0DB407FEFDCF8DB58F77C6 +S11315208DBD8EB52A9ADEBC0DB407FEFDCF8DB5F8 +S11315308F778DBD8EB5C61BD70BCB01A0E0B0E075 +S1131540E80EF91E0A1F1B1F209709F09FCF81E0A8 +S1131550DF91CF911F910F91FF90EF90DF90BF909B +S1131560AF909F908F9008952091000130910101D8 +S11315709FEF0AC09EBD0DB407FEFDCF8DB58F77DA +S11315808DBD8EB52F5F3F4F82E02030380790F33A +S11315908FEF8EBD0DB407FEFDCF8DB58F778DBD5A +S11315A08EB58FEF8EBD0DB407FEFDCF8DB58F7751 +S11315B08DBD8EB52A9A8FEF8EBD0DB407FEFDCF7B +S11315C08DB58F778DBD8EB58FEF9FEF9093010111 +S11315D08093000108952F923F924F925F926F92F1 +S11315E07F928F929F92AF92BF92CF92DF92EF92AF +S11315F0FF920F931F93DF93CF93CDB7DEB72C9752 +S11316000FB6F894DEBF0FBECDBF4B015C011A01CB +S11316103C872B872801FE82ED82D886CF82411534 +S1131620510509F4DAC02115310509F4D6C00217B1 +S1131630130708F4D2C0EF2809F4CFC02A983095D4 +S113164021953F4F3A87298784011170D501C40140 +S113165080709E7F89839A83AB83BC83AC01BD0178 +S113166081E10E948509882311F02A9AB6C09FEF70 +S11316709EBD0DB407FEFDCF8DB58F778DBD8EB5A4 +S11316808E3FA9F720E030E00BC0AFEFAEBD0DB444 +S113169007FEFDCF8DB58F778DBD8EB52F5F3F4F84 +S11316A02017310790F3E12C52E0F52EE01AF10AED +S11316B03701EB85FC856E1A7F0A6201CE1ADF0AB8 +S11316C000E012E00E191F092B853C85E216F30693 +S11316D048F14216530630F1F10120E030E00CC02D +S11316E08FEF8EBD0DB407FEFDCF8DB58F778DBD09 +S11316F08EB581932F5F3F4FAB85BC852A173B077F +S113170078F3A80160E070E0480D591D6A1D7B1D47 +S11317102F813885C101ED81FE810995882321F44B +S113172091E026C090E024C02B853C85E21AF30AA0 +S1131730421A530A61147104A9F389859A85680EC3 +S1131740791EC80ED91E020F131FC9018C0D9D1DD1 +S1131750892B09F0B9CFE6CFAFEFAEBD0DB407FECC +S1131760FDCF8DB58F778DBD8EB50894E108F10856 +S1131770E114F10489F7BFEFBEBD0DB407FEFDCF40 +S11317808DB58F778DBD8EB5EFEFEEBD0DB407FE31 +S1131790FDCF8DB58F778DBD8EB52B853C854216DB +S11317A0530678F0992369F489809A80AB80BC80D1 +S11317B080E092E0A0E0B0E0880E991EAA1EBB1E55 +S11317C043CF2A9A8FEF8EBD0DB407FEFDCF8DB5A2 +S11317D08F778DBD8EB581E001C080E02C960FB669 +S11317E0F894DEBF0FBECDBFCF91DF911F910F9153 +S11317F0FF90EF90DF90CF90BF90AF909F908F902D +S11318007F906F905F904F903F902F900895FC01D0 +S113181020910001309101014FEF2F3F340731F443 +S113182060E086E890E00E94A60CFFCFCB01820F17 +S1131830931F8150924020F060E072E0621B730BB2 +S113184020E030E04FEF14C04EBD0DB407FEFDCFD5 +S11318508DB58F778DBD8EB5819380910001909168 +S11318600101019690930101809300012F5F3F4F86 +S11318702617370748F3CB010895CF92DF92EF92F2 +S1131880FF920F931F93CF93DF937B018C016A0127 +S113189080910001909101018F5F9F4F31F060E0D2 +S11318A08BE890E00E94A60CFFCFE90182E0213092 +S11318B0380710F0C0E0D2E02A9880E09EEFAFEF46 +S11318C0BFEFE822F9220A231B23B801A70181E113 +S11318D00E948509882321F02A9AC0E0D0E02CC018 +S11318E09FEF9EBD0DB407FEFDCF8DB58F778DBDE7 +S11318F08EB58E3FB1F710920101109200012FEFC7 +S113190014C02EBD0DB407FEFDCF8DB58F778DBDF0 +S11319108EB5D6018D936D018091000190910101E6 +S113192001969093010180930001809100019091B0 +S113193001018C179D0728F3CE01DF91CF911F91F0 +S11319400F91FF90EF90DF90CF9008950F931F9326 +S1131950CF93DF93EC01062F10E005C084EE93E0F3 +S11319600E9456121F5FFE01E10FF11D6491662370 +S1131970A9F7002351F06AE084EE93E00E945E121E +S11319806DE084EE93E00E945E12DF91CF911F918F +S11319900F9108951F920F920FB60F9211242F9357 +S11319A03F934F938F939F93AF93BF93EF93FF9383 +S11319B0E091A501F091A601309709F4A8C0209107 +S11319C0AB033091AC038091AD039091AE03281723 +S11319D0390709F047C08091B0038823B9F1809199 +S11319E0A7039091A80327EA32E041E0873A9407DD +S11319F049F43093A8032093A7039093AA038093F8 +S1131A00A9030AC087EA91E09093A8038093A703EF +S1131A103093AA032093A9038091A7039091A8036C +S1131A209093AC038093AB0380509F4F9093AE038D +S1131A308093AD031092B0038091AF03882391F497 +S1131A4080916F00846080936F000CC081899289BB +S1131A50A389B4890196A11DB11D818B928BA38B9F +S1131A60B48B55C05A985C985B9A5B985C9A5B9A65 +S1131A705B985B9A5B985B9A5B988781803119F5D8 +S1131A80E091AB03F091AC038181805890E087FF33 +S1131A9002C05C9A01C05C985B9A5B989F5F983027 +S1131AA011F0880FF4CF908180E097FF02C05C9A18 +S1131AB001C05C985B9A5B988F5F843011F0990F3A +S1131AC0F4CF32961DC08830F9F4E091AB03F09165 +S1131AD0AC03908180E097FF02C05C9A01C05C98DF +S1131AE05B9A5B988F5F883011F0990FF4CF5B9A03 +S1131AF05B985B9A5B985B9A5B985B9A5B98319670 +S1131B00F093AC03E093AB035A9A5D985D9AFF910E +S1131B10EF91BF91AF919F918F914F913F912F91F1 +S1131B200F900FBE0F901F90189508950895DC0133 +S1131B305696ED91FC9157976289738984899589AA +S1131B4008959A01AB0160E074E284EF90E00E9492 +S1131B500F1730938900209388000895CF93DF9363 +S1131B60EC0180916F008D7F80936F008D898823B5 +S1131B7019F00E94B40A1D8AE091A501F091A60112 +S1131B80108A1092A6011092A501DF91CF910895B9 +S1131B900F931F93DF93CF9300D000D0CDB7DEB760 +S1131BA08C01407049835A836B837C83DC0150969B +S1131BB08C91882351F0F894F8018589882329F0C1 +S1131BC00E94B40AD80155961C9240E0BE016F5F92 +S1131BD07F4FF801868997890E943304D80156966D +S1131BE0ED91FC91579782899389A489B5892981BC +S1131BF03A814B815C81821B930BA40BB50BF801DA +S1131C0080879187A287B38778940F900F900F9065 +S1131C100F90CF91DF911F910F910895CF92DF9292 +S1131C20EF92FF920F931F93DF93CF93CDB7DEB75D +S1131C3028970FB6F894DEBF0FBECDBF8C016B01A1 +S1131C4044E050E07E010894E11CF11CB701C60198 +S1131C500E94F002049709F0F0C044E050E062E012 +S1131C6071E0C7010E94AC16009709F0E6C0F5C008 +S1131C7044E050E067E071E0CE0105960E94AC16A6 +S1131C80009709F0DAC0F2C044E050E06CE071E083 +S1131C90C7010E94AC16009709F0CFC0F0C0542FC2 +S1131CA0432F322F22278081280F311D411D511DC2 +S1131CB03197EC17FD0799F7F80124873587468794 +S1131CC05787203131054105510509F0B6C048E078 +S1131CD050E0BE016F5F7F4FC6010E94F00208977B +S1131CE009F0ABC08A8190E0A0E0B0E0BA2FA92F40 +S1131CF0982F88272981820F911DA11DB11D01975D +S1131D00A105B10521F061E088EA90E084C08C81EE +S1131D1090E0A0E0B0E02227382F492F5A2F8B8182 +S1131D20280F311D411D511D233031054105510539 +S1131D3008F083C0F8012083FE013896BE016C5F71 +S1131D407F4F542F432F322F22278081280F311D9C +S1131D50411D511D3197E617F70799F7F8012183C3 +S1131D6032834383548348E050E0BE016F5F7F4F6A +S1131D70C6010E94F002089709F05FC08E8190E0CE +S1131D80A0E0B0E0BA2FA92F982F88272D81820FC9 +S1131D90911DA11DB11DF80196838583888590E06E +S1131DA0A0E0B0E02227382F492F5A2F8F81280F27 +S1131DB0311D411D511D213131054105510508F0E9 +S1131DC03CC0278381819281A381B4818332F6E56B +S1131DD09F07F0E0AF07F0E0BF0718F0293040F0AC +S1131DE00CC081589E43A040B04050F0293040F0D0 +S1131DF0FF24F8018081823020F0FF24F39401C095 +S1131E00FF2461E087EA90E00E94A60CFF2031F0F5 +S1131E1061E081E990E00E94A60C0FC0F8011086F1 +S1131E20118612861386D78AC68A118A128A138A61 +S1131E30148A108A158A81E001C080E028960FB6C2 +S1131E40F894DEBF0FBECDBFCF91DF911F910F91EC +S1131E50FF90EF90DF90CF90089548E050E0B701F5 +S1131E60C6010E94F002089741F702CF44E050E017 +S1131E70B701C6010E94F0020497F9F605CFF801F4 +S1131E80148615861686178644E050E0B701C6010D +S1131E900E94F002049789F6F80124853585468569 +S1131EA05785FE013496FBCEAF92BF92CF92DF925C +S1131EB0EF92FF920F931F93DF93CF9300D000D044 +S1131EC00F92CDB7DEB76C015B01F42EE52EFC0159 +S1131ED080859185A285B3850097A105B105D1F5CB +S1131EE044E050E08E010F5F1F4FB8018689978947 +S1131EF00E94F002049709F0F5C01D8244E050E00E +S1131F00B801D60156968D919C9157970E94F00284 +S1131F10049709F0E7C0F60110861186128613862D +S1131F20FE01349620E030E040E050E0542F432F8F +S1131F30322F22278081280F311D411D511D3197D9 +S1131F40EC17FD0799F7D60118962D933D934D9301 +S1131F505C931B978F2D9E2D9C017901B2E021305B +S1131F603B0718F0E12C72E0F72EF601208531854D +S1131F7042855385C701A0E0B0E0281739074A0716 +S1131F805B0708F47901D6015696ED91FC915797B9 +S1131F90828D938DA48DB58D9170A070B0700097D3 +S1131FA0A105B105D1F4D60155968C918823A9F4E5 +S1131FB0A701B501CF010E9440078C018E159F0532 +S1131FC041F060E082EE90E00E94A60C0E94B40A08 +S1131FD08BC081E0F601858B73C0D60155968C9138 +S1131FE0882309F463C0B701C5010E94070C5C0192 +S1131FF08E159F0539F060E08CED90E00E94A60CF0 +S11320000E94B40AD6015696ED91FC915797C501EA +S1132010A0E0B0E0228D338D448D558D820F931F47 +S1132020A41FB51F828F938FA48FB58F9170A0705A +S1132030B0700097A105B10509F041C00E94B40A2F +S1132040F601158A06891789D801ED90FC9011973D +S1132050F7012089318940E050E05A966D917D91D5 +S11320608D919C915D970E940F17611571058105F3 +S1132070910529F5D8015E966D917C915F97C70112 +S11320800E94A602F801978F868F892BC1F4D6018E +S11320905696ED91FC915797178E168E61E082EC5F +S11320A090E00E94A60C0FEF1FEF1EC0A701B50120 +S11320B0CF010E94F0028E159F05A1F401C07501A5 +S11320C0970140E050E0F60180859185A285B385B3 +S11320D0821B930BA40BB50B80879187A287B387D0 +S11320E0870102C000E010E0C8010F900F900F902C +S11320F00F900F90CF91DF911F910F91FF90EF9070 +S1132100DF90CF90BF90AF900895CF92DF92EF927F +S1132110FF920F931F93CF93DF93EC01C980DA8072 +S1132120EB80FC809093A6018093A50107EA11E05F +S11321301093AC030093AB0342E050E0B8010E945B +S1132140540F892B09F451C08091AB039091AC03D7 +S113215002969093AE038093AD03EE89FF89828D3E +S113216040E051E0481B5109B8016E5F7F4F8091F8 +S1132170A5019091A6010E94540F9C010097A9F11A +S11321808091AD039091AE03820F931F9093AE03A1 +S11321908093AD0340E051E067EA72E08091A501CD +S11321A09091A6010E94540F81E08093B003888B24 +S11321B01092800089E08093810060E074E284EFF3 +S11321C090E0A70196010E940F1730938900209395 +S11321D0880081E090E090938B0080938A00809146 +S11321E06F00826080936F007894DF91CF911F918C +S11321F00F91FF90EF90DF90CF9008951F920F9270 +S11322000FB60F9211242F933F934F935F936F93C5 +S11322107F938F939F93AF93BF93EF93FF9380919B +S11322206F008B7F80936F008091B0038823F9F453 +S113223081E08093AF0378946091A9037091AA031D +S113224040E051E08091A5019091A6010E94540FB5 +S1132250892B31F48091A5019091A6010E94AE0DC5 +S1132260F8941092AF0381E08093B0037894FF91C7 +S1132270EF91BF91AF919F918F917F916F915F91FA +S11322804F913F912F910F900FBE0F901F90189573 +S113229083EB93E00E94C7008BEB93E00E94960DC2 +S11322A008950F931F93BC0183EB93E00E942201D6 +S11322B09093BA038093B9030BEB13E0BC01C801FC +S11322C00E940E0EC8010E9485101F910F9108955F +S11322D00F931F9381E191E00E94511110E000E0FF +S11322E045C0112339F468EE73E080E090E00E9469 +S11322F0501402C01B3028F460E571E080E090E0E7 +S11323001FC0812F8B50843128F460EF70E080E08F +S113231090E016C0812F8F518E3128F460E570E073 +S113232080E090E00DC0812F8D538C3328F460E25F +S113233070E080E090E004C068E070E080E090E04D +S11323400E9450141F3F21F0002331F41F5F09C085 +S1132350002331F401E005C0112311F400E001C0B1 +S11323601150612F70E086E00E94E3148091CB034A +S1132370882309F0B6CF6091B9037091BA0383EB57 +S113238093E00E94C80060E070E086E00E94E314DD +S11323901F910F9108950F931F93DF93CF93CDB7A0 +S11323A0DEB72D970FB6F894DEBF0FBECDBF83EB1B +S11323B093E00E94CC008E010F5F1F4FB80183EBA6 +S11323C093E00E942B01882379F483EB93E00E942D +S11323D0CC002D960FB6F894DEBF0FBECDBFCF91C3 +S11323E0DF911F910F910895B80184EE93E00E944C +S11323F0A512E4CF40E855E260E070E084EE93E09B +S11324000E94511261E082E00E94371561E083E08E +S11324100E94371561E084E00E94371561E085E091 +S11324200E94371561E086E00E94371583EB93E044 +S11324300E94D4018823C9F083EB93E00E94A90190 +S1132440882399F083EB93E00E949601882369F036 +S113245083EB93E00E946201882339F00E94CB1140 +S113246060E070E086E00E94E31408950E948814FE +S11324700E94FA110E946811FDCF8FE191E09093C0 +S1132480E5038093E4030895862F0E94251608959A +S11324900E945D1608950E943E1608950E942D160E +S11324A00895CB01BA010E94EC150895DC01ED9169 +S11324B0FC910190F081E02D09950895DC01ED91E6 +S11324C0FC910190F081E02D099508950F931F93DD +S11324D0CF93DF938C01EB0109C02196D801ED91D4 +S11324E0FC910190F081E02DC80109956881662373 +S11324F0A1F7DF91CF911F910F9108950F931F932F +S11325008C01DC01ED91FC910190F081E02D6DE0F6 +S11325100995D801ED91FC910190F081E02D6AE0DC +S1132520C80109951F910F9108950F931F938C0172 +S1132530DC01ED91FC910190F081E02D0995C80139 +S11325400E947E121F910F9108950F931F938C0187 +S11325500E946612C8010E947E121F910F91089575 +S11325600F931F938C01DC01ED91FC910190F0819C +S1132570E02D0995C8010E947E121F910F910895C4 +S11325802F923F924F925F926F927F928F929F927F +S1132590AF92BF92CF92DF92EF92FF920F931F936D +S11325A0DF93CF93CDB7DEB7A0970FB6F894DEBF15 +S11325B00FBECDBF1C016A017B01411551056105A8 +S11325C0710549F4DC01ED91FC910190F081E02D5D +S11325D060E3099554C0882499245401422E55245B +S11325E06624772401E010E00C0F1D1F080D191D4F +S11325F0C701B601A30192010E940F17F80160837D +S11326000894811C911CA11CB11CC701B601A30133 +S113261092010E940F17C901DA016C017D01C114F6 +S1132620D104E104F104F1F681E0E82EF12CEC0E82 +S1132630FD1EE80CF91C3E010894611C711CD501B7 +S1132640C4010197A109B1096C01C818D90814C0C3 +S1132650F601EE0DFF1D60816A3010F4605D01C06B +S1132660695CD101ED91FC910190F081E02DC101F3 +S113267009950894E108F1086E147F0449F7A096BF +S11326800FB6F894DEBF0FBECDBFCF91DF911F917F +S11326900F91FF90EF90DF90CF90BF90AF909F90FD +S11326A08F907F906F905F904F903F902F90089500 +S11326B02AE00E94C01208950F931F938C010E9478 +S11326C05813C8010E947E121F910F910895AB0107 +S11326D060E070E00E94581308950F931F938C01DB +S11326E0AB0160E070E00E945813C8010E947E12A2 +S11326F01F910F910895EF92FF920F931F93CF9321 +S1132700DF93EC017A018B0177FF0FC0E881F98137 +S11327100190F081E02D6DE2099510950095F094FB +S1132720E094E11CF11C011D111D2AE0B801A70170 +S1132730CE010E94C012DF91CF911F910F91FF90A3 +S1132740EF9008950F931F938C010E947B13C8018F +S11327500E947E121F910F910895AB01662757FDC9 +S11327606095762F0E947B1308950F931F938C011D +S1132770AB01662757FD6095762F0E947B13C80135 +S11327800E947E121F910F910895DC0121153105DD +S113279041F4ED91FC910190F081E02D642F0995B5 +S11327A008952A30310519F40E947B1308950E947C +S11327B0C01208950F931F938C010E94C513C80182 +S11327C00E947E121F910F9108951F920F920FB6CF +S11327D00F9211242F938F939F93AF93BF93809164 +S11327E0E6039091E703A091E803B091E9038050D8 +S11327F0904CAF4FBF4F8093E6039093E703A093B1 +S1132800E803B093E90327C08091E6039091E703BE +S1132810A091E803B091E90380589E43A040B040E2 +S11328208093E6039093E703A093E803B093E9034E +S11328308091EA039091EB03A091EC03B091ED0336 +S11328400196A11DB11D8093EA039093EB03A0931D +S1132850EC03B093ED038091E6039091E703A0911C +S1132860E803B091E90381589E43A040B04060F66C +S1132870BF91AF919F918F912F910F900FBE0F90A9 +S11328801F9018958FB7F8942091EA033091EB03C9 +S11328904091EC035091ED038FBFB901CA01089533 +S11328A0EF92FF920F931F937B018C018FB7F894E3 +S11328B04091EA035091EB036091EC037091ED03B6 +S11328C08FBF2FB7F8948091EA039091EB03A09106 +S11328D0EC03B091ED032FBF841B950BA60BB70B34 +S11328E08E159F05A007B10760F31F910F91FF900C +S11328F0EF900895019759F0FC01EE0FFF1FEE0FC2 +S1132900FF1F32978FB7F8943197F1F78FBF08956F +S1132910789484B5826084BD84B5816084BD85B5B6 +S1132920826085BD85B5816085BDEEE6F0E080817D +S113293081608083E1E8F0E080818260808380812F +S113294081608083E0E8F0E0808181608083E1EB56 +S1132950F0E0808184608083E0EBF0E0808181603E +S11329608083EAE7F0E080818460808380818260F4 +S113297080838081816080838081806880831092DD +S1132980C10008958093210108958F7090912101D1 +S11329909295990F990F907C982B90937C0080913D +S11329A07A00806480937A0080917A0086FDFCCF5F +S11329B02091780040917900942F80E030E0282B1A +S11329C0392BC90108951F93CF93DF93182FEB017F +S11329D061E00E943715E12FF0E0E15EFE4F849143 +S11329E0833051F480918000806880938000D0937C +S11329F08900C093880037C0843051F480918000EE +S1132A00806280938000D0938B00C0938A002BC097 +S1132A10813029F484B5806884BDC7BD24C0823068 +S1132A2029F484B5806284BDC8BD1DC0863041F4DC +S1132A308091B00080688093B000C093B30013C04D +S1132A40873041F48091B00080628093B000C093DD +S1132A50B40009C0C038D10514F460E001C061E0DD +S1132A60812F0E945515DF91CF911F910895282F32 +S1132A7030E0C901855F9E4FFC01949129503F4F7E +S1132A80F9018491882381F0E82FF0E0E851FF4FA9 +S1132A90E491F0E0662329F4808190958923808372 +S1132AA008958081892B80830895482F50E0CA01BE +S1132AB0815E9E4FFC012491CA01855F9E4FFC01FB +S1132AC0949149505F4FFA0134913323C1F1222389 +S1132AD031F1233021F4809180008F7705C02430B8 +S1132AE031F4809180008F7D8093800018C0213064 +S1132AF019F484B58F7704C0223021F484B58F7D16 +S1132B0084BD0DC0263021F48091B0008F7705C0BC +S1132B10273029F48091B0008F7D8093B000E32F9B +S1132B20F0E0E351FF4FE491F0E0662329F4808163 +S1132B3090958923808308958081892B80830895CB +S1132B40482F50E0CA01815E9E4FFC012491CA01C6 +S1132B50855F9E4FFC01949149505F4FFA01349177 +S1132B60332319F420E030E035C0222331F123303F +S1132B7021F4809180008F7705C0243031F4809156 +S1132B8080008F7D8093800018C0213019F484B5B3 +S1132B908F7704C0223021F484B58F7D84BD0DC0AD +S1132BA0263021F48091B0008F7705C0273029F4B6 +S1132BB08091B0008F7D8093B000E32FF0E0EE5061 +S1132BC0FF4FE491F0E0808120E030E0892311F0B0 +S1132BD021E030E0C9010895EF92FF920F931F9313 +S1132BE07B018C0122E030E040E050E00E9431178C +S1132BF0205C3D4B404F5F4FCA01B901A8019701CA +S1132C000E943117C901DA010197A109B109292FDD +S1132C103A2F4B2F552747FD5A950196A11DB11DFB +S1132C202093C50081508093C400E1ECF0E08081E2 +S1132C3080618083808188608083808180688083D4 +S1132C401F910F91FF90EF900895982F8091C000ED +S1132C5085FFFCCF9093C60008958091EE03909178 +S1132C60EF0380589F4F2091F0033091F103821BB2 +S1132C70930B60E870E00E94FC1608954091F00305 +S1132C805091F1038091EE039091EF03841795071F +S1132C9019F42FEF3FEF0FC0FA01EE50FC4F2081E3 +S1132CA0CA01019660E870E00E94FC169093F1035B +S1132CB08093F00330E0C90108958091F00390916E +S1132CC0F1039093EF038093EE0308951F920F9204 +S1132CD00FB60F9211242F933F934F935F936F93EB +S1132CE07F938F939F93AF93BF93EF93FF93409101 +S1132CF0C600E091EE03F091EF03CF01019660E886 +S1132D0070E00E94FC169C018091F0039091F10305 +S1132D102817390739F0EE50FC4F40833093EF0306 +S1132D202093EE03FF91EF91BF91AF919F918F910B +S1132D307F916F915F914F913F912F910F900FBEB3 +S1132D400F901F901895FB01DC018D910190801963 +S1132D500110D9F3990B0895FB01DC014150504057 +S1132D6030F08D910190801919F40020B9F7881B77 +S1132D70990B0895FB01DC014150504048F001904B +S1132D800D920020C9F701C01D9241505040E0F758 +S1132D900895629FD001739FF001829FE00DF11DA1 +S1132DA0649FE00DF11D929FF00D839FF00D749FC1 +S1132DB0F00D659FF00D9927729FB00DE11DF91F6D +S1132DC0639FB00DE11DF91FBD01CF0111240895CA +S1132DD0AA1BBB1B51E107C0AA1FBB1FA617B7073D +S1132DE010F0A61BB70B881F991F5A95A9F7809559 +S1132DF09095BC01CD01089597FB092E07260AD0B2 +S1132E0077FD04D0E5DF06D000201AF470956195B3 +S1132E107F4F0895F6F7909581959F4F0895A1E20D +S1132E201A2EAA1BBB1BFD010DC0AA1FBB1FEE1F40 +S1132E30FF1FA217B307E407F50720F0A21BB30B8B +S1132E40E40BF50B661F771F881F991F1A9469F707 +S1132E5060957095809590959B01AC01BD01CF0163 +S1132E60089597FB092E05260ED057FD04D0D7DF11 +S1132E700AD0001C38F450954095309521953F4F69 +S1132E804F4F5F4F0895F6F7909580957095619533 +S1132E907F4F8F4F9F4F0895EE0FFF1F0590F491C2 +S10B2EA0E02D0994F894FFCF22 +S1132EA8FFFF52494646005741564500666D742057 +S1132EB800414C41524D2E57415600000000004439 +S1052EC81201F1 +S9030000FC diff --git a/2009/alarma_bisbe_2/applet/core.a b/2009/alarma_bisbe_2/applet/core.a new file mode 100644 index 0000000..369f009 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/core.a differ diff --git a/2009/alarma_bisbe_2/applet/pins_arduino.c.o b/2009/alarma_bisbe_2/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/pins_arduino.c.o differ diff --git a/2009/alarma_bisbe_2/applet/wiring.c.o b/2009/alarma_bisbe_2/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/wiring.c.o differ diff --git a/2009/alarma_bisbe_2/applet/wiring_analog.c.o b/2009/alarma_bisbe_2/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/wiring_analog.c.o differ diff --git a/2009/alarma_bisbe_2/applet/wiring_digital.c.o b/2009/alarma_bisbe_2/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/wiring_digital.c.o differ diff --git a/2009/alarma_bisbe_2/applet/wiring_pulse.c.o b/2009/alarma_bisbe_2/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/alarma_bisbe_2/applet/wiring_pulse.c.o differ diff --git a/2009/alarma_bisbe_2/applet/wiring_serial.c.o b/2009/alarma_bisbe_2/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/wiring_serial.c.o differ diff --git a/2009/alarma_bisbe_2/applet/wiring_shift.c.o b/2009/alarma_bisbe_2/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/alarma_bisbe_2/applet/wiring_shift.c.o differ diff --git a/2009/audifono/applet/HardwareSerial.cpp.o b/2009/audifono/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/audifono/applet/HardwareSerial.cpp.o differ diff --git a/2009/audifono/applet/Print.cpp.o b/2009/audifono/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/audifono/applet/Print.cpp.o differ diff --git a/2009/audifono/applet/WInterrupts.c.o b/2009/audifono/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/audifono/applet/WInterrupts.c.o differ diff --git a/2009/audifono/applet/WMath.cpp.o b/2009/audifono/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/audifono/applet/WMath.cpp.o differ diff --git a/2009/audifono/applet/WRandom.cpp.o b/2009/audifono/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/audifono/applet/WRandom.cpp.o differ diff --git a/2009/audifono/applet/audifono.cpp b/2009/audifono/applet/audifono.cpp new file mode 100644 index 0000000..3bcd7a3 --- /dev/null +++ b/2009/audifono/applet/audifono.cpp @@ -0,0 +1,141 @@ +#include +#include +#include "util.h" +#include "wave.h" + +#include "WProgram.h" +void setup(); +void ls(); +void loop(); +void playcomplete(char *name); +byte byteIn(); +void stop_play(); +void playfile(char *name); +AF_Wave card; +File f; +Wavefile wave; // only one! + +#define redled 9 + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + Serial.println("Audifono test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(redled, OUTPUT); + + if (!card.init_card()) { + putstring_nl("Card init. failed!"); return; + } + if (!card.open_partition()) { + putstring_nl("No partition!"); return; + } + if (!card.open_filesys()) { + putstring_nl("Couldn't open filesys"); return; + } + + if (!card.open_rootdir()) { + putstring_nl("Couldn't open dir"); return; + } + + putstring_nl("Files found:"); + ls(); +} + +void ls() { + char name[13]; + int ret; + + card.reset_dir(); + putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; +char c = 0; + +void loop() { + + c = byteIn(); + switch (c) + { + case 0: + stop_play(); + break; + case 1: + playcomplete("1.WAV"); + break; + case 2: + playcomplete("2.WAV"); + break; + case 3: + playcomplete("3.WAV"); + break; + case 4: + playcomplete("4.WAV"); + break; + case 5: + playcomplete("5.WAV"); + break; + case 6: + playcomplete("6.WAV"); + } +} + +void playcomplete(char *name) { + playfile(name); + while (wave.isplaying){} + card.close_file(f); +} + +byte byteIn() +{ + byte incomingByte; + if (Serial.available() > 0) { + incomingByte = Serial.read(); + Serial.print(incomingByte, BYTE); + return(incomingByte); + } +} + +void stop_play() { + wave.stop(); + card.close_file(f); + card.reset_dir(); +} + +void playfile(char *name) { + // stop any file already playing + if (wave.isplaying) { + wave.stop(); + card.close_file(f); + } + card.reset_dir(); + f = card.open_file(name); + if (f && wave.create(f)) { + wave.play(); + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/audifono/applet/audifono.cpp.o b/2009/audifono/applet/audifono.cpp.o new file mode 100644 index 0000000..082246c Binary files /dev/null and b/2009/audifono/applet/audifono.cpp.o differ diff --git a/2009/audifono/applet/audifono.elf b/2009/audifono/applet/audifono.elf new file mode 100644 index 0000000..ece2b63 Binary files /dev/null and b/2009/audifono/applet/audifono.elf differ diff --git a/2009/audifono/applet/audifono.hex b/2009/audifono/applet/audifono.hex new file mode 100644 index 0000000..cef5f66 --- /dev/null +++ b/2009/audifono/applet/audifono.hex @@ -0,0 +1,752 @@ +:100000000C94CD000C94F5000C94F5000C94F500C4 +:100010000C94F5000C94F5000C94F5000C94F5008C +:100020000C94F5000C94F5000C94F5000C94FB0C6A +:100030000C942F110C94F5000C94F5000C94F50021 +:100040000C9456140C94F5000C9462160C94F50064 +:100050000C94F5000C94F5000C94F5000C94F5004C +:100060000C94F5000C94F500746F6F206D616E793F +:10007000206F70656E2066696C6573006261642034 +:10008000696E707574005941414B00594545454BA7 +:100090000053616D706C65207261746520746F6FC0 +:1000A0002068696768210000436F6D707265737323 +:1000B000696F6E206E6F7420737570706F727465E7 +:1000C00064006661696C656420746F2067657420E4 +:1000D0006E657720636C7573746572002021212131 +:1000E0002000203F3F3F200046696C657320666F0B +:1000F000756E643A0046696C657320666F756E6450 +:100100003A00436F756C646E2774206F70656E20C3 +:1001100064697200436F756C646E2774206F70653C +:100120006E2066696C65737973004E6F2070617222 +:10013000746974696F6E21004361726420696E692D +:10014000742E206661696C65642100000024272AF2 +:10015000000025282B00002326290404040404049D +:100160000404020202020202030303030303010266 +:100170000408102040800102040810200102040835 +:100180001020000000070002010000030406000028 +:100190000000000000007911AE1211241FBECFEF45 +:1001A000D4E0DEBFCDBF11E0A0E0B1E0E0EAFEE2C6 +:1001B00002C005900D92AA34B107D9F714E0AAE461 +:1001C000B1E001C01D92AB38B107E1F711E0CAE917 +:1001D000D1E004C02297FE010E944A17C639D10718 +:1001E000C9F70E94A7120C944E170C9400000895B2 +:1001F0000895CB010E941B030895FC018481958121 +:100200000E94AD040895EF92FF920F931F93CF9336 +:10021000DF93EB018A0179010BC0B801C7010E948D +:100220009F16009729F4CE010E94AD0481E006C01C +:10023000B701CE010E94B604882379F7DF91CF91F0 +:100240001F910F91FF90EF900895EF92FF920F93FF +:100250001F93DF93CF93CDB7DEB768970FB6F894AF +:10026000DEBF0FBECDBF8C017E010894E11CF11CE6 +:1002700097010E940301882319F420E030E005C0B3 +:10028000B701C8010E948F089C01C90168960FB68A +:10029000F894DEBF0FBECDBFCF91DF911F910F91BC +:1002A000FF90EF900895FC01AB016481758182811C +:1002B00093810E9425010895EF92FF920F931F935F +:1002C000DF93CF93CDB7DEB768970FB6F894DEBF54 +:1002D0000FBECDBF8B017E010894E11CF11CB7015C +:1002E000FC01848195810E94B604882349F04CE08A +:1002F00050E0B701C8010E94B616F801148681E0EB +:1003000068960FB6F894DEBF0FBECDBFCF91DF91D8 +:100310001F910F91FF90EF900895FC0184819581CA +:100320000E94A7040895EF92FF920F931F93DF930B +:10033000CF93CDB7DEB768970FB6F894DEBF0FBE88 +:10034000CDBF8C017E010894E11CF11CB701FC01BA +:10035000828193810E945905B701F80182819381BE +:100360000E944007F8019583848320E0892B09F0DF +:1003700021E0822F68960FB6F894DEBF0FBECDBF86 +:10038000CF91DF911F910F91FF90EF9008950F9300 +:100390001F938C01FC01808191810E946A05F80104 +:1003A0009383828320E0892B09F021E0822F1F9123 +:1003B0000F9108950F93CF93DF93EC0100E020E0BD +:1003C00030E040E050E06CE17BE082E69AE00E94A1 +:1003D000D60899838883892B69F40FEF20E030E0F9 +:1003E00040E050E06CE17BE082E69AE00E94D608B3 +:1003F0009983888320E088819981892B09F021E005 +:10040000822FDF91CF910F9108950E940C0A0895D9 +:10041000FC01009711F0118210820895DC018C918B +:10042000853E39F1882329F1F901208131818281CA +:1004300093812817390799F444835583668377831A +:100440001B968C911B978F3011F080E205C08C9128 +:100450008295880F807E805E808780E008951B965D +:100460008C918F3031F02F5F3F4F3183208381E0BB +:10047000089581E008950F931F93CF93DF938C012C +:10048000FC018081853E09F48CC0882309F489C071 +:10049000E9018C899D89AE89BF890097A105B105C5 +:1004A00021F44C8B5D8B6E8B7F8B209709F479C088 +:1004B0000115110509F475C0F8018081882309F43C +:1004C00070C083858F3011F481E06CC0A801D80121 +:1004D00080E090E0282F3C91303251F0FE01E80F8F +:1004E000F91F30832F5F019611968830910591F79F +:1004F0008881853011F485EE8883F801808580320B +:10050000B1F0FE01E20FF11D8EE28083822F8F5F3A +:100510002C5FFA019085903249F0FE01E80FF11D41 +:1005200090838F5F4F5F5F4F821799F7282FFE01EF +:10053000E20FF11D1082F80183858D87938D80E095 +:10054000228D30E0822B932B9F878E87258D30E084 +:1005500040E050E0542F432F322F2227868D90E029 +:10056000A0E0B0E0DC0199278827282B392B4A2B03 +:100570005B2B848D90E0A0E0B0E0282B392B4A2B38 +:100580005B2B878D90E0A0E0B0E0B82FAA279927D9 +:100590008827282B392B4A2B5B2B288B398B4A8BAE +:1005A0005B8B80E0DF91CF911F910F910895DF93D6 +:1005B000CF9300D0CDB7DEB7DC010097A1F1623058 +:1005C000710588F1ED91FC911197660F771F80E01E +:1005D00090E016962D913D914D915C911997620F87 +:1005E000731F841F951F0190F081E02D22E030E001 +:1005F000AE014F5F5F4F09958823A9F09A8180E093 +:10060000298130E0282B392B2115310571F08FEF2E +:10061000273F380741F0C9014096079720F08FEF38 +:10062000283F380710F020E030E0C9010F900F900C +:10063000CF91DF910895FC01009711F01182108293 +:1006400008952F923F924F925F926F927F928F9276 +:100650009F92AF92BF92CF92DF92EF92FF920F9351 +:100660001F93DF93CF93CDB7DEB72C970FB6F894D7 +:10067000DEBF0FBECDBF3C0178876F835A874987A5 +:10068000009709F402C1672B09F4FFC0452B09F458 +:10069000FCC0DC015A96AD90BD90CD90DC905D978A +:1006A00052962D913D914D915C915597E985FA8532 +:1006B000CF01A0E0B0E08A0D9B1DAC1DBD1D281729 +:1006C00039074A075B0740F4B9016A197B097A8741 +:1006D0006987672B09F4DCC0D301ED91FC91119778 +:1006E000208931893A8329835E966D917C915F9749 +:1006F0007C876B87C901A0E0B0E08B839C83AD83CE +:10070000BE83672BE1F5F3010088F189E02DFC87BA +:10071000EB87EF2B39F4A114B104C104D10409F41F +:10072000B7C0B3C0A114B104C104D10441F1860122 +:1007300075012B803C804D805E80509440943094B5 +:100740002094211C311C411C511C10C06B857C85E0 +:10075000D3018D919C910E94D7029C878B87892B16 +:1007600009F493C0E20CF31C041D151D6B817C8100 +:100770008D819E81E616F7060807190738F7C6012E +:10078000B5012B813C814D815E810E940B172B01AD +:1007900089849A84D301ED91FC91A980BA80A41830 +:1007A000B5088A149B0408F45401C080D1807201FA +:1007B00000E010E086899789A08DB18DE80EF91EC2 +:1007C0000A1F1B1FEB85FC853297BF0180E090E07C +:1007D0003296FC87EB872B813C814D815E810E94A4 +:1007E000C516E60EF71E081F191FD601ED91FC91E4 +:1007F00095014F815885C801B7010995882361F19A +:100800008A189B08C501A0E0B0E0F301228D338D6A +:10081000448D558D280F391F4A1F5B1FD3015A96EF +:100820002D933D934D935C935D97C501840D951D6C +:10083000E981FA818E179F07B0F06B857C858D91D9 +:100840009C910E94D7029C878B87892B51F4D301FE +:100850005F961C921E925E9749855A8548195909E0 +:1008600019C0442455242B853C85F301378F268FEE +:100870008114910439F06F8178856A0D7B1D78872A +:100880006F8388CF49855A8505C04FEF5FEF02C05F +:1008900040E050E0CA012C960FB6F894DEBF0FBEC0 +:1008A000CDBFCF91DF911F910F91FF90EF90DF901F +:1008B000CF90BF90AF909F908F907F906F905F9000 +:1008C0004F903F902F900895CF93DF93FC01EB0161 +:1008D0000097C9F161157105B1F1828D938DA48DD9 +:1008E000B58D413051F0413018F0423061F50AC009 +:1008F000288139814A815B8111C0288139814A81EF +:100900005B8108C0288139814A815B818289938912 +:10091000A489B589280F391F4A1F5B1F82899389D3 +:10092000A489B58982179307A407B50760F0228FC1 +:10093000338F448F558F178E168E288339834A83C1 +:100940005B8381E001C080E0DF91CF910895FC01DD +:10095000009711F0118210820895FC01009711F4A4 +:1009600080E00895138E128E81E008952F923F92B9 +:100970004F925F926F927F928F929F92AF92BF92AF +:10098000CF92DF92EF92FF920F931F93DF93CF935B +:10099000CDB7DEB7A9970FB6F894DEBF0FBECDBFB7 +:1009A0003C012B01009709F44AC06115710509F457 +:1009B00046C0FC0180899189892B09F040C0228DB5 +:1009C000338DA081B1811097B9F1ED91FC91119710 +:1009D00022803380AE014F5F5F4F89E0FA011192B0 +:1009E0008A95E9F73C832B8352966D917D918D9189 +:1009F0009C91559756960D911C915797061B170B76 +:100A00006A012EE0E22E22E0F22E20E230E0AE017A +:100A1000465F5F4FF1010995882371F08D809E80BC +:100A2000AF80B88481149104A104B10429F021C0DD +:100A3000F20180818823A9F5F301138E128E80E0E4 +:100A4000A9960FB6F894DEBF0FBECDBFCF91DF9150 +:100A50001F910F91FF90EF90DF90CF90BF90AF90DC +:100A60009F908F907F906F905F904F903F902F90CE +:100A7000089588E1F20111928A95E9F709856201EA +:100A80009BE3E92E92E0F92E10E020E230E0AE0187 +:100A9000465F5F4FC501B401F1010995882361F2FA +:100AA000C7CFF301828D938D0196938F828F81E062 +:100AB000C7CFFB01892B61F06115710549F088E111 +:100AC000DB011D928A95E9F780E1858781E0089531 +:100AD00080E008952F923F924F925F926F927F92A3 +:100AE0008F929F92AF92BF92CF92DF92EF92FF923E +:100AF0000F931F93DF93CF93CDB7DEB7E0970FB679 +:100B0000F894DEBF0FBECDBF6C01009709F490C111 +:100B1000ABC1E2EAF1E08AE1DF011D928A95E9F7D3 +:100B2000D092A301C092A201D60119962D913D91B8 +:100B30004D915C911C9719E0220F331F441F551FE4 +:100B40001A95D1F72AA33BA34CA35DA3CA01B9010F +:100B5000655F7F4F8F4F9F4FED91FC9129E130E012 +:100B6000AE014F5F5F4F0995882309F484C1A980C6 +:100B70004A80BB81BEA30C81FD801E813F815884C9 +:100B800069847A849D8580E02C85E22FF0E0E82B53 +:100B9000F92B8E883F88288DE98C309709F46BC13A +:100BA000432D50E060E070E0962F852F742F66276C +:100BB00069A77AA78BA79CA7822F90E0A0E0B0E05E +:100BC000BC015527442789A59AA5ABA5BCA5842BB4 +:100BD000952BA62BB72B482D50E060E070E0842BBE +:100BE000952BA62BB72B89A79AA7ABA7BCA78E2DB1 +:100BF00090E0A0E0B0E0782F66275527442789A52C +:100C00009AA5ABA5BCA5842B952BA62BB72B89A7A2 +:100C10009AA7ABA7BCA70097A105B10589F4972DAA +:100C200080E0662D70E0682B792B6115710509F461 +:100C300022C1CB01A0E0B0E089A79AA7ABA7BCA7CF +:100C4000942D80E02A2C3324282A392A952D80E0FF +:100C5000A32FB0E0A82BB92BB8A7AFA39F2D80E09E +:100C6000202F30E0822B932B9C0140E050E02A8F14 +:100C70003B8F4C8F5D8FBF0180E090E0212F30E0F3 +:100C800040E050E00E94C5166E8F7F8F88A399A325 +:100C9000E9A4FAA40BA51CA54A8D5B8D6C8D7D8DF6 +:100CA000E41AF50A060B170B6E8D7F8D88A199A1AA +:100CB000E61AF70A080B190BC10101972FA138A5F5 +:100CC000B5E0220F331FBA95E1F7820F931FB101F0 +:100CD0000E94E41680E090E0E61AF70A080B190B70 +:100CE0007EA1272F30E040E050E0C801B7010E940C +:100CF0000B1729013A01D301C201855F9F40A04033 +:100D0000B0408050904FA040B04008F0B4C086E0A2 +:100D1000D60118968C93A4EA8A2EA1E09A2E88E137 +:100D2000F40111928A95E9F75101CC24DD2469A5DB +:100D30007AA58BA59CA5A60195010E94C516609376 +:100D4000A4017093A5018093A6019093A701C60109 +:100D5000B5012A8D3B8D4C8D5D8D0E94C5167B01A2 +:100D60008C012AA13BA14CA15DA1E20EF31E041F40 +:100D7000151FE092A801F092A9010093AA01109317 +:100D8000AB0142E050E060E070E0440E551E661E8C +:100D9000771E440C551C661C771C4092AC01509287 +:100DA000AD016092AE017092AF013092B10120921C +:100DB000B0015EA1852F90E0BC01269EC001279E58 +:100DC000900D369E900D11249093B3018093B20143 +:100DD0006E8D7F8D88A199A1A60195010E94C516EF +:100DE0006E0D7F1D801F911F6093B4017093B5013C +:100DF0008093B6019093B701AFA1B8A59D0140E0E3 +:100E000050E0E5E0220F331F441F551FEA95D1F74C +:100E1000620F731F841F951F6093B8017093B9010F +:100E20008093BA019093BB0194012250304002C0DC +:100E300020E030E0C901E0960FB6F894DEBF0FBEA7 +:100E4000CDBFCF91DF911F910F91FF90EF90DF9079 +:100E5000CF90BF90AF909F908F907F906F905F905A +:100E60004F903F902F9008958091A2019091A301FF +:100E7000892BF1F64ECE1092A3011092A201D8CF89 +:100E8000CF93DF939C01DB01009729F16115710578 +:100E900011F11D968C911D9784FF1DC080914A0110 +:100EA00090914B01892B19F4EAE4F1E008C080919C +:100EB000660190916701892B71F4E6E6F1E0EF019C +:100EC000229688E10D9009928150E1F731832083C9 +:100ED000138E128E02C0E0E0F0E0CF01DF91CF91DF +:100EE00008952F923F924F925F926F927F928F92CE +:100EF0009F92AF92BF92CF92DF92EF92FF920F93A9 +:100F00001F93DF93CF93CDB7DEB72A970FB6F89430 +:100F1000DEBF0FBECDBF4C017C836B831A010097EF +:100F200009F4DEC0672B09F4DBC04115510509F453 +:100F3000D7C0DC015A96ED90FD900D911C915D9704 +:100F400080E09EEFAFEFBFEFE822F9220A231B23D8 +:100F5000D4015A96ED92FD920D931C935D97529693 +:100F60002D913D914D915C9155972E153F05400770 +:100F7000510708F4B8C0C101A0E0B0E08E0D9F1D7C +:100F8000A01FB11F281739074A075B0728F419016A +:100F90002E183F0809F4A7C0D401ED91FC911197D8 +:100FA000208931893A8329835E968D919C915F9740 +:100FB0009A878987290166247724892BD9F5509649 +:100FC0000D90BC91A02DBA87A987AB2B39F4E11401 +:100FD000F1040105110509F486C082C0E114F10491 +:100FE0000105110539F15701680188279927DC01AE +:100FF00084199509A609B7098D839E83AF83B887A5 +:1010000014C069857A85D4018D919C910E94D70284 +:101010009A878987892B09F463C08D819E81AF816E +:10102000B885A80EB91ECA1EDB1EA414B504C604DA +:10103000D70438F7510191E0291692E0390618F0EB +:10104000A12C82E0B82EC801B701A30192010E9431 +:101050000B177B0129813A81261B370B65012A1565 +:101060003B0508F4690100E010E0D401ED91FC912A +:1010700086899789A08DB18DE80EF91E0A1F1B1F66 +:10108000E985FA853297BF0180E090E03296FA87D1 +:10109000E987A30192010E94C516E60EF71E081FFC +:1010A000191F96014B815C81C801B7010E946E0C2B +:1010B000892BC9F0960140E050E0F401828D938DB8 +:1010C000A48DB58D820F931FA41FB51F828F938FA0 +:1010D000A48FB58F29853A85378F268FA50105C046 +:1010E0004FEF5FEF02C040E050E0CA012A960FB612 +:1010F000F894DEBF0FBECDBFCF91DF911F910F914E +:10110000FF90EF90DF90CF90BF90AF909F908F9027 +:101110007F906F905F904F903F902F900895CF9366 +:10112000DF939C01FB01009731F06115710519F007 +:10113000858584FF2CC060E08CE790E003C060E010 +:1011400088E690E00E94D70C20E030E0C901DF91F2 +:10115000CF910895C4E8D1E0DF0188E10D900992B4 +:101160008150E1F7309383012093820110929C011A +:1011700010929D0110929E0110929F018685978585 +:101180009093A1018093A00122E831E0DFCF80910C +:10119000820190918301892B91F6DCCFFC010097AD +:1011A00011F480E00895108681E008958F929F9257 +:1011B000AF92BF92CF92DF92EF92FF920F93DF93A5 +:1011C000CF93CDB7DEB760970FB6F894DEBF0FBEF2 +:1011D000CDBF7C016B015A014901009709F493C00E +:1011E0006115710509F48FC004300CF08CC007FD47 +:1011F0001DC0602F772767FD7095E4E0660F771FAD +:10120000EA95E1F762547E4F882777FD8095982F05 +:1012100020E130E0AE014F5F5F4FF7010995882371 +:1012200009F471C08D81882309F46DC08091C401D7 +:10123000882309F068C07CC08D818093C4012A8511 +:1012400030E040E050E0542F432F322F22278B858F +:1012500090E0A0E0B0E0DC0199278827282B392B0B +:101260004A2B5B2B898590E0A0E0B0E0282B392B3E +:101270004A2B5B2B8C8590E0A0E0B0E0B82FAA272A +:1012800099278827282B392B4A2B5B2B2093C501C4 +:101290003093C6014093C7015093C8012E8530E0BA +:1012A00040E050E0542F432F322F22278F8590E0CB +:1012B000A0E0B0E0DC0199278827282B392B4A2BA6 +:1012C0005B2B8D8590E0A0E0B0E0282B392B4A2BDA +:1012D0005B2B888990E0A0E0B0E0B82FAA2799277F +:1012E0008827282B392B4A2B5B2B2093C90130935D +:1012F000CA014093CB015093CC0103C08FEF809380 +:10130000C4019F0102C020E030E0C90160960FB621 +:10131000F894DEBF0FBECDBFCF91DF910F91FF904C +:10132000EF90DF90CF90BF90AF909F908F900895F7 +:10133000ECEBF1E081E1DF011D928A95E9F7F09293 +:10134000BD01E092BC01D092BF01C092BE01B0923B +:10135000C101A092C0019092C3018092C20107FF17 +:101360006BCFCCCF81E0089581E00895282F8FEFD7 +:101370008EBD0DB407FEFDCF8DB58F778DBD8EB5BB +:10138000822F80648EBD0DB407FEFDCF8DB58F77A3 +:101390008DBD872F9927AA27BB278EBD0DB407FEC9 +:1013A000FDCF8DB58F778DBDCB01AA27BB278EBD15 +:1013B0000DB407FEFDCF8DB58F778DBDBB27A72F51 +:1013C000962F852F8EBD0DB407FEFDCF8DB58F777F +:1013D0008DBD4EBD0DB407FEFDCF8DB58F778DBD94 +:1013E000222311F08FEF01C085E98EBD0DB407FEF9 +:1013F000FDCF8DB58F778DBD90E02FEF2EBD0DB455 +:1014000007FEFDCF8DB58F778DBD8EB58F3F19F45B +:101410009F5F9A3099F70895CF93DF93239A259A87 +:10142000229A24982A9A83E58CBD8DB58E7F8DBD36 +:1014300020E030E09FEF9EBD0DB407FEFDCF8DB5DF +:101440008F778DBD8EB52F5F3F4F2A30310599F7CD +:101450002A98C0E0D0E040E050E060E070E080E03A +:101460000E94B609813031F081E0CF3FD807E1F02A +:101470002196F1CFC0E0D0E040E050E060E070E0C5 +:1014800081E00E94B60980FF06C08FE7CF3FD807F2 +:1014900059F02196F1CF40E052E060E070E080E149 +:1014A0000E94B609882319F02A9A80E008C02A9A77 +:1014B0008CB58C7F8CBD8DB581608DBD81E0DF9159 +:1014C000CF9108958F929F92AF92BF92DF92EF9249 +:1014D000FF920F931F93CF93DF937B018C015A01EF +:1014E000E901DD24DA94812C42E0942E5EC02A9832 +:1014F000B801A70140705E7F81E10E94B609882390 +:1015000019F02A9A80E055C0DEBC0DB407FEFDCF6D +:101510008DB58F778DBD8EB58E3FB1F7A701517018 +:10152000B401641B750BC617D70708F4BE01FB0195 +:10153000E40FF51F20E030E0DEBC0DB407FEFDCF68 +:101540008DB58F778DBD8EB52417350730F02E17EA +:101550003F0718F4D5018D935D012F5F3F4FB2E037 +:1015600020303B0749F7DEBC0DB407FEFDCF8DB53B +:101570008F778DBD8EB5DEBC0DB407FEFDCF8DB56A +:101580008F778DBD8EB52A9ADEBC0DB407FEFDCFD8 +:101590008DB58F778DBD8EB5C61BD70BCB01A0E067 +:1015A000B0E0E80EF91E0A1F1B1F209709F09FCF1D +:1015B00081E0DF91CF911F910F91FF90EF90DF902D +:1015C000BF90AF909F908F9008952091000130912F +:1015D00001019FEF0AC09EBD0DB407FEFDCF8DB582 +:1015E0008F778DBD8EB52F5F3F4F82E0203038075B +:1015F00090F38FEF8EBD0DB407FEFDCF8DB58F77C5 +:101600008DBD8EB58FEF8EBD0DB407FEFDCF8DB5B0 +:101610008F778DBD8EB52A9A8FEF8EBD0DB407FEE4 +:10162000FDCF8DB58F778DBD8EB58FEF9FEF9093EA +:1016300001018093000108952F923F924F925F9293 +:101640006F927F928F929F92AF92BF92CF92DF92D2 +:10165000EF92FF920F931F93DF93CF93CDB7DEB737 +:101660002C970FB6F894DEBF0FBECDBF4B015C01C7 +:101670001A013C872B872801FE82ED82D886CF8213 +:101680004115510509F4DAC02115310509F4D6C018 +:101690000217130708F4D2C0EF2809F4CFC02A9824 +:1016A000309521953F4F3A87298784011170D501E4 +:1016B000C40180709E7F89839A83AB83BC83AC0115 +:1016C000BD0181E10E94B609882311F02A9AB6C0B3 +:1016D0009FEF9EBD0DB407FEFDCF8DB58F778DBDFD +:1016E0008EB58E3FA9F720E030E00BC0AFEFAEBD66 +:1016F0000DB407FEFDCF8DB58F778DBD8EB52F5FF5 +:101700003F4F2017310790F3E12C52E0F52EE01AFD +:10171000F10A3701EB85FC856E1A7F0A6201CE1A49 +:10172000DF0A00E012E00E191F092B853C85E21646 +:10173000F30648F14216530630F1F10120E030E0A3 +:101740000CC08FEF8EBD0DB407FEFDCF8DB58F772A +:101750008DBD8EB581932F5F3F4FAB85BC852A171A +:101760003B0778F3A80160E070E0480D591D6A1D41 +:101770007B1D2F813885C101ED81FE81099588236C +:1017800021F491E026C090E024C02B853C85E21A2C +:10179000F30A421A530A61147104A9F389859A85E0 +:1017A000680E791EC80ED91E020F131FC9018C0DB9 +:1017B0009D1D892B09F0B9CFE6CFAFEFAEBD0DB4BB +:1017C00007FEFDCF8DB58F778DBD8EB50894E108EE +:1017D000F108E114F10489F7BFEFBEBD0DB407FEB7 +:1017E000FDCF8DB58F778DBD8EB5EFEFEEBD0DB40E +:1017F00007FEFDCF8DB58F778DBD8EB52B853C85D2 +:101800004216530678F0992369F489809A80AB8058 +:10181000BC8080E092E0A0E0B0E0880E991EAA1E95 +:10182000BB1E43CF2A9A8FEF8EBD0DB407FEFDCFAE +:101830008DB58F778DBD8EB581E001C080E02C968F +:101840000FB6F894DEBF0FBECDBFCF91DF911F91D1 +:101850000F91FF90EF90DF90CF90BF90AF909F904F +:101860008F907F906F905F904F903F902F90089552 +:10187000FC0120910001309101014FEF2F3F34070F +:1018800031F460E086E890E00E94D70CFFCFCB01F6 +:10189000820F931F8150924020F060E072E0621B43 +:1018A000730B20E030E04FEF14C04EBD0DB407FEC7 +:1018B000FDCF8DB58F778DBD8EB581938091000161 +:1018C00090910101019690930101809300012F5F97 +:1018D0003F4F2617370748F3CB010895CF92DF9289 +:1018E000EF92FF920F931F93CF93DF937B018C01B5 +:1018F0006A0180910001909101018F5F9F4F31F04B +:1019000060E08BE890E00E94D70CFFCFE90182E015 +:101910002130380710F0C0E0D2E02A9880E09EEF36 +:10192000AFEFBFEFE822F9220A231B23B801A7017A +:1019300081E10E94B609882321F02A9AC0E0D0E014 +:101940002CC09FEF9EBD0DB407FEFDCF8DB58F77E8 +:101950008DBD8EB58E3FB1F710920101109200013E +:101960002FEF14C02EBD0DB407FEFDCF8DB58F77C0 +:101970008DBD8EB5D6018D936D0180910001909142 +:101980000101019690930101809300018091000173 +:10199000909101018C179D0728F3CE01DF91CF9123 +:1019A0001F910F91FF90EF90DF90CF9008950F93CC +:1019B0001F93CF93DF93EC01062F10E005C08DEF4E +:1019C00093E00E94C7121F5FFE01E10FF11D6491B9 +:1019D0006623A9F7002351F06AE08DEF93E00E949F +:1019E000CF126DE08DEF93E00E94CF12DF91CF9187 +:1019F0001F910F9108951F920F920FB60F9211240D +:101A00002F933F934F938F939F93AF93BF93EF93F6 +:101A1000FF93E091CD01F091CE01309709F4A8C079 +:101A20002091D3033091D4038091D5039091D603B4 +:101A30002817390709F047C08091D8038823B9F1E6 +:101A40008091CF039091D0032FEC32E041E08F3CA6 +:101A5000940749F43093D0032093CF039093D2039B +:101A60008093D1030AC08FEC91E09093D0038093D0 +:101A7000CF033093D2032093D1038091CF03909171 +:101A8000D0039093D4038093D30380509F4F9093BF +:101A9000D6038093D5031092D8038091D70388236F +:101AA00091F480916F00846080936F000CC08189F5 +:101AB0009289A389B4890196A11DB11D818B928B56 +:101AC000A38BB48B55C05A985C985B9A5B985C9AD0 +:101AD0005B9A5B985B9A5B985B9A5B988781803195 +:101AE00019F5E091D303F091D4038181805890E0FF +:101AF00087FF02C05C9A01C05C985B9A5B989F5F0D +:101B0000983011F0880FF4CF908180E097FF02C0E9 +:101B10005C9A01C05C985B9A5B988F5F843011F08F +:101B2000990FF4CF32961DC08830F9F4E091D303B9 +:101B3000F091D403908180E097FF02C05C9A01C0CD +:101B40005C985B9A5B988F5F883011F0990FF4CFA7 +:101B50005B9A5B985B9A5B985B9A5B985B9A5B98E5 +:101B60003196F093D403E093D3035A9A5D985D9A2B +:101B7000FF91EF91BF91AF919F918F914F913F91C5 +:101B80002F910F900FBE0F901F90189508950895F4 +:101B9000DC015696ED91FC9157976289738984898F +:101BA000958908959A01AB0160E074E284EF90E0BA +:101BB0000E940B1730938900209388000895CF93DB +:101BC000DF93EC0180916F008D7F80936F008D8992 +:101BD000882319F00E94E50A1D8AE091CD01F09159 +:101BE000CE01108A1092CE011092CD01DF91CF91DB +:101BF00008950F931F93DF93CF9300D000D0CDB7FC +:101C0000DEB78C01407049835A836B837C83DC018F +:101C100050968C91882351F0F894F8018589882397 +:101C200029F00E94E50AD80155961C9240E0BE01B9 +:101C30006F5F7F4FF801868997890E946404D801FD +:101C40005696ED91FC91579782899389A489B5891D +:101C500029813A814B815C81821B930BA40BB50BCC +:101C6000F80180879187A287B38778940F900F90AF +:101C70000F900F90CF91DF911F910F910895CF9208 +:101C8000DF92EF92FF920F931F93DF93CF93CDB725 +:101C9000DEB728970FB6F894DEBF0FBECDBF8C011C +:101CA0006B0144E050E07E010894E11CF11CB70197 +:101CB000C6010E942103049709F0F0C044E050E0FF +:101CC00062E071E0C7010E94A816009709F0E6C023 +:101CD000F5C044E050E067E071E0CE0105960E9457 +:101CE000A816009709F0DAC0F2C044E050E06CE0BA +:101CF00071E0C7010E94A816009709F0CFC0F0C09C +:101D0000542F432F322F22278081280F311D411D50 +:101D1000511D3197EC17FD0799F7F8012487358796 +:101D200046875787203131054105510509F0B6C076 +:101D300048E050E0BE016F5F7F4FC6010E94210363 +:101D4000089709F0ABC08A8190E0A0E0B0E0BA2F1C +:101D5000A92F982F88272981820F911DA11DB11DC0 +:101D60000197A105B10521F061E088EA90E084C007 +:101D70008C8190E0A0E0B0E02227382F492F5A2F25 +:101D80008B81280F311D411D511D23303105410527 +:101D9000510508F083C0F8012083FE013896BE018A +:101DA0006C5F7F4F542F432F322F22278081280FC3 +:101DB000311D411D511D3197E617F70799F7F801BD +:101DC000218332834383548348E050E0BE016F5F38 +:101DD0007F4FC6010E942103089709F05FC08E81E2 +:101DE00090E0A0E0B0E0BA2FA92F982F88272D818E +:101DF000820F911DA11DB11DF801968385838885F1 +:101E000090E0A0E0B0E02227382F492F5A2F8F8191 +:101E1000280F311D411D511D21313105410551054D +:101E200008F03CC0278381819281A381B4818332F1 +:101E3000F6E59F07F0E0AF07F0E0BF0718F02930A4 +:101E400040F00CC081589E43A040B04050F0293073 +:101E500040F0FF24F8018081823020F0FF24F394C9 +:101E600001C0FF2461E087EA90E00E94D70CFF20C8 +:101E700031F061E081E990E00E94D70C0FC0F801D9 +:101E80001086118612861386D78AC68A118A128A0C +:101E9000138A148A108A158A81E001C080E028968E +:101EA0000FB6F894DEBF0FBECDBFCF91DF911F916B +:101EB0000F91FF90EF90DF90CF90089548E050E0B1 +:101EC000B701C6010E942103089741F702CF44E001 +:101ED00050E0B701C6010E9421030497F9F605CF2F +:101EE000F801148615861686178644E050E0B7017F +:101EF000C6010E942103049789F6F80124853585DF +:101F000046855785FE013496FBCEAF92BF92CF92A5 +:101F1000DF92EF92FF920F931F93DF93CF9300D046 +:101F200000D00F92CDB7DEB76C015B01F42EE52E29 +:101F3000FC0180859185A285B3850097A105B10537 +:101F4000D1F544E050E08E010F5F1F4FB801868944 +:101F500097890E942103049709F0F5C01D8244E08F +:101F600050E0B801D60156968D919C9157970E94EA +:101F70002103049709F0E7C0F60110861186128646 +:101F80001386FE01349620E030E040E050E0542F0C +:101F9000432F322F22278081280F311D411D511DD3 +:101FA0003197EC17FD0799F7D60118962D933D93BD +:101FB0004D935C931B978F2D9E2D9C017901B2E070 +:101FC00021303B0718F0E12C72E0F72EF601208556 +:101FD000318542855385C701A0E0B0E02817390755 +:101FE0004A075B0708F47901D6015696ED91FC91FA +:101FF0005797828D938DA48DB58D9170A070B07020 +:102000000097A105B105D1F4D60155968C9188238E +:10201000A9F4A701B501CF010E9471078C018E15AB +:102020009F0541F060E082EE90E00E94D70C0E9494 +:10203000E50A8BC081E0F601858B73C0D601559609 +:102040008C91882309F463C0B701C5010E94380C44 +:102050005C018E159F0539F060E08CED90E00E94E8 +:10206000D70C0E94E50AD6015696ED91FC91579740 +:10207000C501A0E0B0E0228D338D448D558D820FD7 +:10208000931FA41FB51F828F938FA48FB58F91705C +:10209000A070B0700097A105B10509F041C00E9481 +:1020A000E50AF601158A06891789D801ED90FC909A +:1020B0001197F7012089318940E050E05A966D91DF +:1020C0007D918D919C915D970E940B176115710513 +:1020D0008105910529F5D8015E966D917C915F97F8 +:1020E000C7010E94D702F801978F868F892BC1F410 +:1020F000D6015696ED91FC915797178E168E61E09A +:1021000082EC90E00E94D70C0FEF1FEF1EC0A701DA +:10211000B501CF010E9421038E159F05A1F401C0D6 +:102120007501970140E050E0F60180859185A28518 +:10213000B385821B930BA40BB50B80879187A28775 +:10214000B387870102C000E010E0C8010F900F9034 +:102150000F900F900F90CF91DF911F910F91FF90F3 +:10216000EF90DF90CF90BF90AF900895CF92DF9225 +:10217000EF92FF920F931F93CF93DF93EC01C980EF +:10218000DA80EB80FC809093CE018093CD010FEC40 +:1021900011E01093D4030093D30342E050E0B80160 +:1021A0000E94850F892B09F451C08091D30390912F +:1021B000D40302969093D6038093D503EE89FF89CA +:1021C000828D40E051E0481B5109B8016E5F7F4F9E +:1021D0008091CD019091CE010E94850F9C010097C6 +:1021E000A9F18091D5039091D603820F931F90930C +:1021F000D6038093D50340E051E06FEC72E080910C +:10220000CD019091CE010E94850F81E08093D8038B +:10221000888B1092800089E08093810060E074E2F6 +:1022200084EF90E0A70196010E940B17309389007C +:102230002093880081E090E090938B0080938A0047 +:1022400080916F00826080936F007894DF91CF91CE +:102250001F910F91FF90EF90DF90CF9008951F9204 +:102260000F920FB60F9211242F933F934F935F93CA +:102270006F937F938F939F93AF93BF93EF93FF934E +:1022800080916F008B7F80936F008091D8038823AB +:10229000F9F481E08093D70378946091D103709131 +:1022A000D20340E051E08091CD019091CE010E9497 +:1022B000850F892B31F48091CD019091CE010E9440 +:1022C000DF0DF8941092D70381E08093D8037894BF +:1022D000FF91EF91BF91AF919F918F917F916F91FE +:1022E0005F914F913F912F910F900FBE0F901F90D4 +:1022F00018958BED93E00E94F80083EE93E00E9426 +:10230000C70D08950F931F9383EE93E00E94DF0D96 +:102310006091E1037091E2030BED13E0C8010E94AC +:10232000F900C8010E94FD001F910F910895CF93FD +:10233000DF93EC018091F303882361F083EE93E057 +:102340000E94DF0D6091E1037091E2038BED93E059 +:102350000E94F9008BED93E00E94FD00BE018BED21 +:1023600093E00E945301BC019093E2038093E10348 +:10237000009751F083EE93E00E943F0E882321F0F6 +:1023800083EE93E00E94B610DF91CF9108950E94F2 +:1023900097118091F3038823E1F76091E103709135 +:1023A000E2038BED93E00E94F90008951F938DEFF7 +:1023B00093E00E94BF12882389F08DEF93E00E9482 +:1023C000BC12182F482F50E060E070E020E030E0B1 +:1023D0008DEF93E00E943614812F00C01F91089565 +:1023E0000E94D6118093FC038330C9F084303CF402 +:1023F000813079F0823084F4882341F0089585306B +:10240000A1F085307CF08630C9F414C00E9482119E +:10241000089581E191E00BC087E191E008C08DE172 +:1024200091E005C083E291E002C089E291E00E9460 +:10243000C71108958FE291E00E94C71108950F938C +:102440001F93DF93CF93CDB7DEB72D970FB6F894D8 +:10245000DEBF0FBECDBF8BED93E00E94FD0061E0BB +:1024600088EE90E00E94D70C8E010F5F1F4FB801DD +:102470008BED93E00E945C01882379F48BED93E06F +:102480000E94FD002D960FB6F894DEBF0FBECDBFA3 +:10249000CF91DF911F910F910895B8018DEF93E0D7 +:1024A0000E941613E4CF40E855E260E070E08DEF43 +:1024B00093E00E94C21265E371E08DEF93E00E9409 +:1024C000161361E082E00E94331561E083E00E9410 +:1024D000331561E084E00E94331561E085E00E94DD +:1024E000331561E089E00E9433158BED93E00E9483 +:1024F0000502882321F461E088E391E01DC08BEDA3 +:1025000093E00E94DA01882321F461E08AE291E0FD +:1025100013C08BED93E00E94C701882321F461E092 +:1025200084E191E009C08BED93E00E949301882340 +:1025300031F461E082E091E00E94D70C089561E0FF +:1025400085EF90E00E94D70C0E941F1208950E9410 +:10255000F9140E9453120E94F011FDCF88E491E01B +:102560009093FE038093FD030895862F0E94211609 +:1025700008950E94591608950E943A1608950E94DF +:1025800029160895CB01BA010E94E8150895DC01CF +:10259000ED91FC910190F081E02D09950895DC0109 +:1025A000ED91FC910190F081E02D099508950F9334 +:1025B0001F93CF93DF938C01EB0109C02196D801C3 +:1025C000ED91FC910190F081E02DC80109956881A1 +:1025D0006623A1F7DF91CF911F910F9108950F937B +:1025E0001F938C01DC01ED91FC910190F081E02DB5 +:1025F0006DE00995D801ED91FC910190F081E02DFD +:102600006AE0C80109951F910F9108950F931F93D8 +:102610008C01DC01ED91FC910190F081E02D099598 +:10262000C8010E94EF121F910F9108950F931F93FD +:102630008C010E94D712C8010E94EF121F910F91C6 +:1026400008950F931F938C01DC01ED91FC91019093 +:10265000F081E02D0995C8010E94EF121F910F91A2 +:1026600008952F923F924F925F926F927F928F9236 +:102670009F92AF92BF92CF92DF92EF92FF920F9311 +:102680001F93DF93CF93CDB7DEB7A0970FB6F89423 +:10269000DEBF0FBECDBF1C016A017B014115510594 +:1026A0006105710549F4DC01ED91FC910190F08127 +:1026B000E02D60E3099554C0882499245401422EEA +:1026C00055246624772401E010E00C0F1D1F080D2F +:1026D000191DC701B601A30192010E940B17F80151 +:1026E00060830894811C911CA11CB11CC701B60118 +:1026F000A30192010E940B17C901DA016C017D014F +:10270000C114D104E104F104F1F681E0E82EF12CCA +:10271000EC0EFD1EE80CF91C3E010894611C711CB6 +:10272000D501C4010197A109B1096C01C818D908E4 +:1027300014C0F601EE0DFF1D60816A3010F4605D7B +:1027400001C0695CD101ED91FC910190F081E02D17 +:10275000C10109950894E108F1086E147F0449F756 +:10276000A0960FB6F894DEBF0FBECDBFCF91DF911C +:102770001F910F91FF90EF90DF90CF90BF90AF909F +:102780009F908F907F906F905F904F903F902F9091 +:1027900008952AE00E94311308950F931F938C012E +:1027A0000E94C913C8010E94EF121F910F91089552 +:1027B000AB0160E070E00E94C91308950F931F936E +:1027C0008C01AB0160E070E00E94C913C8010E9457 +:1027D000EF121F910F910895EF92FF920F931F93A5 +:1027E000CF93DF93EC017A018B0177FF0FC0E88173 +:1027F000F9810190F081E02D6DE209951095009529 +:10280000F094E094E11CF11C011D111D2AE0B801B7 +:10281000A701CE010E943113DF91CF911F910F913B +:10282000FF90EF9008950F931F938C010E94EC137B +:10283000C8010E94EF121F910F910895AB01662706 +:1028400057FD6095762F0E94EC1308950F931F9308 +:102850008C01AB01662757FD6095762F0E94EC1323 +:10286000C8010E94EF121F910F910895DC012115FC +:10287000310541F4ED91FC910190F081E02D642F40 +:10288000099508952A30310519F40E94EC13089532 +:102890000E94311308950F931F938C010E943614E8 +:1028A000C8010E94EF121F910F9108951F920F927D +:1028B0000FB60F9211242F938F939F93AF93BF93D3 +:1028C0008091FF0390910004A0910104B091020453 +:1028D0008050904CAF4FBF4F8093FF039093000404 +:1028E000A0930104B093020427C08091FF0390914C +:1028F0000004A0910104B091020480589E43A040BE +:10290000B0408093FF0390930004A0930104B09320 +:1029100002048091030490910404A0910504B091F5 +:1029200006040196A11DB11D809303049093040435 +:10293000A0930504B09306048091FF0390910004D6 +:10294000A0910104B091020481589E43A040B04080 +:1029500060F6BF91AF919F918F912F910F900FBE15 +:102960000F901F9018958FB7F89420910304309121 +:10297000040440910504509106048FBFB901CA01B7 +:102980000895EF92FF920F931F937B018C018FB7F5 +:10299000F8944091030450910404609105047091EF +:1029A00006048FBF2FB7F89480910304909104041C +:1029B000A0910504B09106042FBF841B950BA60BB4 +:1029C000B70B8E159F05A007B10760F31F910F91FC +:1029D000FF90EF900895019759F0FC01EE0FFF1F53 +:1029E000EE0FFF1F32978FB7F8943197F1F78FBF33 +:1029F0000895789484B5826084BD84B5816084BD77 +:102A000085B5826085BD85B5816085BDEEE6F0E067 +:102A1000808181608083E1E8F0E080818260808352 +:102A2000808181608083E0E8F0E080818160808344 +:102A3000E1EBF0E0808184608083E0EBF0E0808176 +:102A400081608083EAE7F0E0808184608083808118 +:102A500082608083808181608083808180688083C0 +:102A60001092C1000895282F30E0C90182599E4F6D +:102A7000FC019491265A3E4FF9018491882381F0FC +:102A8000E82FF0E0E55BFE4FE491F0E0662329F4E7 +:102A9000808190958923808308958081892B80830C +:102AA0000895482F50E0CA018E579E4FFC01249193 +:102AB000CA0182599E4FFC019491465A5E4FFA0119 +:102AC00034913323C1F1222331F1233021F4809159 +:102AD00080008F7705C0243031F4809180008F7D95 +:102AE0008093800018C0213019F484B58F7704C01A +:102AF000223021F484B58F7D84BD0DC0263021F4B1 +:102B00008091B0008F7705C0273029F48091B00004 +:102B10008F7D8093B000E32FF0E0E05BFE4FE49107 +:102B2000F0E0662329F480819095892380830895BD +:102B30008081892B80830895482F50E0CA018E57E9 +:102B40009E4FFC012491CA0182599E4FFC01949131 +:102B5000465A5E4FFA013491332319F420E030E0F5 +:102B600035C0222331F1233021F4809180008F770A +:102B700005C0243031F4809180008F7D80938000E7 +:102B800018C0213019F484B58F7704C0223021F4A5 +:102B900084B58F7D84BD0DC0263021F48091B000B6 +:102BA0008F7705C0273029F48091B0008F7D809306 +:102BB000B000E32FF0E0EB5AFE4FE491F0E08081AB +:102BC00020E030E0892311F021E030E0C9010895D0 +:102BD000EF92FF920F931F937B018C0122E030E074 +:102BE00040E050E00E942D17205C3D4B404F5F4F6E +:102BF000CA01B901A80197010E942D17C901DA0184 +:102C00000197A109B109292F3A2F4B2F552747FDCD +:102C10005A950196A11DB11D2093C5008150809346 +:102C2000C400E1ECF0E08081806180838081886075 +:102C300080838081806880831F910F91FF90EF9047 +:102C40000895982F8091C00085FFFCCF9093C60017 +:102C50000895809107049091080480589F4F209117 +:102C6000090430910A04821B930B60E870E00E9413 +:102C7000F81608954091090450910A0480910704C0 +:102C8000909108048417950719F42FEF3FEF0FC0B8 +:102C9000FA01E55FFB4F2081CA01019660E870E010 +:102CA0000E94F81690930A048093090430E0C90149 +:102CB00008958091090490910A04909308048093E8 +:102CC000070408951F920F920FB60F9211242F93AD +:102CD0003F934F935F936F937F938F939F93AF93A4 +:102CE000BF93EF93FF934091C600E0910704F091EA +:102CF0000804CF01019660E870E00E94F8169C017C +:102D00008091090490910A042817390739F0E55F8A +:102D1000FB4F40833093080420930704FF91EF9109 +:102D2000BF91AF919F918F917F916F915F914F91E3 +:102D30003F912F910F900FBE0F901F901895FB01A0 +:102D4000DC018D91019080190110D9F3990B089540 +:102D5000FB01DC014150504030F08D910190801911 +:102D600019F40020B9F7881B990B0895FB01DC01C9 +:102D70004150504048F001900D920020C9F701C029 +:102D80001D9241505040E0F70895629FD001739F1B +:102D9000F001829FE00DF11D649FE00DF11D929FF7 +:102DA000F00D839FF00D749FF00D659FF00D992736 +:102DB000729FB00DE11DF91F639FB00DE11DF91F5A +:102DC000BD01CF0111240895AA1BBB1B51E107C00F +:102DD000AA1FBB1FA617B70710F0A61BB70B881FAB +:102DE000991F5A95A9F780959095BC01CD0108953A +:102DF00097FB092E07260AD077FD04D0E5DF06D021 +:102E000000201AF4709561957F4F0895F6F790951C +:102E100081959F4F0895A1E21A2EAA1BBB1BFD01AD +:102E20000DC0AA1FBB1FEE1FFF1FA217B307E407A9 +:102E3000F50720F0A21BB30BE40BF50B661F771F01 +:102E4000881F991F1A9469F76095709580959095E1 +:102E50009B01AC01BD01CF01089597FB092E05260A +:102E60000ED057FD04D0D7DF0AD0001C38F450959F +:102E70004095309521953F4F4F4F5F4F0895F6F79E +:102E800090958095709561957F4F8F4F9F4F0895D6 +:102E9000EE0FFF1F0590F491E02D0994F894FFCFF9 +:102EA000FFFF52494646005741564500666D742063 +:102EB00000312E57415600322E57415600332E57BF +:102EC000415600342E57415600352E574156003694 +:102ED0002E5741560041756469666F6E6F207465A8 +:0A2EE0007374210000000000B51219 +:00000001FF diff --git a/2009/audifono/applet/audifono.rom b/2009/audifono/applet/audifono.rom new file mode 100644 index 0000000..7de0cc4 --- /dev/null +++ b/2009/audifono/applet/audifono.rom @@ -0,0 +1,753 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4D697320646F63FD +S11300000C94CD000C94F5000C94F5000C94F500C0 +S11300100C94F5000C94F5000C94F5000C94F50088 +S11300200C94F5000C94F5000C94F5000C94FB0C66 +S11300300C942F110C94F5000C94F5000C94F5001D +S11300400C9456140C94F5000C9462160C94F50060 +S11300500C94F5000C94F5000C94F5000C94F50048 +S11300600C94F5000C94F500746F6F206D616E793B +S1130070206F70656E2066696C6573006261642030 +S1130080696E707574005941414B00594545454BA3 +S11300900053616D706C65207261746520746F6FBC +S11300A02068696768210000436F6D70726573731F +S11300B0696F6E206E6F7420737570706F727465E3 +S11300C064006661696C656420746F2067657420E0 +S11300D06E657720636C757374657200202121212D +S11300E02000203F3F3F200046696C657320666F07 +S11300F0756E643A0046696C657320666F756E644C +S11301003A00436F756C646E2774206F70656E20BF +S113011064697200436F756C646E2774206F706538 +S11301206E2066696C65737973004E6F207061721E +S1130130746974696F6E21004361726420696E6929 +S1130140742E206661696C65642100000024272AEE +S1130150000025282B000023262904040404040499 +S11301600404020202020202030303030303010262 +S11301700408102040800102040810200102040831 +S11301801020000000070002010000030406000024 +S11301900000000000007911AE1211241FBECFEF41 +S11301A0D4E0DEBFCDBF11E0A0E0B1E0E0EAFEE2C2 +S11301B002C005900D92AA34B107D9F714E0AAE45D +S11301C0B1E001C01D92AB38B107E1F711E0CAE913 +S11301D0D1E004C02297FE010E944A17C639D10714 +S11301E0C9F70E94A7120C944E170C9400000895AE +S11301F00895CB010E941B030895FC01848195811D +S11302000E94AD040895EF92FF920F931F93CF9332 +S1130210DF93EB018A0179010BC0B801C7010E9489 +S11302209F16009729F4CE010E94AD0481E006C018 +S1130230B701CE010E94B604882379F7DF91CF91EC +S11302401F910F91FF90EF900895EF92FF920F93FB +S11302501F93DF93CF93CDB7DEB768970FB6F894AB +S1130260DEBF0FBECDBF8C017E010894E11CF11CE2 +S113027097010E940301882319F420E030E005C0AF +S1130280B701C8010E948F089C01C90168960FB686 +S1130290F894DEBF0FBECDBFCF91DF911F910F91B8 +S11302A0FF90EF900895FC01AB0164817581828118 +S11302B093810E9425010895EF92FF920F931F935B +S11302C0DF93CF93CDB7DEB768970FB6F894DEBF50 +S11302D00FBECDBF8B017E010894E11CF11CB70158 +S11302E0FC01848195810E94B604882349F04CE086 +S11302F050E0B701C8010E94B616F801148681E0E7 +S113030068960FB6F894DEBF0FBECDBFCF91DF91D4 +S11303101F910F91FF90EF900895FC0184819581C6 +S11303200E94A7040895EF92FF920F931F93DF9307 +S1130330CF93CDB7DEB768970FB6F894DEBF0FBE84 +S1130340CDBF8C017E010894E11CF11CB701FC01B6 +S1130350828193810E945905B701F80182819381BA +S11303600E944007F8019583848320E0892B09F0DB +S113037021E0822F68960FB6F894DEBF0FBECDBF82 +S1130380CF91DF911F910F91FF90EF9008950F93FC +S11303901F938C01FC01808191810E946A05F80100 +S11303A09383828320E0892B09F021E0822F1F911F +S11303B00F9108950F93CF93DF93EC0100E020E0B9 +S11303C030E040E050E06CE17BE082E69AE00E949D +S11303D0D60899838883892B69F40FEF20E030E0F5 +S11303E040E050E06CE17BE082E69AE00E94D608AF +S11303F09983888320E088819981892B09F021E001 +S1130400822FDF91CF910F9108950E940C0A0895D5 +S1130410FC01009711F0118210820895DC018C9187 +S1130420853E39F1882329F1F901208131818281C6 +S113043093812817390799F4448355836683778316 +S11304401B968C911B978F3011F080E205C08C9124 +S11304508295880F807E805E808780E008951B9659 +S11304608C918F3031F02F5F3F4F3183208381E0B7 +S1130470089581E008950F931F93CF93DF938C0128 +S1130480FC018081853E09F48CC0882309F489C06D +S1130490E9018C899D89AE89BF890097A105B105C1 +S11304A021F44C8B5D8B6E8B7F8B209709F479C084 +S11304B00115110509F475C0F8018081882309F438 +S11304C070C083858F3011F481E06CC0A801D8011D +S11304D080E090E0282F3C91303251F0FE01E80F8B +S11304E0F91F30832F5F019611968830910591F79B +S11304F08881853011F485EE8883F8018085803207 +S1130500B1F0FE01E20FF11D8EE28083822F8F5F36 +S11305102C5FFA019085903249F0FE01E80FF11D3D +S113052090838F5F4F5F5F4F821799F7282FFE01EB +S1130530E20FF11D1082F80183858D87938D80E091 +S1130540228D30E0822B932B9F878E87258D30E080 +S113055040E050E0542F432F322F2227868D90E025 +S1130560A0E0B0E0DC0199278827282B392B4A2BFF +S11305705B2B848D90E0A0E0B0E0282B392B4A2B34 +S11305805B2B878D90E0A0E0B0E0B82FAA279927D5 +S11305908827282B392B4A2B5B2B288B398B4A8BAA +S11305A05B8B80E0DF91CF911F910F910895DF93D2 +S11305B0CF9300D0CDB7DEB7DC010097A1F1623054 +S11305C0710588F1ED91FC911197660F771F80E01A +S11305D090E016962D913D914D915C911997620F83 +S11305E0731F841F951F0190F081E02D22E030E0FD +S11305F0AE014F5F5F4F09958823A9F09A8180E08F +S1130600298130E0282B392B2115310571F08FEF2A +S1130610273F380741F0C9014096079720F08FEF34 +S1130620283F380710F020E030E0C9010F900F9008 +S1130630CF91DF910895FC01009711F0118210828F +S113064008952F923F924F925F926F927F928F9272 +S11306509F92AF92BF92CF92DF92EF92FF920F934D +S11306601F93DF93CF93CDB7DEB72C970FB6F894D3 +S1130670DEBF0FBECDBF3C0178876F835A874987A1 +S1130680009709F402C1672B09F4FFC0452B09F454 +S1130690FCC0DC015A96AD90BD90CD90DC905D9786 +S11306A052962D913D914D915C915597E985FA852E +S11306B0CF01A0E0B0E08A0D9B1DAC1DBD1D281725 +S11306C039074A075B0740F4B9016A197B097A873D +S11306D06987672B09F4DCC0D301ED91FC91119774 +S11306E0208931893A8329835E966D917C915F9745 +S11306F07C876B87C901A0E0B0E08B839C83AD83CA +S1130700BE83672BE1F5F3010088F189E02DFC87B6 +S1130710EB87EF2B39F4A114B104C104D10409F41B +S1130720B7C0B3C0A114B104C104D10441F186011E +S113073075012B803C804D805E80509440943094B1 +S11307402094211C311C411C511C10C06B857C85DC +S1130750D3018D919C910E94D7029C878B87892B12 +S113076009F493C0E20CF31C041D151D6B817C81FC +S11307708D819E81E616F7060807190738F7C6012A +S1130780B5012B813C814D815E810E940B172B01A9 +S113079089849A84D301ED91FC91A980BA80A4182C +S11307A0B5088A149B0408F45401C080D1807201F6 +S11307B000E010E086899789A08DB18DE80EF91EBE +S11307C00A1F1B1FEB85FC853297BF0180E090E078 +S11307D03296FC87EB872B813C814D815E810E94A0 +S11307E0C516E60EF71E081F191FD601ED91FC91E0 +S11307F095014F815885C801B7010995882361F196 +S11308008A189B08C501A0E0B0E0F301228D338D66 +S1130810448D558D280F391F4A1F5B1FD3015A96EB +S11308202D933D934D935C935D97C501840D951D68 +S1130830E981FA818E179F07B0F06B857C858D91D5 +S11308409C910E94D7029C878B87892B51F4D301FA +S11308505F961C921E925E9749855A8548195909DC +S113086019C0442455242B853C85F301378F268FEA +S11308708114910439F06F8178856A0D7B1D788726 +S11308806F8388CF49855A8505C04FEF5FEF02C05B +S113089040E050E0CA012C960FB6F894DEBF0FBEBC +S11308A0CDBFCF91DF911F910F91FF90EF90DF901B +S11308B0CF90BF90AF909F908F907F906F905F90FC +S11308C04F903F902F900895CF93DF93FC01EB015D +S11308D00097C9F161157105B1F1828D938DA48DD5 +S11308E0B58D413051F0413018F0423061F50AC005 +S11308F0288139814A815B8111C0288139814A81EB +S11309005B8108C0288139814A815B81828993890E +S1130910A489B589280F391F4A1F5B1F82899389CF +S1130920A489B58982179307A407B50760F0228FBD +S1130930338F448F558F178E168E288339834A83BD +S11309405B8381E001C080E0DF91CF910895FC01D9 +S1130950009711F0118210820895FC01009711F4A0 +S113096080E00895138E128E81E008952F923F92B5 +S11309704F925F926F927F928F929F92AF92BF92AB +S1130980CF92DF92EF92FF920F931F93DF93CF9357 +S1130990CDB7DEB7A9970FB6F894DEBF0FBECDBFB3 +S11309A03C012B01009709F44AC06115710509F453 +S11309B046C0FC0180899189892B09F040C0228DB1 +S11309C0338DA081B1811097B9F1ED91FC9111970C +S11309D022803380AE014F5F5F4F89E0FA011192AC +S11309E08A95E9F73C832B8352966D917D918D9185 +S11309F09C91559756960D911C915797061B170B72 +S1130A006A012EE0E22E22E0F22E20E230E0AE0176 +S1130A10465F5F4FF1010995882371F08D809E80B8 +S1130A20AF80B88481149104A104B10429F021C0D9 +S1130A30F20180818823A9F5F301138E128E80E0E0 +S1130A40A9960FB6F894DEBF0FBECDBFCF91DF914C +S1130A501F910F91FF90EF90DF90CF90BF90AF90D8 +S1130A609F908F907F906F905F904F903F902F90CA +S1130A70089588E1F20111928A95E9F709856201E6 +S1130A809BE3E92E92E0F92E10E020E230E0AE0183 +S1130A90465F5F4FC501B401F1010995882361F2F6 +S1130AA0C7CFF301828D938D0196938F828F81E05E +S1130AB0C7CFFB01892B61F06115710549F088E10D +S1130AC0DB011D928A95E9F780E1858781E008952D +S1130AD080E008952F923F924F925F926F927F929F +S1130AE08F929F92AF92BF92CF92DF92EF92FF923A +S1130AF00F931F93DF93CF93CDB7DEB7E0970FB675 +S1130B00F894DEBF0FBECDBF6C01009709F490C10D +S1130B10ABC1E2EAF1E08AE1DF011D928A95E9F7CF +S1130B20D092A301C092A201D60119962D913D91B4 +S1130B304D915C911C9719E0220F331F441F551FE0 +S1130B401A95D1F72AA33BA34CA35DA3CA01B9010B +S1130B50655F7F4F8F4F9F4FED91FC9129E130E00E +S1130B60AE014F5F5F4F0995882309F484C1A980C2 +S1130B704A80BB81BEA30C81FD801E813F815884C5 +S1130B8069847A849D8580E02C85E22FF0E0E82B4F +S1130B90F92B8E883F88288DE98C309709F46BC136 +S1130BA0432D50E060E070E0962F852F742F662768 +S1130BB069A77AA78BA79CA7822F90E0A0E0B0E05A +S1130BC0BC015527442789A59AA5ABA5BCA5842BB0 +S1130BD0952BA62BB72B482D50E060E070E0842BBA +S1130BE0952BA62BB72B89A79AA7ABA7BCA78E2DAD +S1130BF090E0A0E0B0E0782F66275527442789A528 +S1130C009AA5ABA5BCA5842B952BA62BB72B89A79E +S1130C109AA7ABA7BCA70097A105B10589F4972DA6 +S1130C2080E0662D70E0682B792B6115710509F45D +S1130C3022C1CB01A0E0B0E089A79AA7ABA7BCA7CB +S1130C40942D80E02A2C3324282A392A952D80E0FB +S1130C50A32FB0E0A82BB92BB8A7AFA39F2D80E09A +S1130C60202F30E0822B932B9C0140E050E02A8F10 +S1130C703B8F4C8F5D8FBF0180E090E0212F30E0EF +S1130C8040E050E00E94C5166E8F7F8F88A399A321 +S1130C90E9A4FAA40BA51CA54A8D5B8D6C8D7D8DF2 +S1130CA0E41AF50A060B170B6E8D7F8D88A199A1A6 +S1130CB0E61AF70A080B190BC10101972FA138A5F1 +S1130CC0B5E0220F331FBA95E1F7820F931FB101EC +S1130CD00E94E41680E090E0E61AF70A080B190B6C +S1130CE07EA1272F30E040E050E0C801B7010E9408 +S1130CF00B1729013A01D301C201855F9F40A0402F +S1130D00B0408050904FA040B04008F0B4C086E09E +S1130D10D60118968C93A4EA8A2EA1E09A2E88E133 +S1130D20F40111928A95E9F75101CC24DD2469A5D7 +S1130D307AA58BA59CA5A60195010E94C516609372 +S1130D40A4017093A5018093A6019093A701C60105 +S1130D50B5012A8D3B8D4C8D5D8D0E94C5167B019E +S1130D608C012AA13BA14CA15DA1E20EF31E041F3C +S1130D70151FE092A801F092A9010093AA01109313 +S1130D80AB0142E050E060E070E0440E551E661E88 +S1130D90771E440C551C661C771C4092AC01509283 +S1130DA0AD016092AE017092AF013092B101209218 +S1130DB0B0015EA1852F90E0BC01269EC001279E54 +S1130DC0900D369E900D11249093B3018093B2013F +S1130DD06E8D7F8D88A199A1A60195010E94C516EB +S1130DE06E0D7F1D801F911F6093B4017093B50138 +S1130DF08093B6019093B701AFA1B8A59D0140E0DF +S1130E0050E0E5E0220F331F441F551FEA95D1F748 +S1130E10620F731F841F951F6093B8017093B9010B +S1130E208093BA019093BB0194012250304002C0D8 +S1130E3020E030E0C901E0960FB6F894DEBF0FBEA3 +S1130E40CDBFCF91DF911F910F91FF90EF90DF9075 +S1130E50CF90BF90AF909F908F907F906F905F9056 +S1130E604F903F902F9008958091A2019091A301FB +S1130E70892BF1F64ECE1092A3011092A201D8CF85 +S1130E80CF93DF939C01DB01009729F16115710574 +S1130E9011F11D968C911D9784FF1DC080914A010C +S1130EA090914B01892B19F4EAE4F1E008C0809198 +S1130EB0660190916701892B71F4E6E6F1E0EF0198 +S1130EC0229688E10D9009928150E1F731832083C5 +S1130ED0138E128E02C0E0E0F0E0CF01DF91CF91DB +S1130EE008952F923F924F925F926F927F928F92CA +S1130EF09F92AF92BF92CF92DF92EF92FF920F93A5 +S1130F001F93DF93CF93CDB7DEB72A970FB6F8942C +S1130F10DEBF0FBECDBF4C017C836B831A010097EB +S1130F2009F4DEC0672B09F4DBC04115510509F44F +S1130F30D7C0DC015A96ED90FD900D911C915D9700 +S1130F4080E09EEFAFEFBFEFE822F9220A231B23D4 +S1130F50D4015A96ED92FD920D931C935D9752968F +S1130F602D913D914D915C9155972E153F0540076C +S1130F70510708F4B8C0C101A0E0B0E08E0D9F1D78 +S1130F80A01FB11F281739074A075B0728F4190166 +S1130F902E183F0809F4A7C0D401ED91FC911197D4 +S1130FA0208931893A8329835E968D919C915F973C +S1130FB09A878987290166247724892BD9F5509645 +S1130FC00D90BC91A02DBA87A987AB2B39F4E114FD +S1130FD0F1040105110509F486C082C0E114F1048D +S1130FE00105110539F15701680188279927DC01AA +S1130FF084199509A609B7098D839E83AF83B887A1 +S113100014C069857A85D4018D919C910E94D70280 +S11310109A878987892B09F463C08D819E81AF816A +S1131020B885A80EB91ECA1EDB1EA414B504C604D6 +S1131030D70438F7510191E0291692E0390618F0E7 +S1131040A12C82E0B82EC801B701A30192010E942D +S11310500B177B0129813A81261B370B65012A1561 +S11310603B0508F4690100E010E0D401ED91FC9126 +S113107086899789A08DB18DE80EF91E0A1F1B1F62 +S1131080E985FA853297BF0180E090E03296FA87CD +S1131090E987A30192010E94C516E60EF71E081FF8 +S11310A0191F96014B815C81C801B7010E946E0C27 +S11310B0892BC9F0960140E050E0F401828D938DB4 +S11310C0A48DB58D820F931FA41FB51F828F938F9C +S11310D0A48FB58F29853A85378F268FA50105C042 +S11310E04FEF5FEF02C040E050E0CA012A960FB60E +S11310F0F894DEBF0FBECDBFCF91DF911F910F914A +S1131100FF90EF90DF90CF90BF90AF909F908F9023 +S11311107F906F905F904F903F902F900895CF9362 +S1131120DF939C01FB01009731F06115710519F003 +S1131130858584FF2CC060E08CE790E003C060E00C +S113114088E690E00E94D70C20E030E0C901DF91EE +S1131150CF910895C4E8D1E0DF0188E10D900992B0 +S11311608150E1F7309383012093820110929C0116 +S113117010929D0110929E0110929F018685978581 +S11311809093A1018093A00122E831E0DFCF809108 +S1131190820190918301892B91F6DCCFFC010097A9 +S11311A011F480E00895108681E008958F929F9253 +S11311B0AF92BF92CF92DF92EF92FF920F93DF93A1 +S11311C0CF93CDB7DEB760970FB6F894DEBF0FBEEE +S11311D0CDBF7C016B015A014901009709F493C00A +S11311E06115710509F48FC004300CF08CC007FD43 +S11311F01DC0602F772767FD7095E4E0660F771FA9 +S1131200EA95E1F762547E4F882777FD8095982F01 +S113121020E130E0AE014F5F5F4FF701099588236D +S113122009F471C08D81882309F46DC08091C401D3 +S1131230882309F068C07CC08D818093C4012A850D +S113124030E040E050E0542F432F322F22278B858B +S113125090E0A0E0B0E0DC0199278827282B392B07 +S11312604A2B5B2B898590E0A0E0B0E0282B392B3A +S11312704A2B5B2B8C8590E0A0E0B0E0B82FAA2726 +S113128099278827282B392B4A2B5B2B2093C501C0 +S11312903093C6014093C7015093C8012E8530E0B6 +S11312A040E050E0542F432F322F22278F8590E0C7 +S11312B0A0E0B0E0DC0199278827282B392B4A2BA2 +S11312C05B2B8D8590E0A0E0B0E0282B392B4A2BD6 +S11312D05B2B888990E0A0E0B0E0B82FAA2799277B +S11312E08827282B392B4A2B5B2B2093C901309359 +S11312F0CA014093CB015093CC0103C08FEF80937C +S1131300C4019F0102C020E030E0C90160960FB61D +S1131310F894DEBF0FBECDBFCF91DF910F91FF9048 +S1131320EF90DF90CF90BF90AF909F908F900895F3 +S1131330ECEBF1E081E1DF011D928A95E9F7F0928F +S1131340BD01E092BC01D092BF01C092BE01B09237 +S1131350C101A092C0019092C3018092C20107FF13 +S11313606BCFCCCF81E0089581E00895282F8FEFD3 +S11313708EBD0DB407FEFDCF8DB58F778DBD8EB5B7 +S1131380822F80648EBD0DB407FEFDCF8DB58F779F +S11313908DBD872F9927AA27BB278EBD0DB407FEC5 +S11313A0FDCF8DB58F778DBDCB01AA27BB278EBD11 +S11313B00DB407FEFDCF8DB58F778DBDBB27A72F4D +S11313C0962F852F8EBD0DB407FEFDCF8DB58F777B +S11313D08DBD4EBD0DB407FEFDCF8DB58F778DBD90 +S11313E0222311F08FEF01C085E98EBD0DB407FEF5 +S11313F0FDCF8DB58F778DBD90E02FEF2EBD0DB451 +S113140007FEFDCF8DB58F778DBD8EB58F3F19F457 +S11314109F5F9A3099F70895CF93DF93239A259A83 +S1131420229A24982A9A83E58CBD8DB58E7F8DBD32 +S113143020E030E09FEF9EBD0DB407FEFDCF8DB5DB +S11314408F778DBD8EB52F5F3F4F2A30310599F7C9 +S11314502A98C0E0D0E040E050E060E070E080E036 +S11314600E94B609813031F081E0CF3FD807E1F026 +S11314702196F1CFC0E0D0E040E050E060E070E0C1 +S113148081E00E94B60980FF06C08FE7CF3FD807EE +S113149059F02196F1CF40E052E060E070E080E145 +S11314A00E94B609882319F02A9A80E008C02A9A73 +S11314B08CB58C7F8CBD8DB581608DBD81E0DF9155 +S11314C0CF9108958F929F92AF92BF92DF92EF9245 +S11314D0FF920F931F93CF93DF937B018C015A01EB +S11314E0E901DD24DA94812C42E0942E5EC02A982E +S11314F0B801A70140705E7F81E10E94B60988238C +S113150019F02A9A80E055C0DEBC0DB407FEFDCF69 +S11315108DB58F778DBD8EB58E3FB1F7A701517014 +S1131520B401641B750BC617D70708F4BE01FB0191 +S1131530E40FF51F20E030E0DEBC0DB407FEFDCF64 +S11315408DB58F778DBD8EB52417350730F02E17E6 +S11315503F0718F4D5018D935D012F5F3F4FB2E033 +S113156020303B0749F7DEBC0DB407FEFDCF8DB537 +S11315708F778DBD8EB5DEBC0DB407FEFDCF8DB566 +S11315808F778DBD8EB52A9ADEBC0DB407FEFDCFD4 +S11315908DB58F778DBD8EB5C61BD70BCB01A0E063 +S11315A0B0E0E80EF91E0A1F1B1F209709F09FCF19 +S11315B081E0DF91CF911F910F91FF90EF90DF9029 +S11315C0BF90AF909F908F9008952091000130912B +S11315D001019FEF0AC09EBD0DB407FEFDCF8DB57E +S11315E08F778DBD8EB52F5F3F4F82E02030380757 +S11315F090F38FEF8EBD0DB407FEFDCF8DB58F77C1 +S11316008DBD8EB58FEF8EBD0DB407FEFDCF8DB5AC +S11316108F778DBD8EB52A9A8FEF8EBD0DB407FEE0 +S1131620FDCF8DB58F778DBD8EB58FEF9FEF9093E6 +S113163001018093000108952F923F924F925F928F +S11316406F927F928F929F92AF92BF92CF92DF92CE +S1131650EF92FF920F931F93DF93CF93CDB7DEB733 +S11316602C970FB6F894DEBF0FBECDBF4B015C01C3 +S11316701A013C872B872801FE82ED82D886CF820F +S11316804115510509F4DAC02115310509F4D6C014 +S11316900217130708F4D2C0EF2809F4CFC02A9820 +S11316A0309521953F4F3A87298784011170D501E0 +S11316B0C40180709E7F89839A83AB83BC83AC0111 +S11316C0BD0181E10E94B609882311F02A9AB6C0AF +S11316D09FEF9EBD0DB407FEFDCF8DB58F778DBDF9 +S11316E08EB58E3FA9F720E030E00BC0AFEFAEBD62 +S11316F00DB407FEFDCF8DB58F778DBD8EB52F5FF1 +S11317003F4F2017310790F3E12C52E0F52EE01AF9 +S1131710F10A3701EB85FC856E1A7F0A6201CE1A45 +S1131720DF0A00E012E00E191F092B853C85E21642 +S1131730F30648F14216530630F1F10120E030E09F +S11317400CC08FEF8EBD0DB407FEFDCF8DB58F7726 +S11317508DBD8EB581932F5F3F4FAB85BC852A1716 +S11317603B0778F3A80160E070E0480D591D6A1D3D +S11317707B1D2F813885C101ED81FE810995882368 +S113178021F491E026C090E024C02B853C85E21A28 +S1131790F30A421A530A61147104A9F389859A85DC +S11317A0680E791EC80ED91E020F131FC9018C0DB5 +S11317B09D1D892B09F0B9CFE6CFAFEFAEBD0DB4B7 +S11317C007FEFDCF8DB58F778DBD8EB50894E108EA +S11317D0F108E114F10489F7BFEFBEBD0DB407FEB3 +S11317E0FDCF8DB58F778DBD8EB5EFEFEEBD0DB40A +S11317F007FEFDCF8DB58F778DBD8EB52B853C85CE +S11318004216530678F0992369F489809A80AB8054 +S1131810BC8080E092E0A0E0B0E0880E991EAA1E91 +S1131820BB1E43CF2A9A8FEF8EBD0DB407FEFDCFAA +S11318308DB58F778DBD8EB581E001C080E02C968B +S11318400FB6F894DEBF0FBECDBFCF91DF911F91CD +S11318500F91FF90EF90DF90CF90BF90AF909F904B +S11318608F907F906F905F904F903F902F9008954E +S1131870FC0120910001309101014FEF2F3F34070B +S113188031F460E086E890E00E94D70CFFCFCB01F2 +S1131890820F931F8150924020F060E072E0621B3F +S11318A0730B20E030E04FEF14C04EBD0DB407FEC3 +S11318B0FDCF8DB58F778DBD8EB58193809100015D +S11318C090910101019690930101809300012F5F93 +S11318D03F4F2617370748F3CB010895CF92DF9285 +S11318E0EF92FF920F931F93CF93DF937B018C01B1 +S11318F06A0180910001909101018F5F9F4F31F047 +S113190060E08BE890E00E94D70CFFCFE90182E011 +S11319102130380710F0C0E0D2E02A9880E09EEF32 +S1131920AFEFBFEFE822F9220A231B23B801A70176 +S113193081E10E94B609882321F02A9AC0E0D0E010 +S11319402CC09FEF9EBD0DB407FEFDCF8DB58F77E4 +S11319508DBD8EB58E3FB1F710920101109200013A +S11319602FEF14C02EBD0DB407FEFDCF8DB58F77BC +S11319708DBD8EB5D6018D936D018091000190913E +S1131980010101969093010180930001809100016F +S1131990909101018C179D0728F3CE01DF91CF911F +S11319A01F910F91FF90EF90DF90CF9008950F93C8 +S11319B01F93CF93DF93EC01062F10E005C08DEF4A +S11319C093E00E94C7121F5FFE01E10FF11D6491B5 +S11319D06623A9F7002351F06AE08DEF93E00E949B +S11319E0CF126DE08DEF93E00E94CF12DF91CF9183 +S11319F01F910F9108951F920F920FB60F92112409 +S1131A002F933F934F938F939F93AF93BF93EF93F2 +S1131A10FF93E091CD01F091CE01309709F4A8C075 +S1131A202091D3033091D4038091D5039091D603B0 +S1131A302817390709F047C08091D8038823B9F1E2 +S1131A408091CF039091D0032FEC32E041E08F3CA2 +S1131A50940749F43093D0032093CF039093D20397 +S1131A608093D1030AC08FEC91E09093D0038093CC +S1131A70CF033093D2032093D1038091CF0390916D +S1131A80D0039093D4038093D30380509F4F9093BB +S1131A90D6038093D5031092D8038091D70388236B +S1131AA091F480916F00846080936F000CC08189F1 +S1131AB09289A389B4890196A11DB11D818B928B52 +S1131AC0A38BB48B55C05A985C985B9A5B985C9ACC +S1131AD05B9A5B985B9A5B985B9A5B988781803191 +S1131AE019F5E091D303F091D4038181805890E0FB +S1131AF087FF02C05C9A01C05C985B9A5B989F5F09 +S1131B00983011F0880FF4CF908180E097FF02C0E5 +S1131B105C9A01C05C985B9A5B988F5F843011F08B +S1131B20990FF4CF32961DC08830F9F4E091D303B5 +S1131B30F091D403908180E097FF02C05C9A01C0C9 +S1131B405C985B9A5B988F5F883011F0990FF4CFA3 +S1131B505B9A5B985B9A5B985B9A5B985B9A5B98E1 +S1131B603196F093D403E093D3035A9A5D985D9A27 +S1131B70FF91EF91BF91AF919F918F914F913F91C1 +S1131B802F910F900FBE0F901F90189508950895F0 +S1131B90DC015696ED91FC9157976289738984898B +S1131BA0958908959A01AB0160E074E284EF90E0B6 +S1131BB00E940B1730938900209388000895CF93D7 +S1131BC0DF93EC0180916F008D7F80936F008D898E +S1131BD0882319F00E94E50A1D8AE091CD01F09155 +S1131BE0CE01108A1092CE011092CD01DF91CF91D7 +S1131BF008950F931F93DF93CF9300D000D0CDB7F8 +S1131C00DEB78C01407049835A836B837C83DC018B +S1131C1050968C91882351F0F894F8018589882393 +S1131C2029F00E94E50AD80155961C9240E0BE01B5 +S1131C306F5F7F4FF801868997890E946404D801F9 +S1131C405696ED91FC91579782899389A489B58919 +S1131C5029813A814B815C81821B930BA40BB50BC8 +S1131C60F80180879187A287B38778940F900F90AB +S1131C700F900F90CF91DF911F910F910895CF9204 +S1131C80DF92EF92FF920F931F93DF93CF93CDB721 +S1131C90DEB728970FB6F894DEBF0FBECDBF8C0118 +S1131CA06B0144E050E07E010894E11CF11CB70193 +S1131CB0C6010E942103049709F0F0C044E050E0FB +S1131CC062E071E0C7010E94A816009709F0E6C01F +S1131CD0F5C044E050E067E071E0CE0105960E9453 +S1131CE0A816009709F0DAC0F2C044E050E06CE0B6 +S1131CF071E0C7010E94A816009709F0CFC0F0C098 +S1131D00542F432F322F22278081280F311D411D4C +S1131D10511D3197EC17FD0799F7F8012487358792 +S1131D2046875787203131054105510509F0B6C072 +S1131D3048E050E0BE016F5F7F4FC6010E9421035F +S1131D40089709F0ABC08A8190E0A0E0B0E0BA2F18 +S1131D50A92F982F88272981820F911DA11DB11DBC +S1131D600197A105B10521F061E088EA90E084C003 +S1131D708C8190E0A0E0B0E02227382F492F5A2F21 +S1131D808B81280F311D411D511D23303105410523 +S1131D90510508F083C0F8012083FE013896BE0186 +S1131DA06C5F7F4F542F432F322F22278081280FBF +S1131DB0311D411D511D3197E617F70799F7F801B9 +S1131DC0218332834383548348E050E0BE016F5F34 +S1131DD07F4FC6010E942103089709F05FC08E81DE +S1131DE090E0A0E0B0E0BA2FA92F982F88272D818A +S1131DF0820F911DA11DB11DF801968385838885ED +S1131E0090E0A0E0B0E02227382F492F5A2F8F818D +S1131E10280F311D411D511D213131054105510549 +S1131E2008F03CC0278381819281A381B4818332ED +S1131E30F6E59F07F0E0AF07F0E0BF0718F02930A0 +S1131E4040F00CC081589E43A040B04050F029306F +S1131E5040F0FF24F8018081823020F0FF24F394C5 +S1131E6001C0FF2461E087EA90E00E94D70CFF20C4 +S1131E7031F061E081E990E00E94D70C0FC0F801D5 +S1131E801086118612861386D78AC68A118A128A08 +S1131E90138A148A108A158A81E001C080E028968A +S1131EA00FB6F894DEBF0FBECDBFCF91DF911F9167 +S1131EB00F91FF90EF90DF90CF90089548E050E0AD +S1131EC0B701C6010E942103089741F702CF44E0FD +S1131ED050E0B701C6010E9421030497F9F605CF2B +S1131EE0F801148615861686178644E050E0B7017B +S1131EF0C6010E942103049789F6F80124853585DB +S1131F0046855785FE013496FBCEAF92BF92CF92A1 +S1131F10DF92EF92FF920F931F93DF93CF9300D042 +S1131F2000D00F92CDB7DEB76C015B01F42EE52E25 +S1131F30FC0180859185A285B3850097A105B10533 +S1131F40D1F544E050E08E010F5F1F4FB801868940 +S1131F5097890E942103049709F0F5C01D8244E08B +S1131F6050E0B801D60156968D919C9157970E94E6 +S1131F702103049709F0E7C0F60110861186128642 +S1131F801386FE01349620E030E040E050E0542F08 +S1131F90432F322F22278081280F311D411D511DCF +S1131FA03197EC17FD0799F7D60118962D933D93B9 +S1131FB04D935C931B978F2D9E2D9C017901B2E06C +S1131FC021303B0718F0E12C72E0F72EF601208552 +S1131FD0318542855385C701A0E0B0E02817390751 +S1131FE04A075B0708F47901D6015696ED91FC91F6 +S1131FF05797828D938DA48DB58D9170A070B0701C +S11320000097A105B105D1F4D60155968C9188238A +S1132010A9F4A701B501CF010E9471078C018E15A7 +S11320209F0541F060E082EE90E00E94D70C0E9490 +S1132030E50A8BC081E0F601858B73C0D601559605 +S11320408C91882309F463C0B701C5010E94380C40 +S11320505C018E159F0539F060E08CED90E00E94E4 +S1132060D70C0E94E50AD6015696ED91FC9157973C +S1132070C501A0E0B0E0228D338D448D558D820FD3 +S1132080931FA41FB51F828F938FA48FB58F917058 +S1132090A070B0700097A105B10509F041C00E947D +S11320A0E50AF601158A06891789D801ED90FC9096 +S11320B01197F7012089318940E050E05A966D91DB +S11320C07D918D919C915D970E940B17611571050F +S11320D08105910529F5D8015E966D917C915F97F4 +S11320E0C7010E94D702F801978F868F892BC1F40C +S11320F0D6015696ED91FC915797178E168E61E096 +S113210082EC90E00E94D70C0FEF1FEF1EC0A701D6 +S1132110B501CF010E9421038E159F05A1F401C0D2 +S11321207501970140E050E0F60180859185A28514 +S1132130B385821B930BA40BB50B80879187A28771 +S1132140B387870102C000E010E0C8010F900F9030 +S11321500F900F900F90CF91DF911F910F91FF90EF +S1132160EF90DF90CF90BF90AF900895CF92DF9221 +S1132170EF92FF920F931F93CF93DF93EC01C980EB +S1132180DA80EB80FC809093CE018093CD010FEC3C +S113219011E01093D4030093D30342E050E0B8015C +S11321A00E94850F892B09F451C08091D30390912B +S11321B0D40302969093D6038093D503EE89FF89C6 +S11321C0828D40E051E0481B5109B8016E5F7F4F9A +S11321D08091CD019091CE010E94850F9C010097C2 +S11321E0A9F18091D5039091D603820F931F909308 +S11321F0D6038093D50340E051E06FEC72E0809108 +S1132200CD019091CE010E94850F81E08093D80387 +S1132210888B1092800089E08093810060E074E2F2 +S113222084EF90E0A70196010E940B173093890078 +S11322302093880081E090E090938B0080938A0043 +S113224080916F00826080936F007894DF91CF91CA +S11322501F910F91FF90EF90DF90CF9008951F9200 +S11322600F920FB60F9211242F933F934F935F93C6 +S11322706F937F938F939F93AF93BF93EF93FF934A +S113228080916F008B7F80936F008091D8038823A7 +S1132290F9F481E08093D70378946091D10370912D +S11322A0D20340E051E08091CD019091CE010E9493 +S11322B0850F892B31F48091CD019091CE010E943C +S11322C0DF0DF8941092D70381E08093D8037894BB +S11322D0FF91EF91BF91AF919F918F917F916F91FA +S11322E05F914F913F912F910F900FBE0F901F90D0 +S11322F018958BED93E00E94F80083EE93E00E9422 +S1132300C70D08950F931F9383EE93E00E94DF0D92 +S11323106091E1037091E2030BED13E0C8010E94A8 +S1132320F900C8010E94FD001F910F910895CF93F9 +S1132330DF93EC018091F303882361F083EE93E053 +S11323400E94DF0D6091E1037091E2038BED93E055 +S11323500E94F9008BED93E00E94FD00BE018BED1D +S113236093E00E945301BC019093E2038093E10344 +S1132370009751F083EE93E00E943F0E882321F0F2 +S113238083EE93E00E94B610DF91CF9108950E94EE +S113239097118091F3038823E1F76091E103709131 +S11323A0E2038BED93E00E94F90008951F938DEFF3 +S11323B093E00E94BF12882389F08DEF93E00E947E +S11323C0BC12182F482F50E060E070E020E030E0AD +S11323D08DEF93E00E943614812F00C01F91089561 +S11323E00E94D6118093FC038330C9F084303CF4FE +S11323F0813079F0823084F4882341F00895853067 +S1132400A1F085307CF08630C9F414C00E9482119A +S1132410089581E191E00BC087E191E008C08DE16E +S113242091E005C083E291E002C089E291E00E945C +S1132430C71108958FE291E00E94C71108950F9388 +S11324401F93DF93CF93CDB7DEB72D970FB6F894D4 +S1132450DEBF0FBECDBF8BED93E00E94FD0061E0B7 +S113246088EE90E00E94D70C8E010F5F1F4FB801D9 +S11324708BED93E00E945C01882379F48BED93E06B +S11324800E94FD002D960FB6F894DEBF0FBECDBF9F +S1132490CF91DF911F910F910895B8018DEF93E0D3 +S11324A00E941613E4CF40E855E260E070E08DEF3F +S11324B093E00E94C21265E371E08DEF93E00E9405 +S11324C0161361E082E00E94331561E083E00E940C +S11324D0331561E084E00E94331561E085E00E94D9 +S11324E0331561E089E00E9433158BED93E00E947F +S11324F00502882321F461E088E391E01DC08BED9F +S113250093E00E94DA01882321F461E08AE291E0F9 +S113251013C08BED93E00E94C701882321F461E08E +S113252084E191E009C08BED93E00E94930188233C +S113253031F461E082E091E00E94D70C089561E0FB +S113254085EF90E00E94D70C0E941F1208950E940C +S1132550F9140E9453120E94F011FDCF88E491E017 +S11325609093FE038093FD030895862F0E94211605 +S113257008950E94591608950E943A1608950E94DB +S113258029160895CB01BA010E94E8150895DC01CB +S1132590ED91FC910190F081E02D09950895DC0105 +S11325A0ED91FC910190F081E02D099508950F9330 +S11325B01F93CF93DF938C01EB0109C02196D801BF +S11325C0ED91FC910190F081E02DC801099568819D +S11325D06623A1F7DF91CF911F910F9108950F9377 +S11325E01F938C01DC01ED91FC910190F081E02DB1 +S11325F06DE00995D801ED91FC910190F081E02DF9 +S11326006AE0C80109951F910F9108950F931F93D4 +S11326108C01DC01ED91FC910190F081E02D099594 +S1132620C8010E94EF121F910F9108950F931F93F9 +S11326308C010E94D712C8010E94EF121F910F91C2 +S113264008950F931F938C01DC01ED91FC9101908F +S1132650F081E02D0995C8010E94EF121F910F919E +S113266008952F923F924F925F926F927F928F9232 +S11326709F92AF92BF92CF92DF92EF92FF920F930D +S11326801F93DF93CF93CDB7DEB7A0970FB6F8941F +S1132690DEBF0FBECDBF1C016A017B014115510590 +S11326A06105710549F4DC01ED91FC910190F08123 +S11326B0E02D60E3099554C0882499245401422EE6 +S11326C055246624772401E010E00C0F1D1F080D2B +S11326D0191DC701B601A30192010E940B17F8014D +S11326E060830894811C911CA11CB11CC701B60114 +S11326F0A30192010E940B17C901DA016C017D014B +S1132700C114D104E104F104F1F681E0E82EF12CC6 +S1132710EC0EFD1EE80CF91C3E010894611C711CB2 +S1132720D501C4010197A109B1096C01C818D908E0 +S113273014C0F601EE0DFF1D60816A3010F4605D77 +S113274001C0695CD101ED91FC910190F081E02D13 +S1132750C10109950894E108F1086E147F0449F752 +S1132760A0960FB6F894DEBF0FBECDBFCF91DF9118 +S11327701F910F91FF90EF90DF90CF90BF90AF909B +S11327809F908F907F906F905F904F903F902F908D +S113279008952AE00E94311308950F931F938C012A +S11327A00E94C913C8010E94EF121F910F9108954E +S11327B0AB0160E070E00E94C91308950F931F936A +S11327C08C01AB0160E070E00E94C913C8010E9453 +S11327D0EF121F910F910895EF92FF920F931F93A1 +S11327E0CF93DF93EC017A018B0177FF0FC0E8816F +S11327F0F9810190F081E02D6DE209951095009525 +S1132800F094E094E11CF11C011D111D2AE0B801B3 +S1132810A701CE010E943113DF91CF911F910F9137 +S1132820FF90EF9008950F931F938C010E94EC1377 +S1132830C8010E94EF121F910F910895AB01662702 +S113284057FD6095762F0E94EC1308950F931F9304 +S11328508C01AB01662757FD6095762F0E94EC131F +S1132860C8010E94EF121F910F910895DC012115F8 +S1132870310541F4ED91FC910190F081E02D642F3C +S1132880099508952A30310519F40E94EC1308952E +S11328900E94311308950F931F938C010E943614E4 +S11328A0C8010E94EF121F910F9108951F920F9279 +S11328B00FB60F9211242F938F939F93AF93BF93CF +S11328C08091FF0390910004A0910104B09102044F +S11328D08050904CAF4FBF4F8093FF039093000400 +S11328E0A0930104B093020427C08091FF03909148 +S11328F00004A0910104B091020480589E43A040BA +S1132900B0408093FF0390930004A0930104B0931C +S113291002048091030490910404A0910504B091F1 +S113292006040196A11DB11D809303049093040431 +S1132930A0930504B09306048091FF0390910004D2 +S1132940A0910104B091020481589E43A040B0407C +S113295060F6BF91AF919F918F912F910F900FBE11 +S11329600F901F9018958FB7F8942091030430911D +S1132970040440910504509106048FBFB901CA01B3 +S11329800895EF92FF920F931F937B018C018FB7F1 +S1132990F8944091030450910404609105047091EB +S11329A006048FBF2FB7F894809103049091040418 +S11329B0A0910504B09106042FBF841B950BA60BB0 +S11329C0B70B8E159F05A007B10760F31F910F91F8 +S11329D0FF90EF900895019759F0FC01EE0FFF1F4F +S11329E0EE0FFF1F32978FB7F8943197F1F78FBF2F +S11329F00895789484B5826084BD84B5816084BD73 +S1132A0085B5826085BD85B5816085BDEEE6F0E063 +S1132A10808181608083E1E8F0E08081826080834E +S1132A20808181608083E0E8F0E080818160808340 +S1132A30E1EBF0E0808184608083E0EBF0E0808172 +S1132A4081608083EAE7F0E0808184608083808114 +S1132A5082608083808181608083808180688083BC +S1132A601092C1000895282F30E0C90182599E4F69 +S1132A70FC019491265A3E4FF9018491882381F0F8 +S1132A80E82FF0E0E55BFE4FE491F0E0662329F4E3 +S1132A90808190958923808308958081892B808308 +S1132AA00895482F50E0CA018E579E4FFC0124918F +S1132AB0CA0182599E4FFC019491465A5E4FFA0115 +S1132AC034913323C1F1222331F1233021F4809155 +S1132AD080008F7705C0243031F4809180008F7D91 +S1132AE08093800018C0213019F484B58F7704C016 +S1132AF0223021F484B58F7D84BD0DC0263021F4AD +S1132B008091B0008F7705C0273029F48091B00000 +S1132B108F7D8093B000E32FF0E0E05BFE4FE49103 +S1132B20F0E0662329F480819095892380830895B9 +S1132B308081892B80830895482F50E0CA018E57E5 +S1132B409E4FFC012491CA0182599E4FFC0194912D +S1132B50465A5E4FFA013491332319F420E030E0F1 +S1132B6035C0222331F1233021F4809180008F7706 +S1132B7005C0243031F4809180008F7D80938000E3 +S1132B8018C0213019F484B58F7704C0223021F4A1 +S1132B9084B58F7D84BD0DC0263021F48091B000B2 +S1132BA08F7705C0273029F48091B0008F7D809302 +S1132BB0B000E32FF0E0EB5AFE4FE491F0E08081A7 +S1132BC020E030E0892311F021E030E0C9010895CC +S1132BD0EF92FF920F931F937B018C0122E030E070 +S1132BE040E050E00E942D17205C3D4B404F5F4F6A +S1132BF0CA01B901A80197010E942D17C901DA0180 +S1132C000197A109B109292F3A2F4B2F552747FDC9 +S1132C105A950196A11DB11D2093C5008150809342 +S1132C20C400E1ECF0E08081806180838081886071 +S1132C3080838081806880831F910F91FF90EF9043 +S1132C400895982F8091C00085FFFCCF9093C60013 +S1132C500895809107049091080480589F4F209113 +S1132C60090430910A04821B930B60E870E00E940F +S1132C70F81608954091090450910A0480910704BC +S1132C80909108048417950719F42FEF3FEF0FC0B4 +S1132C90FA01E55FFB4F2081CA01019660E870E00C +S1132CA00E94F81690930A048093090430E0C90145 +S1132CB008958091090490910A04909308048093E4 +S1132CC0070408951F920F920FB60F9211242F93A9 +S1132CD03F934F935F936F937F938F939F93AF93A0 +S1132CE0BF93EF93FF934091C600E0910704F091E6 +S1132CF00804CF01019660E870E00E94F8169C0178 +S1132D008091090490910A042817390739F0E55F86 +S1132D10FB4F40833093080420930704FF91EF9105 +S1132D20BF91AF919F918F917F916F915F914F91DF +S1132D303F912F910F900FBE0F901F901895FB019C +S1132D40DC018D91019080190110D9F3990B08953C +S1132D50FB01DC014150504030F08D91019080190D +S1132D6019F40020B9F7881B990B0895FB01DC01C5 +S1132D704150504048F001900D920020C9F701C025 +S1132D801D9241505040E0F70895629FD001739F17 +S1132D90F001829FE00DF11D649FE00DF11D929FF3 +S1132DA0F00D839FF00D749FF00D659FF00D992732 +S1132DB0729FB00DE11DF91F639FB00DE11DF91F56 +S1132DC0BD01CF0111240895AA1BBB1B51E107C00B +S1132DD0AA1FBB1FA617B70710F0A61BB70B881FA7 +S1132DE0991F5A95A9F780959095BC01CD01089536 +S1132DF097FB092E07260AD077FD04D0E5DF06D01D +S1132E0000201AF4709561957F4F0895F6F7909518 +S1132E1081959F4F0895A1E21A2EAA1BBB1BFD01A9 +S1132E200DC0AA1FBB1FEE1FFF1FA217B307E407A5 +S1132E30F50720F0A21BB30BE40BF50B661F771FFD +S1132E40881F991F1A9469F76095709580959095DD +S1132E509B01AC01BD01CF01089597FB092E052606 +S1132E600ED057FD04D0D7DF0AD0001C38F450959B +S1132E704095309521953F4F4F4F5F4F0895F6F79A +S1132E8090958095709561957F4F8F4F9F4F0895D2 +S1132E90EE0FFF1F0590F491E02D0994F894FFCFF5 +S1132EA0FFFF52494646005741564500666D74205F +S1132EB000312E57415600322E57415600332E57BB +S1132EC0415600342E57415600352E574156003690 +S1132ED02E5741560041756469666F6E6F207465A4 +S10D2EE07374210000000000B51215 +S9030000FC diff --git a/2009/audifono/applet/core.a b/2009/audifono/applet/core.a new file mode 100644 index 0000000..fbe4a4c Binary files /dev/null and b/2009/audifono/applet/core.a differ diff --git a/2009/audifono/applet/pins_arduino.c.o b/2009/audifono/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/audifono/applet/pins_arduino.c.o differ diff --git a/2009/audifono/applet/wiring.c.o b/2009/audifono/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/audifono/applet/wiring.c.o differ diff --git a/2009/audifono/applet/wiring_analog.c.o b/2009/audifono/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/audifono/applet/wiring_analog.c.o differ diff --git a/2009/audifono/applet/wiring_digital.c.o b/2009/audifono/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/audifono/applet/wiring_digital.c.o differ diff --git a/2009/audifono/applet/wiring_pulse.c.o b/2009/audifono/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/audifono/applet/wiring_pulse.c.o differ diff --git a/2009/audifono/applet/wiring_serial.c.o b/2009/audifono/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/audifono/applet/wiring_serial.c.o differ diff --git a/2009/audifono/applet/wiring_shift.c.o b/2009/audifono/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/audifono/applet/wiring_shift.c.o differ diff --git a/2009/audifono/audifono.pde b/2009/audifono/audifono.pde new file mode 100644 index 0000000..dca8a2d --- /dev/null +++ b/2009/audifono/audifono.pde @@ -0,0 +1,118 @@ +#include +#include +#include "util.h" +#include "wave.h" + +AF_Wave card; +File f; +Wavefile wave; // only one! + +#define redled 9 + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + Serial.println("Audifono test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(redled, OUTPUT); + + if (!card.init_card()) { + putstring_nl("Card init. failed!"); return; + } + if (!card.open_partition()) { + putstring_nl("No partition!"); return; + } + if (!card.open_filesys()) { + putstring_nl("Couldn't open filesys"); return; + } + + if (!card.open_rootdir()) { + putstring_nl("Couldn't open dir"); return; + } + + putstring_nl("Files found:"); + ls(); +} + +void ls() { + char name[13]; + int ret; + + card.reset_dir(); + putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; +char c = 0; + +void loop() { + + c = byteIn(); + switch (c) + { + case 0: + stop_play(); + case 1: + playcomplete("1.WAV"); + break; + case 2: + playcomplete("2.WAV"); + break; + case 3: + playcomplete("3.WAV"); + break; + case 4: + playcomplete("4.WAV"); + break; + case 5: + playcomplete("5.WAV"); + break; + case 6: + playcomplete("6.WAV"); + } +} + +void playcomplete(char *name) { + playfile(name); + while (wave.isplaying){} + card.close_file(f); +} + +byte byteIn() +{ + byte incomingByte; + if (Serial.available() > 0) { + incomingByte = Serial.read(); + Serial.print(incomingByte, BYTE); + return(incomingByte); + } +} + +void stop_play() { + wave.stop(); + card.close_file(f); +} + +void playfile(char *name) { + // stop any file already playing + if (wave.isplaying) { + wave.stop(); + card.close_file(f); + } + card.reset_dir(); + f = card.open_file(name); + if (f && wave.create(f)) { + wave.play(); + } +} diff --git a/2009/audifono2_pde/applet/HardwareSerial.cpp.o b/2009/audifono2_pde/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/audifono2_pde/applet/HardwareSerial.cpp.o differ diff --git a/2009/audifono2_pde/applet/Print.cpp.o b/2009/audifono2_pde/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/audifono2_pde/applet/Print.cpp.o differ diff --git a/2009/audifono2_pde/applet/WInterrupts.c.o b/2009/audifono2_pde/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/audifono2_pde/applet/WInterrupts.c.o differ diff --git a/2009/audifono2_pde/applet/WMath.cpp.o b/2009/audifono2_pde/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/audifono2_pde/applet/WMath.cpp.o differ diff --git a/2009/audifono2_pde/applet/WRandom.cpp.o b/2009/audifono2_pde/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/audifono2_pde/applet/WRandom.cpp.o differ diff --git a/2009/audifono2_pde/applet/audifono2_pde.cpp b/2009/audifono2_pde/applet/audifono2_pde.cpp new file mode 100644 index 0000000..ebafc2f --- /dev/null +++ b/2009/audifono2_pde/applet/audifono2_pde.cpp @@ -0,0 +1,152 @@ +#include +#include +#include "util.h" +#include "wave.h" + +#include "WProgram.h" +void setup(); +void ls(); +void loop(); +void playcomplete(char *name); +void stop_play(); +void playfile(char *name); +AF_Wave card; +File f; +Wavefile wave; // only one! + +#define redled 9 + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + Serial.println("Audifono test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(redled, OUTPUT); + + if (!card.init_card()) { + putstring_nl("Card init. failed!"); return; + } + if (!card.open_partition()) { + putstring_nl("No partition!"); return; + } + if (!card.open_filesys()) { + putstring_nl("Couldn't open filesys"); return; + } + + if (!card.open_rootdir()) { + putstring_nl("Couldn't open dir"); return; + } + + putstring_nl("Files found:"); + ls(); +} + +void ls() { + char name[13]; + int ret; + + card.reset_dir(); + putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; +char c = 0; +char c_old = 0; +byte incomingByte; +char filename[13]; + +void loop() { + + if (Serial.available() > 0) { + incomingByte = Serial.read(); + c = incomingByte; + Serial.print(incomingByte, BYTE); + } + + if ( ( c > 0 ) && (c!=c_old) ) + { + int i = 0; + c_old = c; + + if(c<=9) + { + filename[i] = c + '0'; + filename[i+1] = '.'; + filename[i+2] = 'W'; + filename[i+3] = 'A'; + filename[i+4] = 'V'; + filename[i+5] = 0; + } + else if(c>9) + { + filename[i] = (int)(c/10) + '0'; + filename[i+1] = c%10 + '0'; + filename[i+2] = '.'; + filename[i+3] = 'W'; + filename[i+4] = 'A'; + filename[i+5] = 'V'; + filename[i+6] = 0; + } + playfile(filename); + } + else if ( (c==0) && (c!=c_old) ) + { + c_old = c; + stop_play(); + } + + if( (!wave.isplaying) && (c!=0) ) + { + stop_play(); + playfile(filename); + } +} + +void playcomplete(char *name) { + playfile(name); + while (wave.isplaying){} + card.close_file(f); +} + +void stop_play() { + wave.stop(); + card.close_file(f); + card.reset_dir(); +} + +void playfile(char *name) { + // stop any file already playing + if (wave.isplaying) { + wave.stop(); + card.close_file(f); + } + card.reset_dir(); + f = card.open_file(name); + if (f && wave.create(f)) { + wave.play(); + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/audifono2_pde/applet/audifono2_pde.cpp.o b/2009/audifono2_pde/applet/audifono2_pde.cpp.o new file mode 100644 index 0000000..1c521ea Binary files /dev/null and b/2009/audifono2_pde/applet/audifono2_pde.cpp.o differ diff --git a/2009/audifono2_pde/applet/audifono2_pde.elf b/2009/audifono2_pde/applet/audifono2_pde.elf new file mode 100644 index 0000000..9683ed1 Binary files /dev/null and b/2009/audifono2_pde/applet/audifono2_pde.elf differ diff --git a/2009/audifono2_pde/applet/audifono2_pde.hex b/2009/audifono2_pde/applet/audifono2_pde.hex new file mode 100644 index 0000000..0e35dfe --- /dev/null +++ b/2009/audifono2_pde/applet/audifono2_pde.hex @@ -0,0 +1,759 @@ +:100000000C94CD000C94F5000C94F5000C94F500C4 +:100010000C94F5000C94F5000C94F5000C94F5008C +:100020000C94F5000C94F5000C94F5000C94FB0C6A +:100030000C942F110C94F5000C94F5000C94F50021 +:100040000C947F140C94F5000C948B160C94F50012 +:100050000C94F5000C94F5000C94F5000C94F5004C +:100060000C94F5000C94F500746F6F206D616E793F +:10007000206F70656E2066696C6573006261642034 +:10008000696E707574005941414B00594545454BA7 +:100090000053616D706C65207261746520746F6FC0 +:1000A0002068696768210000436F6D707265737323 +:1000B000696F6E206E6F7420737570706F727465E7 +:1000C00064006661696C656420746F2067657420E4 +:1000D0006E657720636C7573746572002021212131 +:1000E0002000203F3F3F200046696C657320666F0B +:1000F000756E643A0046696C657320666F756E6450 +:100100003A00436F756C646E2774206F70656E20C3 +:1001100064697200436F756C646E2774206F70653C +:100120006E2066696C65737973004E6F2070617222 +:10013000746974696F6E21004361726420696E692D +:10014000742E206661696C65642100000024272AF2 +:10015000000025282B00002326290404040404049D +:100160000404020202020202030303030303010266 +:100170000408102040800102040810200102040835 +:100180001020000000070002010000030406000028 +:100190000000000000007911D71211241FBECFEF1C +:1001A000D4E0DEBFCDBF11E0A0E0B1E0E4E2FFE2C9 +:1001B00002C005900D92A632B107D9F714E0A6E26D +:1001C000B1E001C01D92A637B107E1F711E0CAE91D +:1001D000D1E004C02297FE010E948C17C639D107D6 +:1001E000C9F70E94D0120C9490170C940000089547 +:1001F0000895CB010E941B030895FC018481958121 +:100200000E94AD040895EF92FF920F931F93CF9336 +:10021000DF93EB018A0179010BC0B801C7010E948D +:10022000C816009729F4CE010E94AD0481E006C0F3 +:10023000B701CE010E94B604882379F7DF91CF91F0 +:100240001F910F91FF90EF900895EF92FF920F93FF +:100250001F93DF93CF93CDB7DEB768970FB6F894AF +:10026000DEBF0FBECDBF8C017E010894E11CF11CE6 +:1002700097010E940301882319F420E030E005C0B3 +:10028000B701C8010E948F089C01C90168960FB68A +:10029000F894DEBF0FBECDBFCF91DF911F910F91BC +:1002A000FF90EF900895FC01AB016481758182811C +:1002B00093810E9425010895EF92FF920F931F935F +:1002C000DF93CF93CDB7DEB768970FB6F894DEBF54 +:1002D0000FBECDBF8B017E010894E11CF11CB7015C +:1002E000FC01848195810E94B604882349F04CE08A +:1002F00050E0B701C8010E94DF16F801148681E0C2 +:1003000068960FB6F894DEBF0FBECDBFCF91DF91D8 +:100310001F910F91FF90EF900895FC0184819581CA +:100320000E94A7040895EF92FF920F931F93DF930B +:10033000CF93CDB7DEB768970FB6F894DEBF0FBE88 +:10034000CDBF8C017E010894E11CF11CB701FC01BA +:10035000828193810E945905B701F80182819381BE +:100360000E944007F8019583848320E0892B09F0DF +:1003700021E0822F68960FB6F894DEBF0FBECDBF86 +:10038000CF91DF911F910F91FF90EF9008950F9300 +:100390001F938C01FC01808191810E946A05F80104 +:1003A0009383828320E0892B09F021E0822F1F9123 +:1003B0000F9108950F93CF93DF93EC0100E020E0BD +:1003C00030E040E050E06CE17BE082E69AE00E94A1 +:1003D000D60899838883892B69F40FEF20E030E0F9 +:1003E00040E050E06CE17BE082E69AE00E94D608B3 +:1003F0009983888320E088819981892B09F021E005 +:10040000822FDF91CF910F9108950E940C0A0895D9 +:10041000FC01009711F0118210820895DC018C918B +:10042000853E39F1882329F1F901208131818281CA +:1004300093812817390799F444835583668377831A +:100440001B968C911B978F3011F080E205C08C9128 +:100450008295880F807E805E808780E008951B965D +:100460008C918F3031F02F5F3F4F3183208381E0BB +:10047000089581E008950F931F93CF93DF938C012C +:10048000FC018081853E09F48CC0882309F489C071 +:10049000E9018C899D89AE89BF890097A105B105C5 +:1004A00021F44C8B5D8B6E8B7F8B209709F479C088 +:1004B0000115110509F475C0F8018081882309F43C +:1004C00070C083858F3011F481E06CC0A801D80121 +:1004D00080E090E0282F3C91303251F0FE01E80F8F +:1004E000F91F30832F5F019611968830910591F79F +:1004F0008881853011F485EE8883F801808580320B +:10050000B1F0FE01E20FF11D8EE28083822F8F5F3A +:100510002C5FFA019085903249F0FE01E80FF11D41 +:1005200090838F5F4F5F5F4F821799F7282FFE01EF +:10053000E20FF11D1082F80183858D87938D80E095 +:10054000228D30E0822B932B9F878E87258D30E084 +:1005500040E050E0542F432F322F2227868D90E029 +:10056000A0E0B0E0DC0199278827282B392B4A2B03 +:100570005B2B848D90E0A0E0B0E0282B392B4A2B38 +:100580005B2B878D90E0A0E0B0E0B82FAA279927D9 +:100590008827282B392B4A2B5B2B288B398B4A8BAE +:1005A0005B8B80E0DF91CF911F910F910895DF93D6 +:1005B000CF9300D0CDB7DEB7DC010097A1F1623058 +:1005C000710588F1ED91FC911197660F771F80E01E +:1005D00090E016962D913D914D915C911997620F87 +:1005E000731F841F951F0190F081E02D22E030E001 +:1005F000AE014F5F5F4F09958823A9F09A8180E093 +:10060000298130E0282B392B2115310571F08FEF2E +:10061000273F380741F0C9014096079720F08FEF38 +:10062000283F380710F020E030E0C9010F900F900C +:10063000CF91DF910895FC01009711F01182108293 +:1006400008952F923F924F925F926F927F928F9276 +:100650009F92AF92BF92CF92DF92EF92FF920F9351 +:100660001F93DF93CF93CDB7DEB72C970FB6F894D7 +:10067000DEBF0FBECDBF3C0178876F835A874987A5 +:10068000009709F402C1672B09F4FFC0452B09F458 +:10069000FCC0DC015A96AD90BD90CD90DC905D978A +:1006A00052962D913D914D915C915597E985FA8532 +:1006B000CF01A0E0B0E08A0D9B1DAC1DBD1D281729 +:1006C00039074A075B0740F4B9016A197B097A8741 +:1006D0006987672B09F4DCC0D301ED91FC91119778 +:1006E000208931893A8329835E966D917C915F9749 +:1006F0007C876B87C901A0E0B0E08B839C83AD83CE +:10070000BE83672BE1F5F3010088F189E02DFC87BA +:10071000EB87EF2B39F4A114B104C104D10409F41F +:10072000B7C0B3C0A114B104C104D10441F1860122 +:1007300075012B803C804D805E80509440943094B5 +:100740002094211C311C411C511C10C06B857C85E0 +:10075000D3018D919C910E94D7029C878B87892B16 +:1007600009F493C0E20CF31C041D151D6B817C8100 +:100770008D819E81E616F7060807190738F7C6012E +:10078000B5012B813C814D815E810E9441172B0177 +:1007900089849A84D301ED91FC91A980BA80A41830 +:1007A000B5088A149B0408F45401C080D1807201FA +:1007B00000E010E086899789A08DB18DE80EF91EC2 +:1007C0000A1F1B1FEB85FC853297BF0180E090E07C +:1007D0003296FC87EB872B813C814D815E810E94A4 +:1007E000EE16E60EF71E081F191FD601ED91FC91BB +:1007F00095014F815885C801B7010995882361F19A +:100800008A189B08C501A0E0B0E0F301228D338D6A +:10081000448D558D280F391F4A1F5B1FD3015A96EF +:100820002D933D934D935C935D97C501840D951D6C +:10083000E981FA818E179F07B0F06B857C858D91D9 +:100840009C910E94D7029C878B87892B51F4D301FE +:100850005F961C921E925E9749855A8548195909E0 +:1008600019C0442455242B853C85F301378F268FEE +:100870008114910439F06F8178856A0D7B1D78872A +:100880006F8388CF49855A8505C04FEF5FEF02C05F +:1008900040E050E0CA012C960FB6F894DEBF0FBEC0 +:1008A000CDBFCF91DF911F910F91FF90EF90DF901F +:1008B000CF90BF90AF909F908F907F906F905F9000 +:1008C0004F903F902F900895CF93DF93FC01EB0161 +:1008D0000097C9F161157105B1F1828D938DA48DD9 +:1008E000B58D413051F0413018F0423061F50AC009 +:1008F000288139814A815B8111C0288139814A81EF +:100900005B8108C0288139814A815B818289938912 +:10091000A489B589280F391F4A1F5B1F82899389D3 +:10092000A489B58982179307A407B50760F0228FC1 +:10093000338F448F558F178E168E288339834A83C1 +:100940005B8381E001C080E0DF91CF910895FC01DD +:10095000009711F0118210820895FC01009711F4A4 +:1009600080E00895138E128E81E008952F923F92B9 +:100970004F925F926F927F928F929F92AF92BF92AF +:10098000CF92DF92EF92FF920F931F93DF93CF935B +:10099000CDB7DEB7A9970FB6F894DEBF0FBECDBFB7 +:1009A0003C012B01009709F44AC06115710509F457 +:1009B00046C0FC0180899189892B09F040C0228DB5 +:1009C000338DA081B1811097B9F1ED91FC91119710 +:1009D00022803380AE014F5F5F4F89E0FA011192B0 +:1009E0008A95E9F73C832B8352966D917D918D9189 +:1009F0009C91559756960D911C915797061B170B76 +:100A00006A012EE0E22E22E0F22E20E230E0AE017A +:100A1000465F5F4FF1010995882371F08D809E80BC +:100A2000AF80B88481149104A104B10429F021C0DD +:100A3000F20180818823A9F5F301138E128E80E0E4 +:100A4000A9960FB6F894DEBF0FBECDBFCF91DF9150 +:100A50001F910F91FF90EF90DF90CF90BF90AF90DC +:100A60009F908F907F906F905F904F903F902F90CE +:100A7000089588E1F20111928A95E9F709856201EA +:100A80009BE3E92E92E0F92E10E020E230E0AE0187 +:100A9000465F5F4FC501B401F1010995882361F2FA +:100AA000C7CFF301828D938D0196938F828F81E062 +:100AB000C7CFFB01892B61F06115710549F088E111 +:100AC000DB011D928A95E9F780E1858781E0089531 +:100AD00080E008952F923F924F925F926F927F92A3 +:100AE0008F929F92AF92BF92CF92DF92EF92FF923E +:100AF0000F931F93DF93CF93CDB7DEB7E0970FB679 +:100B0000F894DEBF0FBECDBF6C01009709F490C111 +:100B1000ABC1EEE7F1E08AE1DF011D928A95E9F7CA +:100B2000D0927F01C0927E01D60119962D913D9100 +:100B30004D915C911C9719E0220F331F441F551FE4 +:100B40001A95D1F72AA33BA34CA35DA3CA01B9010F +:100B5000655F7F4F8F4F9F4FED91FC9129E130E012 +:100B6000AE014F5F5F4F0995882309F484C1A980C6 +:100B70004A80BB81BEA30C81FD801E813F815884C9 +:100B800069847A849D8580E02C85E22FF0E0E82B53 +:100B9000F92B8E883F88288DE98C309709F46BC13A +:100BA000432D50E060E070E0962F852F742F66276C +:100BB00069A77AA78BA79CA7822F90E0A0E0B0E05E +:100BC000BC015527442789A59AA5ABA5BCA5842BB4 +:100BD000952BA62BB72B482D50E060E070E0842BBE +:100BE000952BA62BB72B89A79AA7ABA7BCA78E2DB1 +:100BF00090E0A0E0B0E0782F66275527442789A52C +:100C00009AA5ABA5BCA5842B952BA62BB72B89A7A2 +:100C10009AA7ABA7BCA70097A105B10589F4972DAA +:100C200080E0662D70E0682B792B6115710509F461 +:100C300022C1CB01A0E0B0E089A79AA7ABA7BCA7CF +:100C4000942D80E02A2C3324282A392A952D80E0FF +:100C5000A32FB0E0A82BB92BB8A7AFA39F2D80E09E +:100C6000202F30E0822B932B9C0140E050E02A8F14 +:100C70003B8F4C8F5D8FBF0180E090E0212F30E0F3 +:100C800040E050E00E94EE166E8F7F8F88A399A3FC +:100C9000E9A4FAA40BA51CA54A8D5B8D6C8D7D8DF6 +:100CA000E41AF50A060B170B6E8D7F8D88A199A1AA +:100CB000E61AF70A080B190BC10101972FA138A5F5 +:100CC000B5E0220F331FBA95E1F7820F931FB101F0 +:100CD0000E941A1780E090E0E61AF70A080B190B39 +:100CE0007EA1272F30E040E050E0C801B7010E940C +:100CF000411729013A01D301C201855F9F40A040FD +:100D0000B0408050904FA040B04008F0B4C086E0A2 +:100D1000D60118968C93A0E88A2EA1E09A2E88E13D +:100D2000F40111928A95E9F75101CC24DD2469A5DB +:100D30007AA58BA59CA5A60195010E94EE1660934D +:100D40008001709381018093820190938301C60199 +:100D5000B5012A8D3B8D4C8D5D8D0E94EE167B0179 +:100D60008C012AA13BA14CA15DA1E20EF31E041F40 +:100D7000151FE0928401F092850100938601109383 +:100D8000870142E050E060E070E0440E551E661EB0 +:100D9000771E440C551C661C771C409288015092AB +:100DA000890160928A0170928B0130928D012092AC +:100DB0008C015EA1852F90E0BC01269EC001279E7C +:100DC000900D369E900D112490938F0180938E018B +:100DD0006E8D7F8D88A199A1A60195010E94EE16C6 +:100DE0006E0D7F1D801F911F609390017093910184 +:100DF0008093920190939301AFA1B8A59D0140E02B +:100E000050E0E5E0220F331F441F551FEA95D1F74C +:100E1000620F731F841F951F609394017093950157 +:100E2000809396019093970194012250304002C024 +:100E300020E030E0C901E0960FB6F894DEBF0FBEA7 +:100E4000CDBFCF91DF911F910F91FF90EF90DF9079 +:100E5000CF90BF90AF909F908F907F906F905F905A +:100E60004F903F902F90089580917E0190917F0147 +:100E7000892BF1F64ECE10927F0110927E01D8CFD1 +:100E8000CF93DF939C01DB01009729F16115710578 +:100E900011F11D968C911D9784FF1DC08091260134 +:100EA00090912701892B19F4E6E2F1E008C08091C6 +:100EB000420190914301892B71F4E2E4F1E0EF01EA +:100EC000229688E10D9009928150E1F731832083C9 +:100ED000138E128E02C0E0E0F0E0CF01DF91CF91DF +:100EE00008952F923F924F925F926F927F928F92CE +:100EF0009F92AF92BF92CF92DF92EF92FF920F93A9 +:100F00001F93DF93CF93CDB7DEB72A970FB6F89430 +:100F1000DEBF0FBECDBF4C017C836B831A010097EF +:100F200009F4DEC0672B09F4DBC04115510509F453 +:100F3000D7C0DC015A96ED90FD900D911C915D9704 +:100F400080E09EEFAFEFBFEFE822F9220A231B23D8 +:100F5000D4015A96ED92FD920D931C935D97529693 +:100F60002D913D914D915C9155972E153F05400770 +:100F7000510708F4B8C0C101A0E0B0E08E0D9F1D7C +:100F8000A01FB11F281739074A075B0728F419016A +:100F90002E183F0809F4A7C0D401ED91FC911197D8 +:100FA000208931893A8329835E968D919C915F9740 +:100FB0009A878987290166247724892BD9F5509649 +:100FC0000D90BC91A02DBA87A987AB2B39F4E11401 +:100FD000F1040105110509F486C082C0E114F10491 +:100FE0000105110539F15701680188279927DC01AE +:100FF00084199509A609B7098D839E83AF83B887A5 +:1010000014C069857A85D4018D919C910E94D70284 +:101010009A878987892B09F463C08D819E81AF816E +:10102000B885A80EB91ECA1EDB1EA414B504C604DA +:10103000D70438F7510191E0291692E0390618F0EB +:10104000A12C82E0B82EC801B701A30192010E9431 +:1010500041177B0129813A81261B370B65012A152F +:101060003B0508F4690100E010E0D401ED91FC912A +:1010700086899789A08DB18DE80EF91E0A1F1B1F66 +:10108000E985FA853297BF0180E090E03296FA87D1 +:10109000E987A30192010E94EE16E60EF71E081FD3 +:1010A000191F96014B815C81C801B7010E946E0C2B +:1010B000892BC9F0960140E050E0F401828D938DB8 +:1010C000A48DB58D820F931FA41FB51F828F938FA0 +:1010D000A48FB58F29853A85378F268FA50105C046 +:1010E0004FEF5FEF02C040E050E0CA012A960FB612 +:1010F000F894DEBF0FBECDBFCF91DF911F910F914E +:10110000FF90EF90DF90CF90BF90AF909F908F9027 +:101110007F906F905F904F903F902F900895CF9366 +:10112000DF939C01FB01009731F06115710519F007 +:10113000858584FF2CC060E08CE790E003C060E010 +:1011400088E690E00E94D70C20E030E0C901DF91F2 +:10115000CF910895C0E6D1E0DF0188E10D900992BA +:101160008150E1F730935F0120935E011092780186 +:101170001092790110927A0110927B0186859785F1 +:1011800090937D0180937C012EE531E0DFCF80914B +:101190005E0190915F01892B91F6DCCFFC010097F5 +:1011A00011F480E00895108681E008958F929F9257 +:1011B000AF92BF92CF92DF92EF92FF920F93DF93A5 +:1011C000CF93CDB7DEB760970FB6F894DEBF0FBEF2 +:1011D000CDBF7C016B015A014901009709F493C00E +:1011E0006115710509F48FC004300CF08CC007FD47 +:1011F0001DC0602F772767FD7095E4E0660F771FAD +:10120000EA95E1F762547E4F882777FD8095982F05 +:1012100020E130E0AE014F5F5F4FF7010995882371 +:1012200009F471C08D81882309F46DC08091A001FB +:10123000882309F068C07CC08D818093A0012A8535 +:1012400030E040E050E0542F432F322F22278B858F +:1012500090E0A0E0B0E0DC0199278827282B392B0B +:101260004A2B5B2B898590E0A0E0B0E0282B392B3E +:101270004A2B5B2B8C8590E0A0E0B0E0B82FAA272A +:1012800099278827282B392B4A2B5B2B2093A101E8 +:101290003093A2014093A3015093A4012E8530E026 +:1012A00040E050E0542F432F322F22278F8590E0CB +:1012B000A0E0B0E0DC0199278827282B392B4A2BA6 +:1012C0005B2B8D8590E0A0E0B0E0282B392B4A2BDA +:1012D0005B2B888990E0A0E0B0E0B82FAA2799277F +:1012E0008827282B392B4A2B5B2B2093A501309381 +:1012F000A6014093A7015093A80103C08FEF8093EC +:10130000A0019F0102C020E030E0C90160960FB645 +:10131000F894DEBF0FBECDBFCF91DF910F91FF904C +:10132000EF90DF90CF90BF90AF909F908F900895F7 +:10133000E8E9F1E081E1DF011D928A95E9F7F09299 +:101340009901E0929801D0929B01C0929A01B092CB +:101350009D01A0929C0190929F0180929E0107FFA7 +:101360006BCFCCCF81E0089581E00895282F8FEFD7 +:101370008EBD0DB407FEFDCF8DB58F778DBD8EB5BB +:10138000822F80648EBD0DB407FEFDCF8DB58F77A3 +:101390008DBD872F9927AA27BB278EBD0DB407FEC9 +:1013A000FDCF8DB58F778DBDCB01AA27BB278EBD15 +:1013B0000DB407FEFDCF8DB58F778DBDBB27A72F51 +:1013C000962F852F8EBD0DB407FEFDCF8DB58F777F +:1013D0008DBD4EBD0DB407FEFDCF8DB58F778DBD94 +:1013E000222311F08FEF01C085E98EBD0DB407FEF9 +:1013F000FDCF8DB58F778DBD90E02FEF2EBD0DB455 +:1014000007FEFDCF8DB58F778DBD8EB58F3F19F45B +:101410009F5F9A3099F70895CF93DF93239A259A87 +:10142000229A24982A9A83E58CBD8DB58E7F8DBD36 +:1014300020E030E09FEF9EBD0DB407FEFDCF8DB5DF +:101440008F778DBD8EB52F5F3F4F2A30310599F7CD +:101450002A98C0E0D0E040E050E060E070E080E03A +:101460000E94B609813031F081E0CF3FD807E1F02A +:101470002196F1CFC0E0D0E040E050E060E070E0C5 +:1014800081E00E94B60980FF06C08FE7CF3FD807F2 +:1014900059F02196F1CF40E052E060E070E080E149 +:1014A0000E94B609882319F02A9A80E008C02A9A77 +:1014B0008CB58C7F8CBD8DB581608DBD81E0DF9159 +:1014C000CF9108958F929F92AF92BF92DF92EF9249 +:1014D000FF920F931F93CF93DF937B018C015A01EF +:1014E000E901DD24DA94812C42E0942E5EC02A9832 +:1014F000B801A70140705E7F81E10E94B609882390 +:1015000019F02A9A80E055C0DEBC0DB407FEFDCF6D +:101510008DB58F778DBD8EB58E3FB1F7A701517018 +:10152000B401641B750BC617D70708F4BE01FB0195 +:10153000E40FF51F20E030E0DEBC0DB407FEFDCF68 +:101540008DB58F778DBD8EB52417350730F02E17EA +:101550003F0718F4D5018D935D012F5F3F4FB2E037 +:1015600020303B0749F7DEBC0DB407FEFDCF8DB53B +:101570008F778DBD8EB5DEBC0DB407FEFDCF8DB56A +:101580008F778DBD8EB52A9ADEBC0DB407FEFDCFD8 +:101590008DB58F778DBD8EB5C61BD70BCB01A0E067 +:1015A000B0E0E80EF91E0A1F1B1F209709F09FCF1D +:1015B00081E0DF91CF911F910F91FF90EF90DF902D +:1015C000BF90AF909F908F9008952091000130912F +:1015D00001019FEF0AC09EBD0DB407FEFDCF8DB582 +:1015E0008F778DBD8EB52F5F3F4F82E0203038075B +:1015F00090F38FEF8EBD0DB407FEFDCF8DB58F77C5 +:101600008DBD8EB58FEF8EBD0DB407FEFDCF8DB5B0 +:101610008F778DBD8EB52A9A8FEF8EBD0DB407FEE4 +:10162000FDCF8DB58F778DBD8EB58FEF9FEF9093EA +:1016300001018093000108952F923F924F925F9293 +:101640006F927F928F929F92AF92BF92CF92DF92D2 +:10165000EF92FF920F931F93DF93CF93CDB7DEB737 +:101660002C970FB6F894DEBF0FBECDBF4B015C01C7 +:101670001A013C872B872801FE82ED82D886CF8213 +:101680004115510509F4DAC02115310509F4D6C018 +:101690000217130708F4D2C0EF2809F4CFC02A9824 +:1016A000309521953F4F3A87298784011170D501E4 +:1016B000C40180709E7F89839A83AB83BC83AC0115 +:1016C000BD0181E10E94B609882311F02A9AB6C0B3 +:1016D0009FEF9EBD0DB407FEFDCF8DB58F778DBDFD +:1016E0008EB58E3FA9F720E030E00BC0AFEFAEBD66 +:1016F0000DB407FEFDCF8DB58F778DBD8EB52F5FF5 +:101700003F4F2017310790F3E12C52E0F52EE01AFD +:10171000F10A3701EB85FC856E1A7F0A6201CE1A49 +:10172000DF0A00E012E00E191F092B853C85E21646 +:10173000F30648F14216530630F1F10120E030E0A3 +:101740000CC08FEF8EBD0DB407FEFDCF8DB58F772A +:101750008DBD8EB581932F5F3F4FAB85BC852A171A +:101760003B0778F3A80160E070E0480D591D6A1D41 +:101770007B1D2F813885C101ED81FE81099588236C +:1017800021F491E026C090E024C02B853C85E21A2C +:10179000F30A421A530A61147104A9F389859A85E0 +:1017A000680E791EC80ED91E020F131FC9018C0DB9 +:1017B0009D1D892B09F0B9CFE6CFAFEFAEBD0DB4BB +:1017C00007FEFDCF8DB58F778DBD8EB50894E108EE +:1017D000F108E114F10489F7BFEFBEBD0DB407FEB7 +:1017E000FDCF8DB58F778DBD8EB5EFEFEEBD0DB40E +:1017F00007FEFDCF8DB58F778DBD8EB52B853C85D2 +:101800004216530678F0992369F489809A80AB8058 +:10181000BC8080E092E0A0E0B0E0880E991EAA1E95 +:10182000BB1E43CF2A9A8FEF8EBD0DB407FEFDCFAE +:101830008DB58F778DBD8EB581E001C080E02C968F +:101840000FB6F894DEBF0FBECDBFCF91DF911F91D1 +:101850000F91FF90EF90DF90CF90BF90AF909F904F +:101860008F907F906F905F904F903F902F90089552 +:10187000FC0120910001309101014FEF2F3F34070F +:1018800031F460E086E890E00E94D70CFFCFCB01F6 +:10189000820F931F8150924020F060E072E0621B43 +:1018A000730B20E030E04FEF14C04EBD0DB407FEC7 +:1018B000FDCF8DB58F778DBD8EB581938091000161 +:1018C00090910101019690930101809300012F5F97 +:1018D0003F4F2617370748F3CB010895CF92DF9289 +:1018E000EF92FF920F931F93CF93DF937B018C01B5 +:1018F0006A0180910001909101018F5F9F4F31F04B +:1019000060E08BE890E00E94D70CFFCFE90182E015 +:101910002130380710F0C0E0D2E02A9880E09EEF36 +:10192000AFEFBFEFE822F9220A231B23B801A7017A +:1019300081E10E94B609882321F02A9AC0E0D0E014 +:101940002CC09FEF9EBD0DB407FEFDCF8DB58F77E8 +:101950008DBD8EB58E3FB1F710920101109200013E +:101960002FEF14C02EBD0DB407FEFDCF8DB58F77C0 +:101970008DBD8EB5D6018D936D0180910001909142 +:101980000101019690930101809300018091000173 +:10199000909101018C179D0728F3CE01DF91CF9123 +:1019A0001F910F91FF90EF90DF90CF9008950F93CC +:1019B0001F93CF93DF93EC01062F10E005C088EE54 +:1019C00093E00E94F0121F5FFE01E10FF11D649190 +:1019D0006623A9F7002351F06AE088EE93E00E94A5 +:1019E000F8126DE088EE93E00E94F812DF91CF913B +:1019F0001F910F9108951F920F920FB60F9211240D +:101A00002F933F934F938F939F93AF93BF93EF93F6 +:101A1000FF93E091A901F091AA01309709F4A8C0C1 +:101A20002091AF033091B0038091B1039091B20344 +:101A30002817390709F047C08091B4038823B9F10A +:101A40008091AB039091AC032BEA32E041E08B3AFA +:101A5000940749F43093AC032093AB039093AE0307 +:101A60008093AD030AC08BEA91E09093AC0380931E +:101A7000AB033093AE032093AD038091AB03909101 +:101A8000AC039093B0038093AF0380509F4F90932B +:101A9000B2038093B1031092B4038091B3038823FF +:101AA00091F480916F00846080936F000CC08189F5 +:101AB0009289A389B4890196A11DB11D818B928B56 +:101AC000A38BB48B55C05A985C985B9A5B985C9AD0 +:101AD0005B9A5B985B9A5B985B9A5B988781803195 +:101AE00019F5E091AF03F091B0038181805890E047 +:101AF00087FF02C05C9A01C05C985B9A5B989F5F0D +:101B0000983011F0880FF4CF908180E097FF02C0E9 +:101B10005C9A01C05C985B9A5B988F5F843011F08F +:101B2000990FF4CF32961DC08830F9F4E091AF03DD +:101B3000F091B003908180E097FF02C05C9A01C0F1 +:101B40005C985B9A5B988F5F883011F0990FF4CFA7 +:101B50005B9A5B985B9A5B985B9A5B985B9A5B98E5 +:101B60003196F093B003E093AF035A9A5D985D9A73 +:101B7000FF91EF91BF91AF919F918F914F913F91C5 +:101B80002F910F900FBE0F901F90189508950895F4 +:101B9000DC015696ED91FC9157976289738984898F +:101BA000958908959A01AB0160E074E284EF90E0BA +:101BB0000E94411730938900209388000895CF93A5 +:101BC000DF93EC0180916F008D7F80936F008D8992 +:101BD000882319F00E94E50A1D8AE091A901F0917D +:101BE000AA01108A1092AA011092A901DF91CF9147 +:101BF00008950F931F93DF93CF9300D000D0CDB7FC +:101C0000DEB78C01407049835A836B837C83DC018F +:101C100050968C91882351F0F894F8018589882397 +:101C200029F00E94E50AD80155961C9240E0BE01B9 +:101C30006F5F7F4FF801868997890E946404D801FD +:101C40005696ED91FC91579782899389A489B5891D +:101C500029813A814B815C81821B930BA40BB50BCC +:101C6000F80180879187A287B38778940F900F90AF +:101C70000F900F90CF91DF911F910F910895CF9208 +:101C8000DF92EF92FF920F931F93DF93CF93CDB725 +:101C9000DEB728970FB6F894DEBF0FBECDBF8C011C +:101CA0006B0144E050E07E010894E11CF11CB70197 +:101CB000C6010E942103049709F0F0C044E050E0FF +:101CC00062E071E0C7010E94D116009709F0E6C0FA +:101CD000F5C044E050E067E071E0CE0105960E9457 +:101CE000D116009709F0DAC0F2C044E050E06CE091 +:101CF00071E0C7010E94D116009709F0CFC0F0C073 +:101D0000542F432F322F22278081280F311D411D50 +:101D1000511D3197EC17FD0799F7F8012487358796 +:101D200046875787203131054105510509F0B6C076 +:101D300048E050E0BE016F5F7F4FC6010E94210363 +:101D4000089709F0ABC08A8190E0A0E0B0E0BA2F1C +:101D5000A92F982F88272981820F911DA11DB11DC0 +:101D60000197A105B10521F061E088EA90E084C007 +:101D70008C8190E0A0E0B0E02227382F492F5A2F25 +:101D80008B81280F311D411D511D23303105410527 +:101D9000510508F083C0F8012083FE013896BE018A +:101DA0006C5F7F4F542F432F322F22278081280FC3 +:101DB000311D411D511D3197E617F70799F7F801BD +:101DC000218332834383548348E050E0BE016F5F38 +:101DD0007F4FC6010E942103089709F05FC08E81E2 +:101DE00090E0A0E0B0E0BA2FA92F982F88272D818E +:101DF000820F911DA11DB11DF801968385838885F1 +:101E000090E0A0E0B0E02227382F492F5A2F8F8191 +:101E1000280F311D411D511D21313105410551054D +:101E200008F03CC0278381819281A381B4818332F1 +:101E3000F6E59F07F0E0AF07F0E0BF0718F02930A4 +:101E400040F00CC081589E43A040B04050F0293073 +:101E500040F0FF24F8018081823020F0FF24F394C9 +:101E600001C0FF2461E087EA90E00E94D70CFF20C8 +:101E700031F061E081E990E00E94D70C0FC0F801D9 +:101E80001086118612861386D78AC68A118A128A0C +:101E9000138A148A108A158A81E001C080E028968E +:101EA0000FB6F894DEBF0FBECDBFCF91DF911F916B +:101EB0000F91FF90EF90DF90CF90089548E050E0B1 +:101EC000B701C6010E942103089741F702CF44E001 +:101ED00050E0B701C6010E9421030497F9F605CF2F +:101EE000F801148615861686178644E050E0B7017F +:101EF000C6010E942103049789F6F80124853585DF +:101F000046855785FE013496FBCEAF92BF92CF92A5 +:101F1000DF92EF92FF920F931F93DF93CF9300D046 +:101F200000D00F92CDB7DEB76C015B01F42EE52E29 +:101F3000FC0180859185A285B3850097A105B10537 +:101F4000D1F544E050E08E010F5F1F4FB801868944 +:101F500097890E942103049709F0F5C01D8244E08F +:101F600050E0B801D60156968D919C9157970E94EA +:101F70002103049709F0E7C0F60110861186128646 +:101F80001386FE01349620E030E040E050E0542F0C +:101F9000432F322F22278081280F311D411D511DD3 +:101FA0003197EC17FD0799F7D60118962D933D93BD +:101FB0004D935C931B978F2D9E2D9C017901B2E070 +:101FC00021303B0718F0E12C72E0F72EF601208556 +:101FD000318542855385C701A0E0B0E02817390755 +:101FE0004A075B0708F47901D6015696ED91FC91FA +:101FF0005797828D938DA48DB58D9170A070B07020 +:102000000097A105B105D1F4D60155968C9188238E +:10201000A9F4A701B501CF010E9471078C018E15AB +:102020009F0541F060E082EE90E00E94D70C0E9494 +:10203000E50A8BC081E0F601858B73C0D601559609 +:102040008C91882309F463C0B701C5010E94380C44 +:102050005C018E159F0539F060E08CED90E00E94E8 +:10206000D70C0E94E50AD6015696ED91FC91579740 +:10207000C501A0E0B0E0228D338D448D558D820FD7 +:10208000931FA41FB51F828F938FA48FB58F91705C +:10209000A070B0700097A105B10509F041C00E9481 +:1020A000E50AF601158A06891789D801ED90FC909A +:1020B0001197F7012089318940E050E05A966D91DF +:1020C0007D918D919C915D970E94411761157105DD +:1020D0008105910529F5D8015E966D917C915F97F8 +:1020E000C7010E94D702F801978F868F892BC1F410 +:1020F000D6015696ED91FC915797178E168E61E09A +:1021000082EC90E00E94D70C0FEF1FEF1EC0A701DA +:10211000B501CF010E9421038E159F05A1F401C0D6 +:102120007501970140E050E0F60180859185A28518 +:10213000B385821B930BA40BB50B80879187A28775 +:10214000B387870102C000E010E0C8010F900F9034 +:102150000F900F900F90CF91DF911F910F91FF90F3 +:10216000EF90DF90CF90BF90AF900895CF92DF9225 +:10217000EF92FF920F931F93CF93DF93EC01C980EF +:10218000DA80EB80FC809093AA018093A9010BEA8E +:1021900011E01093B0030093AF0342E050E0B801A8 +:1021A0000E94850F892B09F451C08091AF03909153 +:1021B000B00302969093B2038093B103EE89FF8936 +:1021C000828D40E051E0481B5109B8016E5F7F4F9E +:1021D0008091A9019091AA010E94850F9C0100970E +:1021E000A9F18091B1039091B203820F931F909354 +:1021F000B2038093B10340E051E06BEA72E080915A +:10220000A9019091AA010E94850F81E08093B403F7 +:10221000888B1092800089E08093810060E074E2F6 +:1022200084EF90E0A70196010E9441173093890046 +:102230002093880081E090E090938B0080938A0047 +:1022400080916F00826080936F007894DF91CF91CE +:102250001F910F91FF90EF90DF90CF9008951F9204 +:102260000F920FB60F9211242F933F934F935F93CA +:102270006F937F938F939F93AF93BF93EF93FF934E +:1022800080916F008B7F80936F008091B4038823CF +:10229000F9F481E08093B30378946091AD03709179 +:1022A000AE0340E051E08091A9019091AA010E9403 +:1022B000850F892B31F48091A9019091AA010E9488 +:1022C000DF0DF8941092B30381E08093B403789407 +:1022D000FF91EF91BF91AF919F918F917F916F91FE +:1022E0005F914F913F912F910F900FBE0F901F90D4 +:1022F000189587EB93E00E94F8008FEB93E00E9423 +:10230000C70D08950F931F938FEB93E00E94DF0D8D +:102310006091BD037091BE0307EB13E0C8010E94FA +:10232000F900C8010E94FD001F910F910895CF93FD +:10233000DF93EC018091CF03882361F08FEB93E072 +:102340000E94DF0D6091BD037091BE0387EB93E0A7 +:102350000E94F90087EB93E00E94FD00BE0187EB2D +:1023600093E00E945301BC019093BE038093BD0390 +:10237000009751F08FEB93E00E943F0E882321F0ED +:102380008FEB93E00E94B610DF91CF9108950E94E9 +:1023900097118091CF038823E1F76091BD0370917D +:1023A000BE0387EB93E00E94F900089588EE93E066 +:1023B0000E94E812882399F088EE93E00E94E512CB +:1023C0008093DA038093D80390E0A0E0B0E020E0AF +:1023D00030E0AC01BD0188EE93E00E945F142091D3 +:1023E000D8031216E4F58091D903281709F441C0E7 +:1023F0002093D9032A3094F4205D2093DB038EE2EE +:102400008093DC0387E58093DD0381E48093DE0322 +:1024100086E58093DF031092E0031CC0822F6AE000 +:102420000E940D17805D8093DB03822F6AE00E947B +:102430000D17905D9093DC038EE28093DD0387E5BA +:102440008093DE0381E48093DF0386E58093E003DD +:102450001092E1038BED93E00E9497110AC02223B2 +:1024600041F48091D903882321F01092D9030E946E +:1024700082118091CF03882351F48091D80388235F +:1024800031F00E9482118BED93E00E949711089524 +:102490000F931F93DF93CF93CDB7DEB72D970FB672 +:1024A000F894DEBF0FBECDBF87EB93E00E94FD0026 +:1024B00061E088EE90E00E94D70C8E010F5F1F4F05 +:1024C000B80187EB93E00E945C01882379F487EBE5 +:1024D00093E00E94FD002D960FB6F894DEBF0FBE6C +:1024E000CDBFCF91DF911F910F910895B80188EE74 +:1024F00093E00E943F13E4CF40E855E260E070E0D3 +:1025000088EE93E00E94EB1261E171E088EE93E0C7 +:102510000E943F1361E082E00E945C1561E083E06D +:102520000E945C1561E084E00E945C1561E085E03A +:102530000E945C1561E089E00E945C1587EB93E0E6 +:102540000E940502882321F461E088E391E01DC028 +:1025500087EB93E00E94DA01882321F461E08AE2AC +:1025600091E013C087EB93E00E94C701882321F418 +:1025700061E084E191E009C087EB93E00E94930160 +:10258000882331F461E082E091E00E94D70C089545 +:1025900061E085EF90E00E94D70C0E9448120895F8 +:1025A0000E9422150E947C120E94D611FDCF84E267 +:1025B00091E09093E9038093E8030895862F0E94A9 +:1025C0004A1608950E94821608950E94631608957F +:1025D0000E9452160895CB01BA010E941116089567 +:1025E000DC01ED91FC910190F081E02D09950895B9 +:1025F000DC01ED91FC910190F081E02D09950895A9 +:102600000F931F93CF93DF938C01EB0109C02196A9 +:10261000D801ED91FC910190F081E02DC801099560 +:1026200068816623A1F7DF91CF911F910F910895E3 +:102630000F931F938C01DC01ED91FC910190F081CF +:10264000E02D6DE00995D801ED91FC910190F081AC +:10265000E02D6AE0C80109951F910F9108950F932D +:102660001F938C01DC01ED91FC910190F081E02D34 +:102670000995C8010E9418131F910F9108950F9397 +:102680001F938C010E940013C8010E9418131F9110 +:102690000F9108950F931F938C01DC01ED91FC9134 +:1026A0000190F081E02D0995C8010E9418131F9137 +:1026B0000F9108952F923F924F925F926F927F9267 +:1026C0008F929F92AF92BF92CF92DF92EF92FF9242 +:1026D0000F931F93DF93CF93CDB7DEB7A0970FB6BD +:1026E000F894DEBF0FBECDBF1C016A017B0141150E +:1026F00051056105710549F4DC01ED91FC910190F2 +:10270000F081E02D60E3099554C088249924540198 +:10271000422E55246624772401E010E00C0F1D1F83 +:10272000080D191DC701B601A30192010E944117AE +:10273000F80160830894811C911CA11CB11CC70185 +:10274000B601A30192010E944117C901DA016C018F +:102750007D01C114D104E104F104F1F681E0E82E19 +:10276000F12CEC0EFD1EE80CF91C3E010894611CD6 +:10277000711CD501C4010197A109B1096C01C818E8 +:10278000D90814C0F601EE0DFF1D60816A3010F407 +:10279000605D01C0695CD101ED91FC910190F08117 +:1027A000E02DC10109950894E108F1086E147F0439 +:1027B00049F7A0960FB6F894DEBF0FBECDBFCF91FC +:1027C000DF911F910F91FF90EF90DF90CF90BF901E +:1027D000AF909F908F907F906F905F904F903F90C1 +:1027E0002F9008952AE00E945A1308950F931F9383 +:1027F0008C010E94F213C8010E9418131F910F91BF +:102800000895AB0160E070E00E94F21308950F9309 +:102810001F938C01AB0160E070E00E94F213C801CD +:102820000E9418131F910F910895EF92FF920F933A +:102830001F93CF93DF93EC017A018B0177FF0FC0D9 +:10284000E881F9810190F081E02D6DE20995109504 +:102850000095F094E094E11CF11C011D111D2AE08B +:10286000B801A701CE010E945A13DF91CF911F91A9 +:102870000F91FF90EF9008950F931F938C010E948A +:102880001514C8010E9418131F910F910895AB01F0 +:10289000662757FD6095762F0E94151408950F93B3 +:1028A0001F938C01AB01662757FD6095762F0E9420 +:1028B0001514C8010E9418131F910F910895DC018F +:1028C0002115310541F4ED91FC910190F081E02D4D +:1028D000642F099508952A30310519F40E941514C2 +:1028E00008950E945A1308950F931F938C010E941C +:1028F0005F14C8010E9418131F910F9108951F9231 +:102900000F920FB60F9211242F938F939F93AF9333 +:10291000BF938091EA039091EB03A091EC03B091F7 +:10292000ED038050904CAF4FBF4F8093EA039093DC +:10293000EB03A093EC03B093ED0327C08091EA036F +:102940009091EB03A091EC03B091ED0380589E436E +:10295000A040B0408093EA039093EB03A093EC0374 +:10296000B093ED038091EE039091EF03A091F003FB +:10297000B091F1030196A11DB11D8093EE039093D8 +:10298000EF03A093F003B093F1038091EA039091D9 +:10299000EB03A091EC03B091ED0381589E43A0405E +:1029A000B04060F6BF91AF919F918F912F910F90A2 +:1029B0000FBE0F901F9018958FB7F8942091EE03DB +:1029C0003091EF034091F0035091F1038FBFB901B3 +:1029D000CA010895EF92FF920F931F937B018C0120 +:1029E0008FB7F8944091EE035091EF036091F0039C +:1029F0007091F1038FBF2FB7F8948091EE039091FF +:102A0000EF03A091F003B091F1032FBF841B950B4E +:102A1000A60BB70B8E159F05A007B10760F31F919A +:102A20000F91FF90EF900895019759F0FC01EE0F80 +:102A3000FF1FEE0FFF1F32978FB7F8943197F1F712 +:102A40008FBF0895789484B5826084BD84B5816019 +:102A500084BD85B5826085BD85B5816085BDEEE6A6 +:102A6000F0E0808181608083E1E8F0E08081826035 +:102A70008083808181608083E0E8F0E080818160F4 +:102A80008083E1EBF0E0808184608083E0EBF0E024 +:102A9000808181608083EAE7F0E0808184608083C8 +:102AA0008081826080838081816080838081806872 +:102AB00080831092C1000895282F30E0C901825907 +:102AC0009E4FFC019491265A3E4FF9018491882330 +:102AD00081F0E82FF0E0E55BFE4FE491F0E0662343 +:102AE00029F4808190958923808308958081892BA2 +:102AF00080830895482F50E0CA018E579E4FFC01F5 +:102B00002491CA0182599E4FFC019491465A5E4F0E +:102B1000FA0134913323C1F1222331F1233021F41E +:102B2000809180008F7705C0243031F4809180003F +:102B30008F7D8093800018C0213019F484B58F7781 +:102B400004C0223021F484B58F7D84BD0DC02630B1 +:102B500021F48091B0008F7705C0273029F480914F +:102B6000B0008F7D8093B000E32FF0E0E05BFE4F7C +:102B7000E491F0E0662329F4808190958923808395 +:102B800008958081892B80830895482F50E0CA01E1 +:102B90008E579E4FFC012491CA0182599E4FFC0121 +:102BA0009491465A5E4FFA013491332319F420E090 +:102BB00030E035C0222331F1233021F480918000B0 +:102BC0008F7705C0243031F4809180008F7D809311 +:102BD000800018C0213019F484B58F7704C02230EA +:102BE00021F484B58F7D84BD0DC0263021F4809101 +:102BF000B0008F7705C0273029F48091B0008F7D19 +:102C00008093B000E32FF0E0EB5AFE4FE491F0E048 +:102C1000808120E030E0892311F021E030E0C9011B +:102C20000895EF92FF920F931F937B018C0122E096 +:102C300030E040E050E00E946317205C3D4B404F85 +:102C40005F4FCA01B901A80197010E946317C9012A +:102C5000DA010197A109B109292F3A2F4B2F5527E6 +:102C600047FD5A950196A11DB11D2093C5008150C5 +:102C70008093C400E1ECF0E08081806180838081FA +:102C8000886080838081806880831F910F91FF908E +:102C9000EF900895982F8091C00085FFFCCF90930E +:102CA000C60008958091F2039091F30380589F4FDE +:102CB0002091F4033091F503821B930B60E870E0E0 +:102CC0000E942E1708954091F4035091F5038091CE +:102CD000F2039091F3038417950719F42FEF3FEF58 +:102CE0000FC0FA01EA50FC4F2081CA01019660E84A +:102CF00070E00E942E179093F5038093F40330E068 +:102D0000C90108958091F4039091F5039093F30322 +:102D10008093F20308951F920F920FB60F92112421 +:102D20002F933F934F935F936F937F938F939F93D3 +:102D3000AF93BF93EF93FF934091C600E091F203EE +:102D4000F091F303CF01019660E870E00E942E1726 +:102D50009C018091F4039091F5032817390739F00D +:102D6000EA50FC4F40833093F3032093F203FF912A +:102D7000EF91BF91AF919F918F917F916F915F91F3 +:102D80004F913F912F910F900FBE0F901F9018956C +:102D9000FB01DC018D91019080190110D9F3990B91 +:102DA0000895FB01DC014150504030F08D910190BD +:102DB000801919F40020B9F7881B990B0895FB01BD +:102DC000DC014150504048F001900D920020C9F7BD +:102DD00001C01D9241505040E0F70895629FD0011C +:102DE000739FF001829FE00DF11D649FE00DF11DC6 +:102DF000929FF00D839FF00D749FF00D659FF00D75 +:102E00009927729FB00DE11DF91F639FB00DE11D61 +:102E1000F91FBD01CF011124089587FB082E062656 +:102E200087FD819567FD619569D00EF4919507FC4A +:102E300081950895AA1BBB1B51E107C0AA1FBB1FA8 +:102E4000A617B70710F0A61BB70B881F991F5A9536 +:102E5000A9F780959095BC01CD01089597FB092EA7 +:102E600007260AD077FD04D0E5DF06D000201AF44B +:102E7000709561957F4F0895F6F7909581959F4FD6 +:102E80000895A1E21A2EAA1BBB1BFD010DC0AA1FAB +:102E9000BB1FEE1FFF1FA217B307E407F50720F0C3 +:102EA000A21BB30BE40BF50B661F771F881F991F3E +:102EB0001A9469F760957095809590959B01AC0187 +:102EC000BD01CF01089597FB092E05260ED057FDB1 +:102ED00004D0D7DF0AD0001C38F4509540953095C7 +:102EE00021953F4F4F4F5F4F0895F6F7909580958E +:102EF000709561957F4F8F4F9F4F0895991B79E093 +:102F000004C0991F961708F0961B881F7A95C9F779 +:102F100080950895EE0FFF1F0590F491E02D099420 +:042F2000F894FFCF53 +:102F2400FFFF52494646005741564500666D7420DE +:102F34000041756469666F6E6F2074657374210057 +:062F440000000000DE1297 +:00000001FF diff --git a/2009/audifono2_pde/applet/audifono2_pde.rom b/2009/audifono2_pde/applet/audifono2_pde.rom new file mode 100644 index 0000000..ebf25eb --- /dev/null +++ b/2009/audifono2_pde/applet/audifono2_pde.rom @@ -0,0 +1,760 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4D697320646F63FD +S11300000C94CD000C94F5000C94F5000C94F500C0 +S11300100C94F5000C94F5000C94F5000C94F50088 +S11300200C94F5000C94F5000C94F5000C94FB0C66 +S11300300C942F110C94F5000C94F5000C94F5001D +S11300400C947F140C94F5000C948B160C94F5000E +S11300500C94F5000C94F5000C94F5000C94F50048 +S11300600C94F5000C94F500746F6F206D616E793B +S1130070206F70656E2066696C6573006261642030 +S1130080696E707574005941414B00594545454BA3 +S11300900053616D706C65207261746520746F6FBC +S11300A02068696768210000436F6D70726573731F +S11300B0696F6E206E6F7420737570706F727465E3 +S11300C064006661696C656420746F2067657420E0 +S11300D06E657720636C757374657200202121212D +S11300E02000203F3F3F200046696C657320666F07 +S11300F0756E643A0046696C657320666F756E644C +S11301003A00436F756C646E2774206F70656E20BF +S113011064697200436F756C646E2774206F706538 +S11301206E2066696C65737973004E6F207061721E +S1130130746974696F6E21004361726420696E6929 +S1130140742E206661696C65642100000024272AEE +S1130150000025282B000023262904040404040499 +S11301600404020202020202030303030303010262 +S11301700408102040800102040810200102040831 +S11301801020000000070002010000030406000024 +S11301900000000000007911D71211241FBECFEF18 +S11301A0D4E0DEBFCDBF11E0A0E0B1E0E4E2FFE2C5 +S11301B002C005900D92A632B107D9F714E0A6E269 +S11301C0B1E001C01D92A637B107E1F711E0CAE919 +S11301D0D1E004C02297FE010E948C17C639D107D2 +S11301E0C9F70E94D0120C9490170C940000089543 +S11301F00895CB010E941B030895FC01848195811D +S11302000E94AD040895EF92FF920F931F93CF9332 +S1130210DF93EB018A0179010BC0B801C7010E9489 +S1130220C816009729F4CE010E94AD0481E006C0EF +S1130230B701CE010E94B604882379F7DF91CF91EC +S11302401F910F91FF90EF900895EF92FF920F93FB +S11302501F93DF93CF93CDB7DEB768970FB6F894AB +S1130260DEBF0FBECDBF8C017E010894E11CF11CE2 +S113027097010E940301882319F420E030E005C0AF +S1130280B701C8010E948F089C01C90168960FB686 +S1130290F894DEBF0FBECDBFCF91DF911F910F91B8 +S11302A0FF90EF900895FC01AB0164817581828118 +S11302B093810E9425010895EF92FF920F931F935B +S11302C0DF93CF93CDB7DEB768970FB6F894DEBF50 +S11302D00FBECDBF8B017E010894E11CF11CB70158 +S11302E0FC01848195810E94B604882349F04CE086 +S11302F050E0B701C8010E94DF16F801148681E0BE +S113030068960FB6F894DEBF0FBECDBFCF91DF91D4 +S11303101F910F91FF90EF900895FC0184819581C6 +S11303200E94A7040895EF92FF920F931F93DF9307 +S1130330CF93CDB7DEB768970FB6F894DEBF0FBE84 +S1130340CDBF8C017E010894E11CF11CB701FC01B6 +S1130350828193810E945905B701F80182819381BA +S11303600E944007F8019583848320E0892B09F0DB +S113037021E0822F68960FB6F894DEBF0FBECDBF82 +S1130380CF91DF911F910F91FF90EF9008950F93FC +S11303901F938C01FC01808191810E946A05F80100 +S11303A09383828320E0892B09F021E0822F1F911F +S11303B00F9108950F93CF93DF93EC0100E020E0B9 +S11303C030E040E050E06CE17BE082E69AE00E949D +S11303D0D60899838883892B69F40FEF20E030E0F5 +S11303E040E050E06CE17BE082E69AE00E94D608AF +S11303F09983888320E088819981892B09F021E001 +S1130400822FDF91CF910F9108950E940C0A0895D5 +S1130410FC01009711F0118210820895DC018C9187 +S1130420853E39F1882329F1F901208131818281C6 +S113043093812817390799F4448355836683778316 +S11304401B968C911B978F3011F080E205C08C9124 +S11304508295880F807E805E808780E008951B9659 +S11304608C918F3031F02F5F3F4F3183208381E0B7 +S1130470089581E008950F931F93CF93DF938C0128 +S1130480FC018081853E09F48CC0882309F489C06D +S1130490E9018C899D89AE89BF890097A105B105C1 +S11304A021F44C8B5D8B6E8B7F8B209709F479C084 +S11304B00115110509F475C0F8018081882309F438 +S11304C070C083858F3011F481E06CC0A801D8011D +S11304D080E090E0282F3C91303251F0FE01E80F8B +S11304E0F91F30832F5F019611968830910591F79B +S11304F08881853011F485EE8883F8018085803207 +S1130500B1F0FE01E20FF11D8EE28083822F8F5F36 +S11305102C5FFA019085903249F0FE01E80FF11D3D +S113052090838F5F4F5F5F4F821799F7282FFE01EB +S1130530E20FF11D1082F80183858D87938D80E091 +S1130540228D30E0822B932B9F878E87258D30E080 +S113055040E050E0542F432F322F2227868D90E025 +S1130560A0E0B0E0DC0199278827282B392B4A2BFF +S11305705B2B848D90E0A0E0B0E0282B392B4A2B34 +S11305805B2B878D90E0A0E0B0E0B82FAA279927D5 +S11305908827282B392B4A2B5B2B288B398B4A8BAA +S11305A05B8B80E0DF91CF911F910F910895DF93D2 +S11305B0CF9300D0CDB7DEB7DC010097A1F1623054 +S11305C0710588F1ED91FC911197660F771F80E01A +S11305D090E016962D913D914D915C911997620F83 +S11305E0731F841F951F0190F081E02D22E030E0FD +S11305F0AE014F5F5F4F09958823A9F09A8180E08F +S1130600298130E0282B392B2115310571F08FEF2A +S1130610273F380741F0C9014096079720F08FEF34 +S1130620283F380710F020E030E0C9010F900F9008 +S1130630CF91DF910895FC01009711F0118210828F +S113064008952F923F924F925F926F927F928F9272 +S11306509F92AF92BF92CF92DF92EF92FF920F934D +S11306601F93DF93CF93CDB7DEB72C970FB6F894D3 +S1130670DEBF0FBECDBF3C0178876F835A874987A1 +S1130680009709F402C1672B09F4FFC0452B09F454 +S1130690FCC0DC015A96AD90BD90CD90DC905D9786 +S11306A052962D913D914D915C915597E985FA852E +S11306B0CF01A0E0B0E08A0D9B1DAC1DBD1D281725 +S11306C039074A075B0740F4B9016A197B097A873D +S11306D06987672B09F4DCC0D301ED91FC91119774 +S11306E0208931893A8329835E966D917C915F9745 +S11306F07C876B87C901A0E0B0E08B839C83AD83CA +S1130700BE83672BE1F5F3010088F189E02DFC87B6 +S1130710EB87EF2B39F4A114B104C104D10409F41B +S1130720B7C0B3C0A114B104C104D10441F186011E +S113073075012B803C804D805E80509440943094B1 +S11307402094211C311C411C511C10C06B857C85DC +S1130750D3018D919C910E94D7029C878B87892B12 +S113076009F493C0E20CF31C041D151D6B817C81FC +S11307708D819E81E616F7060807190738F7C6012A +S1130780B5012B813C814D815E810E9441172B0173 +S113079089849A84D301ED91FC91A980BA80A4182C +S11307A0B5088A149B0408F45401C080D1807201F6 +S11307B000E010E086899789A08DB18DE80EF91EBE +S11307C00A1F1B1FEB85FC853297BF0180E090E078 +S11307D03296FC87EB872B813C814D815E810E94A0 +S11307E0EE16E60EF71E081F191FD601ED91FC91B7 +S11307F095014F815885C801B7010995882361F196 +S11308008A189B08C501A0E0B0E0F301228D338D66 +S1130810448D558D280F391F4A1F5B1FD3015A96EB +S11308202D933D934D935C935D97C501840D951D68 +S1130830E981FA818E179F07B0F06B857C858D91D5 +S11308409C910E94D7029C878B87892B51F4D301FA +S11308505F961C921E925E9749855A8548195909DC +S113086019C0442455242B853C85F301378F268FEA +S11308708114910439F06F8178856A0D7B1D788726 +S11308806F8388CF49855A8505C04FEF5FEF02C05B +S113089040E050E0CA012C960FB6F894DEBF0FBEBC +S11308A0CDBFCF91DF911F910F91FF90EF90DF901B +S11308B0CF90BF90AF909F908F907F906F905F90FC +S11308C04F903F902F900895CF93DF93FC01EB015D +S11308D00097C9F161157105B1F1828D938DA48DD5 +S11308E0B58D413051F0413018F0423061F50AC005 +S11308F0288139814A815B8111C0288139814A81EB +S11309005B8108C0288139814A815B81828993890E +S1130910A489B589280F391F4A1F5B1F82899389CF +S1130920A489B58982179307A407B50760F0228FBD +S1130930338F448F558F178E168E288339834A83BD +S11309405B8381E001C080E0DF91CF910895FC01D9 +S1130950009711F0118210820895FC01009711F4A0 +S113096080E00895138E128E81E008952F923F92B5 +S11309704F925F926F927F928F929F92AF92BF92AB +S1130980CF92DF92EF92FF920F931F93DF93CF9357 +S1130990CDB7DEB7A9970FB6F894DEBF0FBECDBFB3 +S11309A03C012B01009709F44AC06115710509F453 +S11309B046C0FC0180899189892B09F040C0228DB1 +S11309C0338DA081B1811097B9F1ED91FC9111970C +S11309D022803380AE014F5F5F4F89E0FA011192AC +S11309E08A95E9F73C832B8352966D917D918D9185 +S11309F09C91559756960D911C915797061B170B72 +S1130A006A012EE0E22E22E0F22E20E230E0AE0176 +S1130A10465F5F4FF1010995882371F08D809E80B8 +S1130A20AF80B88481149104A104B10429F021C0D9 +S1130A30F20180818823A9F5F301138E128E80E0E0 +S1130A40A9960FB6F894DEBF0FBECDBFCF91DF914C +S1130A501F910F91FF90EF90DF90CF90BF90AF90D8 +S1130A609F908F907F906F905F904F903F902F90CA +S1130A70089588E1F20111928A95E9F709856201E6 +S1130A809BE3E92E92E0F92E10E020E230E0AE0183 +S1130A90465F5F4FC501B401F1010995882361F2F6 +S1130AA0C7CFF301828D938D0196938F828F81E05E +S1130AB0C7CFFB01892B61F06115710549F088E10D +S1130AC0DB011D928A95E9F780E1858781E008952D +S1130AD080E008952F923F924F925F926F927F929F +S1130AE08F929F92AF92BF92CF92DF92EF92FF923A +S1130AF00F931F93DF93CF93CDB7DEB7E0970FB675 +S1130B00F894DEBF0FBECDBF6C01009709F490C10D +S1130B10ABC1EEE7F1E08AE1DF011D928A95E9F7C6 +S1130B20D0927F01C0927E01D60119962D913D91FC +S1130B304D915C911C9719E0220F331F441F551FE0 +S1130B401A95D1F72AA33BA34CA35DA3CA01B9010B +S1130B50655F7F4F8F4F9F4FED91FC9129E130E00E +S1130B60AE014F5F5F4F0995882309F484C1A980C2 +S1130B704A80BB81BEA30C81FD801E813F815884C5 +S1130B8069847A849D8580E02C85E22FF0E0E82B4F +S1130B90F92B8E883F88288DE98C309709F46BC136 +S1130BA0432D50E060E070E0962F852F742F662768 +S1130BB069A77AA78BA79CA7822F90E0A0E0B0E05A +S1130BC0BC015527442789A59AA5ABA5BCA5842BB0 +S1130BD0952BA62BB72B482D50E060E070E0842BBA +S1130BE0952BA62BB72B89A79AA7ABA7BCA78E2DAD +S1130BF090E0A0E0B0E0782F66275527442789A528 +S1130C009AA5ABA5BCA5842B952BA62BB72B89A79E +S1130C109AA7ABA7BCA70097A105B10589F4972DA6 +S1130C2080E0662D70E0682B792B6115710509F45D +S1130C3022C1CB01A0E0B0E089A79AA7ABA7BCA7CB +S1130C40942D80E02A2C3324282A392A952D80E0FB +S1130C50A32FB0E0A82BB92BB8A7AFA39F2D80E09A +S1130C60202F30E0822B932B9C0140E050E02A8F10 +S1130C703B8F4C8F5D8FBF0180E090E0212F30E0EF +S1130C8040E050E00E94EE166E8F7F8F88A399A3F8 +S1130C90E9A4FAA40BA51CA54A8D5B8D6C8D7D8DF2 +S1130CA0E41AF50A060B170B6E8D7F8D88A199A1A6 +S1130CB0E61AF70A080B190BC10101972FA138A5F1 +S1130CC0B5E0220F331FBA95E1F7820F931FB101EC +S1130CD00E941A1780E090E0E61AF70A080B190B35 +S1130CE07EA1272F30E040E050E0C801B7010E9408 +S1130CF0411729013A01D301C201855F9F40A040F9 +S1130D00B0408050904FA040B04008F0B4C086E09E +S1130D10D60118968C93A0E88A2EA1E09A2E88E139 +S1130D20F40111928A95E9F75101CC24DD2469A5D7 +S1130D307AA58BA59CA5A60195010E94EE16609349 +S1130D408001709381018093820190938301C60195 +S1130D50B5012A8D3B8D4C8D5D8D0E94EE167B0175 +S1130D608C012AA13BA14CA15DA1E20EF31E041F3C +S1130D70151FE0928401F09285010093860110937F +S1130D80870142E050E060E070E0440E551E661EAC +S1130D90771E440C551C661C771C409288015092A7 +S1130DA0890160928A0170928B0130928D012092A8 +S1130DB08C015EA1852F90E0BC01269EC001279E78 +S1130DC0900D369E900D112490938F0180938E0187 +S1130DD06E8D7F8D88A199A1A60195010E94EE16C2 +S1130DE06E0D7F1D801F911F609390017093910180 +S1130DF08093920190939301AFA1B8A59D0140E027 +S1130E0050E0E5E0220F331F441F551FEA95D1F748 +S1130E10620F731F841F951F609394017093950153 +S1130E20809396019093970194012250304002C020 +S1130E3020E030E0C901E0960FB6F894DEBF0FBEA3 +S1130E40CDBFCF91DF911F910F91FF90EF90DF9075 +S1130E50CF90BF90AF909F908F907F906F905F9056 +S1130E604F903F902F90089580917E0190917F0143 +S1130E70892BF1F64ECE10927F0110927E01D8CFCD +S1130E80CF93DF939C01DB01009729F16115710574 +S1130E9011F11D968C911D9784FF1DC08091260130 +S1130EA090912701892B19F4E6E2F1E008C08091C2 +S1130EB0420190914301892B71F4E2E4F1E0EF01E6 +S1130EC0229688E10D9009928150E1F731832083C5 +S1130ED0138E128E02C0E0E0F0E0CF01DF91CF91DB +S1130EE008952F923F924F925F926F927F928F92CA +S1130EF09F92AF92BF92CF92DF92EF92FF920F93A5 +S1130F001F93DF93CF93CDB7DEB72A970FB6F8942C +S1130F10DEBF0FBECDBF4C017C836B831A010097EB +S1130F2009F4DEC0672B09F4DBC04115510509F44F +S1130F30D7C0DC015A96ED90FD900D911C915D9700 +S1130F4080E09EEFAFEFBFEFE822F9220A231B23D4 +S1130F50D4015A96ED92FD920D931C935D9752968F +S1130F602D913D914D915C9155972E153F0540076C +S1130F70510708F4B8C0C101A0E0B0E08E0D9F1D78 +S1130F80A01FB11F281739074A075B0728F4190166 +S1130F902E183F0809F4A7C0D401ED91FC911197D4 +S1130FA0208931893A8329835E968D919C915F973C +S1130FB09A878987290166247724892BD9F5509645 +S1130FC00D90BC91A02DBA87A987AB2B39F4E114FD +S1130FD0F1040105110509F486C082C0E114F1048D +S1130FE00105110539F15701680188279927DC01AA +S1130FF084199509A609B7098D839E83AF83B887A1 +S113100014C069857A85D4018D919C910E94D70280 +S11310109A878987892B09F463C08D819E81AF816A +S1131020B885A80EB91ECA1EDB1EA414B504C604D6 +S1131030D70438F7510191E0291692E0390618F0E7 +S1131040A12C82E0B82EC801B701A30192010E942D +S113105041177B0129813A81261B370B65012A152B +S11310603B0508F4690100E010E0D401ED91FC9126 +S113107086899789A08DB18DE80EF91E0A1F1B1F62 +S1131080E985FA853297BF0180E090E03296FA87CD +S1131090E987A30192010E94EE16E60EF71E081FCF +S11310A0191F96014B815C81C801B7010E946E0C27 +S11310B0892BC9F0960140E050E0F401828D938DB4 +S11310C0A48DB58D820F931FA41FB51F828F938F9C +S11310D0A48FB58F29853A85378F268FA50105C042 +S11310E04FEF5FEF02C040E050E0CA012A960FB60E +S11310F0F894DEBF0FBECDBFCF91DF911F910F914A +S1131100FF90EF90DF90CF90BF90AF909F908F9023 +S11311107F906F905F904F903F902F900895CF9362 +S1131120DF939C01FB01009731F06115710519F003 +S1131130858584FF2CC060E08CE790E003C060E00C +S113114088E690E00E94D70C20E030E0C901DF91EE +S1131150CF910895C0E6D1E0DF0188E10D900992B6 +S11311608150E1F730935F0120935E011092780182 +S11311701092790110927A0110927B0186859785ED +S113118090937D0180937C012EE531E0DFCF809147 +S11311905E0190915F01892B91F6DCCFFC010097F1 +S11311A011F480E00895108681E008958F929F9253 +S11311B0AF92BF92CF92DF92EF92FF920F93DF93A1 +S11311C0CF93CDB7DEB760970FB6F894DEBF0FBEEE +S11311D0CDBF7C016B015A014901009709F493C00A +S11311E06115710509F48FC004300CF08CC007FD43 +S11311F01DC0602F772767FD7095E4E0660F771FA9 +S1131200EA95E1F762547E4F882777FD8095982F01 +S113121020E130E0AE014F5F5F4FF701099588236D +S113122009F471C08D81882309F46DC08091A001F7 +S1131230882309F068C07CC08D818093A0012A8531 +S113124030E040E050E0542F432F322F22278B858B +S113125090E0A0E0B0E0DC0199278827282B392B07 +S11312604A2B5B2B898590E0A0E0B0E0282B392B3A +S11312704A2B5B2B8C8590E0A0E0B0E0B82FAA2726 +S113128099278827282B392B4A2B5B2B2093A101E4 +S11312903093A2014093A3015093A4012E8530E022 +S11312A040E050E0542F432F322F22278F8590E0C7 +S11312B0A0E0B0E0DC0199278827282B392B4A2BA2 +S11312C05B2B8D8590E0A0E0B0E0282B392B4A2BD6 +S11312D05B2B888990E0A0E0B0E0B82FAA2799277B +S11312E08827282B392B4A2B5B2B2093A50130937D +S11312F0A6014093A7015093A80103C08FEF8093E8 +S1131300A0019F0102C020E030E0C90160960FB641 +S1131310F894DEBF0FBECDBFCF91DF910F91FF9048 +S1131320EF90DF90CF90BF90AF909F908F900895F3 +S1131330E8E9F1E081E1DF011D928A95E9F7F09295 +S11313409901E0929801D0929B01C0929A01B092C7 +S11313509D01A0929C0190929F0180929E0107FFA3 +S11313606BCFCCCF81E0089581E00895282F8FEFD3 +S11313708EBD0DB407FEFDCF8DB58F778DBD8EB5B7 +S1131380822F80648EBD0DB407FEFDCF8DB58F779F +S11313908DBD872F9927AA27BB278EBD0DB407FEC5 +S11313A0FDCF8DB58F778DBDCB01AA27BB278EBD11 +S11313B00DB407FEFDCF8DB58F778DBDBB27A72F4D +S11313C0962F852F8EBD0DB407FEFDCF8DB58F777B +S11313D08DBD4EBD0DB407FEFDCF8DB58F778DBD90 +S11313E0222311F08FEF01C085E98EBD0DB407FEF5 +S11313F0FDCF8DB58F778DBD90E02FEF2EBD0DB451 +S113140007FEFDCF8DB58F778DBD8EB58F3F19F457 +S11314109F5F9A3099F70895CF93DF93239A259A83 +S1131420229A24982A9A83E58CBD8DB58E7F8DBD32 +S113143020E030E09FEF9EBD0DB407FEFDCF8DB5DB +S11314408F778DBD8EB52F5F3F4F2A30310599F7C9 +S11314502A98C0E0D0E040E050E060E070E080E036 +S11314600E94B609813031F081E0CF3FD807E1F026 +S11314702196F1CFC0E0D0E040E050E060E070E0C1 +S113148081E00E94B60980FF06C08FE7CF3FD807EE +S113149059F02196F1CF40E052E060E070E080E145 +S11314A00E94B609882319F02A9A80E008C02A9A73 +S11314B08CB58C7F8CBD8DB581608DBD81E0DF9155 +S11314C0CF9108958F929F92AF92BF92DF92EF9245 +S11314D0FF920F931F93CF93DF937B018C015A01EB +S11314E0E901DD24DA94812C42E0942E5EC02A982E +S11314F0B801A70140705E7F81E10E94B60988238C +S113150019F02A9A80E055C0DEBC0DB407FEFDCF69 +S11315108DB58F778DBD8EB58E3FB1F7A701517014 +S1131520B401641B750BC617D70708F4BE01FB0191 +S1131530E40FF51F20E030E0DEBC0DB407FEFDCF64 +S11315408DB58F778DBD8EB52417350730F02E17E6 +S11315503F0718F4D5018D935D012F5F3F4FB2E033 +S113156020303B0749F7DEBC0DB407FEFDCF8DB537 +S11315708F778DBD8EB5DEBC0DB407FEFDCF8DB566 +S11315808F778DBD8EB52A9ADEBC0DB407FEFDCFD4 +S11315908DB58F778DBD8EB5C61BD70BCB01A0E063 +S11315A0B0E0E80EF91E0A1F1B1F209709F09FCF19 +S11315B081E0DF91CF911F910F91FF90EF90DF9029 +S11315C0BF90AF909F908F9008952091000130912B +S11315D001019FEF0AC09EBD0DB407FEFDCF8DB57E +S11315E08F778DBD8EB52F5F3F4F82E02030380757 +S11315F090F38FEF8EBD0DB407FEFDCF8DB58F77C1 +S11316008DBD8EB58FEF8EBD0DB407FEFDCF8DB5AC +S11316108F778DBD8EB52A9A8FEF8EBD0DB407FEE0 +S1131620FDCF8DB58F778DBD8EB58FEF9FEF9093E6 +S113163001018093000108952F923F924F925F928F +S11316406F927F928F929F92AF92BF92CF92DF92CE +S1131650EF92FF920F931F93DF93CF93CDB7DEB733 +S11316602C970FB6F894DEBF0FBECDBF4B015C01C3 +S11316701A013C872B872801FE82ED82D886CF820F +S11316804115510509F4DAC02115310509F4D6C014 +S11316900217130708F4D2C0EF2809F4CFC02A9820 +S11316A0309521953F4F3A87298784011170D501E0 +S11316B0C40180709E7F89839A83AB83BC83AC0111 +S11316C0BD0181E10E94B609882311F02A9AB6C0AF +S11316D09FEF9EBD0DB407FEFDCF8DB58F778DBDF9 +S11316E08EB58E3FA9F720E030E00BC0AFEFAEBD62 +S11316F00DB407FEFDCF8DB58F778DBD8EB52F5FF1 +S11317003F4F2017310790F3E12C52E0F52EE01AF9 +S1131710F10A3701EB85FC856E1A7F0A6201CE1A45 +S1131720DF0A00E012E00E191F092B853C85E21642 +S1131730F30648F14216530630F1F10120E030E09F +S11317400CC08FEF8EBD0DB407FEFDCF8DB58F7726 +S11317508DBD8EB581932F5F3F4FAB85BC852A1716 +S11317603B0778F3A80160E070E0480D591D6A1D3D +S11317707B1D2F813885C101ED81FE810995882368 +S113178021F491E026C090E024C02B853C85E21A28 +S1131790F30A421A530A61147104A9F389859A85DC +S11317A0680E791EC80ED91E020F131FC9018C0DB5 +S11317B09D1D892B09F0B9CFE6CFAFEFAEBD0DB4B7 +S11317C007FEFDCF8DB58F778DBD8EB50894E108EA +S11317D0F108E114F10489F7BFEFBEBD0DB407FEB3 +S11317E0FDCF8DB58F778DBD8EB5EFEFEEBD0DB40A +S11317F007FEFDCF8DB58F778DBD8EB52B853C85CE +S11318004216530678F0992369F489809A80AB8054 +S1131810BC8080E092E0A0E0B0E0880E991EAA1E91 +S1131820BB1E43CF2A9A8FEF8EBD0DB407FEFDCFAA +S11318308DB58F778DBD8EB581E001C080E02C968B +S11318400FB6F894DEBF0FBECDBFCF91DF911F91CD +S11318500F91FF90EF90DF90CF90BF90AF909F904B +S11318608F907F906F905F904F903F902F9008954E +S1131870FC0120910001309101014FEF2F3F34070B +S113188031F460E086E890E00E94D70CFFCFCB01F2 +S1131890820F931F8150924020F060E072E0621B3F +S11318A0730B20E030E04FEF14C04EBD0DB407FEC3 +S11318B0FDCF8DB58F778DBD8EB58193809100015D +S11318C090910101019690930101809300012F5F93 +S11318D03F4F2617370748F3CB010895CF92DF9285 +S11318E0EF92FF920F931F93CF93DF937B018C01B1 +S11318F06A0180910001909101018F5F9F4F31F047 +S113190060E08BE890E00E94D70CFFCFE90182E011 +S11319102130380710F0C0E0D2E02A9880E09EEF32 +S1131920AFEFBFEFE822F9220A231B23B801A70176 +S113193081E10E94B609882321F02A9AC0E0D0E010 +S11319402CC09FEF9EBD0DB407FEFDCF8DB58F77E4 +S11319508DBD8EB58E3FB1F710920101109200013A +S11319602FEF14C02EBD0DB407FEFDCF8DB58F77BC +S11319708DBD8EB5D6018D936D018091000190913E +S1131980010101969093010180930001809100016F +S1131990909101018C179D0728F3CE01DF91CF911F +S11319A01F910F91FF90EF90DF90CF9008950F93C8 +S11319B01F93CF93DF93EC01062F10E005C088EE50 +S11319C093E00E94F0121F5FFE01E10FF11D64918C +S11319D06623A9F7002351F06AE088EE93E00E94A1 +S11319E0F8126DE088EE93E00E94F812DF91CF9137 +S11319F01F910F9108951F920F920FB60F92112409 +S1131A002F933F934F938F939F93AF93BF93EF93F2 +S1131A10FF93E091A901F091AA01309709F4A8C0BD +S1131A202091AF033091B0038091B1039091B20340 +S1131A302817390709F047C08091B4038823B9F106 +S1131A408091AB039091AC032BEA32E041E08B3AF6 +S1131A50940749F43093AC032093AB039093AE0303 +S1131A608093AD030AC08BEA91E09093AC0380931A +S1131A70AB033093AE032093AD038091AB039091FD +S1131A80AC039093B0038093AF0380509F4F909327 +S1131A90B2038093B1031092B4038091B3038823FB +S1131AA091F480916F00846080936F000CC08189F1 +S1131AB09289A389B4890196A11DB11D818B928B52 +S1131AC0A38BB48B55C05A985C985B9A5B985C9ACC +S1131AD05B9A5B985B9A5B985B9A5B988781803191 +S1131AE019F5E091AF03F091B0038181805890E043 +S1131AF087FF02C05C9A01C05C985B9A5B989F5F09 +S1131B00983011F0880FF4CF908180E097FF02C0E5 +S1131B105C9A01C05C985B9A5B988F5F843011F08B +S1131B20990FF4CF32961DC08830F9F4E091AF03D9 +S1131B30F091B003908180E097FF02C05C9A01C0ED +S1131B405C985B9A5B988F5F883011F0990FF4CFA3 +S1131B505B9A5B985B9A5B985B9A5B985B9A5B98E1 +S1131B603196F093B003E093AF035A9A5D985D9A6F +S1131B70FF91EF91BF91AF919F918F914F913F91C1 +S1131B802F910F900FBE0F901F90189508950895F0 +S1131B90DC015696ED91FC9157976289738984898B +S1131BA0958908959A01AB0160E074E284EF90E0B6 +S1131BB00E94411730938900209388000895CF93A1 +S1131BC0DF93EC0180916F008D7F80936F008D898E +S1131BD0882319F00E94E50A1D8AE091A901F09179 +S1131BE0AA01108A1092AA011092A901DF91CF9143 +S1131BF008950F931F93DF93CF9300D000D0CDB7F8 +S1131C00DEB78C01407049835A836B837C83DC018B +S1131C1050968C91882351F0F894F8018589882393 +S1131C2029F00E94E50AD80155961C9240E0BE01B5 +S1131C306F5F7F4FF801868997890E946404D801F9 +S1131C405696ED91FC91579782899389A489B58919 +S1131C5029813A814B815C81821B930BA40BB50BC8 +S1131C60F80180879187A287B38778940F900F90AB +S1131C700F900F90CF91DF911F910F910895CF9204 +S1131C80DF92EF92FF920F931F93DF93CF93CDB721 +S1131C90DEB728970FB6F894DEBF0FBECDBF8C0118 +S1131CA06B0144E050E07E010894E11CF11CB70193 +S1131CB0C6010E942103049709F0F0C044E050E0FB +S1131CC062E071E0C7010E94D116009709F0E6C0F6 +S1131CD0F5C044E050E067E071E0CE0105960E9453 +S1131CE0D116009709F0DAC0F2C044E050E06CE08D +S1131CF071E0C7010E94D116009709F0CFC0F0C06F +S1131D00542F432F322F22278081280F311D411D4C +S1131D10511D3197EC17FD0799F7F8012487358792 +S1131D2046875787203131054105510509F0B6C072 +S1131D3048E050E0BE016F5F7F4FC6010E9421035F +S1131D40089709F0ABC08A8190E0A0E0B0E0BA2F18 +S1131D50A92F982F88272981820F911DA11DB11DBC +S1131D600197A105B10521F061E088EA90E084C003 +S1131D708C8190E0A0E0B0E02227382F492F5A2F21 +S1131D808B81280F311D411D511D23303105410523 +S1131D90510508F083C0F8012083FE013896BE0186 +S1131DA06C5F7F4F542F432F322F22278081280FBF +S1131DB0311D411D511D3197E617F70799F7F801B9 +S1131DC0218332834383548348E050E0BE016F5F34 +S1131DD07F4FC6010E942103089709F05FC08E81DE +S1131DE090E0A0E0B0E0BA2FA92F982F88272D818A +S1131DF0820F911DA11DB11DF801968385838885ED +S1131E0090E0A0E0B0E02227382F492F5A2F8F818D +S1131E10280F311D411D511D213131054105510549 +S1131E2008F03CC0278381819281A381B4818332ED +S1131E30F6E59F07F0E0AF07F0E0BF0718F02930A0 +S1131E4040F00CC081589E43A040B04050F029306F +S1131E5040F0FF24F8018081823020F0FF24F394C5 +S1131E6001C0FF2461E087EA90E00E94D70CFF20C4 +S1131E7031F061E081E990E00E94D70C0FC0F801D5 +S1131E801086118612861386D78AC68A118A128A08 +S1131E90138A148A108A158A81E001C080E028968A +S1131EA00FB6F894DEBF0FBECDBFCF91DF911F9167 +S1131EB00F91FF90EF90DF90CF90089548E050E0AD +S1131EC0B701C6010E942103089741F702CF44E0FD +S1131ED050E0B701C6010E9421030497F9F605CF2B +S1131EE0F801148615861686178644E050E0B7017B +S1131EF0C6010E942103049789F6F80124853585DB +S1131F0046855785FE013496FBCEAF92BF92CF92A1 +S1131F10DF92EF92FF920F931F93DF93CF9300D042 +S1131F2000D00F92CDB7DEB76C015B01F42EE52E25 +S1131F30FC0180859185A285B3850097A105B10533 +S1131F40D1F544E050E08E010F5F1F4FB801868940 +S1131F5097890E942103049709F0F5C01D8244E08B +S1131F6050E0B801D60156968D919C9157970E94E6 +S1131F702103049709F0E7C0F60110861186128642 +S1131F801386FE01349620E030E040E050E0542F08 +S1131F90432F322F22278081280F311D411D511DCF +S1131FA03197EC17FD0799F7D60118962D933D93B9 +S1131FB04D935C931B978F2D9E2D9C017901B2E06C +S1131FC021303B0718F0E12C72E0F72EF601208552 +S1131FD0318542855385C701A0E0B0E02817390751 +S1131FE04A075B0708F47901D6015696ED91FC91F6 +S1131FF05797828D938DA48DB58D9170A070B0701C +S11320000097A105B105D1F4D60155968C9188238A +S1132010A9F4A701B501CF010E9471078C018E15A7 +S11320209F0541F060E082EE90E00E94D70C0E9490 +S1132030E50A8BC081E0F601858B73C0D601559605 +S11320408C91882309F463C0B701C5010E94380C40 +S11320505C018E159F0539F060E08CED90E00E94E4 +S1132060D70C0E94E50AD6015696ED91FC9157973C +S1132070C501A0E0B0E0228D338D448D558D820FD3 +S1132080931FA41FB51F828F938FA48FB58F917058 +S1132090A070B0700097A105B10509F041C00E947D +S11320A0E50AF601158A06891789D801ED90FC9096 +S11320B01197F7012089318940E050E05A966D91DB +S11320C07D918D919C915D970E94411761157105D9 +S11320D08105910529F5D8015E966D917C915F97F4 +S11320E0C7010E94D702F801978F868F892BC1F40C +S11320F0D6015696ED91FC915797178E168E61E096 +S113210082EC90E00E94D70C0FEF1FEF1EC0A701D6 +S1132110B501CF010E9421038E159F05A1F401C0D2 +S11321207501970140E050E0F60180859185A28514 +S1132130B385821B930BA40BB50B80879187A28771 +S1132140B387870102C000E010E0C8010F900F9030 +S11321500F900F900F90CF91DF911F910F91FF90EF +S1132160EF90DF90CF90BF90AF900895CF92DF9221 +S1132170EF92FF920F931F93CF93DF93EC01C980EB +S1132180DA80EB80FC809093AA018093A9010BEA8A +S113219011E01093B0030093AF0342E050E0B801A4 +S11321A00E94850F892B09F451C08091AF0390914F +S11321B0B00302969093B2038093B103EE89FF8932 +S11321C0828D40E051E0481B5109B8016E5F7F4F9A +S11321D08091A9019091AA010E94850F9C0100970A +S11321E0A9F18091B1039091B203820F931F909350 +S11321F0B2038093B10340E051E06BEA72E0809156 +S1132200A9019091AA010E94850F81E08093B403F3 +S1132210888B1092800089E08093810060E074E2F2 +S113222084EF90E0A70196010E9441173093890042 +S11322302093880081E090E090938B0080938A0043 +S113224080916F00826080936F007894DF91CF91CA +S11322501F910F91FF90EF90DF90CF9008951F9200 +S11322600F920FB60F9211242F933F934F935F93C6 +S11322706F937F938F939F93AF93BF93EF93FF934A +S113228080916F008B7F80936F008091B4038823CB +S1132290F9F481E08093B30378946091AD03709175 +S11322A0AE0340E051E08091A9019091AA010E94FF +S11322B0850F892B31F48091A9019091AA010E9484 +S11322C0DF0DF8941092B30381E08093B403789403 +S11322D0FF91EF91BF91AF919F918F917F916F91FA +S11322E05F914F913F912F910F900FBE0F901F90D0 +S11322F0189587EB93E00E94F8008FEB93E00E941F +S1132300C70D08950F931F938FEB93E00E94DF0D89 +S11323106091BD037091BE0307EB13E0C8010E94F6 +S1132320F900C8010E94FD001F910F910895CF93F9 +S1132330DF93EC018091CF03882361F08FEB93E06E +S11323400E94DF0D6091BD037091BE0387EB93E0A3 +S11323500E94F90087EB93E00E94FD00BE0187EB29 +S113236093E00E945301BC019093BE038093BD038C +S1132370009751F08FEB93E00E943F0E882321F0E9 +S11323808FEB93E00E94B610DF91CF9108950E94E5 +S113239097118091CF038823E1F76091BD03709179 +S11323A0BE0387EB93E00E94F900089588EE93E062 +S11323B00E94E812882399F088EE93E00E94E512C7 +S11323C08093DA038093D80390E0A0E0B0E020E0AB +S11323D030E0AC01BD0188EE93E00E945F142091CF +S11323E0D8031216E4F58091D903281709F441C0E3 +S11323F02093D9032A3094F4205D2093DB038EE2EA +S11324008093DC0387E58093DD0381E48093DE031E +S113241086E58093DF031092E0031CC0822F6AE0FC +S11324200E940D17805D8093DB03822F6AE00E9477 +S11324300D17905D9093DC038EE28093DD0387E5B6 +S11324408093DE0381E48093DF0386E58093E003D9 +S11324501092E1038BED93E00E9497110AC02223AE +S113246041F48091D903882321F01092D9030E946A +S113247082118091CF03882351F48091D80388235B +S113248031F00E9482118BED93E00E949711089520 +S11324900F931F93DF93CF93CDB7DEB72D970FB66E +S11324A0F894DEBF0FBECDBF87EB93E00E94FD0022 +S11324B061E088EE90E00E94D70C8E010F5F1F4F01 +S11324C0B80187EB93E00E945C01882379F487EBE1 +S11324D093E00E94FD002D960FB6F894DEBF0FBE68 +S11324E0CDBFCF91DF911F910F910895B80188EE70 +S11324F093E00E943F13E4CF40E855E260E070E0CF +S113250088EE93E00E94EB1261E171E088EE93E0C3 +S11325100E943F1361E082E00E945C1561E083E069 +S11325200E945C1561E084E00E945C1561E085E036 +S11325300E945C1561E089E00E945C1587EB93E0E2 +S11325400E940502882321F461E088E391E01DC024 +S113255087EB93E00E94DA01882321F461E08AE2A8 +S113256091E013C087EB93E00E94C701882321F414 +S113257061E084E191E009C087EB93E00E9493015C +S1132580882331F461E082E091E00E94D70C089541 +S113259061E085EF90E00E94D70C0E9448120895F4 +S11325A00E9422150E947C120E94D611FDCF84E263 +S11325B091E09093E9038093E8030895862F0E94A5 +S11325C04A1608950E94821608950E94631608957B +S11325D00E9452160895CB01BA010E941116089563 +S11325E0DC01ED91FC910190F081E02D09950895B5 +S11325F0DC01ED91FC910190F081E02D09950895A5 +S11326000F931F93CF93DF938C01EB0109C02196A5 +S1132610D801ED91FC910190F081E02DC80109955C +S113262068816623A1F7DF91CF911F910F910895DF +S11326300F931F938C01DC01ED91FC910190F081CB +S1132640E02D6DE00995D801ED91FC910190F081A8 +S1132650E02D6AE0C80109951F910F9108950F9329 +S11326601F938C01DC01ED91FC910190F081E02D30 +S11326700995C8010E9418131F910F9108950F9393 +S11326801F938C010E940013C8010E9418131F910C +S11326900F9108950F931F938C01DC01ED91FC9130 +S11326A00190F081E02D0995C8010E9418131F9133 +S11326B00F9108952F923F924F925F926F927F9263 +S11326C08F929F92AF92BF92CF92DF92EF92FF923E +S11326D00F931F93DF93CF93CDB7DEB7A0970FB6B9 +S11326E0F894DEBF0FBECDBF1C016A017B0141150A +S11326F051056105710549F4DC01ED91FC910190EE +S1132700F081E02D60E3099554C088249924540194 +S1132710422E55246624772401E010E00C0F1D1F7F +S1132720080D191DC701B601A30192010E944117AA +S1132730F80160830894811C911CA11CB11CC70181 +S1132740B601A30192010E944117C901DA016C018B +S11327507D01C114D104E104F104F1F681E0E82E15 +S1132760F12CEC0EFD1EE80CF91C3E010894611CD2 +S1132770711CD501C4010197A109B1096C01C818E4 +S1132780D90814C0F601EE0DFF1D60816A3010F403 +S1132790605D01C0695CD101ED91FC910190F08113 +S11327A0E02DC10109950894E108F1086E147F0435 +S11327B049F7A0960FB6F894DEBF0FBECDBFCF91F8 +S11327C0DF911F910F91FF90EF90DF90CF90BF901A +S11327D0AF909F908F907F906F905F904F903F90BD +S11327E02F9008952AE00E945A1308950F931F937F +S11327F08C010E94F213C8010E9418131F910F91BB +S11328000895AB0160E070E00E94F21308950F9305 +S11328101F938C01AB0160E070E00E94F213C801C9 +S11328200E9418131F910F910895EF92FF920F9336 +S11328301F93CF93DF93EC017A018B0177FF0FC0D5 +S1132840E881F9810190F081E02D6DE20995109500 +S11328500095F094E094E11CF11C011D111D2AE087 +S1132860B801A701CE010E945A13DF91CF911F91A5 +S11328700F91FF90EF9008950F931F938C010E9486 +S11328801514C8010E9418131F910F910895AB01EC +S1132890662757FD6095762F0E94151408950F93AF +S11328A01F938C01AB01662757FD6095762F0E941C +S11328B01514C8010E9418131F910F910895DC018B +S11328C02115310541F4ED91FC910190F081E02D49 +S11328D0642F099508952A30310519F40E941514BE +S11328E008950E945A1308950F931F938C010E9418 +S11328F05F14C8010E9418131F910F9108951F922D +S11329000F920FB60F9211242F938F939F93AF932F +S1132910BF938091EA039091EB03A091EC03B091F3 +S1132920ED038050904CAF4FBF4F8093EA039093D8 +S1132930EB03A093EC03B093ED0327C08091EA036B +S11329409091EB03A091EC03B091ED0380589E436A +S1132950A040B0408093EA039093EB03A093EC0370 +S1132960B093ED038091EE039091EF03A091F003F7 +S1132970B091F1030196A11DB11D8093EE039093D4 +S1132980EF03A093F003B093F1038091EA039091D5 +S1132990EB03A091EC03B091ED0381589E43A0405A +S11329A0B04060F6BF91AF919F918F912F910F909E +S11329B00FBE0F901F9018958FB7F8942091EE03D7 +S11329C03091EF034091F0035091F1038FBFB901AF +S11329D0CA010895EF92FF920F931F937B018C011C +S11329E08FB7F8944091EE035091EF036091F00398 +S11329F07091F1038FBF2FB7F8948091EE039091FB +S1132A00EF03A091F003B091F1032FBF841B950B4A +S1132A10A60BB70B8E159F05A007B10760F31F9196 +S1132A200F91FF90EF900895019759F0FC01EE0F7C +S1132A30FF1FEE0FFF1F32978FB7F8943197F1F70E +S1132A408FBF0895789484B5826084BD84B5816015 +S1132A5084BD85B5826085BD85B5816085BDEEE6A2 +S1132A60F0E0808181608083E1E8F0E08081826031 +S1132A708083808181608083E0E8F0E080818160F0 +S1132A808083E1EBF0E0808184608083E0EBF0E020 +S1132A90808181608083EAE7F0E0808184608083C4 +S1132AA0808182608083808181608083808180686E +S1132AB080831092C1000895282F30E0C901825903 +S1132AC09E4FFC019491265A3E4FF901849188232C +S1132AD081F0E82FF0E0E55BFE4FE491F0E066233F +S1132AE029F4808190958923808308958081892B9E +S1132AF080830895482F50E0CA018E579E4FFC01F1 +S1132B002491CA0182599E4FFC019491465A5E4F0A +S1132B10FA0134913323C1F1222331F1233021F41A +S1132B20809180008F7705C0243031F4809180003B +S1132B308F7D8093800018C0213019F484B58F777D +S1132B4004C0223021F484B58F7D84BD0DC02630AD +S1132B5021F48091B0008F7705C0273029F480914B +S1132B60B0008F7D8093B000E32FF0E0E05BFE4F78 +S1132B70E491F0E0662329F4808190958923808391 +S1132B8008958081892B80830895482F50E0CA01DD +S1132B908E579E4FFC012491CA0182599E4FFC011D +S1132BA09491465A5E4FFA013491332319F420E08C +S1132BB030E035C0222331F1233021F480918000AC +S1132BC08F7705C0243031F4809180008F7D80930D +S1132BD0800018C0213019F484B58F7704C02230E6 +S1132BE021F484B58F7D84BD0DC0263021F48091FD +S1132BF0B0008F7705C0273029F48091B0008F7D15 +S1132C008093B000E32FF0E0EB5AFE4FE491F0E044 +S1132C10808120E030E0892311F021E030E0C90117 +S1132C200895EF92FF920F931F937B018C0122E092 +S1132C3030E040E050E00E946317205C3D4B404F81 +S1132C405F4FCA01B901A80197010E946317C90126 +S1132C50DA010197A109B109292F3A2F4B2F5527E2 +S1132C6047FD5A950196A11DB11D2093C5008150C1 +S1132C708093C400E1ECF0E08081806180838081F6 +S1132C80886080838081806880831F910F91FF908A +S1132C90EF900895982F8091C00085FFFCCF90930A +S1132CA0C60008958091F2039091F30380589F4FDA +S1132CB02091F4033091F503821B930B60E870E0DC +S1132CC00E942E1708954091F4035091F5038091CA +S1132CD0F2039091F3038417950719F42FEF3FEF54 +S1132CE00FC0FA01EA50FC4F2081CA01019660E846 +S1132CF070E00E942E179093F5038093F40330E064 +S1132D00C90108958091F4039091F5039093F3031E +S1132D108093F20308951F920F920FB60F9211241D +S1132D202F933F934F935F936F937F938F939F93CF +S1132D30AF93BF93EF93FF934091C600E091F203EA +S1132D40F091F303CF01019660E870E00E942E1722 +S1132D509C018091F4039091F5032817390739F009 +S1132D60EA50FC4F40833093F3032093F203FF9126 +S1132D70EF91BF91AF919F918F917F916F915F91EF +S1132D804F913F912F910F900FBE0F901F90189568 +S1132D90FB01DC018D91019080190110D9F3990B8D +S1132DA00895FB01DC014150504030F08D910190B9 +S1132DB0801919F40020B9F7881B990B0895FB01B9 +S1132DC0DC014150504048F001900D920020C9F7B9 +S1132DD001C01D9241505040E0F70895629FD00118 +S1132DE0739FF001829FE00DF11D649FE00DF11DC2 +S1132DF0929FF00D839FF00D749FF00D659FF00D71 +S1132E009927729FB00DE11DF91F639FB00DE11D5D +S1132E10F91FBD01CF011124089587FB082E062652 +S1132E2087FD819567FD619569D00EF4919507FC46 +S1132E3081950895AA1BBB1B51E107C0AA1FBB1FA4 +S1132E40A617B70710F0A61BB70B881F991F5A9532 +S1132E50A9F780959095BC01CD01089597FB092EA3 +S1132E6007260AD077FD04D0E5DF06D000201AF447 +S1132E70709561957F4F0895F6F7909581959F4FD2 +S1132E800895A1E21A2EAA1BBB1BFD010DC0AA1FA7 +S1132E90BB1FEE1FFF1FA217B307E407F50720F0BF +S1132EA0A21BB30BE40BF50B661F771F881F991F3A +S1132EB01A9469F760957095809590959B01AC0183 +S1132EC0BD01CF01089597FB092E05260ED057FDAD +S1132ED004D0D7DF0AD0001C38F4509540953095C3 +S1132EE021953F4F4F4F5F4F0895F6F7909580958A +S1132EF0709561957F4F8F4F9F4F0895991B79E08F +S1132F0004C0991F961708F0961B881F7A95C9F775 +S1132F1080950895EE0FFF1F0590F491E02D09941C +S1072F20F894FFCF4F +S1132F24FFFF52494646005741564500666D7420DA +S1132F340041756469666F6E6F2074657374210053 +S1092F4400000000DE1293 +S9030000FC diff --git a/2009/audifono2_pde/applet/core.a b/2009/audifono2_pde/applet/core.a new file mode 100644 index 0000000..221f127 Binary files /dev/null and b/2009/audifono2_pde/applet/core.a differ diff --git a/2009/audifono2_pde/applet/pins_arduino.c.o b/2009/audifono2_pde/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/audifono2_pde/applet/pins_arduino.c.o differ diff --git a/2009/audifono2_pde/applet/wiring.c.o b/2009/audifono2_pde/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/audifono2_pde/applet/wiring.c.o differ diff --git a/2009/audifono2_pde/applet/wiring_analog.c.o b/2009/audifono2_pde/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/audifono2_pde/applet/wiring_analog.c.o differ diff --git a/2009/audifono2_pde/applet/wiring_digital.c.o b/2009/audifono2_pde/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/audifono2_pde/applet/wiring_digital.c.o differ diff --git a/2009/audifono2_pde/applet/wiring_pulse.c.o b/2009/audifono2_pde/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/audifono2_pde/applet/wiring_pulse.c.o differ diff --git a/2009/audifono2_pde/applet/wiring_serial.c.o b/2009/audifono2_pde/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/audifono2_pde/applet/wiring_serial.c.o differ diff --git a/2009/audifono2_pde/applet/wiring_shift.c.o b/2009/audifono2_pde/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/audifono2_pde/applet/wiring_shift.c.o differ diff --git a/2009/audifono2_pde/audifono2_pde.pde b/2009/audifono2_pde/audifono2_pde.pde new file mode 100644 index 0000000..3a6308f --- /dev/null +++ b/2009/audifono2_pde/audifono2_pde.pde @@ -0,0 +1,132 @@ +#include +#include +#include "util.h" +#include "wave.h" + +AF_Wave card; +File f; +Wavefile wave; // only one! + +#define redled 9 + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + Serial.println("Audifono test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(redled, OUTPUT); + + if (!card.init_card()) { + putstring_nl("Card init. failed!"); return; + } + if (!card.open_partition()) { + putstring_nl("No partition!"); return; + } + if (!card.open_filesys()) { + putstring_nl("Couldn't open filesys"); return; + } + + if (!card.open_rootdir()) { + putstring_nl("Couldn't open dir"); return; + } + + putstring_nl("Files found:"); + ls(); +} + +void ls() { + char name[13]; + int ret; + + card.reset_dir(); + putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; +char c = 0; +char c_old = 0; +byte incomingByte; +char filename[13]; + +void loop() { + + if (Serial.available() > 0) { + incomingByte = Serial.read(); + c = incomingByte; + Serial.print(incomingByte, BYTE); + } + + if ( ( c > 0 ) && (c!=c_old) ) + { + int i = 0; + c_old = c; + + if(c<=9) + { + filename[i] = c + '0'; + filename[i+1] = '.'; + filename[i+2] = 'W'; + filename[i+3] = 'A'; + filename[i+4] = 'V'; + filename[i+5] = 0; + } + else if(c>9) + { + filename[i] = (int)(c/10) + '0'; + filename[i+1] = c%10 + '0'; + filename[i+2] = '.'; + filename[i+3] = 'W'; + filename[i+4] = 'A'; + filename[i+5] = 'V'; + filename[i+6] = 0; + } + playfile(filename); + } + else if ( (c==0) && (c!=c_old) ) + { + c_old = c; + stop_play(); + } + + if( (!wave.isplaying) && (c!=0) ) + { + stop_play(); + playfile(filename); + } +} + +void playcomplete(char *name) { + playfile(name); + while (wave.isplaying){} + card.close_file(f); +} + +void stop_play() { + wave.stop(); + card.close_file(f); + card.reset_dir(); +} + +void playfile(char *name) { + // stop any file already playing + if (wave.isplaying) { + wave.stop(); + card.close_file(f); + } + card.reset_dir(); + f = card.open_file(name); + if (f && wave.create(f)) { + wave.play(); + } +} diff --git a/2009/cargador/applet/HardwareSerial.cpp.o b/2009/cargador/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..d3d5b72 Binary files /dev/null and b/2009/cargador/applet/HardwareSerial.cpp.o differ diff --git a/2009/cargador/applet/WInterrupts.c.o b/2009/cargador/applet/WInterrupts.c.o new file mode 100644 index 0000000..cf40f54 Binary files /dev/null and b/2009/cargador/applet/WInterrupts.c.o differ diff --git a/2009/cargador/applet/WMath.cpp.o b/2009/cargador/applet/WMath.cpp.o new file mode 100644 index 0000000..9877142 Binary files /dev/null and b/2009/cargador/applet/WMath.cpp.o differ diff --git a/2009/cargador/applet/cargador.cpp b/2009/cargador/applet/cargador.cpp new file mode 100644 index 0000000..ea8d3fe --- /dev/null +++ b/2009/cargador/applet/cargador.cpp @@ -0,0 +1,89 @@ +#include "WProgram.h" +void minuto(); +void hora(); +void setup (); +void loop (); +int led1 = 6; +int led2 = 7; +int led3 = 8; +int led4 = 9; +int cubo1 = 2; +int cubo2 = 3; +int cubo3 = 4; +int cubo4 = 5; +int flag = 0; +int i=0; +int e=0; + +void minuto() + { + for (i=0; i<=59; i++) + delay(1000); + } + +void hora() + { + for (e=0; e<=59; e++) + minuto(); + } + +void setup () { + + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + pinMode(led3, OUTPUT); + pinMode(led4, OUTPUT); + pinMode(cubo1, OUTPUT); + pinMode(cubo2, OUTPUT); + pinMode(cubo3, OUTPUT); + pinMode(cubo4, OUTPUT); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, HIGH); + digitalWrite(cubo1, LOW); + digitalWrite(cubo2, LOW); + digitalWrite(cubo3, LOW); + digitalWrite(cubo4, LOW); +} + +void loop () { + if (flag==0) + { + flag=1; + digitalWrite(cubo1, HIGH); + hora(); + //delay(3000); + digitalWrite(led1, LOW); + digitalWrite(cubo1, LOW); + digitalWrite(cubo2, HIGH); + hora(); + //delay(3000); + digitalWrite(led2, LOW); + digitalWrite(cubo2, LOW); + digitalWrite(cubo3, HIGH); + hora(); + //delay(3000); + digitalWrite(led3, LOW); + digitalWrite(cubo3, LOW); + digitalWrite(cubo4, HIGH); + hora(); + //delay(3000); + digitalWrite(led4, LOW); + digitalWrite(cubo4, LOW); + } + +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/cargador/applet/cargador.cpp.o b/2009/cargador/applet/cargador.cpp.o new file mode 100644 index 0000000..03c37cf Binary files /dev/null and b/2009/cargador/applet/cargador.cpp.o differ diff --git a/2009/cargador/applet/cargador.elf b/2009/cargador/applet/cargador.elf new file mode 100644 index 0000000..5ebda2e Binary files /dev/null and b/2009/cargador/applet/cargador.elf differ diff --git a/2009/cargador/applet/cargador.hex b/2009/cargador/applet/cargador.hex new file mode 100644 index 0000000..782ebf6 --- /dev/null +++ b/2009/cargador/applet/cargador.hex @@ -0,0 +1,93 @@ +:100000000C945A000C9477000C9477000C947700B1 +:100010000C9477000C9477000C9477000C94770084 +:100020000C9477000C9477000C9477000C94770074 +:100030000C9477000C9477000C9477000C94770064 +:100040000C944B010C9477000C9477000C9477007F +:100050000C9477000C9477000C9477000C94770044 +:100060000C9477000C947700000024272A000025C8 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B0000000000011241FBECFEFD4E0DEBFCDBF93 +:1000C00011E0A0E0B1E0E2EAF5E002C005900D9297 +:1000D000A031B107D9F711E0A0E1B1E001C01D9254 +:1000E000AA31B107E1F70E9444010C94D0020C94AC +:1000F000000061E0809100010E94F90161E08091BF +:1001000002010E94F90161E0809104010E94F9015D +:1001100061E0809106010E94F90161E0809108018F +:100120000E94F90161E080910A010E94F90161E0F9 +:1001300080910C010E94F90161E080910E010E9402 +:10014000F90161E0809100010E94630261E0809109 +:1001500002010E94630261E0809104010E94630237 +:1001600061E0809106010E94630260E080910801D5 +:100170000E94630260E080910A010E94630260E0D5 +:1001800080910C010E94630260E080910E010E9448 +:1001900063020895109213011092120168EE73E049 +:1001A00080E090E00E9488018091120190911301FB +:1001B00001969093130180931201CC977CF30895DC +:1001C00010921501109214010E94CA00809114012E +:1001D0009091150101969093150180931401CC978D +:1001E0009CF308958091100190911101892B09F0E1 +:1001F0004AC081E090E0909311018093100161E08A +:10020000809108010E9463020E94E00060E08091FA +:1002100000010E94630260E0809108010E94630275 +:1002200061E080910A010E9463020E94E00060E0A8 +:10023000809102010E94630260E080910A010E94A5 +:10024000630261E080910C010E9463020E94E00061 +:1002500060E0809104010E94630260E080910C01E3 +:100260000E94630261E080910E010E9463020E947D +:10027000E00060E0809106010E94630260E08091EE +:100280000E010E94630208950E94B7010E94790046 +:100290000E94F200FDCF1F920F920FB60F92112411 +:1002A0008F939F93AF93BF93809116019091170105 +:1002B000A0911801B09119010196A11DB11D809363 +:1002C000160190931701A0931801B0931901BF91E3 +:1002D000AF919F918F910F900FBE0F901F90189527 +:1002E0006091160170911701809118019091190188 +:1002F00027E0660F771F881F991F2A95D1F72DE7F2 +:1003000030E040E050E00E94AE02CA01B901089519 +:10031000AF92BF92CF92DF92EF92FF920F931F9313 +:100320005B016C010E9470017B018C010E947001D5 +:100330006E197F09800B910B6A157B058C059D0555 +:10034000A8F31F910F91FF90EF90DF90CF90BF9097 +:10035000AF900895019751F0880F991F880F991F4A +:1003600002972FB7F8940197F1F72FBF089578946B +:100370001092160110921701109218011092190193 +:1003800084B5826084BD84B5816084BD85B582609A +:1003900085BD85B5816085BDEEE6F0E08081816038 +:1003A0008083E1E8F0E080818260808380818160E9 +:1003B0008083E0E8F0E0808181608083E1EBF0E021 +:1003C000808184608083E0EBF0E0808181608083C5 +:1003D000EAE7F0E0808184608083808182608083AE +:1003E0008081816080838081806880831092C100D9 +:1003F0000895282F3327C90185579F4FFC019491F9 +:1004000029583F4FF9018491882381F0E82FFF2775 +:10041000E859FF4FE491FF27662329F480819095E6 +:100420008923808308958081892B80830895482FB4 +:100430005527CA0181569F4FFC012491CA01855757 +:100440009F4FFC01949149585F4FFA013491332337 +:1004500019F480E090E00895222331F1233021F453 +:10046000809180008F7705C0243031F48091800026 +:100470008F7D8093800018C0213019F484B58F7768 +:1004800004C0223021F484B58F7D84BD0DC0263098 +:1004900021F48091B0008F7705C0273029F4809136 +:1004A000B0008F7D8093B000E32FFF27EE58FF4F01 +:1004B000E491FF27808120E030E0892311F021E0E2 +:1004C00030E0C9010895482F5527CA0181569F4F32 +:1004D000FC012491CA0185579F4FFC019491495812 +:1004E0005F4FFA0134913323C1F1222331F12330DC +:1004F00021F4809180008F7705C0243031F4809101 +:1005000080008F7D8093800018C0213019F484B55D +:100510008F7704C0223021F484B58F7D84BD0DC057 +:10052000263021F48091B0008F7705C0273029F460 +:100530008091B0008F7D8093B000E32FFF27E359B7 +:10054000FF4FE491FF27662329F48081909589234A +:10055000808308958081892B80830895A1E21A2EDB +:10056000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F57 +:10057000A217B307E407F50720F0A21BB30BE40BA7 +:10058000F50B661F771F881F991F1A9469F76095EE +:100590007095809590959B01AC01BD01CF010895A8 +:0205A000FFCF8B +:1005A200060007000800090002000300040005001D +:00000001FF diff --git a/2009/cargador/applet/cargador.pde b/2009/cargador/applet/cargador.pde new file mode 100644 index 0000000..4da29e7 --- /dev/null +++ b/2009/cargador/applet/cargador.pde @@ -0,0 +1,71 @@ +int led1 = 6; +int led2 = 7; +int led3 = 8; +int led4 = 9; +int cubo1 = 2; +int cubo2 = 3; +int cubo3 = 4; +int cubo4 = 5; +int flag = 0; +int i=0; +int e=0; + +void minuto() + { + for (i=0; i<=59; i++) + delay(1000); + } + +void hora() + { + for (e=0; e<=5; e++) + minuto(); + } + +void setup () { + + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + pinMode(led3, OUTPUT); + pinMode(led4, OUTPUT); + pinMode(cubo1, OUTPUT); + pinMode(cubo2, OUTPUT); + pinMode(cubo3, OUTPUT); + pinMode(cubo4, OUTPUT); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, HIGH); + digitalWrite(cubo1, LOW); + digitalWrite(cubo2, LOW); + digitalWrite(cubo3, LOW); + digitalWrite(cubo4, LOW); +} + +void loop () { + if (flag==0) + { + flag=1; + digitalWrite(cubo1, HIGH); + hora(); + //delay(3000); + digitalWrite(led1, LOW); + digitalWrite(cubo1, LOW); + digitalWrite(cubo2, HIGH); + hora(); + //delay(3000); + digitalWrite(led2, LOW); + digitalWrite(cubo2, LOW); + digitalWrite(cubo3, HIGH); + hora(); + //delay(3000); + digitalWrite(led3, LOW); + digitalWrite(cubo3, LOW); + digitalWrite(cubo4, HIGH); + hora(); + //delay(3000); + digitalWrite(led4, LOW); + digitalWrite(cubo4, LOW); + } + +} diff --git a/2009/cargador/applet/cargador.rom b/2009/cargador/applet/cargador.rom new file mode 100644 index 0000000..6cfe111 --- /dev/null +++ b/2009/cargador/applet/cargador.rom @@ -0,0 +1,94 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C616C65785C4D697320646F63756DC2 +S11300000C945A000C9477000C9477000C947700AD +S11300100C9477000C9477000C9477000C94770080 +S11300200C9477000C9477000C9477000C94770070 +S11300300C9477000C9477000C9477000C94770060 +S11300400C944B010C9477000C9477000C9477007B +S11300500C9477000C9477000C9477000C94770040 +S11300600C9477000C947700000024272A000025C4 +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B00000000011241FBECFEFD4E0DEBFCDBF8F +S11300C011E0A0E0B1E0E2EAF5E002C005900D9293 +S11300D0A031B107D9F711E0A0E1B1E001C01D9250 +S11300E0AA31B107E1F70E9444010C94D0020C94A8 +S11300F0000061E0809100010E94F90161E08091BB +S113010002010E94F90161E0809104010E94F90159 +S113011061E0809106010E94F90161E0809108018B +S11301200E94F90161E080910A010E94F90161E0F5 +S113013080910C010E94F90161E080910E010E94FE +S1130140F90161E0809100010E94630261E0809105 +S113015002010E94630261E0809104010E94630233 +S113016061E0809106010E94630260E080910801D1 +S11301700E94630260E080910A010E94630260E0D1 +S113018080910C010E94630260E080910E010E9444 +S113019063020895109213011092120168EE73E045 +S11301A080E090E00E9488018091120190911301F7 +S11301B001969093130180931201CC977CF30895D8 +S11301C010921501109214010E94CA00809114012A +S11301D09091150101969093150180931401CC9789 +S11301E09CF308958091100190911101892B09F0DD +S11301F04AC081E090E0909311018093100161E086 +S1130200809108010E9463020E94E00060E08091F6 +S113021000010E94630260E0809108010E94630271 +S113022061E080910A010E9463020E94E00060E0A4 +S1130230809102010E94630260E080910A010E94A1 +S1130240630261E080910C010E9463020E94E0005D +S113025060E0809104010E94630260E080910C01DF +S11302600E94630261E080910E010E9463020E9479 +S1130270E00060E0809106010E94630260E08091EA +S11302800E010E94630208950E94B7010E94790042 +S11302900E94F200FDCF1F920F920FB60F9211240D +S11302A08F939F93AF93BF93809116019091170101 +S11302B0A0911801B09119010196A11DB11D80935F +S11302C0160190931701A0931801B0931901BF91DF +S11302D0AF919F918F910F900FBE0F901F90189523 +S11302E06091160170911701809118019091190184 +S11302F027E0660F771F881F991F2A95D1F72DE7EE +S113030030E040E050E00E94AE02CA01B901089515 +S1130310AF92BF92CF92DF92EF92FF920F931F930F +S11303205B016C010E9470017B018C010E947001D1 +S11303306E197F09800B910B6A157B058C059D0551 +S1130340A8F31F910F91FF90EF90DF90CF90BF9093 +S1130350AF900895019751F0880F991F880F991F46 +S113036002972FB7F8940197F1F72FBF0895789467 +S1130370109216011092170110921801109219018F +S113038084B5826084BD84B5816084BD85B5826096 +S113039085BD85B5816085BDEEE6F0E08081816034 +S11303A08083E1E8F0E080818260808380818160E5 +S11303B08083E0E8F0E0808181608083E1EBF0E01D +S11303C0808184608083E0EBF0E0808181608083C1 +S11303D0EAE7F0E0808184608083808182608083AA +S11303E08081816080838081806880831092C100D5 +S11303F00895282F3327C90185579F4FFC019491F5 +S113040029583F4FF9018491882381F0E82FFF2771 +S1130410E859FF4FE491FF27662329F480819095E2 +S11304208923808308958081892B80830895482FB0 +S11304305527CA0181569F4FFC012491CA01855753 +S11304409F4FFC01949149585F4FFA013491332333 +S113045019F480E090E00895222331F1233021F44F +S1130460809180008F7705C0243031F48091800022 +S11304708F7D8093800018C0213019F484B58F7764 +S113048004C0223021F484B58F7D84BD0DC0263094 +S113049021F48091B0008F7705C0273029F4809132 +S11304A0B0008F7D8093B000E32FFF27EE58FF4FFD +S11304B0E491FF27808120E030E0892311F021E0DE +S11304C030E0C9010895482F5527CA0181569F4F2E +S11304D0FC012491CA0185579F4FFC01949149580E +S11304E05F4FFA0134913323C1F1222331F12330D8 +S11304F021F4809180008F7705C0243031F48091FD +S113050080008F7D8093800018C0213019F484B559 +S11305108F7704C0223021F484B58F7D84BD0DC053 +S1130520263021F48091B0008F7705C0273029F45C +S11305308091B0008F7D8093B000E32FFF27E359B3 +S1130540FF4FE491FF27662329F480819095892346 +S1130550808308958081892B80830895A1E21A2ED7 +S1130560AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F53 +S1130570A217B307E407F50720F0A21BB30BE40BA3 +S1130580F50B661F771F881F991F1A9469F76095EA +S11305907095809590959B01AC01BD01CF010895A4 +S10505A0FFCF87 +S11305A20600070008000900020003000400050019 +S9030000FC diff --git a/2009/cargador/applet/core.a b/2009/cargador/applet/core.a new file mode 100644 index 0000000..8c21dc1 Binary files /dev/null and b/2009/cargador/applet/core.a differ diff --git a/2009/cargador/applet/pins_arduino.c.o b/2009/cargador/applet/pins_arduino.c.o new file mode 100644 index 0000000..16e7d16 Binary files /dev/null and b/2009/cargador/applet/pins_arduino.c.o differ diff --git a/2009/cargador/applet/wiring.c.o b/2009/cargador/applet/wiring.c.o new file mode 100644 index 0000000..1ed3052 Binary files /dev/null and b/2009/cargador/applet/wiring.c.o differ diff --git a/2009/cargador/applet/wiring_analog.c.o b/2009/cargador/applet/wiring_analog.c.o new file mode 100644 index 0000000..0499f93 Binary files /dev/null and b/2009/cargador/applet/wiring_analog.c.o differ diff --git a/2009/cargador/applet/wiring_digital.c.o b/2009/cargador/applet/wiring_digital.c.o new file mode 100644 index 0000000..5c5c9de Binary files /dev/null and b/2009/cargador/applet/wiring_digital.c.o differ diff --git a/2009/cargador/applet/wiring_pulse.c.o b/2009/cargador/applet/wiring_pulse.c.o new file mode 100644 index 0000000..5568709 Binary files /dev/null and b/2009/cargador/applet/wiring_pulse.c.o differ diff --git a/2009/cargador/applet/wiring_serial.c.o b/2009/cargador/applet/wiring_serial.c.o new file mode 100644 index 0000000..a7e54c0 Binary files /dev/null and b/2009/cargador/applet/wiring_serial.c.o differ diff --git a/2009/cargador/applet/wiring_shift.c.o b/2009/cargador/applet/wiring_shift.c.o new file mode 100644 index 0000000..1c75fe6 Binary files /dev/null and b/2009/cargador/applet/wiring_shift.c.o differ diff --git a/2009/cargador/cargador.pde b/2009/cargador/cargador.pde new file mode 100644 index 0000000..463ed99 --- /dev/null +++ b/2009/cargador/cargador.pde @@ -0,0 +1,71 @@ +int led1 = 6; +int led2 = 7; +int led3 = 8; +int led4 = 9; +int cubo1 = 2; +int cubo2 = 3; +int cubo3 = 4; +int cubo4 = 5; +int flag = 0; +int i=0; +int e=0; + +void minuto() + { + for (i=0; i<=59; i++) + delay(1000); + } + +void hora() + { + for (e=0; e<=59; e++) + minuto(); + } + +void setup () { + + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + pinMode(led3, OUTPUT); + pinMode(led4, OUTPUT); + pinMode(cubo1, OUTPUT); + pinMode(cubo2, OUTPUT); + pinMode(cubo3, OUTPUT); + pinMode(cubo4, OUTPUT); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, HIGH); + digitalWrite(cubo1, LOW); + digitalWrite(cubo2, LOW); + digitalWrite(cubo3, LOW); + digitalWrite(cubo4, LOW); +} + +void loop () { + if (flag==0) + { + flag=1; + digitalWrite(cubo1, HIGH); + hora(); + //delay(3000); + digitalWrite(led1, LOW); + digitalWrite(cubo1, LOW); + digitalWrite(cubo2, HIGH); + hora(); + //delay(3000); + digitalWrite(led2, LOW); + digitalWrite(cubo2, LOW); + digitalWrite(cubo3, HIGH); + hora(); + //delay(3000); + digitalWrite(led3, LOW); + digitalWrite(cubo3, LOW); + digitalWrite(cubo4, HIGH); + hora(); + //delay(3000); + digitalWrite(led4, LOW); + digitalWrite(cubo4, LOW); + } + +} diff --git a/2009/cargador_v2/applet/HardwareSerial.cpp.o b/2009/cargador_v2/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/cargador_v2/applet/HardwareSerial.cpp.o differ diff --git a/2009/cargador_v2/applet/Print.cpp.o b/2009/cargador_v2/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/cargador_v2/applet/Print.cpp.o differ diff --git a/2009/cargador_v2/applet/WInterrupts.c.o b/2009/cargador_v2/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/cargador_v2/applet/WInterrupts.c.o differ diff --git a/2009/cargador_v2/applet/WMath.cpp.o b/2009/cargador_v2/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/cargador_v2/applet/WMath.cpp.o differ diff --git a/2009/cargador_v2/applet/cargador_v2.cpp b/2009/cargador_v2/applet/cargador_v2.cpp new file mode 100644 index 0000000..2f1acab --- /dev/null +++ b/2009/cargador_v2/applet/cargador_v2.cpp @@ -0,0 +1,105 @@ +#include "WProgram.h" +void minuto(); +void hora(); +void setup (); +void loop (); +int led1 = 6; +int led2 = 7; +int led3 = 8; +int led4 = 9; +int cubo1 = 2; +int cubo2 = 3; +int cubo3 = 4; +int cubo4 = 5; +int flag = 0; +int i=0; +int e=0; +int time=100; + +void minuto() + { + for (i=0; i<=59; i++) + delay(1000); + } + +void hora() + { + for (e=0; e<=59; e++) + minuto(); + } + +void setup () { + + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + pinMode(led3, OUTPUT); + pinMode(led4, OUTPUT); + pinMode(cubo1, OUTPUT); + pinMode(cubo2, OUTPUT); + pinMode(cubo3, OUTPUT); + pinMode(cubo4, OUTPUT); + digitalWrite(led1, LOW); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + digitalWrite(cubo1, HIGH); + digitalWrite(cubo2, HIGH); + digitalWrite(cubo3, HIGH); + digitalWrite(cubo4, HIGH); +} + +void loop () { + digitalWrite(led1, HIGH); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, HIGH); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, LOW); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/cargador_v2/applet/cargador_v2.cpp.o b/2009/cargador_v2/applet/cargador_v2.cpp.o new file mode 100644 index 0000000..a59fc87 Binary files /dev/null and b/2009/cargador_v2/applet/cargador_v2.cpp.o differ diff --git a/2009/cargador_v2/applet/cargador_v2.eep b/2009/cargador_v2/applet/cargador_v2.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/cargador_v2/applet/cargador_v2.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/cargador_v2/applet/cargador_v2.elf b/2009/cargador_v2/applet/cargador_v2.elf new file mode 100644 index 0000000..f052482 Binary files /dev/null and b/2009/cargador_v2/applet/cargador_v2.elf differ diff --git a/2009/cargador_v2/applet/cargador_v2.hex b/2009/cargador_v2/applet/cargador_v2.hex new file mode 100644 index 0000000..62eaa89 --- /dev/null +++ b/2009/cargador_v2/applet/cargador_v2.hex @@ -0,0 +1,128 @@ +:100000000C945B000C94D9010C9406020C948300B0 +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C9433020C9483000C9478030C9483007A +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000CE0111241FBECFEFD4E0DEBF50 +:1000C000CDBF11E0A0E0B1E0E8ECF7E002C00590A0 +:1000D0000D92A831B107D9F711E0A8E1B1E001C054 +:1000E0001D92AE3AB107E1F710E0C6EBD0E004C0D4 +:1000F0002297FE010E94DE03C43BD107C9F70E948C +:10010000C7010C94E2030C94000061E080910001AF +:100110000E94250360E0809102010E94250360E0B7 +:10012000809104010E94250360E0809106010E94F5 +:1001300025036091100170911101882777FD80954A +:10014000982F0E94A30261E0809100010E94250384 +:1001500061E0809102010E94250360E0809104012A +:100160000E94250360E0809106010E9425036091B2 +:10017000100170911101882777FD8095982F0E94BA +:10018000A30261E0809100010E94250361E080915B +:1001900002010E94250361E0809104010E94250371 +:1001A00060E0809106010E9425036091100170912A +:1001B0001101882777FD8095982F0E94A30261E0A6 +:1001C000809100010E94250361E0809102010E945C +:1001D000250361E0809104010E94250361E0809184 +:1001E00006010E942503609110017091110188277A +:1001F00077FD8095982F0E94A30261E08091000115 +:100200000E94250361E0809102010E94250361E0C4 +:10021000809104010E94250360E0809106010E9404 +:1002200025036091100170911101882777FD809559 +:10023000982F0E94A30261E0809100010E94250393 +:1002400061E0809102010E94250360E08091040139 +:100250000E94250360E0809106010E9425036091C1 +:10026000100170911101882777FD8095982F0E94C9 +:10027000A30261E0809100010E94250360E080916B +:1002800002010E94250360E0809104010E94250381 +:1002900060E0809106010E94250360911001709139 +:1002A0001101882777FD8095982F0E94A30260E0B6 +:1002B000809100010E94250360E0809102010E946C +:1002C000250360E0809104010E94250360E0809195 +:1002D00006010E9425036091100170911101882789 +:1002E00077FD8095982F0E94A302089561E0809188 +:1002F00000010E94070361E0809102010E94070350 +:1003000061E0809104010E94070361E08091060191 +:100310000E94070361E0809108010E94070361E0E9 +:1003200080910A010E94070361E080910C010E9404 +:10033000070361E080910E010E94070360E0809155 +:1003400000010E94250360E0809102010E942503C4 +:1003500060E0809104010E94250360E08091060125 +:100360000E94250361E0809108010E94250361E05D +:1003700080910A010E94250361E080910C010E9496 +:10038000250361E080910E010E94250308950E94DB +:10039000CD020E9476010E948500FDCF86E191E0AA +:1003A00090931901809318010895862F0E9470037D +:1003B00008951F920F920FB60F9211242F933F931F +:1003C0004F935F936F937F938F939F93AF93BF935D +:1003D000EF93FF9380911A0190911B01892B29F0D3 +:1003E000E0911A01F0911B010995FF91EF91BF91E6 +:1003F000AF919F918F917F916F915F914F913F91BD +:100400002F910F900FBE0F901F9018951F920F9273 +:100410000FB60F9211242F933F934F935F936F93D7 +:100420007F938F939F93AF93BF93EF93FF938091AD +:100430001C0190911D01892B29F0E0911C01F09184 +:100440001D010995FF91EF91BF91AF919F918F9100 +:100450007F916F915F914F913F912F910F900FBEC0 +:100460000F901F9018951F920F920FB60F921124A4 +:100470002F938F939F93AF93BF9380911E01909181 +:100480001F01A0912001B09121010196A11DB11D74 +:1004900080931E0190931F01A0932001B09321012E +:1004A0008091220190912301A0912401B091250116 +:1004B0008050904CAF4FBF4F809322019093230107 +:1004C000A0932401B093250127C08091220190912F +:1004D0002301A0912401B091250180589E43A040A2 +:1004E000B0408093220190932301A0932401B09304 +:1004F00025018091260190912701A0912801B091BA +:1005000029010196A11DB11D809326019093270119 +:10051000A0932801B0932901809122019091230199 +:10052000A0912401B091250181589E43A040B04084 +:1005300060F6BF91AF919F918F912F910F900FBE59 +:100540000F901F901895EF92FF920F931F937B01CE +:100550008C018FB7F894409126015091270160914A +:100560002801709129018FBF2FB7F894809126013F +:1005700090912701A0912801B09129012FBF841BE0 +:10058000950BA60BB70BE816F9060A071B0760F7D1 +:100590001F910F91FF90EF900895789484B5826039 +:1005A00084BD84B5816084BD85B5826085BD85B517 +:1005B000816085BDEEE6F0E0808181608083E1E8C6 +:1005C000F0E0808182608083808181608083E0E8C8 +:1005D000F0E0808181608083E1EBF0E080818460E5 +:1005E0008083E0EBF0E0808181608083EAE7F0E0E7 +:1005F000808184608083808182608083808181604B +:1006000080838081806880831092C1000895282FA4 +:1006100030E0C90185579F4FFC01949129583F4F05 +:10062000F9018491882381F0E82FF0E0E859FF4F29 +:10063000E491F0E0662329F48081909589238083FA +:1006400008958081892B80830895482F50E0CA0146 +:1006500081569F4FFC012491CA0185579F4FFC0191 +:10066000949149585F4FFA0134913323C1F1222309 +:1006700031F1233021F4809180008F7705C0243040 +:1006800031F4809180008F7D8093800018C02130EC +:1006900019F484B58F7704C0223021F484B58F7D9E +:1006A00084BD0DC0263021F48091B0008F7705C045 +:1006B000273029F48091B0008F7D8093B000E32F24 +:1006C000F0E0E359FF4FE491F0E0662329F48081E4 +:1006D00090958923808308958081892B8083089554 +:1006E000982F8091C00085FFFCCF9093C60008959D +:1006F0001F920F920FB60F9211242F933F934F9397 +:100700005F936F937F938F939F93AF93BF93EF9379 +:10071000FF934091C600E0912A01F0912B01CF0197 +:10072000019660E870E00E94B5039C0180912C0165 +:1007300090912D012817390739F0E25DFE4F408373 +:1007400030932B0120932A01FF91EF91BF91AF913C +:100750009F918F917F916F915F914F913F912F91D9 +:100760000F900FBE0F901F90189597FB092E07262C +:100770000AD077FD04D00CD006D000201AF4709572 +:1007800061957F4F0895F6F7909581959F4F089555 +:10079000AA1BBB1B51E107C0AA1FBB1FA617B707A7 +:1007A00010F0A61BB70B881F991F5A95A9F78095C3 +:1007B0009095BC01CD010895EE0FFF1F0590F491B7 +:0807C000E02D0994F894FFCF2D +:1007C80006000700080009000200030004000500F5 +:0807D800640000000000D501DF +:00000001FF diff --git a/2009/cargador_v2/applet/pins_arduino.c.o b/2009/cargador_v2/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/cargador_v2/applet/pins_arduino.c.o differ diff --git a/2009/cargador_v2/applet/wiring.c.o b/2009/cargador_v2/applet/wiring.c.o new file mode 100644 index 0000000..778fcb8 Binary files /dev/null and b/2009/cargador_v2/applet/wiring.c.o differ diff --git a/2009/cargador_v2/applet/wiring_analog.c.o b/2009/cargador_v2/applet/wiring_analog.c.o new file mode 100644 index 0000000..5c01800 Binary files /dev/null and b/2009/cargador_v2/applet/wiring_analog.c.o differ diff --git a/2009/cargador_v2/applet/wiring_digital.c.o b/2009/cargador_v2/applet/wiring_digital.c.o new file mode 100644 index 0000000..4c46834 Binary files /dev/null and b/2009/cargador_v2/applet/wiring_digital.c.o differ diff --git a/2009/cargador_v2/applet/wiring_pulse.c.o b/2009/cargador_v2/applet/wiring_pulse.c.o new file mode 100644 index 0000000..745221c Binary files /dev/null and b/2009/cargador_v2/applet/wiring_pulse.c.o differ diff --git a/2009/cargador_v2/applet/wiring_serial.c.o b/2009/cargador_v2/applet/wiring_serial.c.o new file mode 100644 index 0000000..42ed563 Binary files /dev/null and b/2009/cargador_v2/applet/wiring_serial.c.o differ diff --git a/2009/cargador_v2/applet/wiring_shift.c.o b/2009/cargador_v2/applet/wiring_shift.c.o new file mode 100644 index 0000000..744397f Binary files /dev/null and b/2009/cargador_v2/applet/wiring_shift.c.o differ diff --git a/2009/cargador_v2/cargador_v2.pde b/2009/cargador_v2/cargador_v2.pde new file mode 100644 index 0000000..1e7a26d --- /dev/null +++ b/2009/cargador_v2/cargador_v2.pde @@ -0,0 +1,87 @@ +int led1 = 6; +int led2 = 7; +int led3 = 8; +int led4 = 9; +int cubo1 = 2; +int cubo2 = 3; +int cubo3 = 4; +int cubo4 = 5; +int flag = 0; +int i=0; +int e=0; +int time=100; + +void minuto() + { + for (i=0; i<=59; i++) + delay(1000); + } + +void hora() + { + for (e=0; e<=59; e++) + minuto(); + } + +void setup () { + + pinMode(led1, OUTPUT); + pinMode(led2, OUTPUT); + pinMode(led3, OUTPUT); + pinMode(led4, OUTPUT); + pinMode(cubo1, OUTPUT); + pinMode(cubo2, OUTPUT); + pinMode(cubo3, OUTPUT); + pinMode(cubo4, OUTPUT); + digitalWrite(led1, LOW); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + digitalWrite(cubo1, HIGH); + digitalWrite(cubo2, HIGH); + digitalWrite(cubo3, HIGH); + digitalWrite(cubo4, HIGH); +} + +void loop () { + digitalWrite(led1, HIGH); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, HIGH); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, HIGH); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, HIGH); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, HIGH); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); + digitalWrite(led1, LOW); + digitalWrite(led2, LOW); + digitalWrite(led3, LOW); + digitalWrite(led4, LOW); + delay(time); +} diff --git a/2009/dmx008fade/applet/HardwareSerial.cpp.o b/2009/dmx008fade/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/dmx008fade/applet/HardwareSerial.cpp.o differ diff --git a/2009/dmx008fade/applet/Print.cpp.o b/2009/dmx008fade/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/dmx008fade/applet/Print.cpp.o differ diff --git a/2009/dmx008fade/applet/WInterrupts.c.o b/2009/dmx008fade/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/dmx008fade/applet/WInterrupts.c.o differ diff --git a/2009/dmx008fade/applet/WMath.cpp.o b/2009/dmx008fade/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/dmx008fade/applet/WMath.cpp.o differ diff --git a/2009/dmx008fade/applet/WRandom.cpp.o b/2009/dmx008fade/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/dmx008fade/applet/WRandom.cpp.o differ diff --git a/2009/dmx008fade/applet/core.a b/2009/dmx008fade/applet/core.a new file mode 100644 index 0000000..4cc0a37 Binary files /dev/null and b/2009/dmx008fade/applet/core.a differ diff --git a/2009/dmx008fade/applet/dmx008fade.cpp b/2009/dmx008fade/applet/dmx008fade.cpp new file mode 100644 index 0000000..15b999e --- /dev/null +++ b/2009/dmx008fade/applet/dmx008fade.cpp @@ -0,0 +1,133 @@ +/* + * DMX fade for arduino 008 + * based on the code of Tomek Ness and D. Cuartielles + * + * adapted to arduino 008 by Peter Szakal and Gabor Papp + * http://nextlab.hu + */ + +#include "pins_arduino.h" + +#include "WProgram.h" +void shiftDmxOut(int pin, int theByte); +void setup(); +void loop(); +int sig = 8; // signal + +int value = 0; +int valueadd = 3; + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void setup() +{ + pinMode(sig, OUTPUT); +} + +void loop() +{ + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + // sending the start byte + shiftDmxOut(sig, 0); + + for (int count = 1; count <= 512; count++) + { + shiftDmxOut(sig, value); + } + /***** sending the dmx signal end *****/ + + value += valueadd; + if ((value == 0) || (value == 255)) + { + valueadd *= -1; + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/dmx008fade/applet/dmx008fade.cpp.o b/2009/dmx008fade/applet/dmx008fade.cpp.o new file mode 100644 index 0000000..0075a33 Binary files /dev/null and b/2009/dmx008fade/applet/dmx008fade.cpp.o differ diff --git a/2009/dmx008fade/applet/dmx008fade.elf b/2009/dmx008fade/applet/dmx008fade.elf new file mode 100644 index 0000000..16fd1df Binary files /dev/null and b/2009/dmx008fade/applet/dmx008fade.elf differ diff --git a/2009/dmx008fade/applet/dmx008fade.hex b/2009/dmx008fade/applet/dmx008fade.hex new file mode 100644 index 0000000..30d920b --- /dev/null +++ b/2009/dmx008fade/applet/dmx008fade.hex @@ -0,0 +1,103 @@ +:100000000C945A000C9477000C9477000C947700B1 +:100010000C9477000C9477000C9477000C94770084 +:100020000C9477000C9477000C9477000C94770074 +:100030000C9477000C9477000C9477000C94770064 +:100040000C9493010C9477000C9477000C94770037 +:100050000C9477000C9477000C9477000C94770044 +:100060000C9477000C947700000024272A000025C8 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B0000000000011241FBECFEFD4E0DEBFCDBF93 +:1000C00011E0A0E0B1E0EEE4F6E002C005900D9290 +:1000D000AE30B107D9F711E0AEE0B1E001C01D923A +:1000E000A831B107E1F70E948C010C9425030C9410 +:1000F000000061E0809100010E9470020895BF92AB +:10010000CF92DF92EF92FF920F931F93DF93CF93E3 +:10011000CDB7DEB72A970FB6F894DEBF0FBECDBFBE +:100120006B01DE011196E4E0F1E02AE001900D920E +:100130002150E1F79C0189589F4FFC01849125577C +:100140003F4FF901B490E82FF0E0EE0FFF1FEC0FE6 +:10015000FD1F0181128190E2E92EF12CE00EF11ECB +:10016000F80180A18B2980A38AE090E00E942802F8 +:10017000F894F80180A19B2D9095892380A300001D +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000020E01F +:1001E00030E0C0FE04C0F70180818B2903C0F70115 +:1001F000808189238083000000000000000000004F +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:100250000000000000002F5F3F4F2830310519F0EB +:10026000D594C794BECFF80180A18B2980A3789440 +:100270002A960FB6F894DEBF0FBECDBFCF91DF91A7 +:100280001F910F91FF90EF90DF90CF90BF90089556 +:10029000CF93DF9360E0809100010E948E026AE0BC +:1002A00070E080E090E00E94FE0160E070E08091EC +:1002B0000001909101010E947F00C1E0D0E06091B7 +:1002C0000E0170910F0180910001909101010E9437 +:1002D0007F00219682E0C130D80789F72091020182 +:1002E0003091030180910E0190910F01820F931FB5 +:1002F00090930F0180930E01009719F08F3F9105A5 +:1003000041F488279927821B930B909303018093D4 +:100310000201DF91CF9108950E9436020E94790078 +:100320000E944801FDCF1F920F920FB60F92112429 +:100330002F938F939F93AF93BF93809110019091D0 +:100340001101A0911201B09113018050904CAF4F58 +:10035000BF4F8093100190931101A0931201B093AD +:10036000130127C08091100190911101A0911201F9 +:10037000B091130180589E43A040B040809310017B +:1003800090931101A0931201B09313018091140175 +:1003900090911501A0911601B09117010196A11D30 +:1003A000B11D8093140190931501A0931601B09391 +:1003B00017018091100190911101A0911201B0914B +:1003C000130181589E43A040B04060F6BF91AF91A9 +:1003D0009F918F912F910F900FBE0F901F901895A6 +:1003E0008FB7F894209114013091150140911601B6 +:1003F000509117018FBFB901CA010895EF92FF9282 +:100400000F931F937B018C018FB7F89440911401D7 +:100410005091150160911601709117018FBF2FB790 +:10042000F8948091140190911501A0911601B0915A +:1004300017012FBF841B950BA60BB70B8E159F05BD +:10044000A007B10760F31F910F91FF90EF900895FF +:10045000019759F0FC01EE0FFF1FEE0FFF1F3297BF +:100460008FB7F8943197F1F78FBF0895789484B5DA +:10047000826084BD84B5816084BD85B5826085BDA0 +:1004800085B5816085BDEEE6F0E080818160808386 +:10049000E1E8F0E0808182608083808181608083F8 +:1004A000E0E8F0E0808181608083E1EBF0E0808132 +:1004B00084608083E0EBF0E0808181608083EAE704 +:1004C000F0E080818460808380818260808380818D +:1004D000816080838081806880831092C10008954C +:1004E000282F30E0C90185579F4FFC01949129586E +:1004F0003F4FF9018491882381F0E82FF0E0E8591B +:10050000FF4FE491F0E0662329F4808190958923E0 +:10051000808308958081892B80830895482F50E03F +:10052000CA0181569F4FFC012491CA0185579F4FF4 +:10053000FC01949149585F4FFA0134913323C1F182 +:10054000222331F1233021F4809180008F7705C080 +:10055000243031F4809180008F7D8093800018C01A +:10056000213019F484B58F7704C0223021F484B58A +:100570008F7D84BD0DC0263021F48091B0008F772F +:1005800005C0273029F48091B0008F7D8093B000A2 +:10059000E32FF0E0E359FF4FE491F0E0662329F404 +:1005A000808190958923808308958081892B808321 +:1005B0000895482F50E0CA0181569F4FFC012491B5 +:1005C000CA0185579F4FFC01949149585F4FFA012A +:1005D0003491332319F420E030E035C0222331F187 +:1005E000233021F4809180008F7705C0243031F4CE +:1005F000809180008F7D8093800018C0213019F495 +:1006000084B58F7704C0223021F484B58F7D84BDFA +:100610000DC0263021F48091B0008F7705C02730BF +:1006200029F48091B0008F7D8093B000E32FF0E03B +:10063000EE58FF4FE491F0E0808120E030E0892324 +:0E06400011F021E030E0C9010895F894FFCFD9 +:0E064E000800030000000000050008000B007B +:00000001FF diff --git a/2009/dmx008fade/applet/dmx008fade.pde b/2009/dmx008fade/applet/dmx008fade.pde new file mode 100644 index 0000000..2d83bf6 --- /dev/null +++ b/2009/dmx008fade/applet/dmx008fade.pde @@ -0,0 +1,116 @@ +/* + * DMX fade for arduino 008 + * based on the code of Tomek Ness and D. Cuartielles + * + * adapted to arduino 008 by Peter Szakal and Gabor Papp + * http://nextlab.hu + */ + +#include "pins_arduino.h" + +int sig = 8; // signal + +int value = 0; +int valueadd = 3; + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void setup() +{ + pinMode(sig, OUTPUT); +} + +void loop() +{ + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + // sending the start byte + shiftDmxOut(sig, 0); + + for (int count = 1; count <= 512; count++) + { + shiftDmxOut(sig, value); + } + /***** sending the dmx signal end *****/ + + value += valueadd; + if ((value == 0) || (value == 255)) + { + valueadd *= -1; + } +} diff --git a/2009/dmx008fade/applet/dmx008fade.rom b/2009/dmx008fade/applet/dmx008fade.rom new file mode 100644 index 0000000..85f2cd6 --- /dev/null +++ b/2009/dmx008fade/applet/dmx008fade.rom @@ -0,0 +1,104 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4573637269746FA3 +S11300000C945A000C9477000C9477000C947700AD +S11300100C9477000C9477000C9477000C94770080 +S11300200C9477000C9477000C9477000C94770070 +S11300300C9477000C9477000C9477000C94770060 +S11300400C9493010C9477000C9477000C94770033 +S11300500C9477000C9477000C9477000C94770040 +S11300600C9477000C947700000024272A000025C4 +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B00000000011241FBECFEFD4E0DEBFCDBF8F +S11300C011E0A0E0B1E0EEE4F6E002C005900D928C +S11300D0AE30B107D9F711E0AEE0B1E001C01D9236 +S11300E0A831B107E1F70E948C010C9425030C940C +S11300F0000061E0809100010E9470020895BF92A7 +S1130100CF92DF92EF92FF920F931F93DF93CF93DF +S1130110CDB7DEB72A970FB6F894DEBF0FBECDBFBA +S11301206B01DE011196E4E0F1E02AE001900D920A +S11301302150E1F79C0189589F4FFC018491255778 +S11301403F4FF901B490E82FF0E0EE0FFF1FEC0FE2 +S1130150FD1F0181128190E2E92EF12CE00EF11EC7 +S1130160F80180A18B2980A38AE090E00E942802F4 +S1130170F894F80180A19B2D9095892380A3000019 +S1130180000000000000000000000000000000006B +S1130190000000000000000000000000000000005B +S11301A0000000000000000000000000000000004B +S11301B0000000000000000000000000000000003B +S11301C0000000000000000000000000000000002B +S11301D0000000000000000000000000000020E01B +S11301E030E0C0FE04C0F70180818B2903C0F70111 +S11301F0808189238083000000000000000000004B +S113020000000000000000000000000000000000EA +S113021000000000000000000000000000000000DA +S113022000000000000000000000000000000000CA +S113023000000000000000000000000000000000BA +S113024000000000000000000000000000000000AA +S11302500000000000002F5F3F4F2830310519F0E7 +S1130260D594C794BECFF80180A18B2980A378943C +S11302702A960FB6F894DEBF0FBECDBFCF91DF91A3 +S11302801F910F91FF90EF90DF90CF90BF90089552 +S1130290CF93DF9360E0809100010E948E026AE0B8 +S11302A070E080E090E00E94FE0160E070E08091E8 +S11302B00001909101010E947F00C1E0D0E06091B3 +S11302C00E0170910F0180910001909101010E9433 +S11302D07F00219682E0C130D80789F7209102017E +S11302E03091030180910E0190910F01820F931FB1 +S11302F090930F0180930E01009719F08F3F9105A1 +S113030041F488279927821B930B909303018093D0 +S11303100201DF91CF9108950E9436020E94790074 +S11303200E944801FDCF1F920F920FB60F92112425 +S11303302F938F939F93AF93BF93809110019091CC +S11303401101A0911201B09113018050904CAF4F54 +S1130350BF4F8093100190931101A0931201B093A9 +S1130360130127C08091100190911101A0911201F5 +S1130370B091130180589E43A040B0408093100177 +S113038090931101A0931201B09313018091140171 +S113039090911501A0911601B09117010196A11D2C +S11303A0B11D8093140190931501A0931601B0938D +S11303B017018091100190911101A0911201B09147 +S11303C0130181589E43A040B04060F6BF91AF91A5 +S11303D09F918F912F910F900FBE0F901F901895A2 +S11303E08FB7F894209114013091150140911601B2 +S11303F0509117018FBFB901CA010895EF92FF927E +S11304000F931F937B018C018FB7F89440911401D3 +S11304105091150160911601709117018FBF2FB78C +S1130420F8948091140190911501A0911601B09156 +S113043017012FBF841B950BA60BB70B8E159F05B9 +S1130440A007B10760F31F910F91FF90EF900895FB +S1130450019759F0FC01EE0FFF1FEE0FFF1F3297BB +S11304608FB7F8943197F1F78FBF0895789484B5D6 +S1130470826084BD84B5816084BD85B5826085BD9C +S113048085B5816085BDEEE6F0E080818160808382 +S1130490E1E8F0E0808182608083808181608083F4 +S11304A0E0E8F0E0808181608083E1EBF0E080812E +S11304B084608083E0EBF0E0808181608083EAE700 +S11304C0F0E0808184608083808182608083808189 +S11304D0816080838081806880831092C100089548 +S11304E0282F30E0C90185579F4FFC01949129586A +S11304F03F4FF9018491882381F0E82FF0E0E85917 +S1130500FF4FE491F0E0662329F4808190958923DC +S1130510808308958081892B80830895482F50E03B +S1130520CA0181569F4FFC012491CA0185579F4FF0 +S1130530FC01949149585F4FFA0134913323C1F17E +S1130540222331F1233021F4809180008F7705C07C +S1130550243031F4809180008F7D8093800018C016 +S1130560213019F484B58F7704C0223021F484B586 +S11305708F7D84BD0DC0263021F48091B0008F772B +S113058005C0273029F48091B0008F7D8093B0009E +S1130590E32FF0E0E359FF4FE491F0E0662329F400 +S11305A0808190958923808308958081892B80831D +S11305B00895482F50E0CA0181569F4FFC012491B1 +S11305C0CA0185579F4FFC01949149585F4FFA0126 +S11305D03491332319F420E030E035C0222331F183 +S11305E0233021F4809180008F7705C0243031F4CA +S11305F0809180008F7D8093800018C0213019F491 +S113060084B58F7704C0223021F484B58F7D84BDF6 +S11306100DC0263021F48091B0008F7705C02730BB +S113062029F48091B0008F7D8093B000E32FF0E037 +S1130630EE58FF4FE491F0E0808120E030E0892320 +S111064011F021E030E0C9010895F894FFCFD5 +S111064E0800030000000000050008000B0077 +S9030000FC diff --git a/2009/dmx008fade/applet/pins_arduino.c.o b/2009/dmx008fade/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/dmx008fade/applet/pins_arduino.c.o differ diff --git a/2009/dmx008fade/applet/wiring.c.o b/2009/dmx008fade/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/dmx008fade/applet/wiring.c.o differ diff --git a/2009/dmx008fade/applet/wiring_analog.c.o b/2009/dmx008fade/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/dmx008fade/applet/wiring_analog.c.o differ diff --git a/2009/dmx008fade/applet/wiring_digital.c.o b/2009/dmx008fade/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/dmx008fade/applet/wiring_digital.c.o differ diff --git a/2009/dmx008fade/applet/wiring_pulse.c.o b/2009/dmx008fade/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/dmx008fade/applet/wiring_pulse.c.o differ diff --git a/2009/dmx008fade/applet/wiring_serial.c.o b/2009/dmx008fade/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/dmx008fade/applet/wiring_serial.c.o differ diff --git a/2009/dmx008fade/applet/wiring_shift.c.o b/2009/dmx008fade/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/dmx008fade/applet/wiring_shift.c.o differ diff --git a/2009/dmx008fade/dmx008fade.pde b/2009/dmx008fade/dmx008fade.pde new file mode 100644 index 0000000..a069ac2 --- /dev/null +++ b/2009/dmx008fade/dmx008fade.pde @@ -0,0 +1,116 @@ +/* + * DMX fade for arduino 008 + * based on the code of Tomek Ness and D. Cuartielles + * + * adapted to arduino 008 by Peter Szakal and Gabor Papp + * http://nextlab.hu + */ + +#include "pins_arduino.h" + +int sig = 8; // signal + +int value = 0; +int valueadd = 3; + +/* Sends a DMX byte out on a pin. Assumes a 16 MHz clock. + * Disables interrupts, which will disrupt the millis() function if used + * too frequently. */ +void shiftDmxOut(int pin, int theByte) +{ + int port_to_output[] = { + NOT_A_PORT, + NOT_A_PORT, + _SFR_IO_ADDR(PORTB), + _SFR_IO_ADDR(PORTC), + _SFR_IO_ADDR(PORTD) + }; + + int portNumber = port_to_output[digitalPinToPort(pin)]; + int pinMask = digitalPinToBitMask(pin); + + // the first thing we do is to write te pin to high + // it will be the mark between bytes. It may be also + // high from before + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + delayMicroseconds(10); + + // disable interrupts, otherwise the timer 0 overflow interrupt that + // tracks milliseconds will make us delay longer than we want. + cli(); + + // DMX starts with a start-bit that must always be zero + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + + // we need a delay of 4us (then one bit is transfered) + // this seems more stable then using delayMicroseconds + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + for (int i = 0; i < 8; i++) + { + if (theByte & 01) + { + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + } + else + { + _SFR_BYTE(_SFR_IO8(portNumber)) &= ~pinMask; + } + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + asm("nop\n nop\n nop\n nop\n nop\n nop\n nop\n nop\n"); + + theByte >>= 1; + } + + // the last thing we do is to write the pin to high + // it will be the mark between bytes. (this break is have to be between 8 us and 1 sec) + _SFR_BYTE(_SFR_IO8(portNumber)) |= pinMask; + + // reenable interrupts. + sei(); +} + + +void setup() +{ + pinMode(sig, OUTPUT); +} + +void loop() +{ + /***** sending the dmx signal *****/ + + // sending the break (the break can be between 88us and 1sec) + digitalWrite(sig, LOW); + + delay(10); + + // sending the start byte + shiftDmxOut(sig, 0); + + for (int count = 1; count <= 512; count++) + { + shiftDmxOut(sig, value); + } + /***** sending the dmx signal end *****/ + + value += valueadd; + if ((value == 0) || (value == 255)) + { + valueadd *= -1; + } +} diff --git a/2009/firmware_lalalab/applet/HardwareSerial.cpp.o b/2009/firmware_lalalab/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..84639f2 Binary files /dev/null and b/2009/firmware_lalalab/applet/HardwareSerial.cpp.o differ diff --git a/2009/firmware_lalalab/applet/Print.cpp.o b/2009/firmware_lalalab/applet/Print.cpp.o new file mode 100644 index 0000000..2a415db Binary files /dev/null and b/2009/firmware_lalalab/applet/Print.cpp.o differ diff --git a/2009/firmware_lalalab/applet/WInterrupts.c.o b/2009/firmware_lalalab/applet/WInterrupts.c.o new file mode 100644 index 0000000..978ea90 Binary files /dev/null and b/2009/firmware_lalalab/applet/WInterrupts.c.o differ diff --git a/2009/firmware_lalalab/applet/WMath.cpp.o b/2009/firmware_lalalab/applet/WMath.cpp.o new file mode 100644 index 0000000..92589f7 Binary files /dev/null and b/2009/firmware_lalalab/applet/WMath.cpp.o differ diff --git a/2009/firmware_lalalab/applet/core.a b/2009/firmware_lalalab/applet/core.a new file mode 100644 index 0000000..47e1ddd Binary files /dev/null and b/2009/firmware_lalalab/applet/core.a differ diff --git a/2009/firmware_lalalab/applet/firmware_lalalab.cpp b/2009/firmware_lalalab/applet/firmware_lalalab.cpp new file mode 100644 index 0000000..bcad62d --- /dev/null +++ b/2009/firmware_lalalab/applet/firmware_lalalab.cpp @@ -0,0 +1,124 @@ +#include "WProgram.h" +void setup(); +void loop(); +int lowbat = 13; // Pin de bateria baja +int nivel = 3; //Sensor de nivel de bateria +int xbee = 4; //Pin de activacion del xbee +int buzzer = 9; + +int val = 0; // variable to store the value coming from the sensor +int i=0; +int rfid_ok=0; +int id=0; +int ini=20; +int env=3; + +void setup() +{ + Serial.begin(9600); + pinMode(lowbat, OUTPUT); + pinMode(xbee, OUTPUT); + pinMode(buzzer, OUTPUT); + for (i = 5; i < 9; i++) pinMode(i, INPUT); + for (i = 5; i < 9; i++) + { + if (digitalRead(i)) + { + if (i==5) val=1; + else if (i==6) val=2; + else if (i==7) val=4; + else if (i==8) val=8; + id=id+val; + } + } + digitalWrite(xbee, HIGH); //Habilito XBEE + delay(ini); + Serial.print("Soy el"); + delay(env); + Serial.print(" "); + delay(env); + Serial.print("Hybrid"); + delay(env); + Serial.print(" "); + delay(env); + Serial.println(id); + delay(env); + digitalWrite(lowbat, HIGH); + digitalWrite(xbee, LOW); //deshabilito XBEE + digitalWrite(buzzer, HIGH); + delay(200); + digitalWrite(buzzer, LOW); +} + + +void loop() +{ + + if (rfid_ok==1) + { + Serial.print(id,BYTE); + delay(env); + } + + while (Serial.available()>0) + { + if (rfid_ok==0) + { + delay(ini); + Serial.print(id,BYTE); + delay(env); + } + rfid_ok=1; + val=Serial.read(); + digitalWrite(xbee, HIGH); //Habilito XBEE + Serial.print(val,BYTE); + delay(env); + } + + if (rfid_ok==1) + { + for (i = 0; i < 3; i++) + { + val=analogRead(i); + /*Serial.print(":"); + delay(env);*/ + Serial.print(map(val, 0, 675, 0, 255),BYTE); + delay(env); + } + } + + if (rfid_ok==1) + { + val=analogRead(4); + /*Serial.print(":"); + delay(env);*/ + Serial.print(map(val, 0, 675, 0, 255),BYTE); + delay(env); + } + + val=analogRead(nivel); + if (val<=614) digitalWrite(lowbat, LOW); //Umbral de bateria baja 3v, que equivale a 614 + else digitalWrite(lowbat, HIGH); + if (rfid_ok==1) + { + /*Serial.print(":"); + delay(env);*/ + Serial.print(map(val, 0, 860, 0, 255),BYTE); //El maximo de tension de la bateria son 4'2v, que equivale a 860 + delay(env); + Serial.println(); + delay(env); + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/firmware_lalalab/applet/firmware_lalalab.cpp.eep b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/firmware_lalalab/applet/firmware_lalalab.cpp.elf b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.elf new file mode 100644 index 0000000..2127678 Binary files /dev/null and b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.elf differ diff --git a/2009/firmware_lalalab/applet/firmware_lalalab.cpp.hex b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.hex new file mode 100644 index 0000000..e0f727f --- /dev/null +++ b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.hex @@ -0,0 +1,277 @@ +:100000000C9462000C948A000C948A000C948A0070 +:100010000C948A000C948A000C948A000C948A0038 +:100020000C948A000C948A000C948A000C948A0028 +:100030000C948A000C948A000C948A000C948A0018 +:100040000C942E030C948A000C94B4040C948A0033 +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C948A000C948A000000000024002700F1 +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C0000000390611241FBECFEFD4E0DEBFCDBF44 +:1000D00011E0A0E0B1E0E2E0F1E102C005900D9294 +:1000E000A832B107D9F711E0A8E2B1E001C01D9232 +:1000F000A03DB107E1F710E0C4ECD0E004C02297C6 +:10010000FE010E947B08C23CD107C9F70E94270369 +:100110000C947F080C9400006F927F928F929F92B4 +:10012000AF92BF92CF92DF92EF92FF920F931F9305 +:1001300080912C0190912D01019709F067C04091A9 +:100140002E0150912F01662757FD6095762F8DEB7C +:1001500091E020E030E00E94980760911A017091D0 +:100160001B01882777FD8095982F0E9476034EC04B +:10017000232B11F56091180170911901882777FDE3 +:100180008095982F0E94760340912E0150912F0167 +:10019000662757FD6095762F8DEB91E020E030E0EB +:1001A0000E94980760911A0170911B01882777FDC2 +:1001B0008095982F0E94760310932D0100932C01B7 +:1001C0008DEB91E00E94FE05909329018093280118 +:1001D0008091140161E00E9418044091280150911F +:1001E0002901662757FD6095762F8DEB91E020E081 +:1001F00030E00E94980760911A0170911B018827D6 +:1002000077FD8095982F0E94760302C001E010E0F0 +:100210008DEB91E00E94EA0520912C0130912D0197 +:10022000882309F0A5CF2130310509F054C0109280 +:100230002B0110922A01BFEF6B2E712C812C912C77 +:1002400042C00E94DA03909329018093280100D0D4 +:1002500000D0AA2797FDA095BA2FEDB7FEB761820F +:10026000728283829482BC01CD0120E030E040E0C4 +:1002700050E0A3EAEA2EA2E0FA2E012D112DAA24C5 +:10028000BB2465010E94AD07AB01BC010F900F902C +:100290000F900F908DEB91E020E030E00E949807E6 +:1002A00060911A0170911B01882777FD8095982F26 +:1002B0000E94760380912A0190912B0101969093E0 +:1002C0002B0180932A0180912A0190912B01833088 +:1002D00091050CF4B6CF80912C0190912D010197DE +:1002E000F1F584E00E94DA039093290180932801BC +:1002F00000D000D0AA2797FDA095BA2F2FEF30E0AD +:1003000040E050E0EDB7FEB721833283438354834E +:10031000BC01CD0120E030E040E050E0F3EAEF2EF8 +:10032000F2E0FF2E012D112DAA24BB2465010E94AD +:10033000AD07AB01BC010F900F900F900F908DEBAC +:1003400091E020E030E00E94980760911A017091DE +:100350001B01882777FD8095982F0E947603809156 +:1003600012010E94DA039093290180932801875695 +:10037000924024F48091100160E003C0809110014C +:1003800061E00E94180480912C0190912D01019749 +:1003900009F047C000D000D0609128017091290178 +:1003A000882777FD8095982F2FEF30E040E050E0D0 +:1003B000EDB7FEB7218332834383548320E030E0DE +:1003C00040E050E0ECE5EE2EE3E0FE2E012D112D95 +:1003D000AA24BB2465010E94AD07AB01BC010F90AC +:1003E0000F900F900F908DEB91E020E030E00E9495 +:1003F000980760911A0170911B01882777FD8095FD +:10040000982F0E9476038DEB91E00E94B2066091D6 +:100410001A0170911B01882777FD8095982F0E9403 +:1004200076031F910F91FF90EF90DF90CF90BF90D8 +:10043000AF909F908F907F906F900895EF92FF9272 +:100440000F931F93CF93DF938DEB91E040E855E23C +:1004500060E070E00E94F1048091100161E00E9470 +:10046000F8038091140161E00E94F8038091160165 +:1004700061E00E94F80385E090E008C060E00E941F +:10048000F80380912A0190912B01019690932B0102 +:1004900080932A0180912A0190912B018930910546 +:1004A0006CF385E090E090932B0180932A0114E097 +:1004B000E12EF12C02E010E0C1E0D0E03EC00E944D +:1004C0006504892B89F180912A0190912B01853057 +:1004D000910529F4D0932901C093280117C08630D3 +:1004E000910529F410932901009328010FC087304A +:1004F000910529F4F0922901E092280107C0883083 +:10050000910521F4909329018093280180912E0177 +:1005100090912F012091280130912901820F931F82 +:1005200090932F0180932E0180912A0190912B01AD +:10053000019690932B0180932A0180912A0190913A +:100540002B01893091050CF4BACF8091140161E040 +:100550000E9418046091180170911901882777FD95 +:100560008095982F0E9476038DEB91E060E071E01A +:100570000E94AA0660911A0170911B01882777FDDD +:100580008095982F0E9476038DEB91E067E071E0F3 +:100590000E94AA0660911A0170911B01882777FDBD +:1005A0008095982F0E9476038DEB91E069E071E0D1 +:1005B0000E94AA0660911A0170911B01882777FD9D +:1005C0008095982F0E9476038DEB91E067E071E0B3 +:1005D0000E94AA0660911A0170911B01882777FD7D +:1005E0008095982F0E94760360912E0170912F01C3 +:1005F0008DEB91E00E94880760911A0170911B01B8 +:10060000882777FD8095982F0E94760380911001AE +:1006100061E00E9418048091140160E00E941804B7 +:100620008091160161E00E94180468EC70E080E09F +:1006300090E00E9476038091160160E00E94180409 +:10064000DF91CF911F910F91FF90EF9008950E943D +:10065000A0030E941E020E948C00FDCF1F920F92E9 +:100660000FB60F9211242F933F938F939F93AF93C5 +:10067000BF938091340190913501A0913601B091E2 +:100680003701309138010196A11DB11D232F2D5F37 +:100690002D3720F02D570196A11DB11D2093380153 +:1006A0008093340190933501A0933601B0933701C4 +:1006B0008091300190913101A0913201B0913301CC +:1006C0000196A11DB11D8093300190933101A0933B +:1006D0003201B0933301BF91AF919F918F913F91C0 +:1006E0002F910F900FBE0F901F901895EF92FF92D1 +:1006F0000F931F937B018C018FB7F89440913401C5 +:100700005091350160913601709137018FBF2FB73D +:10071000F8948091340190913501A0913601B09107 +:1007200037012FBF841B950BA60BB70BE816F906F4 +:100730000A071B0760F71F910F91FF90EF90089534 +:10074000789484B5826084BD84B5816084BD85B5AC +:10075000826085BD85B5816085BDEEE6F0E0808173 +:1007600081608083E1E8F0E0808182608083808125 +:1007700081608083E0E8F0E0808181608083E1EB4C +:10078000F0E0808184608083E0EBF0E08081816034 +:100790008083EAE7F0E080818460808380818260EA +:1007A00080838081816080838081806880831092D3 +:1007B000C10008958F7090911C019295990F990F27 +:1007C000907C982B90937C0080917A008064809339 +:1007D0007A0080917A0086FDFCCF209178004091CC +:1007E0007900942F80E030E0282B392BC90108953F +:1007F000282F30E0C90186569F4FFC0194912A575B +:100800003F4FF9018491882391F0E82FF0E0EE0F3B +:10081000FF1FE859FF4FA591B491662329F48C91ED +:10082000909589238C9308958C91892B8C930895AE +:10083000482F50E0CA0182559F4FFC012491CA0104 +:1008400086569F4FFC0194914A575F4FFA013491AD +:100850003323D1F1222331F1233021F48091800020 +:100860008F7705C0243031F4809180008F7D809394 +:10087000800018C0213019F484B58F7704C022306D +:1008800021F484B58F7D84BD0DC0263021F4809184 +:10089000B0008F7705C0273029F48091B0008F7D9C +:1008A0008093B000E32FF0E0EE0FFF1FEE58FF4FF4 +:1008B000A591B491662329F48C91909589238C930A +:1008C00008958C91892B8C930895682F70E0CB014B +:1008D00082559F4FFC012491CB0186569F4FFC010E +:1008E00044916A577F4FFB019491992319F420E0BA +:1008F00030E038C0222331F1233021F48091800090 +:100900008F7705C0243031F4809180008F7D8093F3 +:10091000800018C0213019F484B58F7704C02230CC +:1009200021F484B58F7D84BD0DC0263021F48091E3 +:10093000B0008F7705C0273029F48091B0008F7DFB +:100940008093B000892F90E0880F991F84589F4FA3 +:10095000FC01A591B4918C9120E030E0842311F04A +:1009600021E030E0C90108951F920F920FB60F9257 +:1009700011242F933F934F935F936F937F938F93A4 +:100980009F93AF93BF93EF93FF934091C600E09185 +:10099000B901F091BA01CF01019660E870E00E94C0 +:1009A00015089C018091BB019091BC012817390763 +:1009B00039F0E75CFE4F40833093BA012093B901D0 +:1009C000FF91EF91BF91AF919F918F917F916F9127 +:1009D0005F914F913F912F910F900FBE0F901F90FD +:1009E00018955F926F927F928F929F92AF92BF9273 +:1009F000CF92DF92EF92FF920F931F93CF93DF93EB +:100A0000EC013A014B01413482E458078FE068075A +:100A100080E078070CF07FC060E874E88EE190E039 +:100A2000A40193010E944A082150304040405040A8 +:100A3000CA01B90122E030E040E050E00E944A08DB +:100A400059016A01A6019501209530954095509570 +:100A500094E0220F331F441F551F9A95D1F760E091 +:100A600074E284EF90E00E944A08CA01B9012FEFB6 +:100A700030E040E050E00E94F607A40193010E949C +:100A80004A08C90181509F4F181619061CF4522EAE +:100A90005A9403C055245394521A60E079E08DE3D0 +:100AA00090E0A40193010E944A0821503040404048 +:100AB0005040CA01B90122E030E040E050E00E941D +:100AC0004A08209530954095509583E0220F331FBA +:100AD000441F551F8A95D1F760E074E284EF90E0DF +:100AE0000E944A08CA01B9012FEF30E040E050E00F +:100AF0000E94F607A40193010E944A08C90181508F +:100B00009F4F181619061CF4822F815002C081E0F5 +:100B1000821B851500F5E885F98581E090E00A885B +:100B200002C0880F991F0A94E2F7808360E079E0A1 +:100B30008DE390E0A40193010E944A0821503040C7 +:100B400040405040CA01B90122E030E040E050E0AE +:100B50000E944A0804C0E885F98510829501EC815D +:100B6000FD813083EE81FF812083EA85FB85208132 +:100B700041E050E0CA010E8402C0880F991F0A9418 +:100B8000E2F7282B2083EA85FB852081CA010F84A8 +:100B900002C0880F991F0A94E2F7282B2083EA8568 +:100BA000FB858081088802C0440F551F0A94E2F734 +:100BB000842B8083DF91CF911F910F91FF90EF9055 +:100BC000DF90CF90BF90AF909F908F907F906F906D +:100BD0005F900895DC011296ED91FC911397E05817 +:100BE000FF4F8191919180589F4F20813181821BCD +:100BF000930B60E870E00E9415080895CF93DF938F +:100C0000DC011296ED91FC911397EF01CE57DF4F67 +:100C100048815981E058FF4F80819181E058F04030 +:100C20008417950719F42FEF3FEF0CC0E40FF51F61 +:100C30002081CA01019660E870E00E94150899833E +:100C4000888330E0C901DF91CF910895FC01A08530 +:100C5000B18521898C9190E0022E02C095958795EF +:100C60000A94E2F780FFF6CF0484F585E02D6083D7 +:100C7000089581E291E09093BE018093BD0189E3E4 +:100C800091E09093C0018093BF0185EC90E0909338 +:100C9000C2018093C10184EC90E09093C4018093E1 +:100CA000C30180EC90E09093C6018093C50181EC74 +:100CB00090E09093C8018093C70186EC90E09093F8 +:100CC000CA018093C90184E08093CB0183E08093C3 +:100CD000CC0187E08093CD0185E08093CE0181E057 +:100CE0008093CF0108950F931F93CF93DF938C01CF +:100CF000EB0109C02196D801ED91FC910190F081A2 +:100D0000E02DC801099568816623A1F7DF91CF9195 +:100D10001F910F910895EF92FF920F931F93CF931E +:100D2000DF938C017B01EA010CC0D7016D917D013D +:100D3000D801ED91FC910190F081E02DC801099559 +:100D40002197209791F7DF91CF911F910F91FF90FD +:100D5000EF900895DC01ED91FC910280F381E02D8C +:100D6000099508950F931F938C01DC01ED91FC917F +:100D70000190F081E02D6DE00995D801ED91FC9195 +:100D80000190F081E02DC8016AE009951F910F9153 +:100D900008952F923F924F925F926F927F928F921F +:100DA0009F92AF92BF92CF92DF92EF92FF920F93FA +:100DB0001F93DF93CF93CDB7DEB7A0970FB6F8940C +:100DC000DEBF0FBECDBF1C016A017B01411551057D +:100DD0006105710549F4DC01ED91FC910190F08110 +:100DE000E02D60E3099554C0882499245401422ED3 +:100DF00055246624772401E010E00C0F1D1F080D18 +:100E0000191DC701B601A30192010E942808F8012B +:100E100060830894811C911CA11CB11CC701B60100 +:100E2000A30192010E942808C901DA016C017D0129 +:100E3000C114D104E104F104F1F681E0E82EF12CB3 +:100E4000EC0EFD1EE80CF91C3E010894611C711C9F +:100E5000D501C4010197A109B1096C01C818D908CD +:100E600014C0F601EE0DFF1D60816A3010F4605D64 +:100E700001C0695CD101ED91FC910190F081E02D00 +:100E8000C10109950894E108F1086E147F0449F73F +:100E9000A0960FB6F894DEBF0FBECDBFCF91DF9105 +:100EA0001F910F91FF90EF90DF90CF90BF90AF9088 +:100EB0009F908F907F906F905F904F903F902F907A +:100EC0000895EF92FF920F931F93CF93DF93EC015E +:100ED0007A018B0177FF0FC0E881F9810190F081E1 +:100EE000E02D6DE2099510950095F094E094E11CD9 +:100EF000F11C011D111DCE01B801A7012AE00E94BD +:100F0000C906DF91CF911F910F91FF90EF90089547 +:100F10000F931F938C01AB01662757FD6095762FC9 +:100F20000E946107C8010E94B2061F910F910895A7 +:100F3000DC012115310541F4ED91FC910190F08126 +:100F4000E02D642F099508952A30310519F40E9487 +:100F5000610708950E94C90608952F923F924F920B +:100F60005F926F927F928F929F92AF92BF92CF9239 +:100F7000DF92EF92FF920F931F93DF93CF93CDB742 +:100F8000DEB73B014C0119012A016D897E898F89E9 +:100F9000988D6A197B098C099D09621A730A840A63 +:100FA000950AA40193010E94F607E218F3080409C8 +:100FB0001509A80197010E944A082A0D3B1D4C1DE6 +:100FC0005D1DB901CA01CF91DF911F910F91FF9073 +:100FD000EF90DF90CF90BF90AF909F908F907F90D9 +:100FE0006F905F904F903F902F900895629FD00137 +:100FF000739FF001829FE00DF11D649FE00DF11DD4 +:10100000929FF00D839FF00D749FF00D659FF00D82 +:101010009927729FB00DE11DF91F639FB00DE11D6F +:10102000F91FBD01CF011124089597FB092E072652 +:101030000AD077FD04D049D006D000201AF470956C +:1010400061957F4F0895F6F7909581959F4F08958C +:10105000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FBC +:10106000EE1FFF1FA217B307E407F50720F0A21B2E +:10107000B30BE40BF50B661F771F881F991F1A949B +:1010800069F760957095809590959B01AC01BD01C5 +:10109000CF01089597FB092E05260ED057FD04D0E9 +:1010A000D7DF0AD0001C38F4509540953095219533 +:1010B0003F4F4F4F5F4F0895F6F79095809570958D +:1010C00061957F4F8F4F9F4F0895AA1BBB1B51E126 +:1010D00007C0AA1FBB1FA617B70710F0A61BB70BA8 +:1010E000881F991F5A95A9F780959095BC01CD014D +:1010F0000895EE0FFF1F0590F491E02D0994F894E8 +:02110000FFCF1F +:10110200536F7920656C002000487962726964002F +:101112000D00030004000900140003000100000098 +:0811220000260673068B06008F +:00000001FF diff --git a/2009/firmware_lalalab/applet/firmware_lalalab.cpp.o b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.o new file mode 100644 index 0000000..5a59601 Binary files /dev/null and b/2009/firmware_lalalab/applet/firmware_lalalab.cpp.o differ diff --git a/2009/firmware_lalalab/applet/pins_arduino.c.o b/2009/firmware_lalalab/applet/pins_arduino.c.o new file mode 100644 index 0000000..62d00ac Binary files /dev/null and b/2009/firmware_lalalab/applet/pins_arduino.c.o differ diff --git a/2009/firmware_lalalab/applet/wiring.c.o b/2009/firmware_lalalab/applet/wiring.c.o new file mode 100644 index 0000000..8b0a300 Binary files /dev/null and b/2009/firmware_lalalab/applet/wiring.c.o differ diff --git a/2009/firmware_lalalab/applet/wiring_analog.c.o b/2009/firmware_lalalab/applet/wiring_analog.c.o new file mode 100644 index 0000000..550c6c1 Binary files /dev/null and b/2009/firmware_lalalab/applet/wiring_analog.c.o differ diff --git a/2009/firmware_lalalab/applet/wiring_digital.c.o b/2009/firmware_lalalab/applet/wiring_digital.c.o new file mode 100644 index 0000000..a63759a Binary files /dev/null and b/2009/firmware_lalalab/applet/wiring_digital.c.o differ diff --git a/2009/firmware_lalalab/applet/wiring_pulse.c.o b/2009/firmware_lalalab/applet/wiring_pulse.c.o new file mode 100644 index 0000000..a7b9b7b Binary files /dev/null and b/2009/firmware_lalalab/applet/wiring_pulse.c.o differ diff --git a/2009/firmware_lalalab/applet/wiring_shift.c.o b/2009/firmware_lalalab/applet/wiring_shift.c.o new file mode 100644 index 0000000..ea2abcf Binary files /dev/null and b/2009/firmware_lalalab/applet/wiring_shift.c.o differ diff --git a/2009/firmware_lalalab/firmware_lalalab.pde b/2009/firmware_lalalab/firmware_lalalab.pde new file mode 100644 index 0000000..75c23d4 --- /dev/null +++ b/2009/firmware_lalalab/firmware_lalalab.pde @@ -0,0 +1,108 @@ +int lowbat = 13; // Pin de bateria baja +int nivel = 3; //Sensor de nivel de bateria +int xbee = 4; //Pin de activacion del xbee +int buzzer = 9; + +int val = 0; // variable to store the value coming from the sensor +int i=0; +int rfid_ok=0; +int id=0; +int ini=20; +int env=3; + +void setup() +{ + Serial.begin(9600); + pinMode(lowbat, OUTPUT); + pinMode(xbee, OUTPUT); + pinMode(buzzer, OUTPUT); + for (i = 5; i < 9; i++) pinMode(i, INPUT); + for (i = 5; i < 9; i++) + { + if (digitalRead(i)) + { + if (i==5) val=1; + else if (i==6) val=2; + else if (i==7) val=4; + else if (i==8) val=8; + id=id+val; + } + } + digitalWrite(xbee, HIGH); //Habilito XBEE + delay(ini); + Serial.print("Soy el"); + delay(env); + Serial.print(" "); + delay(env); + Serial.print("Hybrid"); + delay(env); + Serial.print(" "); + delay(env); + Serial.println(id); + delay(env); + digitalWrite(lowbat, HIGH); + digitalWrite(xbee, LOW); //deshabilito XBEE + digitalWrite(buzzer, HIGH); + delay(300); + digitalWrite(buzzer, LOW); +} + + +void loop() +{ + + if (rfid_ok==1) + { + Serial.print(id,BYTE); + delay(env); + } + + while (Serial.available()>0) + { + if (rfid_ok==0) + { + delay(ini); + Serial.print(id,BYTE); + delay(env); + } + rfid_ok=1; + val=Serial.read(); + digitalWrite(xbee, HIGH); //Habilito XBEE + Serial.print(val,BYTE); + delay(env); + } + + if (rfid_ok==1) + { + for (i = 0; i < 3; i++) + { + val=analogRead(i); + /*Serial.print(":"); + delay(env);*/ + Serial.print(map(val, 0, 675, 0, 255),BYTE); + delay(env); + } + } + + if (rfid_ok==1) + { + val=analogRead(4); + /*Serial.print(":"); + delay(env);*/ + Serial.print(map(val, 0, 675, 0, 255),BYTE); + delay(env); + } + + val=analogRead(nivel); + if (val<=614) digitalWrite(lowbat, LOW); //Umbral de bateria baja 3v, que equivale a 614 + else digitalWrite(lowbat, HIGH); + if (rfid_ok==1) + { + /*Serial.print(":"); + delay(env);*/ + Serial.print(map(val, 0, 860, 0, 255),BYTE); //El maximo de tension de la bateria son 4'2v, que equivale a 860 + delay(env); + Serial.println(); + delay(env); + } +} diff --git a/2009/pad_gigante/applet/HardwareSerial.cpp.o b/2009/pad_gigante/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/pad_gigante/applet/HardwareSerial.cpp.o differ diff --git a/2009/pad_gigante/applet/Print.cpp.o b/2009/pad_gigante/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/pad_gigante/applet/Print.cpp.o differ diff --git a/2009/pad_gigante/applet/WInterrupts.c.o b/2009/pad_gigante/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/pad_gigante/applet/WInterrupts.c.o differ diff --git a/2009/pad_gigante/applet/WMath.cpp.o b/2009/pad_gigante/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/pad_gigante/applet/WMath.cpp.o differ diff --git a/2009/pad_gigante/applet/WRandom.cpp.o b/2009/pad_gigante/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/pad_gigante/applet/WRandom.cpp.o differ diff --git a/2009/pad_gigante/applet/core.a b/2009/pad_gigante/applet/core.a new file mode 100644 index 0000000..cb5979b Binary files /dev/null and b/2009/pad_gigante/applet/core.a differ diff --git a/2009/pad_gigante/applet/pad_gigante.cpp b/2009/pad_gigante/applet/pad_gigante.cpp new file mode 100644 index 0000000..068be40 --- /dev/null +++ b/2009/pad_gigante/applet/pad_gigante.cpp @@ -0,0 +1,44 @@ + +#include "WProgram.h" +void setup(); +void loop(); +int pad = 0; +int val_act=0; +int val_ant=0; +int flag = 0; +int res=10; + +void setup() +{ + Serial.begin(115200); + delay(100); + pinMode(pad, INPUT); + //digitalWrite(14,HIGH); +} + +void loop() +{ + val_act=analogRead(pad)/4; + if ((val_act>=val_ant+res)||(val_act<=val_ant-res)) + { + //Serial.print(val_act,BYTE); + Serial.println(val_act); + val_ant=val_act; + delay(10); + } +} + + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/pad_gigante/applet/pad_gigante.cpp.o b/2009/pad_gigante/applet/pad_gigante.cpp.o new file mode 100644 index 0000000..9a31c76 Binary files /dev/null and b/2009/pad_gigante/applet/pad_gigante.cpp.o differ diff --git a/2009/pad_gigante/applet/pad_gigante.elf b/2009/pad_gigante/applet/pad_gigante.elf new file mode 100644 index 0000000..5c7e504 Binary files /dev/null and b/2009/pad_gigante/applet/pad_gigante.elf differ diff --git a/2009/pad_gigante/applet/pad_gigante.hex b/2009/pad_gigante/applet/pad_gigante.hex new file mode 100644 index 0000000..3dbee8e --- /dev/null +++ b/2009/pad_gigante/applet/pad_gigante.hex @@ -0,0 +1,183 @@ +:100000000C945B000C9483000C9483000C9483008C +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C947C020C9483000C94FD040C948300AB +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000D40011241FBECFEFD4E0DEBF4B +:1000C000CDBF11E0A0E0B1E0ECE4FBE002C00590A0 +:1000D0000D92AA30B107D9F711E0AAE0B1E001C052 +:1000E0001D92A03AB107E1F710E0C6EBD0E004C0E2 +:1000F0002297FE010E94A005C43BD107C9F70E94C8 +:10010000CD000C94A4050C94000080910A010E947B +:100110005C0364E070E00E943A059B0170930D015E +:1001200060930C0140910E0150910F01609100010C +:1001300070910101CB01840F951F281739072CF40A +:10014000461B570B421753079CF0B90182E191E01F +:100150000E944C0280910C0190910D0190930F012F +:1001600080930E016AE070E080E090E00E94E70278 +:10017000089540E052EC61E070E082E191E00E947D +:10018000E80064E670E080E090E00E94E70260E052 +:1001900080910A010E94CE0308950E941F030E94CD +:1001A000B9000E948500FDCF86E091E09093130195 +:1001B000809312010895862F0E94BC0408950E9426 +:1001C000F40408950E94D50408950E94C40408957B +:1001D000CB01BA010E9483040895DC01ED91FC91EA +:1001E0000190F081E02D09950895DC01ED91FC91DD +:1001F0000190F081E02D099508950F931F93CF93FF +:10020000DF938C01EB0109C02196D801ED91FC919F +:100210000190F081E02DC801099568816623A1F75E +:10022000DF91CF911F910F9108950F931F938C0130 +:10023000DC01ED91FC910190F081E02D6DE00995DC +:10024000D801ED91FC910190F081E02D6AE0C801A8 +:1002500009951F910F9108950F931F938C01DC0155 +:10026000ED91FC910190F081E02D0995C8010E946B +:1002700015011F910F9108950F931F938C010E94F8 +:10028000FD00C8010E9415011F910F9108950F9361 +:100290001F938C01DC01ED91FC910190F081E02D28 +:1002A0000995C8010E9415011F910F9108952F9281 +:1002B0003F924F925F926F927F928F929F92AF92F6 +:1002C000BF92CF92DF92EF92FF920F931F93DF9333 +:1002D000CF93CDB7DEB7A0970FB6F894DEBF0FBEB1 +:1002E000CDBF1C016A017B014115510561057105F6 +:1002F00049F4DC01ED91FC910190F081E02D60E387 +:10030000099554C0882499245401422E552466240A +:10031000772401E010E00C0F1D1F080D191DC70107 +:10032000B601A30192010E944D05F8016083089473 +:10033000811C911CA11CB11CC701B601A301920133 +:100340000E944D05C901DA016C017D01C114D1047F +:10035000E104F104F1F681E0E82EF12CEC0EFD1E33 +:10036000E80CF91C3E010894611C711CD501C40104 +:100370000197A109B1096C01C818D90814C0F60188 +:10038000EE0DFF1D60816A3010F4605D01C0695C94 +:10039000D101ED91FC910190F081E02DC101099511 +:1003A0000894E108F1086E147F0449F7A0960FB68F +:1003B000F894DEBF0FBECDBFCF91DF911F910F919B +:1003C000FF90EF90DF90CF90BF90AF909F908F9075 +:1003D0007F906F905F904F903F902F9008952AE00C +:1003E0000E94570108950F931F938C010E94EF0103 +:1003F000C8010E9415011F910F910895AB0160E0A3 +:1004000070E00E94EF0108950F931F938C01AB01E0 +:1004100060E070E00E94EF01C8010E9415011F9189 +:100420000F910895EF92FF920F931F93CF93DF9355 +:10043000EC017A018B0177FF0FC0E881F98101900F +:10044000F081E02D6DE2099510950095F094E0940F +:10045000E11CF11C011D111D2AE0B801A701CE010C +:100460000E945701DF91CF911F910F91FF90EF9064 +:1004700008950F931F938C010E941202C8010E94DD +:1004800015011F910F910895AB01662757FD6095E7 +:10049000762F0E94120208950F931F938C01AB01D7 +:1004A000662757FD6095762F0E941202C8010E94B0 +:1004B00015011F910F910895DC012115310541F4BB +:1004C000ED91FC910190F081E02D642F0995089544 +:1004D0002A30310519F40E94120208950E94570132 +:1004E00008950F931F938C010E945C02C8010E9423 +:1004F00015011F910F9108951F920F920FB60F9241 +:1005000011242F938F939F93AF93BF9380911401E6 +:1005100090911501A0911601B09117018050904C57 +:10052000AF4FBF4F8093140190931501A093160114 +:10053000B093170127C08091140190911501A091EB +:100540001601B091170180589E43A040B04080939F +:10055000140190931501A0931601B0931701809197 +:10056000180190911901A0911A01B0911B010196F7 +:10057000A11DB11D8093180190931901A0931A0138 +:10058000B0931B018091140190911501A091160167 +:10059000B091170181589E43A040B04060F6BF91D2 +:1005A000AF919F918F912F910F900FBE0F901F9041 +:1005B00018958FB7F8942091180130911901409146 +:1005C0001A0150911B018FBFB901CA010895EF9222 +:1005D000FF920F931F937B018C018FB7F89440918A +:1005E00018015091190160911A0170911B018FBF80 +:1005F0002FB7F8948091180190911901A0911A01D8 +:10060000B0911B012FBF841B950BA60BB70B8E154A +:100610009F05A007B10760F31F910F91FF90EF9026 +:100620000895019759F0FC01EE0FFF1FEE0FFF1F19 +:1006300032978FB7F8943197F1F78FBF0895789478 +:1006400084B5826084BD84B5816084BD85B58260D7 +:1006500085BD85B5816085BDEEE6F0E08081816075 +:100660008083E1E8F0E08081826080838081816026 +:100670008083E0E8F0E0808181608083E1EBF0E05E +:10068000808184608083E0EBF0E080818160808302 +:10069000EAE7F0E0808184608083808182608083EB +:1006A0008081816080838081806880831092C10016 +:1006B00008958093080108958F7090910801929594 +:1006C000990F990F907C982B90937C0080917A00E1 +:1006D000806480937A0080917A0086FDFCCF20911F +:1006E000780040917900942F80E030E0282B392B5E +:1006F000C90108951F93CF93DF93182FEB0161E099 +:100700000E94CE03E12FF0E0E156FF4F8491833049 +:1007100051F480918000806880938000D09389009C +:10072000C093880037C0843051F48091800080628B +:1007300080938000D0938B00C0938A002BC08130BF +:1007400029F484B5806884BDC7BD24C0823029F4F3 +:1007500084B5806284BDC8BD1DC0863041F48091DF +:10076000B00080688093B000C093B30013C087309E +:1007700041F48091B00080628093B000C093B400D7 +:1007800009C0C038D10514F460E001C061E0812FD8 +:100790000E94EC03DF91CF911F910895282F30E044 +:1007A000C90185579F4FFC01949129583F4FF9018A +:1007B0008491882381F0E82FF0E0E859FF4FE4911D +:1007C000F0E0662329F48081909589238083089541 +:1007D0008081892B80830895482F50E0CA0181567B +:1007E0009F4FFC012491CA0185579F4FFC019491B2 +:1007F00049585F4FFA0134913323C1F1222331F17B +:10080000233021F4809180008F7705C0243031F4AB +:10081000809180008F7D8093800018C0213019F472 +:1008200084B58F7704C0223021F484B58F7D84BDD8 +:100830000DC0263021F48091B0008F7705C027309D +:1008400029F48091B0008F7D8093B000E32FF0E019 +:10085000E359FF4FE491F0E0662329F480819095FD +:100860008923808308958081892B80830895482F70 +:1008700050E0CA0181569F4FFC012491CA0185575F +:100880009F4FFC01949149585F4FFA0134913323F3 +:1008900019F420E030E035C0222331F1233021F477 +:1008A000809180008F7705C0243031F480918000E2 +:1008B0008F7D8093800018C0213019F484B58F7724 +:1008C00004C0223021F484B58F7D84BD0DC0263054 +:1008D00021F48091B0008F7705C0273029F48091F2 +:1008E000B0008F7D8093B000E32FF0E0EE58FF4F13 +:1008F000E491F0E0808120E030E0892311F021E0F4 +:1009000030E0C9010895EF92FF920F931F937B018E +:100910008C0122E030E040E050E00E946F05205C56 +:100920003D4B404F5F4FCA01B901A80197010E949A +:100930006F05C901DA010197A109B109292F3A2FE1 +:100940004B2F552747FD5A950196A11DB11D2093A8 +:10095000C50081508093C400E1ECF0E080818061AB +:1009600080838081886080838081806880831F91FC +:100970000F91FF90EF900895982F8091C00085FF10 +:10098000FCCF9093C600089580911C0190911D01A9 +:1009900080589F4F20911E0130911F01821B930BA5 +:1009A00060E870E00E943A05089540911E01509160 +:1009B0001F0180911C0190911D018417950719F466 +:1009C0002FEF3FEF0FC0FA01E05EFE4F2081CA011A +:1009D000019660E870E00E943A0590931F018093B1 +:1009E0001E0130E0C901089580911E0190911F0100 +:1009F00090931D0180931C0108951F920F920FB6D2 +:100A00000F9211242F933F934F935F936F937F9394 +:100A10008F939F93AF93BF93EF93FF934091C60043 +:100A2000E0911C01F0911D01CF01019660E870E09A +:100A30000E943A059C0180911E0190911F01281788 +:100A4000390739F0E05EFE4F408330931D0120935B +:100A50001C01FF91EF91BF91AF919F918F917F9179 +:100A60006F915F914F913F912F910F900FBE0F901B +:100A70001F90189597FB092E07260AD077FD04D002 +:100A800049D006D000201AF4709561957F4F0895E3 +:100A9000F6F7909581959F4F0895A1E21A2EAA1B13 +:100AA000BB1BFD010DC0AA1FBB1FEE1FFF1FA2171E +:100AB000B307E407F50720F0A21BB30BE40BF50B1B +:100AC000661F771F881F991F1A9469F760957095A4 +:100AD000809590959B01AC01BD01CF01089597FBD6 +:100AE000092E05260ED057FD04D0D7DF0AD0001CF2 +:100AF00038F450954095309521953F4F4F4F5F4FBB +:100B00000895F6F790958095709561957F4F8F4F7A +:100B10009F4F0895AA1BBB1B51E107C0AA1FBB1F13 +:100B2000A617B70710F0A61BB70B881F991F5A9579 +:100B3000A9F780959095BC01CD010895EE0FFF1F98 +:0C0B40000590F491E02D0994F894FFCF8B +:0A0B4C000A0000000000DB000100B9 +:00000001FF diff --git a/2009/pad_gigante/applet/pad_gigante.pde b/2009/pad_gigante/applet/pad_gigante.pde new file mode 100644 index 0000000..f845da6 --- /dev/null +++ b/2009/pad_gigante/applet/pad_gigante.pde @@ -0,0 +1,27 @@ + +int pad = 0; +int val_act=0; +int val_ant=0; +int flag = 0; +int res=10; + +void setup() +{ + Serial.begin(115200); + delay(100); + pinMode(pad, INPUT); + //digitalWrite(14,HIGH); +} + +void loop() +{ + val_act=analogRead(pad)/4; + if ((val_act>=val_ant+res)||(val_act<=val_ant-res)) + { + Serial.print(val_act,BYTE); + val_ant=val_act; + delay(10); + } +} + + diff --git a/2009/pad_gigante/applet/pad_gigante.rom b/2009/pad_gigante/applet/pad_gigante.rom new file mode 100644 index 0000000..827bb42 --- /dev/null +++ b/2009/pad_gigante/applet/pad_gigante.rom @@ -0,0 +1,184 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4D697320646F63FD +S11300000C945B000C9483000C9483000C94830088 +S11300100C9483000C9483000C9483000C94830050 +S11300200C9483000C9483000C9483000C94830040 +S11300300C9483000C9483000C9483000C94830030 +S11300400C947C020C9483000C94FD040C948300A7 +S11300500C9483000C9483000C9483000C94830010 +S11300600C9483000C948300000024272A000025AC +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B000000000D40011241FBECFEFD4E0DEBF47 +S11300C0CDBF11E0A0E0B1E0ECE4FBE002C005909C +S11300D00D92AA30B107D9F711E0AAE0B1E001C04E +S11300E01D92A03AB107E1F710E0C6EBD0E004C0DE +S11300F02297FE010E94A005C43BD107C9F70E94C4 +S1130100CD000C94A4050C94000080910A010E9477 +S11301105C0364E070E00E943A059B0170930D015A +S113012060930C0140910E0150910F016091000108 +S113013070910101CB01840F951F281739072CF406 +S1130140461B570B421753079CF0B90182E191E01B +S11301500E944C0280910C0190910D0190930F012B +S113016080930E016AE070E080E090E00E94E70274 +S1130170089540E052EC61E070E082E191E00E9479 +S1130180E80064E670E080E090E00E94E70260E04E +S113019080910A010E94CE0308950E941F030E94C9 +S11301A0B9000E948500FDCF86E091E09093130191 +S11301B0809312010895862F0E94BC0408950E9422 +S11301C0F40408950E94D50408950E94C404089577 +S11301D0CB01BA010E9483040895DC01ED91FC91E6 +S11301E00190F081E02D09950895DC01ED91FC91D9 +S11301F00190F081E02D099508950F931F93CF93FB +S1130200DF938C01EB0109C02196D801ED91FC919B +S11302100190F081E02DC801099568816623A1F75A +S1130220DF91CF911F910F9108950F931F938C012C +S1130230DC01ED91FC910190F081E02D6DE00995D8 +S1130240D801ED91FC910190F081E02D6AE0C801A4 +S113025009951F910F9108950F931F938C01DC0151 +S1130260ED91FC910190F081E02D0995C8010E9467 +S113027015011F910F9108950F931F938C010E94F4 +S1130280FD00C8010E9415011F910F9108950F935D +S11302901F938C01DC01ED91FC910190F081E02D24 +S11302A00995C8010E9415011F910F9108952F927D +S11302B03F924F925F926F927F928F929F92AF92F2 +S11302C0BF92CF92DF92EF92FF920F931F93DF932F +S11302D0CF93CDB7DEB7A0970FB6F894DEBF0FBEAD +S11302E0CDBF1C016A017B014115510561057105F2 +S11302F049F4DC01ED91FC910190F081E02D60E383 +S1130300099554C0882499245401422E5524662406 +S1130310772401E010E00C0F1D1F080D191DC70103 +S1130320B601A30192010E944D05F801608308946F +S1130330811C911CA11CB11CC701B601A30192012F +S11303400E944D05C901DA016C017D01C114D1047B +S1130350E104F104F1F681E0E82EF12CEC0EFD1E2F +S1130360E80CF91C3E010894611C711CD501C40100 +S11303700197A109B1096C01C818D90814C0F60184 +S1130380EE0DFF1D60816A3010F4605D01C0695C90 +S1130390D101ED91FC910190F081E02DC10109950D +S11303A00894E108F1086E147F0449F7A0960FB68B +S11303B0F894DEBF0FBECDBFCF91DF911F910F9197 +S11303C0FF90EF90DF90CF90BF90AF909F908F9071 +S11303D07F906F905F904F903F902F9008952AE008 +S11303E00E94570108950F931F938C010E94EF01FF +S11303F0C8010E9415011F910F910895AB0160E09F +S113040070E00E94EF0108950F931F938C01AB01DC +S113041060E070E00E94EF01C8010E9415011F9185 +S11304200F910895EF92FF920F931F93CF93DF9351 +S1130430EC017A018B0177FF0FC0E881F98101900B +S1130440F081E02D6DE2099510950095F094E0940B +S1130450E11CF11C011D111D2AE0B801A701CE0108 +S11304600E945701DF91CF911F910F91FF90EF9060 +S113047008950F931F938C010E941202C8010E94D9 +S113048015011F910F910895AB01662757FD6095E3 +S1130490762F0E94120208950F931F938C01AB01D3 +S11304A0662757FD6095762F0E941202C8010E94AC +S11304B015011F910F910895DC012115310541F4B7 +S11304C0ED91FC910190F081E02D642F0995089540 +S11304D02A30310519F40E94120208950E9457012E +S11304E008950F931F938C010E945C02C8010E941F +S11304F015011F910F9108951F920F920FB60F923D +S113050011242F938F939F93AF93BF9380911401E2 +S113051090911501A0911601B09117018050904C53 +S1130520AF4FBF4F8093140190931501A093160110 +S1130530B093170127C08091140190911501A091E7 +S11305401601B091170180589E43A040B04080939B +S1130550140190931501A0931601B0931701809193 +S1130560180190911901A0911A01B0911B010196F3 +S1130570A11DB11D8093180190931901A0931A0134 +S1130580B0931B018091140190911501A091160163 +S1130590B091170181589E43A040B04060F6BF91CE +S11305A0AF919F918F912F910F900FBE0F901F903D +S11305B018958FB7F8942091180130911901409142 +S11305C01A0150911B018FBFB901CA010895EF921E +S11305D0FF920F931F937B018C018FB7F894409186 +S11305E018015091190160911A0170911B018FBF7C +S11305F02FB7F8948091180190911901A0911A01D4 +S1130600B0911B012FBF841B950BA60BB70B8E1546 +S11306109F05A007B10760F31F910F91FF90EF9022 +S11306200895019759F0FC01EE0FFF1FEE0FFF1F15 +S113063032978FB7F8943197F1F78FBF0895789474 +S113064084B5826084BD84B5816084BD85B58260D3 +S113065085BD85B5816085BDEEE6F0E08081816071 +S11306608083E1E8F0E08081826080838081816022 +S11306708083E0E8F0E0808181608083E1EBF0E05A +S1130680808184608083E0EBF0E0808181608083FE +S1130690EAE7F0E0808184608083808182608083E7 +S11306A08081816080838081806880831092C10012 +S11306B008958093080108958F7090910801929590 +S11306C0990F990F907C982B90937C0080917A00DD +S11306D0806480937A0080917A0086FDFCCF20911B +S11306E0780040917900942F80E030E0282B392B5A +S11306F0C90108951F93CF93DF93182FEB0161E095 +S11307000E94CE03E12FF0E0E156FF4F8491833045 +S113071051F480918000806880938000D093890098 +S1130720C093880037C0843051F480918000806287 +S113073080938000D0938B00C0938A002BC08130BB +S113074029F484B5806884BDC7BD24C0823029F4EF +S113075084B5806284BDC8BD1DC0863041F48091DB +S1130760B00080688093B000C093B30013C087309A +S113077041F48091B00080628093B000C093B400D3 +S113078009C0C038D10514F460E001C061E0812FD4 +S11307900E94EC03DF91CF911F910895282F30E040 +S11307A0C90185579F4FFC01949129583F4FF90186 +S11307B08491882381F0E82FF0E0E859FF4FE49119 +S11307C0F0E0662329F4808190958923808308953D +S11307D08081892B80830895482F50E0CA01815677 +S11307E09F4FFC012491CA0185579F4FFC019491AE +S11307F049585F4FFA0134913323C1F1222331F177 +S1130800233021F4809180008F7705C0243031F4A7 +S1130810809180008F7D8093800018C0213019F46E +S113082084B58F7704C0223021F484B58F7D84BDD4 +S11308300DC0263021F48091B0008F7705C0273099 +S113084029F48091B0008F7D8093B000E32FF0E015 +S1130850E359FF4FE491F0E0662329F480819095F9 +S11308608923808308958081892B80830895482F6C +S113087050E0CA0181569F4FFC012491CA0185575B +S11308809F4FFC01949149585F4FFA0134913323EF +S113089019F420E030E035C0222331F1233021F473 +S11308A0809180008F7705C0243031F480918000DE +S11308B08F7D8093800018C0213019F484B58F7720 +S11308C004C0223021F484B58F7D84BD0DC0263050 +S11308D021F48091B0008F7705C0273029F48091EE +S11308E0B0008F7D8093B000E32FF0E0EE58FF4F0F +S11308F0E491F0E0808120E030E0892311F021E0F0 +S113090030E0C9010895EF92FF920F931F937B018A +S11309108C0122E030E040E050E00E946F05205C52 +S11309203D4B404F5F4FCA01B901A80197010E9496 +S11309306F05C901DA010197A109B109292F3A2FDD +S11309404B2F552747FD5A950196A11DB11D2093A4 +S1130950C50081508093C400E1ECF0E080818061A7 +S113096080838081886080838081806880831F91F8 +S11309700F91FF90EF900895982F8091C00085FF0C +S1130980FCCF9093C600089580911C0190911D01A5 +S113099080589F4F20911E0130911F01821B930BA1 +S11309A060E870E00E943A05089540911E0150915C +S11309B01F0180911C0190911D018417950719F462 +S11309C02FEF3FEF0FC0FA01E05EFE4F2081CA0116 +S11309D0019660E870E00E943A0590931F018093AD +S11309E01E0130E0C901089580911E0190911F01FC +S11309F090931D0180931C0108951F920F920FB6CE +S1130A000F9211242F933F934F935F936F937F9390 +S1130A108F939F93AF93BF93EF93FF934091C6003F +S1130A20E0911C01F0911D01CF01019660E870E096 +S1130A300E943A059C0180911E0190911F01281784 +S1130A40390739F0E05EFE4F408330931D01209357 +S1130A501C01FF91EF91BF91AF919F918F917F9175 +S1130A606F915F914F913F912F910F900FBE0F9017 +S1130A701F90189597FB092E07260AD077FD04D0FE +S1130A8049D006D000201AF4709561957F4F0895DF +S1130A90F6F7909581959F4F0895A1E21A2EAA1B0F +S1130AA0BB1BFD010DC0AA1FBB1FEE1FFF1FA2171A +S1130AB0B307E407F50720F0A21BB30BE40BF50B17 +S1130AC0661F771F881F991F1A9469F760957095A0 +S1130AD0809590959B01AC01BD01CF01089597FBD2 +S1130AE0092E05260ED057FD04D0D7DF0AD0001CEE +S1130AF038F450954095309521953F4F4F4F5F4FB7 +S1130B000895F6F790958095709561957F4F8F4F76 +S1130B109F4F0895AA1BBB1B51E107C0AA1FBB1F0F +S1130B20A617B70710F0A61BB70B881F991F5A9575 +S1130B30A9F780959095BC01CD010895EE0FFF1F94 +S10F0B400590F491E02D0994F894FFCF87 +S10D0B4C0A0000000000DB000100B5 +S9030000FC diff --git a/2009/pad_gigante/applet/pins_arduino.c.o b/2009/pad_gigante/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/pad_gigante/applet/pins_arduino.c.o differ diff --git a/2009/pad_gigante/applet/wiring.c.o b/2009/pad_gigante/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/pad_gigante/applet/wiring.c.o differ diff --git a/2009/pad_gigante/applet/wiring_analog.c.o b/2009/pad_gigante/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/pad_gigante/applet/wiring_analog.c.o differ diff --git a/2009/pad_gigante/applet/wiring_digital.c.o b/2009/pad_gigante/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/pad_gigante/applet/wiring_digital.c.o differ diff --git a/2009/pad_gigante/applet/wiring_pulse.c.o b/2009/pad_gigante/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/pad_gigante/applet/wiring_pulse.c.o differ diff --git a/2009/pad_gigante/applet/wiring_serial.c.o b/2009/pad_gigante/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/pad_gigante/applet/wiring_serial.c.o differ diff --git a/2009/pad_gigante/applet/wiring_shift.c.o b/2009/pad_gigante/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/pad_gigante/applet/wiring_shift.c.o differ diff --git a/2009/pad_gigante/pad_gigante.pde b/2009/pad_gigante/pad_gigante.pde new file mode 100644 index 0000000..f845da6 --- /dev/null +++ b/2009/pad_gigante/pad_gigante.pde @@ -0,0 +1,27 @@ + +int pad = 0; +int val_act=0; +int val_ant=0; +int flag = 0; +int res=10; + +void setup() +{ + Serial.begin(115200); + delay(100); + pinMode(pad, INPUT); + //digitalWrite(14,HIGH); +} + +void loop() +{ + val_act=analogRead(pad)/4; + if ((val_act>=val_ant+res)||(val_act<=val_ant-res)) + { + Serial.print(val_act,BYTE); + val_ant=val_act; + delay(10); + } +} + + diff --git a/2009/particula/applet/HardwareSerial.cpp.o b/2009/particula/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..6106644 Binary files /dev/null and b/2009/particula/applet/HardwareSerial.cpp.o differ diff --git a/2009/particula/applet/Print.cpp.o b/2009/particula/applet/Print.cpp.o new file mode 100644 index 0000000..8bfb06d Binary files /dev/null and b/2009/particula/applet/Print.cpp.o differ diff --git a/2009/particula/applet/WInterrupts.c.o b/2009/particula/applet/WInterrupts.c.o new file mode 100644 index 0000000..5068da7 Binary files /dev/null and b/2009/particula/applet/WInterrupts.c.o differ diff --git a/2009/particula/applet/WMath.cpp.o b/2009/particula/applet/WMath.cpp.o new file mode 100644 index 0000000..b658d5a Binary files /dev/null and b/2009/particula/applet/WMath.cpp.o differ diff --git a/2009/particula/applet/core.a b/2009/particula/applet/core.a new file mode 100644 index 0000000..a7e8de8 Binary files /dev/null and b/2009/particula/applet/core.a differ diff --git a/2009/particula/applet/particula.cpp b/2009/particula/applet/particula.cpp new file mode 100644 index 0000000..1bfeef8 --- /dev/null +++ b/2009/particula/applet/particula.cpp @@ -0,0 +1,98 @@ +#include "WProgram.h" +void setup(); +void loop(); +byte flag=0; +int ledState = 0; +int interval = 1000; +int previousMillis = 0; + +int rele = 10; +int led = 14; +int pulsador = 15; +int gnd = 16; +int mode = 17; +int clock_pin = 8; +int clock_gnd = 9; + + +byte val =0x00; + + +void setup() { + Serial.begin(19200); + pinMode(rele, OUTPUT); + pinMode(pulsador, INPUT); + pinMode(led, OUTPUT); + pinMode(mode, INPUT); + pinMode(gnd, OUTPUT); + pinMode(clock_pin, OUTPUT); + pinMode(clock_gnd, OUTPUT); + + digitalWrite(rele, LOW); + digitalWrite(pulsador, HIGH); + digitalWrite(led, HIGH); + digitalWrite(mode, HIGH); + digitalWrite(gnd, LOW); + digitalWrite(clock_gnd, LOW); + digitalWrite(clock_pin, HIGH); + delay(100); + digitalWrite(clock_pin, LOW); +} + +void loop() { + if (!digitalRead(pulsador)) + { + Serial.print(0, BYTE); // activado + } + else if (digitalRead(pulsador)) + { + Serial.print(1, BYTE); // desactivado + } + if (!digitalRead(mode)) + { + Serial.print(2, BYTE); // modo automatico + if (millis() - previousMillis > interval) { + previousMillis = millis(); + if (ledState == LOW) + ledState = HIGH; + else + ledState = LOW; + + digitalWrite(led, ledState); + } + } + else if (digitalRead(mode)) + { + Serial.print(3, BYTE); // modo manual + } + + delay(100); + + if(Serial.available() > 0) + { + val = Serial.read(); + if (val==0x10) digitalWrite(rele,HIGH); + else if (val==0x20) digitalWrite(rele, LOW); + else if (val==0x30) + { + digitalWrite(clock_pin, HIGH); + delay(100); + digitalWrite(clock_pin, LOW); + } + } +} + + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/particula/applet/particula.cpp.eep b/2009/particula/applet/particula.cpp.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/particula/applet/particula.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/particula/applet/particula.cpp.elf b/2009/particula/applet/particula.cpp.elf new file mode 100644 index 0000000..961821d Binary files /dev/null and b/2009/particula/applet/particula.cpp.elf differ diff --git a/2009/particula/applet/particula.cpp.hex b/2009/particula/applet/particula.cpp.hex new file mode 100644 index 0000000..9f9431c --- /dev/null +++ b/2009/particula/applet/particula.cpp.hex @@ -0,0 +1,208 @@ +:100000000C9462000C948A000C948A000C948A0070 +:100010000C948A000C948A000C948A000C948A0038 +:100020000C948A000C948A000C948A000C948A0028 +:100030000C948A000C948A000C948A000C948A0018 +:100040000C9497010C948A000C940D030C948A0074 +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C948A000C948A000000000024002700F1 +:100070002A0000000000250028002B0000000000DE +:1000800023002600290004040404040404040202DA +:100090000202020203030303030301020408102007 +:1000A0004080010204081020010204081020000012 +:1000B0000007000201000003040600000000000029 +:1000C0000000920411241FBECFEFD8E0DEBFCDBFE9 +:1000D00011E0A0E0B1E0E4ECFCE002C005900D927C +:1000E000AA31B107D9F711E0AAE1B1E001C01D9230 +:1000F000AF3BB107E1F710E0C4ECD0E004C02297B9 +:10010000FE010E945C06C23CD107C9F70E94900123 +:100110000C9460060C940000809106010E94BE02BF +:10012000892B39F48CEA91E040E050E060E070E027 +:100130000CC0809106010E94BE02892B51F08CEA0E +:1001400091E041E050E060E070E020E030E00E94AB +:10015000C20580910A010E94BE02892B09F043C0AA +:100160008CEA91E042E050E060E070E020E030E0B6 +:100170000E94C2050E94DF0120911C0130911D01E7 +:10018000442737FD4095542F621B730B840B950B4E +:100190002091000130910101442737FD4095542FF3 +:1001A000261737074807590770F50E94DF0170933B +:1001B0001D0160931C0180911A0190911B01892BF4 +:1001C00039F481E090E090931B0180931A0104C000 +:1001D00010921B0110921A018091040160911A0182 +:1001E0000E94710210C080910A010E94BE02892BF8 +:1001F00051F08CEA91E043E050E060E070E020E0F4 +:1002000030E00E94C20564E670E080E090E00E9469 +:10021000ED018CEA91E00E944304882331F18CEADD +:1002200091E00E94570480931E01803121F4809157 +:10023000020161E005C0803231F48091020160E08A +:100240000E9471020895803381F480910C0161E075 +:100250000E94710264E670E080E090E00E94ED018F +:1002600080910C0160E00E94710208958CEA91E097 +:1002700040E05BE460E070E00E944A03809102018C +:1002800061E00E9451028091060160E00E945102EB +:100290008091040161E00E94510280910A0160E0B6 +:1002A0000E9451028091080161E00E9451028091F8 +:1002B0000C0161E00E94510280910E0161E00E94F8 +:1002C00051028091020160E00E947102809106015A +:1002D00061E00E9471028091040161E00E9471025C +:1002E00080910A0161E00E9471028091080160E042 +:1002F0000E94710280910E0160E00E947102809163 +:100300000C0161E00E94710264E670E080E090E020 +:100310000E94ED0180910C0160E00E94710208953D +:100320000E9417020E9436010E948C00FDCF1F928E +:100330000F920FB60F9211242F933F938F939F9399 +:10034000AF93BF938091230190912401A091250147 +:10035000B0912601309127010196A11DB11D232FD7 +:100360002D5F2D3720F02D570196A11DB11D209333 +:1003700027018093230190932401A0932501B0933A +:10038000260180911F0190912001A0912101B0913F +:1003900022010196A11DB11D80931F0190932001A0 +:1003A000A0932101B0932201BF91AF919F918F91B2 +:1003B0003F912F910F900FBE0F901F9018958FB700 +:1003C000F89420912301309124014091250150910E +:1003D00026018FBFB901CA010895EF92FF920F93D2 +:1003E0001F937B018C018FB7F894409123015091AA +:1003F000240160912501709126018FBF2FB7F894D9 +:100400008091230190912401A0912501B0912601B2 +:100410002FBF841B950BA60BB70BE816F9060A072E +:100420001B0760F71F910F91FF90EF90089578944C +:1004300084B5826084BD84B5816084BD85B58260E9 +:1004400085BD85B5816085BDEEE6F0E08081816087 +:100450008083E1E8F0E08081826080838081816038 +:100460008083E0E8F0E0808181608083E1EBF0E070 +:10047000808184608083E0EBF0E080818160808314 +:10048000EAE7F0E0808184608083808182608083FD +:100490008081816080838081806880831092C10028 +:1004A0000895282F30E0C90186569F4FFC01949192 +:1004B0002A573F4FF9018491882391F0E82FF0E00B +:1004C000EE0FFF1FE859FF4FA591B491662329F461 +:1004D0008C91909589238C9308958C91892B8C9382 +:1004E0000895482F50E0CA0182559F4FFC01249186 +:1004F000CA0186569F4FFC0194914A575F4FFA01FB +:1005000034913323D1F1222331F1233021F480912E +:1005100080008F7705C0243031F4809180008F7D7A +:100520008093800018C0213019F484B58F7704C0FF +:10053000223021F484B58F7D84BD0DC0263021F496 +:100540008091B0008F7705C0273029F48091B000EA +:100550008F7D8093B000E32FF0E0EE0FFF1FEE5889 +:10056000FF4FA591B491662329F48C91909589232E +:100570008C9308958C91892B8C930895682F70E04B +:10058000CB0182559F4FFC012491CB0186569F4F92 +:10059000FC0144916A577F4FFB019491992319F410 +:1005A00020E030E038C0222331F1233021F4809163 +:1005B00080008F7705C0243031F4809180008F7DDA +:1005C0008093800018C0213019F484B58F7704C05F +:1005D000223021F484B58F7D84BD0DC0263021F4F6 +:1005E0008091B0008F7705C0273029F48091B0004A +:1005F0008F7D8093B000892F90E0880F991F8458D9 +:100600009F4FFC01A591B4918C9120E030E08423B0 +:1006100011F021E030E0C90108951F920F920FB64A +:100620000F9211242F933F934F935F936F937F9378 +:100630008F939F93AF93BF93EF93FF934091C60027 +:10064000E091A801F091A901CF01019660E870E066 +:100650000E94F6059C018091AA019091AB01281798 +:10066000390739F0E85DFE4F40833093A9012093AC +:10067000A801FF91EF91BF91AF919F918F917F91D1 +:100680006F915F914F913F912F910F900FBE0F90FF +:100690001F9018955F926F927F928F929F92AF9268 +:1006A000BF92CF92DF92EF92FF920F931F93CF935F +:1006B000DF93EC013A014B01413482E458078FE0AB +:1006C000680780E078070CF07FC060E874E88EE18E +:1006D00090E0A40193010E942B062150304040403D +:1006E0005040CA01B90122E030E040E050E00E94F1 +:1006F0002B0659016A01A601950120953095409578 +:10070000509594E0220F331F441F551F9A95D1F73F +:1007100060E074E284EF90E00E942B06CA01B90108 +:100720002FEF30E040E050E00E94D705A401930194 +:100730000E942B06C90181509F4F181619061CF400 +:10074000522E5A9403C055245394521A60E079E013 +:100750008DE390E0A40193010E942B0621503040CC +:1007600040405040CA01B90122E030E040E050E092 +:100770000E942B06209530954095509583E0220FDE +:10078000331F441F551F8A95D1F760E074E284EF50 +:1007900090E00E942B06CA01B9012FEF30E040E043 +:1007A00050E00E94D705A40193010E942B06C901C5 +:1007B00081509F4F181619061CF4822F815002C0D9 +:1007C00081E0821B851500F5E885F98581E090E0E0 +:1007D0000A8802C0880F991F0A94E2F7808360E0BC +:1007E00079E08DE390E0A40193010E942B06215053 +:1007F000304040405040CA01B90122E030E040E0C2 +:1008000050E00E942B0604C0E885F985108295010E +:10081000EC81FD813083EE81FF812083EA85FB85B9 +:10082000208141E050E0CA010E8402C0880F991F68 +:100830000A94E2F7282B2083EA85FB852081CA01F0 +:100840000F8402C0880F991F0A94E2F7282B208397 +:10085000EA85FB858081088802C0440F551F0A94F1 +:10086000E2F7842B8083DF91CF911F910F91FF904E +:10087000EF90DF90CF90BF90AF909F908F907F9040 +:100880006F905F900895DC011296ED91FC911397A3 +:10089000E058FF4F8191919180589F4F2081318185 +:1008A000821B930B60E870E00E94F6050895CF93D9 +:1008B000DF93DC011296ED91FC911397EF01CE5777 +:1008C000DF4F48815981E058FF4F80819181E05886 +:1008D000F0408417950719F42FEF3FEF0CC0E40F99 +:1008E000F51F2081CA01019660E870E00E94F605BC +:1008F0009983888330E0C901DF91CF910895FC018D +:10090000A085B18521898C9190E0022E02C0959539 +:1009100087950A94E2F780FFF6CF0484F585E02DF1 +:100920006083089584E191E09093AD018093AC01E0 +:1009300088E291E09093AF018093AE0185EC90E066 +:100940009093B1018093B00184EC90E09093B30157 +:100950008093B20180EC90E09093B5018093B40154 +:1009600081EC90E09093B7018093B60186EC90E023 +:100970009093B9018093B80184E08093BA0183E039 +:100980008093BB0187E08093BC0185E08093BD012B +:1009900081E08093BE0108950F931F93CF93DF935F +:1009A0008C01EB0109C02196D801ED91FC910190D9 +:1009B000F081E02DC801099568816623A1F7DF91D8 +:1009C000CF911F910F910895EF92FF920F931F9374 +:1009D000CF93DF938C017B01EA010CC0D7016D91AD +:1009E0007D01D801ED91FC910190F081E02DC801CD +:1009F00009952197209791F7DF91CF911F910F9142 +:100A0000FF90EF9008952F923F924F925F926F92D6 +:100A10007F928F929F92AF92BF92CF92DF92EF928E +:100A2000FF920F931F93DF93CF93CDB7DEB7A097BD +:100A30000FB6F894DEBF0FBECDBF1C016A017B016B +:100A4000411551056105710549F4DC01ED91FC91F9 +:100A50000190F081E02D60E3099554C08824992429 +:100A60005401422E55246624772401E010E00C0F37 +:100A70001D1F080D191DC701B601A30192010E9497 +:100A80000906F80160830894811C911CA11CB11C0B +:100A9000C701B601A30192010E940906C901DA014A +:100AA0006C017D01C114D104E104F104F1F681E08F +:100AB000E82EF12CEC0EFD1EE80CF91C3E0108940A +:100AC000611C711CD501C4010197A109B1096C0118 +:100AD000C818D90814C0F601EE0DFF1D60816A30F8 +:100AE00010F4605D01C0695CD101ED91FC91019051 +:100AF000F081E02DC10109950894E108F1086E1418 +:100B00007F0449F7A0960FB6F894DEBF0FBECDBFA5 +:100B1000CF91DF911F910F91FF90EF90DF90CF90D9 +:100B2000BF90AF909F908F907F906F905F904F900D +:100B30003F902F900895EF92FF920F931F93CF93C2 +:100B4000DF93EC017A018B0177FF0FC0E881F98117 +:100B50000190F081E02D6DE2099510950095F094DB +:100B6000E094E11CF11C011D111DCE01B801A7018B +:100B70002AE00E940305DF91CF911F910F91FF9012 +:100B8000EF900895DC012115310541F4ED91FC91C0 +:100B90000190F081E02D642F099508952A303105E8 +:100BA00019F40E949B0508950E9403050895629F11 +:100BB000D001739FF001829FE00DF11D649FE00D55 +:100BC000F11D929FF00D839FF00D749FF00D659FB6 +:100BD000F00D9927729FB00DE11DF91F639FB00DB5 +:100BE000E11DF91FBD01CF011124089597FB092EC6 +:100BF00007260AD077FD04D049D006D000201AF489 +:100C0000709561957F4F0895F6F7909581959F4F68 +:100C10000895A1E21A2EAA1BBB1BFD010DC0AA1F3D +:100C2000BB1FEE1FFF1FA217B307E407F50720F055 +:100C3000A21BB30BE40BF50B661F771F881F991FD0 +:100C40001A9469F760957095809590959B01AC0119 +:100C5000BD01CF01089597FB092E05260ED057FD43 +:100C600004D0D7DF0AD0001C38F450954095309559 +:100C700021953F4F4F4F5F4F0895F6F79095809520 +:100C8000709561957F4F8F4F9F4F0895AA1BBB1B97 +:100C900051E107C0AA1FBB1FA617B70710F0A61B7C +:100CA000B70B881F991F5A95A9F780959095BC019D +:100CB000CD010895EE0FFF1F0590F491E02D0994EA +:040CC000F894FFCFD6 +:100CC400E8030A000E000F001000110008000900DC +:0A0CD400000000007F04CC04E404DB +:00000001FF diff --git a/2009/particula/applet/particula.cpp.o b/2009/particula/applet/particula.cpp.o new file mode 100644 index 0000000..73784c2 Binary files /dev/null and b/2009/particula/applet/particula.cpp.o differ diff --git a/2009/particula/applet/pins_arduino.c.o b/2009/particula/applet/pins_arduino.c.o new file mode 100644 index 0000000..2e022d8 Binary files /dev/null and b/2009/particula/applet/pins_arduino.c.o differ diff --git a/2009/particula/applet/wiring.c.o b/2009/particula/applet/wiring.c.o new file mode 100644 index 0000000..67af539 Binary files /dev/null and b/2009/particula/applet/wiring.c.o differ diff --git a/2009/particula/applet/wiring_analog.c.o b/2009/particula/applet/wiring_analog.c.o new file mode 100644 index 0000000..8734e01 Binary files /dev/null and b/2009/particula/applet/wiring_analog.c.o differ diff --git a/2009/particula/applet/wiring_digital.c.o b/2009/particula/applet/wiring_digital.c.o new file mode 100644 index 0000000..1543ed9 Binary files /dev/null and b/2009/particula/applet/wiring_digital.c.o differ diff --git a/2009/particula/applet/wiring_pulse.c.o b/2009/particula/applet/wiring_pulse.c.o new file mode 100644 index 0000000..a8f8404 Binary files /dev/null and b/2009/particula/applet/wiring_pulse.c.o differ diff --git a/2009/particula/applet/wiring_shift.c.o b/2009/particula/applet/wiring_shift.c.o new file mode 100644 index 0000000..defd822 Binary files /dev/null and b/2009/particula/applet/wiring_shift.c.o differ diff --git a/2009/particula/particula.pde b/2009/particula/particula.pde new file mode 100644 index 0000000..9f31e7f --- /dev/null +++ b/2009/particula/particula.pde @@ -0,0 +1,85 @@ +byte flag=0; +int ledState = 0; +int interval = 1000; +int previousMillis = 0; + +int rele = 10; +int rele_gnd = 11; +int led = 14; +int pulsador = 15; +int gnd = 16; +int mode = 17; +int clock_pin = 8; +int clock_gnd = 9; + + +byte val =0x00; + + +void setup() { + Serial.begin(19200); + pinMode(rele, OUTPUT); + pinMode(rele_gnd, OUTPUT); + pinMode(pulsador, INPUT); + pinMode(led, OUTPUT); + pinMode(mode, INPUT); + pinMode(gnd, OUTPUT); + pinMode(clock_pin, OUTPUT); + pinMode(clock_gnd, OUTPUT); + + digitalWrite(rele, LOW); + digitalWrite(rele_gnd, LOW); + digitalWrite(pulsador, HIGH); + digitalWrite(led, HIGH); + digitalWrite(mode, HIGH); + digitalWrite(gnd, LOW); + digitalWrite(clock_gnd, LOW); + digitalWrite(clock_pin, HIGH); + delay(100); + digitalWrite(clock_pin, LOW); +} + +void loop() { + if (!digitalRead(pulsador)) + { + Serial.print(0, BYTE); // activado + } + else if (digitalRead(pulsador)) + { + Serial.print(1, BYTE); // desactivado + } + if (!digitalRead(mode)) + { + Serial.print(2, BYTE); // modo automatico + if (millis() - previousMillis > interval) { + previousMillis = millis(); + if (ledState == LOW) + ledState = HIGH; + else + ledState = LOW; + + digitalWrite(led, ledState); + } + } + else if (digitalRead(mode)) + { + Serial.print(3, BYTE); // modo manual + } + + delay(100); + + if(Serial.available() > 0) + { + val = Serial.read(); + if (val==0x10) digitalWrite(rele,HIGH); + else if (val==0x20) digitalWrite(rele, LOW); + else if (val==0x30) + { + digitalWrite(clock_pin, HIGH); + delay(100); + digitalWrite(clock_pin, LOW); + } + } +} + + diff --git a/2009/puzzlev2/applet/HardwareSerial.cpp.o b/2009/puzzlev2/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/puzzlev2/applet/HardwareSerial.cpp.o differ diff --git a/2009/puzzlev2/applet/Print.cpp.o b/2009/puzzlev2/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/puzzlev2/applet/Print.cpp.o differ diff --git a/2009/puzzlev2/applet/WInterrupts.c.o b/2009/puzzlev2/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/puzzlev2/applet/WInterrupts.c.o differ diff --git a/2009/puzzlev2/applet/WMath.cpp.o b/2009/puzzlev2/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/puzzlev2/applet/WMath.cpp.o differ diff --git a/2009/puzzlev2/applet/WRandom.cpp.o b/2009/puzzlev2/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/puzzlev2/applet/WRandom.cpp.o differ diff --git a/2009/puzzlev2/applet/core.a b/2009/puzzlev2/applet/core.a new file mode 100644 index 0000000..56dd353 Binary files /dev/null and b/2009/puzzlev2/applet/core.a differ diff --git a/2009/puzzlev2/applet/pins_arduino.c.o b/2009/puzzlev2/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/puzzlev2/applet/pins_arduino.c.o differ diff --git a/2009/puzzlev2/applet/puzzlev2.cpp b/2009/puzzlev2/applet/puzzlev2.cpp new file mode 100644 index 0000000..bdc6c30 --- /dev/null +++ b/2009/puzzlev2/applet/puzzlev2.cpp @@ -0,0 +1,81 @@ + +#include "WProgram.h" +void setup(); +void loop(); +int val[6] = { + 0, 0, 0, 0, 0, 0 }; + +int vald[12] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +int flag = 0; +int res=10; +int i=0; + +void setup() +{ + Serial.begin(115200); + delay(100); + for (i=0;i<12;i++) + { + pinMode(i, INPUT); + } +} + +void loop() +{ + for (i=0;i<6;i++) + { + delay(10); + if (analogRead(i)>=128) + { + if (val[i]==1) + { + //Serial.print(i+i+1,BYTE); + val[i]=0; + } + } + else if (analogRead(i)<128) + { + if (val[i]==0) + { + Serial.print(i+i,BYTE); + val[i]=1; + } + } + } + for (i=2;i<12;i++) + { + delay(10); + if (digitalRead(i)==1) + { + if (vald[i]==1) + { + //Serial.print(i+i+9,BYTE); + vald[i]=0; + } + } + else if (digitalRead(i)==0) + { + if (vald[i]==0) + { + Serial.print(i+i+8,BYTE); + vald[i]=1; + } + } + } +} + + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/puzzlev2/applet/puzzlev2.cpp.o b/2009/puzzlev2/applet/puzzlev2.cpp.o new file mode 100644 index 0000000..e13c953 Binary files /dev/null and b/2009/puzzlev2/applet/puzzlev2.cpp.o differ diff --git a/2009/puzzlev2/applet/puzzlev2.elf b/2009/puzzlev2/applet/puzzlev2.elf new file mode 100644 index 0000000..738b101 Binary files /dev/null and b/2009/puzzlev2/applet/puzzlev2.elf differ diff --git a/2009/puzzlev2/applet/puzzlev2.hex b/2009/puzzlev2/applet/puzzlev2.hex new file mode 100644 index 0000000..9371e59 --- /dev/null +++ b/2009/puzzlev2/applet/puzzlev2.hex @@ -0,0 +1,203 @@ +:100000000C945B000C9483000C9483000C9483008C +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C941A030C9483000C949B050C9483006D +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000720111241FBECFEFD4E0DEBFAC +:1000C000CDBF11E0A0E0B1E0E8E8FCE002C005909F +:1000D0000D92AA30B107D9F711E0AAE0B1E001C052 +:1000E0001D92A03CB107E1F710E0C6EBD0E004C0E0 +:1000F0002297FE010E943E06C43BD107C9F70E9429 +:100100006B010C9442060C940000CF93DF93109285 +:10011000310110923001C1E0D0E04EC06AE070E0E1 +:1001200080E090E00E948503809130010E94FA03F4 +:10013000803891057CF0E0913001F0913101EE0FB3 +:10014000FF1FE65FFE4F80819181019761F511826B +:10015000108229C0809130010E94FA0380389105F5 +:1001600014F52091300130913101220F331FF90134 +:10017000E65FFE4F80819181892BA9F4A901662752 +:1001800057FD6095762F20E030E082E391E00E94F9 +:10019000FA02E0913001F0913101EE0FFF1FE65FAE +:1001A000FE4FD183C083809130019091310101963F +:1001B0009093310180933001809130019091310111 +:1001C00006970CF4ABCF82E090E0909331018093DE +:1001D0003001C1E0D0E04EC06AE070E080E090E025 +:1001E0000E948503809130010E94D504019779F423 +:1001F000E0913001F0913101EE0FFF1FEA5EFE4FFA +:1002000080819181019769F5118210822AC08091C5 +:1002100030010E94D504892B21F5209130013091C5 +:100220003101220F331FF901EA5EFE4F8081918177 +:10023000892BB9F4285F3F4FA901662757FD6095C8 +:10024000762F20E030E082E391E00E94FA02E09114 +:100250003001F0913101EE0FFF1FEA5EFE4FD183B6 +:10026000C0838091300190913101019690933101CA +:100270008093300180913001909131010C970CF402 +:10028000ABCFDF91CF91089540E052EC61E070E098 +:1002900082E391E00E94860164E670E080E090E0F5 +:1002A0000E94850310923101109230010CC060E071 +:1002B0000E946C04809130019091310101969093DD +:1002C00031018093300180913001909131018C3067 +:1002D00091056CF308950E94BD030E9444010E94A1 +:1002E0008500FDCF86E091E0909333018093320149 +:1002F0000895862F0E945A0508950E949205089538 +:100300000E94730508950E9462050895CB01BA0109 +:100310000E9421050895DC01ED91FC910190F0818E +:10032000E02D09950895DC01ED91FC910190F0819B +:10033000E02D099508950F931F93CF93DF938C01C0 +:10034000EB0109C02196D801ED91FC910190F0815B +:10035000E02DC801099568816623A1F7DF91CF914F +:100360001F910F9108950F931F938C01DC01ED9164 +:10037000FC910190F081E02D6DE00995D801ED919F +:10038000FC910190F081E02D6AE0C80109951F9170 +:100390000F9108950F931F938C01DC01ED91FC9157 +:1003A0000190F081E02D0995C8010E94B3011F91D1 +:1003B0000F9108950F931F938C010E949B01C80118 +:1003C0000E94B3011F910F9108950F931F938C0109 +:1003D000DC01ED91FC910190F081E02D0995C801BF +:1003E0000E94B3011F910F9108952F923F924F9257 +:1003F0005F926F927F928F929F92AF92BF92CF92B5 +:10040000DF92EF92FF920F931F93DF93CF93CDB7BD +:10041000DEB7A0970FB6F894DEBF0FBECDBF1C01AC +:100420006A017B01411551056105710549F4DC0143 +:10043000ED91FC910190F081E02D60E3099554C0AD +:10044000882499245401422E55246624772401E0FF +:1004500010E00C0F1D1F080D191DC701B601A301E7 +:1004600092010E94EB05F80160830894811C911CA5 +:10047000A11CB11CC701B601A30192010E94EB05AA +:10048000C901DA016C017D01C114D104E104F10458 +:10049000F1F681E0E82EF12CEC0EFD1EE80CF91CC3 +:1004A0003E010894611C711CD501C4010197A1098A +:1004B000B1096C01C818D90814C0F601EE0DFF1D72 +:1004C00060816A3010F4605D01C0695CD101ED911A +:1004D000FC910190F081E02DC10109950894E1089B +:1004E000F1086E147F0449F7A0960FB6F894DEBFAA +:1004F0000FBECDBFCF91DF911F910F91FF90EF9075 +:10050000DF90CF90BF90AF909F908F907F906F9033 +:100510005F904F903F902F9008952AE00E94F50140 +:1005200008950F931F938C010E948D02C8010E94B1 +:10053000B3011F910F910895AB0160E070E00E943C +:100540008D0208950F931F938C01AB0160E070E062 +:100550000E948D02C8010E94B3011F910F9108955E +:10056000EF92FF920F931F93CF93DF93EC017A01E9 +:100570008B0177FF0FC0E881F9810190F081E02DB8 +:100580006DE2099510950095F094E094E11CF11C42 +:10059000011D111D2AE0B801A701CE010E94F5013D +:1005A000DF91CF911F910F91FF90EF9008950F93DE +:1005B0001F938C010E94B002C8010E94B3011F91D9 +:1005C0000F910895AB01662757FD6095762F0E9425 +:1005D000B00208950F931F938C01AB01662757FD5E +:1005E0006095762F0E94B002C8010E94B3011F914E +:1005F0000F910895DC012115310541F4ED91FC9135 +:100600000190F081E02D642F099508952A3031057D +:1006100019F40E94B00208950E94F50108950F9305 +:100620001F938C010E94FA02C8010E94B3011F911E +:100630000F9108951F920F920FB60F9211242F93CE +:100640008F939F93AF93BF93809134019091350125 +:10065000A0913601B09137018050904CAF4FBF4F01 +:100660008093340190933501A0933601B093370104 +:1006700027C08091340190913501A0913601B0914D +:10068000370180589E43A040B0408093340190933E +:100690003501A0933601B0933701809138019091D4 +:1006A0003901A0913A01B0913B010196A11DB11D04 +:1006B0008093380190933901A0933A01B0933B01A4 +:1006C0008091340190913501A0913601B0913701AC +:1006D00081589E43A040B04060F6BF91AF919F917A +:1006E0008F912F910F900FBE0F901F9018958FB77D +:1006F000F894209138013091390140913A0150919C +:100700003B018FBFB901CA010895EF92FF920F9389 +:100710001F937B018C018FB7F89440913801509161 +:10072000390160913A0170913B018FBF2FB7F89466 +:100730008091380190913901A0913A01B0913B012B +:100740002FBF841B950BA60BB70B8E159F05A0071B +:10075000B10760F31F910F91FF90EF9008950197FB +:1007600059F0FC01EE0FFF1FEE0FFF1F32978FB7FE +:10077000F8943197F1F78FBF0895789484B582602B +:1007800084BD84B5816084BD85B5826085BD85B535 +:10079000816085BDEEE6F0E0808181608083E1E8E4 +:1007A000F0E0808182608083808181608083E0E8E6 +:1007B000F0E0808181608083E1EBF0E08081846003 +:1007C0008083E0EBF0E0808181608083EAE7F0E005 +:1007D0008081846080838081826080838081816069 +:1007E00080838081806880831092C1000895809307 +:1007F000080108958F70909108019295990F990FB3 +:10080000907C982B90937C0080917A0080648093F8 +:100810007A0080917A0086FDFCCF2091780040918B +:100820007900942F80E030E0282B392BC9010895FE +:100830001F93CF93DF93182FEB0161E00E946C04AC +:10084000E12FF0E0E156FF4F8491833051F4809125 +:100850008000806880938000D0938900C0938800D6 +:1008600037C0843051F48091800080628093800092 +:10087000D0938B00C0938A002BC0813029F484B5BB +:10088000806884BDC7BD24C0823029F484B58062ED +:1008900084BDC8BD1DC0863041F48091B000806821 +:1008A0008093B000C093B30013C0873041F48091AF +:1008B000B00080628093B000C093B40009C0C0381B +:1008C000D10514F460E001C061E0812F0E948A0428 +:1008D000DF91CF911F910895282F30E0C9018557EE +:1008E0009F4FFC01949129583F4FF901849188232F +:1008F00081F0E82FF0E0E859FF4FE491F0E0662343 +:1009000029F4808190958923808308958081892BA3 +:1009100080830895482F50E0CA0181569F4FFC0103 +:100920002491CA0185579F4FFC01949149585F4F0C +:10093000FA0134913323C1F1222331F1233021F420 +:10094000809180008F7705C0243031F48091800041 +:100950008F7D8093800018C0213019F484B58F7783 +:1009600004C0223021F484B58F7D84BD0DC02630B3 +:1009700021F48091B0008F7705C0273029F4809151 +:10098000B0008F7D8093B000E32FF0E0E359FF4F7C +:10099000E491F0E0662329F4808190958923808397 +:1009A00008958081892B80830895482F50E0CA01E3 +:1009B00081569F4FFC012491CA0185579F4FFC012E +:1009C000949149585F4FFA013491332319F420E090 +:1009D00030E035C0222331F1233021F480918000B2 +:1009E0008F7705C0243031F4809180008F7D809313 +:1009F000800018C0213019F484B58F7704C02230EC +:100A000021F484B58F7D84BD0DC0263021F4809102 +:100A1000B0008F7705C0273029F48091B0008F7D1A +:100A20008093B000E32FF0E0EE58FF4FE491F0E048 +:100A3000808120E030E0892311F021E030E0C9011D +:100A40000895EF92FF920F931F937B018C0122E098 +:100A500030E040E050E00E940D06205C3D4B404FEE +:100A60005F4FCA01B901A80197010E940D06C90193 +:100A7000DA010197A109B109292F3A2F4B2F5527E8 +:100A800047FD5A950196A11DB11D2093C5008150C7 +:100A90008093C400E1ECF0E08081806180838081FC +:100AA000886080838081806880831F910F91FF9090 +:100AB000EF900895982F8091C00085FFFCCF909310 +:100AC000C600089580913C0190913D0180589F4F50 +:100AD00020913E0130913F01821B930B60E870E052 +:100AE0000E94D805089540913E0150913F018091A8 +:100AF0003C0190913D018417950719F42FEF3FEFCA +:100B00000FC0FA01E05CFE4F2081CA01019660E847 +:100B100070E00E94D80590933F0180933E0130E041 +:100B2000C901089580913E0190913F0190933D014C +:100B300080933C0108951F920F920FB60F921124DB +:100B40002F933F934F935F936F937F938F939F93D5 +:100B5000AF93BF93EF93FF934091C600E0913C01A8 +:100B6000F0913D01CF01019660E870E00E94D80548 +:100B70009C0180913E0190913F012817390739F07F +:100B8000E05CFE4F408330933D0120933C01FF9198 +:100B9000EF91BF91AF919F918F917F916F915F91F5 +:100BA0004F913F912F910F900FBE0F901F9018956E +:100BB00097FB092E07260AD077FD04D049D006D02E +:100BC00000201AF4709561957F4F0895F6F790957F +:100BD00081959F4F0895A1E21A2EAA1BBB1BFD0110 +:100BE0000DC0AA1FBB1FEE1FFF1FA217B307E4070C +:100BF000F50720F0A21BB30BE40BF50B661F771F64 +:100C0000881F991F1A9469F7609570958095909543 +:100C10009B01AC01BD01CF01089597FB092E05266C +:100C20000ED057FD04D0D7DF0AD0001C38F4509501 +:100C30004095309521953F4F4F4F5F4F0895F6F700 +:100C400090958095709561957F4F8F4F9F4F089538 +:100C5000AA1BBB1B51E107C0AA1FBB1FA617B707E2 +:100C600010F0A61BB70B881F991F5A95A9F78095FE +:100C70009095BC01CD010895EE0FFF1F0590F491F2 +:080C8000E02D0994F894FFCF68 +:0A0C88000A000000000079010100DD +:00000001FF diff --git a/2009/puzzlev2/applet/puzzlev2.pde b/2009/puzzlev2/applet/puzzlev2.pde new file mode 100644 index 0000000..144d64a --- /dev/null +++ b/2009/puzzlev2/applet/puzzlev2.pde @@ -0,0 +1,65 @@ + +int val[6] = { + 0, 0, 0, 0, 0, 0 }; + +int vald[12] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +int flag = 0; +int res=10; +int i=0; + +void setup() +{ + Serial.begin(115200); + delay(100); + for (i=0;i<12;i++) + { + pinMode(i, INPUT); + } +} + +void loop() +{ + for (i=0;i<6;i++) + { + delay(10); + if (analogRead(i)>=128) + { + if (val[i]==1) + { + //Serial.print(i+i+1,BYTE); + val[i]=0; + } + } + else if (analogRead(i)<128) + { + if (val[i]==0) + { + Serial.print(i+i,BYTE); + val[i]=1; + } + } + } + for (i=2;i<12;i++) + { + delay(10); + if (digitalRead(i)==1) + { + if (vald[i]==1) + { + //Serial.print(i+i+9,BYTE); + vald[i]=0; + } + } + else if (digitalRead(i)==0) + { + if (vald[i]==0) + { + Serial.print(i+i+8,BYTE); + vald[i]=1; + } + } + } +} + + diff --git a/2009/puzzlev2/applet/puzzlev2.rom b/2009/puzzlev2/applet/puzzlev2.rom new file mode 100644 index 0000000..92421c7 --- /dev/null +++ b/2009/puzzlev2/applet/puzzlev2.rom @@ -0,0 +1,204 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4D697320646F63FD +S11300000C945B000C9483000C9483000C94830088 +S11300100C9483000C9483000C9483000C94830050 +S11300200C9483000C9483000C9483000C94830040 +S11300300C9483000C9483000C9483000C94830030 +S11300400C941A030C9483000C949B050C94830069 +S11300500C9483000C9483000C9483000C94830010 +S11300600C9483000C948300000024272A000025AC +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B000000000720111241FBECFEFD4E0DEBFA8 +S11300C0CDBF11E0A0E0B1E0E8E8FCE002C005909B +S11300D00D92AA30B107D9F711E0AAE0B1E001C04E +S11300E01D92A03CB107E1F710E0C6EBD0E004C0DC +S11300F02297FE010E943E06C43BD107C9F70E9425 +S11301006B010C9442060C940000CF93DF93109281 +S1130110310110923001C1E0D0E04EC06AE070E0DD +S113012080E090E00E948503809130010E94FA03F0 +S1130130803891057CF0E0913001F0913101EE0FAF +S1130140FF1FE65FFE4F80819181019761F5118267 +S1130150108229C0809130010E94FA0380389105F1 +S113016014F52091300130913101220F331FF90130 +S1130170E65FFE4F80819181892BA9F4A90166274E +S113018057FD6095762F20E030E082E391E00E94F5 +S1130190FA02E0913001F0913101EE0FFF1FE65FAA +S11301A0FE4FD183C083809130019091310101963B +S11301B0909331018093300180913001909131010D +S11301C006970CF4ABCF82E090E0909331018093DA +S11301D03001C1E0D0E04EC06AE070E080E090E021 +S11301E00E948503809130010E94D504019779F41F +S11301F0E0913001F0913101EE0FFF1FEA5EFE4FF6 +S113020080819181019769F5118210822AC08091C1 +S113021030010E94D504892B21F5209130013091C1 +S11302203101220F331FF901EA5EFE4F8081918173 +S1130230892BB9F4285F3F4FA901662757FD6095C4 +S1130240762F20E030E082E391E00E94FA02E09110 +S11302503001F0913101EE0FFF1FEA5EFE4FD183B2 +S1130260C0838091300190913101019690933101C6 +S11302708093300180913001909131010C970CF4FE +S1130280ABCFDF91CF91089540E052EC61E070E094 +S113029082E391E00E94860164E670E080E090E0F1 +S11302A00E94850310923101109230010CC060E06D +S11302B00E946C04809130019091310101969093D9 +S11302C031018093300180913001909131018C3063 +S11302D091056CF308950E94BD030E9444010E949D +S11302E08500FDCF86E091E0909333018093320145 +S11302F00895862F0E945A0508950E949205089534 +S11303000E94730508950E9462050895CB01BA0105 +S11303100E9421050895DC01ED91FC910190F0818A +S1130320E02D09950895DC01ED91FC910190F08197 +S1130330E02D099508950F931F93CF93DF938C01BC +S1130340EB0109C02196D801ED91FC910190F08157 +S1130350E02DC801099568816623A1F7DF91CF914B +S11303601F910F9108950F931F938C01DC01ED9160 +S1130370FC910190F081E02D6DE00995D801ED919B +S1130380FC910190F081E02D6AE0C80109951F916C +S11303900F9108950F931F938C01DC01ED91FC9153 +S11303A00190F081E02D0995C8010E94B3011F91CD +S11303B00F9108950F931F938C010E949B01C80114 +S11303C00E94B3011F910F9108950F931F938C0105 +S11303D0DC01ED91FC910190F081E02D0995C801BB +S11303E00E94B3011F910F9108952F923F924F9253 +S11303F05F926F927F928F929F92AF92BF92CF92B1 +S1130400DF92EF92FF920F931F93DF93CF93CDB7B9 +S1130410DEB7A0970FB6F894DEBF0FBECDBF1C01A8 +S11304206A017B01411551056105710549F4DC013F +S1130430ED91FC910190F081E02D60E3099554C0A9 +S1130440882499245401422E55246624772401E0FB +S113045010E00C0F1D1F080D191DC701B601A301E3 +S113046092010E94EB05F80160830894811C911CA1 +S1130470A11CB11CC701B601A30192010E94EB05A6 +S1130480C901DA016C017D01C114D104E104F10454 +S1130490F1F681E0E82EF12CEC0EFD1EE80CF91CBF +S11304A03E010894611C711CD501C4010197A10986 +S11304B0B1096C01C818D90814C0F601EE0DFF1D6E +S11304C060816A3010F4605D01C0695CD101ED9116 +S11304D0FC910190F081E02DC10109950894E10897 +S11304E0F1086E147F0449F7A0960FB6F894DEBFA6 +S11304F00FBECDBFCF91DF911F910F91FF90EF9071 +S1130500DF90CF90BF90AF909F908F907F906F902F +S11305105F904F903F902F9008952AE00E94F5013C +S113052008950F931F938C010E948D02C8010E94AD +S1130530B3011F910F910895AB0160E070E00E9438 +S11305408D0208950F931F938C01AB0160E070E05E +S11305500E948D02C8010E94B3011F910F9108955A +S1130560EF92FF920F931F93CF93DF93EC017A01E5 +S11305708B0177FF0FC0E881F9810190F081E02DB4 +S11305806DE2099510950095F094E094E11CF11C3E +S1130590011D111D2AE0B801A701CE010E94F50139 +S11305A0DF91CF911F910F91FF90EF9008950F93DA +S11305B01F938C010E94B002C8010E94B3011F91D5 +S11305C00F910895AB01662757FD6095762F0E9421 +S11305D0B00208950F931F938C01AB01662757FD5A +S11305E06095762F0E94B002C8010E94B3011F914A +S11305F00F910895DC012115310541F4ED91FC9131 +S11306000190F081E02D642F099508952A30310579 +S113061019F40E94B00208950E94F50108950F9301 +S11306201F938C010E94FA02C8010E94B3011F911A +S11306300F9108951F920F920FB60F9211242F93CA +S11306408F939F93AF93BF93809134019091350121 +S1130650A0913601B09137018050904CAF4FBF4FFD +S11306608093340190933501A0933601B093370100 +S113067027C08091340190913501A0913601B09149 +S1130680370180589E43A040B0408093340190933A +S11306903501A0933601B0933701809138019091D0 +S11306A03901A0913A01B0913B010196A11DB11D00 +S11306B08093380190933901A0933A01B0933B01A0 +S11306C08091340190913501A0913601B0913701A8 +S11306D081589E43A040B04060F6BF91AF919F9176 +S11306E08F912F910F900FBE0F901F9018958FB779 +S11306F0F894209138013091390140913A01509198 +S11307003B018FBFB901CA010895EF92FF920F9385 +S11307101F937B018C018FB7F8944091380150915D +S1130720390160913A0170913B018FBF2FB7F89462 +S11307308091380190913901A0913A01B0913B0127 +S11307402FBF841B950BA60BB70B8E159F05A00717 +S1130750B10760F31F910F91FF90EF9008950197F7 +S113076059F0FC01EE0FFF1FEE0FFF1F32978FB7FA +S1130770F8943197F1F78FBF0895789484B5826027 +S113078084BD84B5816084BD85B5826085BD85B531 +S1130790816085BDEEE6F0E0808181608083E1E8E0 +S11307A0F0E0808182608083808181608083E0E8E2 +S11307B0F0E0808181608083E1EBF0E080818460FF +S11307C08083E0EBF0E0808181608083EAE7F0E001 +S11307D08081846080838081826080838081816065 +S11307E080838081806880831092C1000895809303 +S11307F0080108958F70909108019295990F990FAF +S1130800907C982B90937C0080917A0080648093F4 +S11308107A0080917A0086FDFCCF20917800409187 +S11308207900942F80E030E0282B392BC9010895FA +S11308301F93CF93DF93182FEB0161E00E946C04A8 +S1130840E12FF0E0E156FF4F8491833051F4809121 +S11308508000806880938000D0938900C0938800D2 +S113086037C0843051F4809180008062809380008E +S1130870D0938B00C0938A002BC0813029F484B5B7 +S1130880806884BDC7BD24C0823029F484B58062E9 +S113089084BDC8BD1DC0863041F48091B00080681D +S11308A08093B000C093B30013C0873041F48091AB +S11308B0B00080628093B000C093B40009C0C03817 +S11308C0D10514F460E001C061E0812F0E948A0424 +S11308D0DF91CF911F910895282F30E0C9018557EA +S11308E09F4FFC01949129583F4FF901849188232B +S11308F081F0E82FF0E0E859FF4FE491F0E066233F +S113090029F4808190958923808308958081892B9F +S113091080830895482F50E0CA0181569F4FFC01FF +S11309202491CA0185579F4FFC01949149585F4F08 +S1130930FA0134913323C1F1222331F1233021F41C +S1130940809180008F7705C0243031F4809180003D +S11309508F7D8093800018C0213019F484B58F777F +S113096004C0223021F484B58F7D84BD0DC02630AF +S113097021F48091B0008F7705C0273029F480914D +S1130980B0008F7D8093B000E32FF0E0E359FF4F78 +S1130990E491F0E0662329F4808190958923808393 +S11309A008958081892B80830895482F50E0CA01DF +S11309B081569F4FFC012491CA0185579F4FFC012A +S11309C0949149585F4FFA013491332319F420E08C +S11309D030E035C0222331F1233021F480918000AE +S11309E08F7705C0243031F4809180008F7D80930F +S11309F0800018C0213019F484B58F7704C02230E8 +S1130A0021F484B58F7D84BD0DC0263021F48091FE +S1130A10B0008F7705C0273029F48091B0008F7D16 +S1130A208093B000E32FF0E0EE58FF4FE491F0E044 +S1130A30808120E030E0892311F021E030E0C90119 +S1130A400895EF92FF920F931F937B018C0122E094 +S1130A5030E040E050E00E940D06205C3D4B404FEA +S1130A605F4FCA01B901A80197010E940D06C9018F +S1130A70DA010197A109B109292F3A2F4B2F5527E4 +S1130A8047FD5A950196A11DB11D2093C5008150C3 +S1130A908093C400E1ECF0E08081806180838081F8 +S1130AA0886080838081806880831F910F91FF908C +S1130AB0EF900895982F8091C00085FFFCCF90930C +S1130AC0C600089580913C0190913D0180589F4F4C +S1130AD020913E0130913F01821B930B60E870E04E +S1130AE00E94D805089540913E0150913F018091A4 +S1130AF03C0190913D018417950719F42FEF3FEFC6 +S1130B000FC0FA01E05CFE4F2081CA01019660E843 +S1130B1070E00E94D80590933F0180933E0130E03D +S1130B20C901089580913E0190913F0190933D0148 +S1130B3080933C0108951F920F920FB60F921124D7 +S1130B402F933F934F935F936F937F938F939F93D1 +S1130B50AF93BF93EF93FF934091C600E0913C01A4 +S1130B60F0913D01CF01019660E870E00E94D80544 +S1130B709C0180913E0190913F012817390739F07B +S1130B80E05CFE4F408330933D0120933C01FF9194 +S1130B90EF91BF91AF919F918F917F916F915F91F1 +S1130BA04F913F912F910F900FBE0F901F9018956A +S1130BB097FB092E07260AD077FD04D049D006D02A +S1130BC000201AF4709561957F4F0895F6F790957B +S1130BD081959F4F0895A1E21A2EAA1BBB1BFD010C +S1130BE00DC0AA1FBB1FEE1FFF1FA217B307E40708 +S1130BF0F50720F0A21BB30BE40BF50B661F771F60 +S1130C00881F991F1A9469F760957095809590953F +S1130C109B01AC01BD01CF01089597FB092E052668 +S1130C200ED057FD04D0D7DF0AD0001C38F45095FD +S1130C304095309521953F4F4F4F5F4F0895F6F7FC +S1130C4090958095709561957F4F8F4F9F4F089534 +S1130C50AA1BBB1B51E107C0AA1FBB1FA617B707DE +S1130C6010F0A61BB70B881F991F5A95A9F78095FA +S1130C709095BC01CD010895EE0FFF1F0590F491EE +S10B0C80E02D0994F894FFCF64 +S10D0C880A000000000079010100D9 +S9030000FC diff --git a/2009/puzzlev2/applet/wiring.c.o b/2009/puzzlev2/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/puzzlev2/applet/wiring.c.o differ diff --git a/2009/puzzlev2/applet/wiring_analog.c.o b/2009/puzzlev2/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/puzzlev2/applet/wiring_analog.c.o differ diff --git a/2009/puzzlev2/applet/wiring_digital.c.o b/2009/puzzlev2/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/puzzlev2/applet/wiring_digital.c.o differ diff --git a/2009/puzzlev2/applet/wiring_pulse.c.o b/2009/puzzlev2/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/puzzlev2/applet/wiring_pulse.c.o differ diff --git a/2009/puzzlev2/applet/wiring_serial.c.o b/2009/puzzlev2/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/puzzlev2/applet/wiring_serial.c.o differ diff --git a/2009/puzzlev2/applet/wiring_shift.c.o b/2009/puzzlev2/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/puzzlev2/applet/wiring_shift.c.o differ diff --git a/2009/puzzlev2/puzzlev2.pde b/2009/puzzlev2/puzzlev2.pde new file mode 100644 index 0000000..144d64a --- /dev/null +++ b/2009/puzzlev2/puzzlev2.pde @@ -0,0 +1,65 @@ + +int val[6] = { + 0, 0, 0, 0, 0, 0 }; + +int vald[12] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +int flag = 0; +int res=10; +int i=0; + +void setup() +{ + Serial.begin(115200); + delay(100); + for (i=0;i<12;i++) + { + pinMode(i, INPUT); + } +} + +void loop() +{ + for (i=0;i<6;i++) + { + delay(10); + if (analogRead(i)>=128) + { + if (val[i]==1) + { + //Serial.print(i+i+1,BYTE); + val[i]=0; + } + } + else if (analogRead(i)<128) + { + if (val[i]==0) + { + Serial.print(i+i,BYTE); + val[i]=1; + } + } + } + for (i=2;i<12;i++) + { + delay(10); + if (digitalRead(i)==1) + { + if (vald[i]==1) + { + //Serial.print(i+i+9,BYTE); + vald[i]=0; + } + } + else if (digitalRead(i)==0) + { + if (vald[i]==0) + { + Serial.print(i+i+8,BYTE); + vald[i]=1; + } + } + } +} + + diff --git a/2009/teresa/applet/HardwareSerial.cpp.o b/2009/teresa/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..af171eb Binary files /dev/null and b/2009/teresa/applet/HardwareSerial.cpp.o differ diff --git a/2009/teresa/applet/Print.cpp.o b/2009/teresa/applet/Print.cpp.o new file mode 100644 index 0000000..cacb8d8 Binary files /dev/null and b/2009/teresa/applet/Print.cpp.o differ diff --git a/2009/teresa/applet/WInterrupts.c.o b/2009/teresa/applet/WInterrupts.c.o new file mode 100644 index 0000000..f0990b8 Binary files /dev/null and b/2009/teresa/applet/WInterrupts.c.o differ diff --git a/2009/teresa/applet/WMath.cpp.o b/2009/teresa/applet/WMath.cpp.o new file mode 100644 index 0000000..66b5f12 Binary files /dev/null and b/2009/teresa/applet/WMath.cpp.o differ diff --git a/2009/teresa/applet/WRandom.cpp.o b/2009/teresa/applet/WRandom.cpp.o new file mode 100644 index 0000000..a5151f0 Binary files /dev/null and b/2009/teresa/applet/WRandom.cpp.o differ diff --git a/2009/teresa/applet/core.a b/2009/teresa/applet/core.a new file mode 100644 index 0000000..1bb5eb8 Binary files /dev/null and b/2009/teresa/applet/core.a differ diff --git a/2009/teresa/applet/pins_arduino.c.o b/2009/teresa/applet/pins_arduino.c.o new file mode 100644 index 0000000..c51c948 Binary files /dev/null and b/2009/teresa/applet/pins_arduino.c.o differ diff --git a/2009/teresa/applet/teresa.cpp b/2009/teresa/applet/teresa.cpp new file mode 100644 index 0000000..b182170 --- /dev/null +++ b/2009/teresa/applet/teresa.cpp @@ -0,0 +1,120 @@ + +#include "WProgram.h" +void setup(); +void loop(); +int sensor=0; // Salida analogica del multiplexor +int pad=1; // Entrada analogica +int bit1=6; // PIN digital al S2 del multiplexor +int bit2=5; // PIN digital al S1 del multiplexor +int bit3=4; // PIN digital al S0 del multiplexor +int id=1; + +int val=0; +long int env=0; +int res=10; +int vald[9] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +void setup() +{ + Serial.begin(115200); + pinMode(bit1,OUTPUT); + pinMode(bit2,OUTPUT); + pinMode(bit3,OUTPUT); + pinMode(14,INPUT); + pinMode(15,INPUT); + digitalWrite(14,HIGH); + digitalWrite(15,HIGH); +} + +void loop() +{ + for (int i=0;i<8;i++) + { // Recorre las 8 posiciones del multiplexor + switch (i) { + case 0: + digitalWrite(bit1,LOW); // Posici?n 0 --> S0=0, S1=0 y S3 =0 (en binario) + digitalWrite(bit2,LOW); + digitalWrite(bit3,LOW); + break; + case 1: + digitalWrite(bit1,LOW); + digitalWrite(bit2,LOW); + digitalWrite(bit3,HIGH); + break; + case 2: + digitalWrite(bit1,LOW); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,LOW); + break; + case 3: + digitalWrite(bit1,LOW); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,HIGH); + break; + case 4: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,LOW); + digitalWrite(bit3,LOW); + break; + case 5: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,LOW); + digitalWrite(bit3,HIGH); + break; + case 6: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,LOW); + break; + case 7: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,HIGH); + break; + } + + delay(10); + + val = analogRead(sensor); // Lee el valor del pad + //if ((val<=vald[i]-res)||(val>=vald[i]+res)) + //{ + vald[i] =val; + /*Serial.print("Valor de "); + Serial.print(i); + Serial.print(" es: ");*/ + Serial.print(200+id*10+i,BYTE); + Serial.print(val/5,BYTE); + + //} + } + + val = analogRead(pad); // Lee el valor del pad + //if ((val<=vald[8]-res)||(val>=vald[8]+res)) + //{ + vald[8] =val; + /*Serial.print("Valor de "); + Serial.print(8); + Serial.print(" es: "); */ + Serial.print(200+id*10+8,BYTE); + Serial.print(val/5,BYTE); + delay(20); + //} + + +} + + + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/teresa/applet/teresa.cpp.o b/2009/teresa/applet/teresa.cpp.o new file mode 100644 index 0000000..e980dc9 Binary files /dev/null and b/2009/teresa/applet/teresa.cpp.o differ diff --git a/2009/teresa/applet/teresa.elf b/2009/teresa/applet/teresa.elf new file mode 100644 index 0000000..b6a6d2a Binary files /dev/null and b/2009/teresa/applet/teresa.elf differ diff --git a/2009/teresa/applet/teresa.hex b/2009/teresa/applet/teresa.hex new file mode 100644 index 0000000..a2e72f0 --- /dev/null +++ b/2009/teresa/applet/teresa.hex @@ -0,0 +1,208 @@ +:100000000C945B000C9483000C9483000C9483008C +:100010000C9483000C9483000C9483000C94830054 +:100020000C9483000C9483000C9483000C94830044 +:100030000C9483000C9483000C9483000C94830034 +:100040000C943B030C9483000C94BC050C9483002B +:100050000C9483000C9483000C9483000C94830014 +:100060000C9483000C948300000024272A000025B0 +:10007000282B000023262904040404040404040299 +:100080000202020202030303030303010204081035 +:100090002040800102040810200102040810200002 +:1000A0000000070002010000030406000000000039 +:1000B00000000000930111241FBECFEFD4E0DEBF8B +:1000C000CDBF11E0A0E0B1E0EAECFCE002C0059099 +:1000D0000D92A431B107D9F711E0A4E1B1E001C05C +:1000E0001D92AC3BB107E1F710E0C6EBD0E004C0D5 +:1000F0002297FE010E945F06C43BD107C9F70E9408 +:100100008C010C9463060C9400000F931F93CF9303 +:10011000DF930CE111E0C0E0D0E0C330D105F9F08D +:10012000C430D1054CF4C130D105A9F0C230D1059D +:10013000A4F4209771F03EC0C530D105C9F0C53098 +:10014000D1057CF0C630D105D1F0C730D10591F58D +:1001500022C060E007C060E00CC060E011C060E059 +:100160001BC061E0809102010E94AB0460E00DC001 +:1001700061E0809102010E94AB0460E012C061E086 +:10018000809102010E94AB0461E0809104010E9411 +:10019000AB0460E00BC061E0809102010E94AB04FF +:1001A00061E0809104010E94AB0461E0809106014E +:1001B0000E94AB046AE070E080E090E00E94A60339 +:1001C000809114010E941B049093170180931601E3 +:1001D000F801819391938F01809108019091090119 +:1001E000AC0173E0440F551F7A95E1F7880F991F12 +:1001F000480F591F48535F4F4C0F5D1F662757FD2F +:100200006095762F20E030E08EE291E00E941B03A3 +:10021000809116019091170165E070E00E94F90548 +:10022000AB01662757FD6095762F20E030E08EE227 +:1002300091E00E941B032196C830D10509F06DCFD3 +:10024000809100010E941B04909317018093160176 +:1002500090932D0180932C018091080190910901C8 +:10026000AC0133E0440F551F3A95E1F7880F991F11 +:10027000480F591F40535F4F662757FD6095762FF3 +:1002800020E030E08EE291E00E941B038091160195 +:100290009091170165E070E00E94F905AB016627B7 +:1002A00057FD6095762F20E030E08EE291E00E94CD +:1002B0001B0364E170E080E090E00E94A603DF9100 +:1002C000CF911F910F91089540E052EC61E070E0F2 +:1002D0008EE291E00E94A70161E0809102010E94FC +:1002E0008D0461E0809104010E948D0461E08091A1 +:1002F00006010E948D0460E08EE00E948D0460E0A3 +:100300008FE00E948D0461E08EE00E94AB0461E00A +:100310008FE00E94AB0408950E94DE030E946401F6 +:100320000E948500FDCF80E191E090932F018093A2 +:100330002E010895862F0E947B0508950E94B30523 +:1003400008950E94940508950E9483050895CB01A5 +:10035000BA010E9442050895DC01ED91FC910190E3 +:10036000F081E02D09950895DC01ED91FC9101905B +:10037000F081E02D099508950F931F93CF93DF939C +:100380008C01EB0109C02196D801ED91FC910190FF +:10039000F081E02DC801099568816623A1F7DF91FE +:1003A000CF911F910F9108950F931F938C01DC0142 +:1003B000ED91FC910190F081E02D6DE00995D8015F +:1003C000ED91FC910190F081E02D6AE0C801099562 +:1003D0001F910F9108950F931F938C01DC01ED91F4 +:1003E000FC910190F081E02D0995C8010E94D40193 +:1003F0001F910F9108950F931F938C010E94BC01D0 +:10040000C8010E94D4011F910F9108950F931F936B +:100410008C01DC01ED91FC910190F081E02D0995BA +:10042000C8010E94D4011F910F9108952F923F920D +:100430004F925F926F927F928F929F92AF92BF92F4 +:10044000CF92DF92EF92FF920F931F93DF93CF93A0 +:10045000CDB7DEB7A0970FB6F894DEBF0FBECDBF05 +:100460001C016A017B01411551056105710549F4C3 +:10047000DC01ED91FC910190F081E02D60E30995A4 +:1004800054C0882499245401422E5524662477248C +:1004900001E010E00C0F1D1F080D191DC701B6016A +:1004A000A30192010E940C06F80160830894811C4C +:1004B000911CA11CB11CC701B601A30192010E94AD +:1004C0000C06C901DA016C017D01C114D104E104FB +:1004D000F104F1F681E0E82EF12CEC0EFD1EE80CA3 +:1004E000F91C3E010894611C711CD501C4010197DF +:1004F000A109B1096C01C818D90814C0F601EE0DA4 +:10050000FF1D60816A3010F4605D01C0695CD1013B +:10051000ED91FC910190F081E02DC10109950894C5 +:10052000E108F1086E147F0449F7A0960FB6F8941D +:10053000DEBF0FBECDBFCF91DF911F910F91FF9016 +:10054000EF90DF90CF90BF90AF909F908F907F9073 +:100550006F905F904F903F902F9008952AE00E94F7 +:10056000160208950F931F938C010E94AE02C801DA +:100570000E94D4011F910F910895AB0160E070E0DB +:100580000E94AE0208950F931F938C01AB0160E0AF +:1005900070E00E94AE02C8010E94D4011F910F9129 +:1005A0000895EF92FF920F931F93CF93DF93EC0187 +:1005B0007A018B0177FF0FC0E881F9810190F0810A +:1005C000E02D6DE2099510950095F094E094E11C02 +:1005D000F11C011D111D2AE0B801A701CE010E94E6 +:1005E0001602DF91CF911F910F91FF90EF90089528 +:1005F0000F931F938C010E94D102C8010E94D40165 +:100600001F910F910895AB01662757FD6095762FD6 +:100610000E94D10208950F931F938C01AB016627AE +:1006200057FD6095762F0E94D102C8010E94D40127 +:100630001F910F910895DC012115310541F4ED91D1 +:10064000FC910190F081E02D642F099508952A30E6 +:10065000310519F40E94D10208950E9416020895EE +:100660000F931F938C010E941B03C8010E94D401A9 +:100670001F910F9108951F920F920FB60F921124A0 +:100680002F938F939F93AF93BF938091300190915D +:100690003101A0913201B09133018050904CAF4FA5 +:1006A000BF4F8093300190933101A0933201B093FA +:1006B000330127C08091300190913101A091320126 +:1006C000B091330180589E43A040B04080933001E8 +:1006D00090933101A0933201B093330180913401A2 +:1006E00090913501A0913601B09137010196A11D7D +:1006F000B11D8093340190933501A0933601B093DE +:1007000037018091300190913101A0913201B09177 +:10071000330181589E43A040B04060F6BF91AF9135 +:100720009F918F912F910F900FBE0F901F90189552 +:100730008FB7F89420913401309135014091360102 +:10074000509137018FBFB901CA010895EF92FF920E +:100750000F931F937B018C018FB7F8944091340164 +:100760005091350160913601709137018FBF2FB7DD +:10077000F8948091340190913501A0913601B091A7 +:1007800037012FBF841B950BA60BB70B8E159F054A +:10079000A007B10760F31F910F91FF90EF900895AC +:1007A000019759F0FC01EE0FFF1FEE0FFF1F32976C +:1007B0008FB7F8943197F1F78FBF0895789484B587 +:1007C000826084BD84B5816084BD85B5826085BD4D +:1007D00085B5816085BDEEE6F0E080818160808333 +:1007E000E1E8F0E0808182608083808181608083A5 +:1007F000E0E8F0E0808181608083E1EBF0E08081DF +:1008000084608083E0EBF0E0808181608083EAE7B0 +:10081000F0E0808184608083808182608083808139 +:10082000816080838081806880831092C1000895F8 +:100830008093120108958F70909112019295990FF3 +:10084000990F907C982B90937C0080917A00806423 +:1008500080937A0080917A0086FDFCCF2091780009 +:1008600040917900942F80E030E0282B392BC9018A +:1008700008951F93CF93DF93182FEB0161E00E943F +:100880008D04E12FF0E0E156FF4F8491833051F465 +:1008900080918000806880938000D0938900C0930D +:1008A000880037C0843051F480918000806280934A +:1008B0008000D0938B00C0938A002BC0813029F434 +:1008C00084B5806884BDC7BD24C0823029F484B556 +:1008D000806284BDC8BD1DC0863041F48091B000E7 +:1008E00080688093B000C093B30013C0873041F498 +:1008F0008091B00080628093B000C093B40009C0C2 +:10090000C038D10514F460E001C061E0812F0E947D +:10091000AB04DF91CF911F910895282F30E0C901DA +:1009200085579F4FFC01949129583F4FF9018491BD +:10093000882381F0E82FF0E0E859FF4FE491F0E0E0 +:10094000662329F48081909589238083089580818E +:10095000892B80830895482F50E0CA0181569F4F0C +:10096000FC012491CA0185579F4FFC01949149587D +:100970005F4FFA0134913323C1F1222331F1233047 +:1009800021F4809180008F7705C0243031F480916C +:1009900080008F7D8093800018C0213019F484B5C9 +:1009A0008F7704C0223021F484B58F7D84BD0DC0C3 +:1009B000263021F48091B0008F7705C0273029F4CC +:1009C0008091B0008F7D8093B000E32FF0E0E35979 +:1009D000FF4FE491F0E0662329F48081909589230C +:1009E000808308958081892B80830895482F50E06B +:1009F000CA0181569F4FFC012491CA0185579F4F20 +:100A0000FC01949149585F4FFA013491332319F452 +:100A100020E030E035C0222331F1233021F48091F1 +:100A200080008F7705C0243031F4809180008F7D65 +:100A30008093800018C0213019F484B58F7704C0EA +:100A4000223021F484B58F7D84BD0DC0263021F481 +:100A50008091B0008F7705C0273029F48091B000D5 +:100A60008F7D8093B000E32FF0E0EE58FF4FE491CC +:100A7000F0E0808120E030E0892311F021E030E0D7 +:100A8000C9010895EF92FF920F931F937B018C0190 +:100A900022E030E040E050E00E942E06205C3D4B1A +:100AA000404F5F4FCA01B901A80197010E942E066D +:100AB000C901DA010197A109B109292F3A2F4B2F5A +:100AC000552747FD5A950196A11DB11D2093C500DC +:100AD00081508093C400E1ECF0E0808180618083EC +:100AE0008081886080838081806880831F910F91DE +:100AF000FF90EF900895982F8091C00085FFFCCF64 +:100B00009093C600089580913801909139018058E2 +:100B10009F4F20913A0130913B01821B930B60E87B +:100B200070E00E94F905089540913A0150913B010F +:100B300080913801909139018417950719F42FEFAE +:100B40003FEF0FC0FA01E45CFE4F2081CA0101961D +:100B500060E870E00E94F90590933B0180933A01B0 +:100B600030E0C901089580913A0190913B01909342 +:100B700039018093380108951F920F920FB60F929A +:100B800011242F933F934F935F936F937F938F9392 +:100B90009F93AF93BF93EF93FF934091C600E09173 +:100BA0003801F0913901CF01019660E870E00E94B0 +:100BB000F9059C0180913A0190913B012817390772 +:100BC00039F0E45CFE4F40833093390120933801C3 +:100BD000FF91EF91BF91AF919F918F917F916F9115 +:100BE0005F914F913F912F910F900FBE0F901F90EB +:100BF000189597FB092E07260AD077FD04D049D017 +:100C000006D000201AF4709561957F4F0895F6F78D +:100C1000909581959F4F0895A1E21A2EAA1BBB1BA8 +:100C2000FD010DC0AA1FBB1FEE1FFF1FA217B307B8 +:100C3000E407F50720F0A21BB30BE40BF50B661FCE +:100C4000771F881F991F1A9469F760957095809592 +:100C500090959B01AC01BD01CF01089597FB092E32 +:100C600005260ED057FD04D0D7DF0AD0001C38F47B +:100C700050954095309521953F4F4F4F5F4F0895C8 +:100C8000F6F790958095709561957F4F8F4F9F4FA8 +:100C90000895AA1BBB1B51E107C0AA1FBB1FA617C3 +:100CA000B70710F0A61BB70B881F991F5A95A9F715 +:100CB00080959095BC01CD010895EE0FFF1F059022 +:0A0CC000F491E02D0994F894FFCFA1 +:100CCA00010006000500040001000A0000000000FF +:040CDA009A0101007A +:00000001FF diff --git a/2009/teresa/applet/teresa.rom b/2009/teresa/applet/teresa.rom new file mode 100644 index 0000000..6bd36c6 --- /dev/null +++ b/2009/teresa/applet/teresa.rom @@ -0,0 +1,209 @@ +S02B0000433A5C446F63756D656E747320616E642053657474696E67735C48616E6761725C4D697320646F63FD +S11300000C945B000C9483000C9483000C94830088 +S11300100C9483000C9483000C9483000C94830050 +S11300200C9483000C9483000C9483000C94830040 +S11300300C9483000C9483000C9483000C94830030 +S11300400C943B030C9483000C94BC050C94830027 +S11300500C9483000C9483000C9483000C94830010 +S11300600C9483000C948300000024272A000025AC +S1130070282B000023262904040404040404040295 +S11300800202020202030303030303010204081031 +S113009020408001020408102001020408102000FE +S11300A00000070002010000030406000000000035 +S11300B000000000930111241FBECFEFD4E0DEBF87 +S11300C0CDBF11E0A0E0B1E0EAECFCE002C0059095 +S11300D00D92A431B107D9F711E0A4E1B1E001C058 +S11300E01D92AC3BB107E1F710E0C6EBD0E004C0D1 +S11300F02297FE010E945F06C43BD107C9F70E9404 +S11301008C010C9463060C9400000F931F93CF93FF +S1130110DF930CE111E0C0E0D0E0C330D105F9F089 +S1130120C430D1054CF4C130D105A9F0C230D10599 +S1130130A4F4209771F03EC0C530D105C9F0C53094 +S1130140D1057CF0C630D105D1F0C730D10591F589 +S113015022C060E007C060E00CC060E011C060E055 +S11301601BC061E0809102010E94AB0460E00DC0FD +S113017061E0809102010E94AB0460E012C061E082 +S1130180809102010E94AB0461E0809104010E940D +S1130190AB0460E00BC061E0809102010E94AB04FB +S11301A061E0809104010E94AB0461E0809106014A +S11301B00E94AB046AE070E080E090E00E94A60335 +S11301C0809114010E941B049093170180931601DF +S11301D0F801819391938F01809108019091090115 +S11301E0AC0173E0440F551F7A95E1F7880F991F0E +S11301F0480F591F48535F4F4C0F5D1F662757FD2B +S11302006095762F20E030E08EE291E00E941B039F +S1130210809116019091170165E070E00E94F90544 +S1130220AB01662757FD6095762F20E030E08EE223 +S113023091E00E941B032196C830D10509F06DCFCF +S1130240809100010E941B04909317018093160172 +S113025090932D0180932C018091080190910901C4 +S1130260AC0133E0440F551F3A95E1F7880F991F0D +S1130270480F591F40535F4F662757FD6095762FEF +S113028020E030E08EE291E00E941B038091160191 +S11302909091170165E070E00E94F905AB016627B3 +S11302A057FD6095762F20E030E08EE291E00E94C9 +S11302B01B0364E170E080E090E00E94A603DF91FC +S11302C0CF911F910F91089540E052EC61E070E0EE +S11302D08EE291E00E94A70161E0809102010E94F8 +S11302E08D0461E0809104010E948D0461E080919D +S11302F006010E948D0460E08EE00E948D0460E09F +S11303008FE00E948D0461E08EE00E94AB0461E006 +S11303108FE00E94AB0408950E94DE030E946401F2 +S11303200E948500FDCF80E191E090932F0180939E +S11303302E010895862F0E947B0508950E94B3051F +S113034008950E94940508950E9483050895CB01A1 +S1130350BA010E9442050895DC01ED91FC910190DF +S1130360F081E02D09950895DC01ED91FC91019057 +S1130370F081E02D099508950F931F93CF93DF9398 +S11303808C01EB0109C02196D801ED91FC910190FB +S1130390F081E02DC801099568816623A1F7DF91FA +S11303A0CF911F910F9108950F931F938C01DC013E +S11303B0ED91FC910190F081E02D6DE00995D8015B +S11303C0ED91FC910190F081E02D6AE0C80109955E +S11303D01F910F9108950F931F938C01DC01ED91F0 +S11303E0FC910190F081E02D0995C8010E94D4018F +S11303F01F910F9108950F931F938C010E94BC01CC +S1130400C8010E94D4011F910F9108950F931F9367 +S11304108C01DC01ED91FC910190F081E02D0995B6 +S1130420C8010E94D4011F910F9108952F923F9209 +S11304304F925F926F927F928F929F92AF92BF92F0 +S1130440CF92DF92EF92FF920F931F93DF93CF939C +S1130450CDB7DEB7A0970FB6F894DEBF0FBECDBF01 +S11304601C016A017B01411551056105710549F4BF +S1130470DC01ED91FC910190F081E02D60E30995A0 +S113048054C0882499245401422E55246624772488 +S113049001E010E00C0F1D1F080D191DC701B60166 +S11304A0A30192010E940C06F80160830894811C48 +S11304B0911CA11CB11CC701B601A30192010E94A9 +S11304C00C06C901DA016C017D01C114D104E104F7 +S11304D0F104F1F681E0E82EF12CEC0EFD1EE80C9F +S11304E0F91C3E010894611C711CD501C4010197DB +S11304F0A109B1096C01C818D90814C0F601EE0DA0 +S1130500FF1D60816A3010F4605D01C0695CD10137 +S1130510ED91FC910190F081E02DC10109950894C1 +S1130520E108F1086E147F0449F7A0960FB6F89419 +S1130530DEBF0FBECDBFCF91DF911F910F91FF9012 +S1130540EF90DF90CF90BF90AF909F908F907F906F +S11305506F905F904F903F902F9008952AE00E94F3 +S1130560160208950F931F938C010E94AE02C801D6 +S11305700E94D4011F910F910895AB0160E070E0D7 +S11305800E94AE0208950F931F938C01AB0160E0AB +S113059070E00E94AE02C8010E94D4011F910F9125 +S11305A00895EF92FF920F931F93CF93DF93EC0183 +S11305B07A018B0177FF0FC0E881F9810190F08106 +S11305C0E02D6DE2099510950095F094E094E11CFE +S11305D0F11C011D111D2AE0B801A701CE010E94E2 +S11305E01602DF91CF911F910F91FF90EF90089524 +S11305F00F931F938C010E94D102C8010E94D40161 +S11306001F910F910895AB01662757FD6095762FD2 +S11306100E94D10208950F931F938C01AB016627AA +S113062057FD6095762F0E94D102C8010E94D40123 +S11306301F910F910895DC012115310541F4ED91CD +S1130640FC910190F081E02D642F099508952A30E2 +S1130650310519F40E94D10208950E9416020895EA +S11306600F931F938C010E941B03C8010E94D401A5 +S11306701F910F9108951F920F920FB60F9211249C +S11306802F938F939F93AF93BF9380913001909159 +S11306903101A0913201B09133018050904CAF4FA1 +S11306A0BF4F8093300190933101A0933201B093F6 +S11306B0330127C08091300190913101A091320122 +S11306C0B091330180589E43A040B04080933001E4 +S11306D090933101A0933201B0933301809134019E +S11306E090913501A0913601B09137010196A11D79 +S11306F0B11D8093340190933501A0933601B093DA +S113070037018091300190913101A0913201B09173 +S1130710330181589E43A040B04060F6BF91AF9131 +S11307209F918F912F910F900FBE0F901F9018954E +S11307308FB7F894209134013091350140913601FE +S1130740509137018FBFB901CA010895EF92FF920A +S11307500F931F937B018C018FB7F8944091340160 +S11307605091350160913601709137018FBF2FB7D9 +S1130770F8948091340190913501A0913601B091A3 +S113078037012FBF841B950BA60BB70B8E159F0546 +S1130790A007B10760F31F910F91FF90EF900895A8 +S11307A0019759F0FC01EE0FFF1FEE0FFF1F329768 +S11307B08FB7F8943197F1F78FBF0895789484B583 +S11307C0826084BD84B5816084BD85B5826085BD49 +S11307D085B5816085BDEEE6F0E08081816080832F +S11307E0E1E8F0E0808182608083808181608083A1 +S11307F0E0E8F0E0808181608083E1EBF0E08081DB +S113080084608083E0EBF0E0808181608083EAE7AC +S1130810F0E0808184608083808182608083808135 +S1130820816080838081806880831092C1000895F4 +S11308308093120108958F70909112019295990FEF +S1130840990F907C982B90937C0080917A0080641F +S113085080937A0080917A0086FDFCCF2091780005 +S113086040917900942F80E030E0282B392BC90186 +S113087008951F93CF93DF93182FEB0161E00E943B +S11308808D04E12FF0E0E156FF4F8491833051F461 +S113089080918000806880938000D0938900C09309 +S11308A0880037C0843051F4809180008062809346 +S11308B08000D0938B00C0938A002BC0813029F430 +S11308C084B5806884BDC7BD24C0823029F484B552 +S11308D0806284BDC8BD1DC0863041F48091B000E3 +S11308E080688093B000C093B30013C0873041F494 +S11308F08091B00080628093B000C093B40009C0BE +S1130900C038D10514F460E001C061E0812F0E9479 +S1130910AB04DF91CF911F910895282F30E0C901D6 +S113092085579F4FFC01949129583F4FF9018491B9 +S1130930882381F0E82FF0E0E859FF4FE491F0E0DC +S1130940662329F48081909589238083089580818A +S1130950892B80830895482F50E0CA0181569F4F08 +S1130960FC012491CA0185579F4FFC019491495879 +S11309705F4FFA0134913323C1F1222331F1233043 +S113098021F4809180008F7705C0243031F4809168 +S113099080008F7D8093800018C0213019F484B5C5 +S11309A08F7704C0223021F484B58F7D84BD0DC0BF +S11309B0263021F48091B0008F7705C0273029F4C8 +S11309C08091B0008F7D8093B000E32FF0E0E35975 +S11309D0FF4FE491F0E0662329F480819095892308 +S11309E0808308958081892B80830895482F50E067 +S11309F0CA0181569F4FFC012491CA0185579F4F1C +S1130A00FC01949149585F4FFA013491332319F44E +S1130A1020E030E035C0222331F1233021F48091ED +S1130A2080008F7705C0243031F4809180008F7D61 +S1130A308093800018C0213019F484B58F7704C0E6 +S1130A40223021F484B58F7D84BD0DC0263021F47D +S1130A508091B0008F7705C0273029F48091B000D1 +S1130A608F7D8093B000E32FF0E0EE58FF4FE491C8 +S1130A70F0E0808120E030E0892311F021E030E0D3 +S1130A80C9010895EF92FF920F931F937B018C018C +S1130A9022E030E040E050E00E942E06205C3D4B16 +S1130AA0404F5F4FCA01B901A80197010E942E0669 +S1130AB0C901DA010197A109B109292F3A2F4B2F56 +S1130AC0552747FD5A950196A11DB11D2093C500D8 +S1130AD081508093C400E1ECF0E0808180618083E8 +S1130AE08081886080838081806880831F910F91DA +S1130AF0FF90EF900895982F8091C00085FFFCCF60 +S1130B009093C600089580913801909139018058DE +S1130B109F4F20913A0130913B01821B930B60E877 +S1130B2070E00E94F905089540913A0150913B010B +S1130B3080913801909139018417950719F42FEFAA +S1130B403FEF0FC0FA01E45CFE4F2081CA01019619 +S1130B5060E870E00E94F90590933B0180933A01AC +S1130B6030E0C901089580913A0190913B0190933E +S1130B7039018093380108951F920F920FB60F9296 +S1130B8011242F933F934F935F936F937F938F938E +S1130B909F93AF93BF93EF93FF934091C600E0916F +S1130BA03801F0913901CF01019660E870E00E94AC +S1130BB0F9059C0180913A0190913B01281739076E +S1130BC039F0E45CFE4F40833093390120933801BF +S1130BD0FF91EF91BF91AF919F918F917F916F9111 +S1130BE05F914F913F912F910F900FBE0F901F90E7 +S1130BF0189597FB092E07260AD077FD04D049D013 +S1130C0006D000201AF4709561957F4F0895F6F789 +S1130C10909581959F4F0895A1E21A2EAA1BBB1BA4 +S1130C20FD010DC0AA1FBB1FEE1FFF1FA217B307B4 +S1130C30E407F50720F0A21BB30BE40BF50B661FCA +S1130C40771F881F991F1A9469F76095709580958E +S1130C5090959B01AC01BD01CF01089597FB092E2E +S1130C6005260ED057FD04D0D7DF0AD0001C38F477 +S1130C7050954095309521953F4F4F4F5F4F0895C4 +S1130C80F6F790958095709561957F4F8F4F9F4FA4 +S1130C900895AA1BBB1B51E107C0AA1FBB1FA617BF +S1130CA0B70710F0A61BB70B881F991F5A95A9F711 +S1130CB080959095BC01CD010895EE0FFF1F05901E +S10D0CC0F491E02D0994F894FFCF9D +S1130CCA010006000500040001000A0000000000FB +S1070CDA9A01010076 +S9030000FC diff --git a/2009/teresa/applet/wiring.c.o b/2009/teresa/applet/wiring.c.o new file mode 100644 index 0000000..f80b9b7 Binary files /dev/null and b/2009/teresa/applet/wiring.c.o differ diff --git a/2009/teresa/applet/wiring_analog.c.o b/2009/teresa/applet/wiring_analog.c.o new file mode 100644 index 0000000..c057e47 Binary files /dev/null and b/2009/teresa/applet/wiring_analog.c.o differ diff --git a/2009/teresa/applet/wiring_digital.c.o b/2009/teresa/applet/wiring_digital.c.o new file mode 100644 index 0000000..32cacf8 Binary files /dev/null and b/2009/teresa/applet/wiring_digital.c.o differ diff --git a/2009/teresa/applet/wiring_pulse.c.o b/2009/teresa/applet/wiring_pulse.c.o new file mode 100644 index 0000000..647777e Binary files /dev/null and b/2009/teresa/applet/wiring_pulse.c.o differ diff --git a/2009/teresa/applet/wiring_serial.c.o b/2009/teresa/applet/wiring_serial.c.o new file mode 100644 index 0000000..0e111f8 Binary files /dev/null and b/2009/teresa/applet/wiring_serial.c.o differ diff --git a/2009/teresa/applet/wiring_shift.c.o b/2009/teresa/applet/wiring_shift.c.o new file mode 100644 index 0000000..2b7b2a6 Binary files /dev/null and b/2009/teresa/applet/wiring_shift.c.o differ diff --git a/2009/teresa/teresa.pde b/2009/teresa/teresa.pde new file mode 100644 index 0000000..e9dc6c6 --- /dev/null +++ b/2009/teresa/teresa.pde @@ -0,0 +1,104 @@ + +int sensor=0; // Salida analogica del multiplexor +int pad=1; // Entrada analogica +int bit1=6; // PIN digital al S2 del multiplexor +int bit2=5; // PIN digital al S1 del multiplexor +int bit3=4; // PIN digital al S0 del multiplexor +int id=1; + +int val=0; +long int env=0; +int res=10; +int vald[9] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +void setup() +{ + Serial.begin(115200); + pinMode(bit1,OUTPUT); + pinMode(bit2,OUTPUT); + pinMode(bit3,OUTPUT); + pinMode(14,INPUT); + pinMode(15,INPUT); + digitalWrite(14,HIGH); + digitalWrite(15,HIGH); +} + +void loop() +{ + for (int i=0;i<8;i++) + { // Recorre las 8 posiciones del multiplexor + switch (i) { + case 0: + digitalWrite(bit1,LOW); // Posici?n 0 --> S0=0, S1=0 y S3 =0 (en binario) + digitalWrite(bit2,LOW); + digitalWrite(bit3,LOW); + break; + case 1: + digitalWrite(bit1,LOW); + digitalWrite(bit2,LOW); + digitalWrite(bit3,HIGH); + break; + case 2: + digitalWrite(bit1,LOW); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,LOW); + break; + case 3: + digitalWrite(bit1,LOW); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,HIGH); + break; + case 4: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,LOW); + digitalWrite(bit3,LOW); + break; + case 5: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,LOW); + digitalWrite(bit3,HIGH); + break; + case 6: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,LOW); + break; + case 7: + digitalWrite(bit1,HIGH); + digitalWrite(bit2,HIGH); + digitalWrite(bit3,HIGH); + break; + } + + delay(10); + + val = analogRead(sensor); // Lee el valor del pad + //if ((val<=vald[i]-res)||(val>=vald[i]+res)) + //{ + vald[i] =val; + /*Serial.print("Valor de "); + Serial.print(i); + Serial.print(" es: ");*/ + Serial.print(200+id*10+i,BYTE); + Serial.print(val/5,BYTE); + + //} + } + + val = analogRead(pad); // Lee el valor del pad + //if ((val<=vald[8]-res)||(val>=vald[8]+res)) + //{ + vald[8] =val; + /*Serial.print("Valor de "); + Serial.print(8); + Serial.print(" es: "); */ + Serial.print(200+id*10+8,BYTE); + Serial.print(val/5,BYTE); + delay(20); + //} + + +} + + diff --git a/2009/tunel/applet/HardwareSerial.cpp.o b/2009/tunel/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..84639f2 Binary files /dev/null and b/2009/tunel/applet/HardwareSerial.cpp.o differ diff --git a/2009/tunel/applet/Print.cpp.o b/2009/tunel/applet/Print.cpp.o new file mode 100644 index 0000000..2a415db Binary files /dev/null and b/2009/tunel/applet/Print.cpp.o differ diff --git a/2009/tunel/applet/WInterrupts.c.o b/2009/tunel/applet/WInterrupts.c.o new file mode 100644 index 0000000..978ea90 Binary files /dev/null and b/2009/tunel/applet/WInterrupts.c.o differ diff --git a/2009/tunel/applet/WMath.cpp.o b/2009/tunel/applet/WMath.cpp.o new file mode 100644 index 0000000..92589f7 Binary files /dev/null and b/2009/tunel/applet/WMath.cpp.o differ diff --git a/2009/tunel/applet/core.a b/2009/tunel/applet/core.a new file mode 100644 index 0000000..07e9378 Binary files /dev/null and b/2009/tunel/applet/core.a differ diff --git a/2009/tunel/applet/pins_arduino.c.o b/2009/tunel/applet/pins_arduino.c.o new file mode 100644 index 0000000..62d00ac Binary files /dev/null and b/2009/tunel/applet/pins_arduino.c.o differ diff --git a/2009/tunel/applet/tunel.cpp b/2009/tunel/applet/tunel.cpp new file mode 100644 index 0000000..f160bbf --- /dev/null +++ b/2009/tunel/applet/tunel.cpp @@ -0,0 +1,32 @@ + +#include "WProgram.h" +void setup(); +void loop(); +void setup() +{ + Serial.begin(9600); +} + + +void loop() +{ + + while (Serial.available()>0) + { + + Serial.print(Serial.read(),BYTE); + } +} + +int main(void) +{ + init(); + + setup(); + + for (;;) + loop(); + + return 0; +} + diff --git a/2009/tunel/applet/tunel.cpp.eep b/2009/tunel/applet/tunel.cpp.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/2009/tunel/applet/tunel.cpp.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/2009/tunel/applet/tunel.cpp.elf b/2009/tunel/applet/tunel.cpp.elf new file mode 100644 index 0000000..e17c17f Binary files /dev/null and b/2009/tunel/applet/tunel.cpp.elf differ diff --git a/2009/tunel/applet/tunel.cpp.hex b/2009/tunel/applet/tunel.cpp.hex new file mode 100644 index 0000000..1116230 --- /dev/null +++ b/2009/tunel/applet/tunel.cpp.hex @@ -0,0 +1,142 @@ +:100000000C9435000C945D000C945D000C945D0024 +:100010000C945D000C945D000C945D000C945D00EC +:100020000C945D000C945D000C945D000C945D00DC +:100030000C945D000C945D000C945D000C945D00CC +:100040000C9486000C945D000C9408010C945D00E7 +:100050000C945D000C945D000C945D000C945D00AC +:100060000C945D000C945D008D0211241FBECFEF37 +:10007000D8E0DEBFCDBF11E0A0E0B1E0EAEBF8E0F0 +:1000800002C005900D92AA30B107D9F711E0AAE09D +:10009000B1E001C01D92AA3AB107E1F710E0CAE64B +:1000A000D0E004C02297FE010E945704C836D10751 +:1000B000C9F70E947F000C945B040C9400000FC0F1 +:1000C00087E991E00E945202AC01662757FD6095D6 +:1000D000762F87E991E020E030E00E94BD0387E9B8 +:1000E00091E00E943E02882359F7089587E991E044 +:1000F00040E855E260E070E00E94450108950E94EA +:10010000CE000E9476000E945F00FDCF1F920F92EA +:100110000FB60F9211242F933F938F939F93AF931A +:10012000BF9380910E0190910F01A0911001B091A9 +:100130001101309112010196A11DB11D232F2D5FD8 +:100140002D3720F02D570196A11DB11D20931201CE +:1001500080930E0190930F01A0931001B0931101B1 +:1001600080910A0190910B01A0910C01B0910D01B9 +:100170000196A11DB11D80930A0190930B01A093DC +:100180000C01B0930D01BF91AF919F918F913F9161 +:100190002F910F900FBE0F901F901895789484B5F3 +:1001A000826084BD84B5816084BD85B5826085BD73 +:1001B00085B5816085BDEEE6F0E080818160808359 +:1001C000E1E8F0E0808182608083808181608083CB +:1001D000E0E8F0E0808181608083E1EBF0E0808105 +:1001E00084608083E0EBF0E0808181608083EAE7D7 +:1001F000F0E0808184608083808182608083808160 +:10020000816080838081806880831092C10008951E +:100210001F920F920FB60F9211242F933F934F937B +:100220005F936F937F938F939F93AF93BF93EF935E +:10023000FF934091C600E0919301F0919401CF01AA +:10024000019660E870E00E94F1039C0180919501A5 +:10025000909196012817390739F0ED5EFE4F4083E3 +:100260003093940120939301FF91EF91BF91AF914F +:100270009F918F917F916F915F914F913F912F91BE +:100280000F900FBE0F901F9018955F926F927F9204 +:100290008F929F92AF92BF92CF92DF92EF92FF9296 +:1002A0000F931F93CF93DF93EC013A014B0141343D +:1002B00082E458078FE0680780E078070CF07FC081 +:1002C00060E874E88EE190E0A40193010E942604A6 +:1002D0002150304040405040CA01B90122E030E096 +:1002E00040E050E00E94260459016A01A6019501F0 +:1002F000209530954095509594E0220F331F441F70 +:10030000551F9A95D1F760E074E284EF90E00E9467 +:100310002604CA01B9012FEF30E040E050E00E940E +:10032000D203A40193010E942604C90181509F4F6A +:10033000181619061CF4522E5A9403C055245394CF +:10034000521A60E079E08DE390E0A40193010E94ED +:1003500026042150304040405040CA01B90122E0FB +:1003600030E040E050E00E94260420953095409512 +:10037000509583E0220F331F441F551F8A95D1F7F4 +:1003800060E074E284EF90E00E942604CA01B901A3 +:100390002FEF30E040E050E00E94D203A40193012F +:1003A0000E942604C90181509F4F181619061CF49B +:1003B000822F815002C081E0821B851500F5E885FF +:1003C000F98581E090E00A8802C0880F991F0A949D +:1003D000E2F7808360E079E08DE390E0A40193018F +:1003E0000E9426042150304040405040CA01B901CB +:1003F00022E030E040E050E00E94260404C0E8859E +:10040000F98510829501EC81FD813083EE81FF81B9 +:100410002083EA85FB85208141E050E0CA010E84FB +:1004200002C0880F991F0A94E2F7282B2083EA85DF +:10043000FB852081CA010F8402C0880F991F0A948E +:10044000E2F7282B2083EA85FB858081088802C09B +:10045000440F551F0A94E2F7842B8083DF91CF91DC +:100460001F910F91FF90EF90DF90CF90BF90AF90D2 +:100470009F908F907F906F905F900895DC0112960F +:10048000ED91FC911397E058FF4F81919191805825 +:100490009F4F20813181821B930B60E870E00E94A6 +:1004A000F1030895CF93DF93DC011296ED91FC9157 +:1004B0001397EF01CE57DF4F48815981E058FF4F26 +:1004C00080819181E058F0408417950719F42FEF4F +:1004D0003FEF0CC0E40FF51F2081CA01019660E8D0 +:1004E00070E00E94F1039983888330E0C901DF91B5 +:1004F000CF910895FC01A085B18521898C9190E070 +:10050000022E02C0959587950A94E2F780FFF6CFF8 +:100510000484F585E02D6083089584E091E0909354 +:1005200098018093970183E191E090939A018093E1 +:10053000990185EC90E090939C0180939B0184EC61 +:1005400090E090939E0180939D0180EC90E09093C9 +:10055000A00180939F0181EC90E09093A201809391 +:10056000A10186EC90E09093A4018093A30184E024 +:100570008093A50183E08093A60187E08093A70183 +:1005800085E08093A80181E08093A90108950F93ED +:100590001F93CF93DF938C01EB0109C02196D80103 +:1005A000ED91FC910190F081E02DC80109956881E1 +:1005B0006623A1F7DF91CF911F910F910895EF92DC +:1005C000FF920F931F93CF93DF938C017B01EA017E +:1005D0000CC0D7016D917D01D801ED91FC91019086 +:1005E000F081E02DC80109952197209791F7DF91BF +:1005F000CF911F910F91FF90EF9008952F923F920E +:100600004F925F926F927F928F929F92AF92BF9222 +:10061000CF92DF92EF92FF920F931F93DF93CF93CE +:10062000CDB7DEB7A0970FB6F894DEBF0FBECDBF33 +:100630001C016A017B01411551056105710549F4F1 +:10064000DC01ED91FC910190F081E02D60E30995D2 +:1006500054C0882499245401422E552466247724BA +:1006600001E010E00C0F1D1F080D191DC701B60198 +:10067000A30192010E940404F80160830894811C84 +:10068000911CA11CB11CC701B601A30192010E94DB +:100690000404C901DA016C017D01C114D104E10433 +:1006A000F104F1F681E0E82EF12CEC0EFD1EE80CD1 +:1006B000F91C3E010894611C711CD501C40101970D +:1006C000A109B1096C01C818D90814C0F601EE0DD2 +:1006D000FF1D60816A3010F4605D01C0695CD1016A +:1006E000ED91FC910190F081E02DC10109950894F4 +:1006F000E108F1086E147F0449F7A0960FB6F8944C +:10070000DEBF0FBECDBFCF91DF911F910F91FF9044 +:10071000EF90DF90CF90BF90AF909F908F907F90A1 +:100720006F905F904F903F902F900895EF92FF92BF +:100730000F931F93CF93DF93EC017A018B0177FF27 +:100740000FC0E881F9810190F081E02D6DE20995FB +:1007500010950095F094E094E11CF11C011D111D11 +:10076000CE01B801A7012AE00E94FE02DF91CF91DD +:100770001F910F91FF90EF900895DC012115310535 +:1007800041F4ED91FC910190F081E02D642F0995E9 +:1007900008952A30310519F40E94960308950E94A5 +:1007A000FE020895629FD001739FF001829FE00DC9 +:1007B000F11D649FE00DF11D929FF00D839FF00DE0 +:1007C000749FF00D659FF00D9927729FB00DE11D8C +:1007D000F91F639FB00DE11DF91FBD01CF01112469 +:1007E000089597FB092E07260AD077FD04D049D03B +:1007F00006D000201AF4709561957F4F0895F6F7A2 +:10080000909581959F4F0895A1E21A2EAA1BBB1BBC +:10081000FD010DC0AA1FBB1FEE1FFF1FA217B307CC +:10082000E407F50720F0A21BB30BE40BF50B661FE2 +:10083000771F881F991F1A9469F7609570958095A6 +:1008400090959B01AC01BD01CF01089597FB092E46 +:1008500005260ED057FD04D0D7DF0AD0001C38F48F +:1008600050954095309521953F4F4F4F5F4F0895DC +:10087000F6F790958095709561957F4F8F4F9F4FBC +:100880000895AA1BBB1B51E107C0AA1FBB1FA617D7 +:10089000B70710F0A61BB70B881F991F5A95A9F729 +:1008A00080959095BC01CD010895EE0FFF1F059036 +:0A08B000F491E02D0994F894FFCFB5 +:0A08BA00000000007A02C702DF020E +:00000001FF diff --git a/2009/tunel/applet/tunel.cpp.o b/2009/tunel/applet/tunel.cpp.o new file mode 100644 index 0000000..aac2855 Binary files /dev/null and b/2009/tunel/applet/tunel.cpp.o differ diff --git a/2009/tunel/applet/wiring.c.o b/2009/tunel/applet/wiring.c.o new file mode 100644 index 0000000..8b0a300 Binary files /dev/null and b/2009/tunel/applet/wiring.c.o differ diff --git a/2009/tunel/applet/wiring_analog.c.o b/2009/tunel/applet/wiring_analog.c.o new file mode 100644 index 0000000..550c6c1 Binary files /dev/null and b/2009/tunel/applet/wiring_analog.c.o differ diff --git a/2009/tunel/applet/wiring_digital.c.o b/2009/tunel/applet/wiring_digital.c.o new file mode 100644 index 0000000..a63759a Binary files /dev/null and b/2009/tunel/applet/wiring_digital.c.o differ diff --git a/2009/tunel/applet/wiring_pulse.c.o b/2009/tunel/applet/wiring_pulse.c.o new file mode 100644 index 0000000..a7b9b7b Binary files /dev/null and b/2009/tunel/applet/wiring_pulse.c.o differ diff --git a/2009/tunel/applet/wiring_shift.c.o b/2009/tunel/applet/wiring_shift.c.o new file mode 100644 index 0000000..ea2abcf Binary files /dev/null and b/2009/tunel/applet/wiring_shift.c.o differ diff --git a/2009/tunel/tunel.pde b/2009/tunel/tunel.pde new file mode 100644 index 0000000..4787b4a --- /dev/null +++ b/2009/tunel/tunel.pde @@ -0,0 +1,16 @@ + +void setup() +{ + Serial.begin(9600); +} + + +void loop() +{ + + while (Serial.available()>0) + { + + Serial.print(Serial.read(),BYTE); + } +} diff --git a/2009/waveshield/19185__fonogeno__Fire_alarm.wav b/2009/waveshield/19185__fonogeno__Fire_alarm.wav new file mode 100644 index 0000000..dd0b944 Binary files /dev/null and b/2009/waveshield/19185__fonogeno__Fire_alarm.wav differ diff --git a/2009/waveshield/25032__sirplus__extreme_alarm.wav b/2009/waveshield/25032__sirplus__extreme_alarm.wav new file mode 100644 index 0000000..cb1153c Binary files /dev/null and b/2009/waveshield/25032__sirplus__extreme_alarm.wav differ diff --git a/2009/waveshield/26960__Rfriend__Collisionalarm.wav b/2009/waveshield/26960__Rfriend__Collisionalarm.wav new file mode 100644 index 0000000..f754c22 Binary files /dev/null and b/2009/waveshield/26960__Rfriend__Collisionalarm.wav differ diff --git a/2009/waveshield/26965__Rfriend__missile_jettison.wav b/2009/waveshield/26965__Rfriend__missile_jettison.wav new file mode 100644 index 0000000..cf354b0 Binary files /dev/null and b/2009/waveshield/26965__Rfriend__missile_jettison.wav differ diff --git a/2009/waveshield/32985__HardPCM__Alarm001.wav b/2009/waveshield/32985__HardPCM__Alarm001.wav new file mode 100644 index 0000000..2f333ed Binary files /dev/null and b/2009/waveshield/32985__HardPCM__Alarm001.wav differ diff --git a/2009/waveshield/43584__Syna_Max__cuboos_alien_horn1.wav b/2009/waveshield/43584__Syna_Max__cuboos_alien_horn1.wav new file mode 100644 index 0000000..c4f7521 Binary files /dev/null and b/2009/waveshield/43584__Syna_Max__cuboos_alien_horn1.wav differ diff --git a/2009/waveshield/AF_Wave library.zip b/2009/waveshield/AF_Wave library.zip new file mode 100644 index 0000000..536a64f Binary files /dev/null and b/2009/waveshield/AF_Wave library.zip differ diff --git a/2009/waveshield/ambiente.wav b/2009/waveshield/ambiente.wav new file mode 100644 index 0000000..3e4371e Binary files /dev/null and b/2009/waveshield/ambiente.wav differ diff --git a/2009/waveshield/dap/applet/HardwareSerial.cpp.o b/2009/waveshield/dap/applet/HardwareSerial.cpp.o new file mode 100644 index 0000000..4d1567f Binary files /dev/null and b/2009/waveshield/dap/applet/HardwareSerial.cpp.o differ diff --git a/2009/waveshield/dap/applet/Print.cpp.o b/2009/waveshield/dap/applet/Print.cpp.o new file mode 100644 index 0000000..37d234e Binary files /dev/null and b/2009/waveshield/dap/applet/Print.cpp.o differ diff --git a/2009/waveshield/dap/applet/WInterrupts.c.o b/2009/waveshield/dap/applet/WInterrupts.c.o new file mode 100644 index 0000000..abbde48 Binary files /dev/null and b/2009/waveshield/dap/applet/WInterrupts.c.o differ diff --git a/2009/waveshield/dap/applet/WMath.cpp.o b/2009/waveshield/dap/applet/WMath.cpp.o new file mode 100644 index 0000000..e62f55e Binary files /dev/null and b/2009/waveshield/dap/applet/WMath.cpp.o differ diff --git a/2009/waveshield/dap/applet/dap.cpp b/2009/waveshield/dap/applet/dap.cpp new file mode 100644 index 0000000..bf6ebb5 --- /dev/null +++ b/2009/waveshield/dap/applet/dap.cpp @@ -0,0 +1,118 @@ +#include +#include +#include "util.h" +#include "wave.h" + +#include "WProgram.h" +void setup(); +void ls(); +void loop(); +void playcomplete(char *name); +void playfile(char *name); +AF_Wave card; +File f; +Wavefile wave; // only one! + +#define redled 9 + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + Serial.println("Wave test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(redled, OUTPUT); + + if (!card.init_card()) { + putstring_nl("Card init. failed!"); return; + } + if (!card.open_partition()) { + putstring_nl("No partition!"); return; + } + if (!card.open_filesys()) { + putstring_nl("Couldn't open filesys"); return; + } + + if (!card.open_rootdir()) { + putstring_nl("Couldn't open dir"); return; + } + + putstring_nl("Files found:"); + ls(); +} + +void ls() { + char name[13]; + int ret; + + card.reset_dir(); + putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; + +void loop() { + uint8_t i, r; + char c, name[15]; + + + card.reset_dir(); + // scroll through the files in the directory + for (i=0; i +#include +#include "util.h" +#include "wave.h" + +AF_Wave card; +File f; +Wavefile wave; // only one! + +#define redled 9 + +void setup() { + Serial.begin(9600); // set up Serial library at 9600 bps + Serial.println("Wave test!"); + + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(redled, OUTPUT); + + if (!card.init_card()) { + putstring_nl("Card init. failed!"); return; + } + if (!card.open_partition()) { + putstring_nl("No partition!"); return; + } + if (!card.open_filesys()) { + putstring_nl("Couldn't open filesys"); return; + } + + if (!card.open_rootdir()) { + putstring_nl("Couldn't open dir"); return; + } + + putstring_nl("Files found:"); + ls(); +} + +void ls() { + char name[13]; + int ret; + + card.reset_dir(); + putstring_nl("Files found:"); + while (1) { + ret = card.get_next_name_in_dir(name); + if (!ret) { + card.reset_dir(); + return; + } + Serial.println(name); + } +} + +uint8_t tracknum = 0; + +void loop() { + uint8_t i, r; + char c, name[15]; + + + card.reset_dir(); + // scroll through the files in the directory + for (i=0; i + + + + + + + + + + +Audio Shield for Arduino + + + + + + + + + +
+ +Wave Shield +Examples + + + + + + + +
+ +
+ +
+ +
Getting Stack overflow errors?
+
These examples are all designed for Arduino v10 so try to use that if possible
+ +
Get more RAM & Flash!
+
+

Before you try to play audio, you'll want to free up some Arduino RAM, so that you don't end up with a nasty stack-overflow.

+

Follow these instructions on how to get more RAM by reducing the input Serial library buffer. You dont need to do this if you're using an ATmega328

+

Note that the library is pretty big (about 10K) so if you want to do a lot more, I suggest upgrading to an ATmega328. The shield was designed with the expectation that this part would be available.

+
+ +
Generating speech
+
+

If you want a human voice in your project, you can use the free generator at AT&T Text-to-Speech demo page

+

It will create a 16KHz, 16-bit audio file so you can use the audio 'right out of the box'

+
+ +
Sound sample library
+ + +
Digital audio player
+
+

This is the simplest example. It plays every audio file it finds on the SD card in a loop.

+ +
+ +
PI party!
+
+

This example shows how to use the AT&T text-to-speech website to speak the first 2640 digits of pi. The number is stored in flash, each digit is spoken one at a time.

+ +
+ +
Playing sound based on input
+
+

This example plays 6 different files depending on whether buttons connected to the 6 analog input pins are pressed.

+
+ +
Changing the playback rate
+
+

By messing with the playback interrupt, you can change the speed of playback for an interesting effect.

+
+ +
Halloween pumpkin
+ +
+ +
+ +
+ + + +
+November 2, 2008 18:16
+ + + \ No newline at end of file diff --git a/2009/waveshield/helloworld.wav b/2009/waveshield/helloworld.wav new file mode 100644 index 0000000..bd517f5 Binary files /dev/null and b/2009/waveshield/helloworld.wav differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29