'>KasTomCortex - 13 September 2011 'used 134 #picaxe 40x #no_data SERTXD("KasTomCortex-40x-v1") 'can't change frequency on 40x 'Atv 'Acv 'pose 'action 'act 'activity 'nativity nativitas birth 'activity from Latin activitas. history: '------- '05sep17 added cmnds A,S and now speech allophones are in BS2e-2, ' cmnd is sent serially to here '17Oct14 Wback,(aBB2,aAE,aKK1,aPA5,z) -> Wback,(aBB2,aAE,aKK2,aPA5,z) #rem PicAxe_40x _______ ______ Reset 1|Reset \/ 40|o7 SeroutToBS2 hex3 2|ADC0 In a0 39|o6 SP0256-ALD_ Out Address Load hex2 3|ADC1 In a1 38|o5 feeler LED hex1 4|ADC2 In a2 37|o4 feeler LED hex0 5|ADC3 In a3 36|o3 feeler LED Serin 6|Serin 35|o2 feeler LED Serout 7|Serout 34|o1 feeler LED 8|ADC5 33|o0 feeler LED EyeR 9|ADC6 32|5V 5V EyeL 10|ADC7 31|0V 0V +V 11|+V 30|in7 kb-data SerinFromBS2 0V 12|0V 29|in6 kb-clk SBY LRQ_ In Load Request xtl 13|xtl 28|in5 feeler xtl 14|xtl 27|in4 feeler SPO256 low power on 15|i/o c0 26|i/o c7 SPO256 D5 IR pwmout 16|i/o c1 25|i/o c6 SPO256 D4 SPO256 D0 17|i/o c2 24|i/o c5 SPO256 D3 SPO256 D1 18|i/o c3 23|i/o c4 SPO256 D2 feeler 19|in0,infrain 22|in3 feeler feeler 20|in1 21|in2 feeler ---------------- 1 Reset 2 ADC0 In a0 3 ADC1 In a1 4 ADC2 In a2 5 ADC3 In a3 6 Serin 7 Serout 8 ADC5 9 ADC6 EyeR 10 ADC7 EyeL 11 +V 12 0V 13 xtl 14 xtl 15 i/o c0 SPO256 low power on 16 i/o c1 IR pwmout 17 i/o c2 SPO256 D0 18 i/o c3 SPO256 D1 19 in0 20 in1 40 o7 SeroutToBS2 39 o6 SP0256-ALD_ Out Address Load 38 o5 37 o4 36 o3 35 o2 34 o1 33 o0 32 5V 31 0V 30 in7 SerinFromBS2 29 in6 kb-clk SBY LRQ_ In Load Request 28 in5 27 in4 26 i/o c7 SPO256 D5 25 i/o c6 SPO256 D4 24 i/o c5 SPO256 D3 23 i/o c4 SPO256 D2 22 in3 21 in2 '================================================== SP0256 ___ ___ Vss|1 V 28|osc2 Reset_|2 27|osc1 ROM disable|3 26|ROM clock C1|4 25|SBYreset_ C2|5 24|Digital out C3|6 23|Vd1 Vdd|7 22|Test SBY|8 21|Serin LRQ_|9 20|ALD_ A8|10 19|SE A7|11 18|A1 Serout|12 17|A2 A6|13 16|A3 A5|14 15|A4 ------- Vss - Ground Vdd - Power supply VD1 - V standby C1-C3 - output for external ROM SBY - STANDBY - not talking => Vdd can be powered down LRQ_ - LOAD REQUEST_ Serout - for external ROM SE - Strobe enable for autoloading address ALD_ - ADDRESS LOAD_ load address, makes LRQ_ high Serin - for external ROM Test - normally grounded Vd1 - Standby power Digital out - speech output SBYreset_ - normally logic 1 '================================================== #endrem 'SP0256-AL2 Allophone Speech Processor. 'Pin 2 (Out) ALD_ - pulsed low causes allophone address to be loaded 'Pin 3 (In) LRQ_ - goes high when the SP0256-AL2 address buffer is full SYMBOL SerToBS2 =7 SYMBOL SerFromBS2 =7 SYMBOL ALD_ =pin6 'Out Address Load SYMBOL ALD_pin =6 SYMBOL LRQ_ =pin6 'In Load Request SYMBOL SBY =pin6 'In Load Request 'portc D2-D7 SP0256 address 'portc 0 'SPO256 power 0=on SYMBOL Adata =B0 'allophone data, B0 so can access bits symbol flags =b1 'so can use bits symbol f_TA =bit8 'TalkAllophone = inline Allophones SYMBOL Aaddr =B2 'EE address of allophone SYMBOL Taddr =B3 'address of word symbol msg =b4 symbol HexAct =b5 symbol EyeR =b6 symbol EyeL =b7 symbol i =b8 SYMBOL Ccmnd =b9 #rem portc 0 'SPO256 low power on portc 1 'IR pwmout #endrem '================================================================= Init: high ALD_pin let dirsc = %11111111 'all 8 out HIGH SerToBS2 'idle level for T2400 ' goto Say START: SERIN SerFromBS2,T2400_4,Ccmnd SERTXD(Ccmnd) IF Ccmnd="A" THEN GOSUB QAct IF Ccmnd="S" THEN GOSUB Say GOTO START 'pwmout 1, 25, 53 'C1 38KHz 50% QAct: 'use b0 as scratchpad b0 =0 if portA pin0 =0 then pa1 'hex switch bit0 =1 pa1: if portA pin1 =0 then pa2 'hex switch bit1 =1 pa2: if portA pin2 =0 then pa3 'hex switch bit2 =1 pa3: if portA pin3 =0 then pAct 'hex switch bit3 =1 pAct: HexAct =b0 SERTXD (#HexAct) LOW SerToBS2 pause 10 SEROUT SerToBS2,T2400_4,(255,HexAct) 'to BS2-9 RETURN Eyes: readadc 6,EyeR readadc 7,EyeL 'debug goto START '================================================================ Say: 'msg - Taddr,Saddr,Sdata=B0 'sertxd(13,"Talk ") LOW portc 0 'SPO256 power on HIGH SerToBS2 SERIN SerFromBS2,T2400_4,Adata LOW SerToBS2 SERTXD (#Adata,",") IF Adata=255 THEN DoneSay _Speakit: 'Adata _QSBusy: 'IF LRQ_=1 THEN _QSBusy 'wait if SP0256-AL2 buffer full IF SBY=0 THEN _QSBusy 'wait until SP0256 finished current allophone 'sertxd("spo256 rdy") Adata =Adata *4 'shift up 2 bits portc =Adata _Strobe: low ALD_pin 'ALD low to load PAUSE 10 HIGH ALD_pin GOTO Say DoneSay: 'pause 200 'if LRQ PAUSE 100 'silence before click off HIGH portc 0 'SPO256 power off RETURN '================================================================= ' Allophone constants SP0256-AL2 Allophone Speech Processor SYMBOL aPA1 = $00 ' 10 ms pause (before BB, DD, GG and JH) SYMBOL aPA2 = $01 ' 30 ms pause (before BB, DD, GG and JH) SYMBOL aPA3 = $02 ' 50 ms pause (before PP, TT, KK and CH) ' (and between words) SYMBOL aPA4 = $03 ' 100 ms pause (between clauses and sentences) SYMBOL aPA5 = $04 ' 200 ms pause (between clauses and sentences) 'Sample Word SYMBOL aAA = $18 ' hOt SYMBOL aAE = $1A ' hAt SYMBOL aAO = $17 ' AUght SYMBOL aAR = $3B ' alARm SYMBOL aAW = $20 ' OUt SYMBOL aAX = $0F ' sUcceed SYMBOL aAY = $06 ' skY SYMBOL aBB1 = $1C ' Business SYMBOL aBB2 = $3F ' Business SYMBOL aCH = $32 ' CHurCH 'SYMBOL aKK3 = $08 ' Comb SYMBOL aDD1 = $15 ' coulD SYMBOL aDD2 = $21 ' Do SYMBOL aDH1 = $12 ' THey SYMBOL aDH2 = $36 ' THey SYMBOL aEH = $07 ' End SYMBOL aEL = $3E ' saddLE SYMBOL aER1 = $33 ' fIR SYMBOL aER2 = $34 ' fIR SYMBOL aEY = $14 ' bEIge 'SYMBOL aIY = $13 ' sEE SYMBOL aFF = $28 ' Food SYMBOL aGG1 = $24 ' Got SYMBOL aGG2 = $3D ' Guest SYMBOL aGG3 = $22 ' wiG SYMBOL aHH1 = $1B ' He SYMBOL aHH2 = $39 ' Hoe SYMBOL aIH = $0C ' sIt SYMBOL aIY = $13 ' sEE SYMBOL aJH = $0A ' doDGe SYMBOL aKK1 = $2A ' Can't SYMBOL aKK2 = $29 ' sKy SYMBOL aKK3 = $08 ' Comb SYMBOL aLL = $2D ' Lake SYMBOL aMM = $10 ' Milk SYMBOL aNG = $2C ' aNchor SYMBOL aNN1 = $0B ' thiN SYMBOL aNN2 = $38 ' No SYMBOL aOR = $3A ' stORe SYMBOL aOW = $35 ' bEAU SYMBOL aOY = $05 ' bOY 'SYMBOL aAW = $20 ' OUt 'SYMBOL aUH = $1E ' bOOk 'SYMBOL s_UW2 = $1F ' fOOd SYMBOL aPP = $09 ' Pow SYMBOL aRR1 = $0E ' Rural SYMBOL aRR2 = $27 ' bRain 'SYMBOL aXR = $2F ' repaiR 'SYMBOL aYR = $3C ' cleaR SYMBOL aSH = $25 ' SHip SYMBOL aSS = $37 ' veSt SYMBOL aTT1 = $11 ' parT SYMBOL aTT2 = $0D ' To 'SYMBOL aDH1 = $12 ' THey SYMBOL aUW1 = $16 ' tO SYMBOL aTH = $1D ' THin SYMBOL aUH = $1E ' bOOk SYMBOL aUW2 = $1F ' fOOd SYMBOL aVV = $23 ' Vest SYMBOL aWH = $30 ' WHig SYMBOL aWW = $2E ' Wool SYMBOL aXR = $2F ' repaiR SYMBOL aYR = $3C ' cleaR SYMBOL aYY1 = $31 ' Yes SYMBOL aYY2 = $19 ' Yes SYMBOL aZH = $26 ' aZure SYMBOL aZZ = $2B ' Zoo ' end of Allophone table SYMBOL TA = 254 ' start Talk in line Allophones SYMBOL z = $FF ' End DATA marker '================================================================= '================================================================