'final baloon transmitter with servos on pins 4,5, Servo 4 is for tilt, 5 is for camera symbol H1 = 0 symbol H2 = 1 symbol H3 = 2 symbol H4 = 3 symbol V1 = 6 symbol V2 = 5 symbol V3 = 4 let pins = %01111111 'sensringerCharge: 'high 7 'readadc 0,b1 'if b1 < 50 then main 'goto sensringerNoCharge 'sensringerNoCharge: 'goto sensringerCharge main: gosub CheckSatFix if b0 = "1" then validfix pause 1000 low 4 pause 200 high 4 goto main 'sensringer: 'readadc 0,b1 'if b1 < 50 then main validfix: gosub GetLatitude b10 = 1 gosub Dialstar gosub TXcoordinates b10 = 1 gosub GetLongitude gosub Dialhash gosub TXcoordinates b10 = 1 high 7 servo 4,150 pause 2000 servo 4,175 pause 2000 high 4 low 7 goto main CheckSatFix: serin 1,N4800,("$GPGGA,"),b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 return GetLatitude: ' use b0 to skip over decimal point serin 1,N4800,("$GPGGA,"),b0,b0,b0,b0,b0,b0,b0,b2,b3,b4,b5,b0,b6,b7,b8,b9 b1 = "0" 'sertxd("Lat: ", b1,b2,b3, "deg", b4,b5, ".", b6,b7,b8,b9, "min", 13,10) return GetLongitude: ' use b0 to skip over decimal point serin 1,N4800,("$GPGGA,"),b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b1,b2,b3,b4,b5,b0,b6,b7,b8,b9 'sertxd("Lon: ", b1,b2,b3, "deg", b4,b5, ".", b6,b7,b8,b9, "min", 13,10) return TXcoordinates: 'sends coordinates via DTMF tones let pins = %01111111 b11 = 220 'hold buttons down for this length b12 = 220 'silence after each button transmission ' find which digit to send next via DTMF if b10 = 1 then send1 if b10 = 2 then send2 if b10 = 3 then send3 if b10 = 4 then send4 if b10 = 5 then send5 if b10 = 6 then send6 if b10 = 7 then send7 if b10 = 8 then send8 if b10 = 9 then send9 return send1: if b1 = "0" then dial0 if b1 = "1" then dial1 if b1 = "2" then dial2 if b1 = "3" then dial3 if b1 = "4" then dial4 if b1 = "5" then dial5 if b1 = "6" then dial6 if b1 = "7" then dial7 if b1 = "8" then dial8 if b1 = "9" then dial9 send2: if b2 = "0" then dial0 if b2 = "1" then dial1 if b2 = "2" then dial2 if b2 = "3" then dial3 if b2 = "4" then dial4 if b2 = "5" then dial5 if b2 = "6" then dial6 if b2 = "7" then dial7 if b2 = "8" then dial8 if b2 = "9" then dial9 send3: if b3 = "0" then dial0 if b3 = "1" then dial1 if b3 = "2" then dial2 if b3 = "3" then dial3 if b3 = "4" then dial4 if b3 = "5" then dial5 if b3 = "6" then dial6 if b3 = "7" then dial7 if b3 = "8" then dial8 if b3 = "9" then dial9 send4: if b4 = "0" then dial0 if b4 = "1" then dial1 if b4 = "2" then dial2 if b4 = "3" then dial3 if b4 = "4" then dial4 if b4 = "5" then dial5 if b4 = "6" then dial6 if b4 = "7" then dial7 if b4 = "8" then dial8 if b4 = "9" then dial9 send5: if b5 = "0" then dial0 if b5 = "1" then dial1 if b5 = "2" then dial2 if b5 = "3" then dial3 if b5 = "4" then dial4 if b5 = "5" then dial5 if b5 = "6" then dial6 if b5 = "7" then dial7 if b5 = "8" then dial8 if b5 = "9" then dial9 send6: if b6 = "0" then dial0 if b6 = "1" then dial1 if b6 = "2" then dial2 if b6 = "3" then dial3 if b6 = "4" then dial4 if b6 = "5" then dial5 if b6 = "6" then dial6 if b6 = "7" then dial7 if b6 = "8" then dial8 if b6 = "9" then dial9 send7: if b7 = "0" then dial0 if b7 = "1" then dial1 if b7 = "2" then dial2 if b7 = "3" then dial3 if b7 = "4" then dial4 if b7 = "5" then dial5 if b7 = "6" then dial6 if b7 = "7" then dial7 if b7 = "8" then dial8 if b7 = "9" then dial9 send8: if b8 = "0" then dial0 if b8 = "1" then dial1 if b8 = "2" then dial2 if b8 = "3" then dial3 if b8 = "4" then dial4 if b8 = "5" then dial5 if b8 = "6" then dial6 if b8 = "7" then dial7 if b8 = "8" then dial8 if b8 = "9" then dial9 send9: if b9 = "0" then dial0 if b9 = "1" then dial1 if b9 = "2" then dial2 if b9 = "3" then dial3 if b9 = "4" then dial4 if b9 = "5" then dial5 if b9 = "6" then dial6 if b9 = "7" then dial7 if b9 = "8" then dial8 if b9 = "9" then dial9 return Dial0: low V2 low H4 pause b11 high V2 high H4 b10 = b10 + 1 pause b12 goto TXcoordinates Dial1: low V1 low H1 pause b11 high V1 high H1 b10 = b10 + 1 pause b12 goto TXcoordinates Dial2: low V2 low H1 pause b11 high V2 high H1 b10 = b10 + 1 pause b12 goto TXcoordinates Dial3: low V3 low H1 pause b11 high V3 high H1 b10 = b10 + 1 pause b12 'return goto TXcoordinates Dial4: low V1 low H2 pause b11 high V1 high H2 b10 = b10 + 1 pause b12 'return goto TXcoordinates Dial5: low V2 low H2 pause b11 high V2 high H2 b10 = b10 + 1 pause b12 goto TXcoordinates Dial6: low V3 low H2 pause b11 high V3 high H2 b10 = b10 + 1 pause b12 goto TXcoordinates Dial7: low V1 low H3 pause b11 high V1 high H3 b10 = b10 + 1 pause b12 goto TXcoordinates Dial8: low V2 low H3 pause b11 high V2 high H3 b10 = b10 + 1 pause b12 goto TXcoordinates Dial9: low V3 low H3 pause b11 high V3 high H3 b10 = b10 + 1 pause b12 goto TXcoordinates Dialstar: low V1 low H4 pause b11 high V1 high H4 pause b12 return Dialhash: low V3 low H4 pause b11 high V3 high H4 pause b12 return