PICetSat Lite ProjectProject DescriptionWhat is the PICetSat Lite?The PICetSat Lite involves radios, space and programming. We are build a balloon module based on a PICAXE 08M. It is build on half a Radio Shack Dual General Purpose IC PC board 276-159. It reads several sensors and transmits the data in CW through a TX433. It is an expansion on something called a CricketSat that was based on a 555. Our first flight was on Pat's SIMSAT 3 . The altitude recorded just before burst by APRS (which was also on that flight) was just under 103,000 feet. Think of cruising altitudes (or what we know of them) for U2 and SR-71. The Purpose of PICetSat LiteWe plan to fly just the PICetSat on 30 gram balloons for about 10 flights to get good at:
Project Hardware SetupThe PICetSat Lite hardware as we have it now consists of two sensors, a thermistor which was handed out with the protoboard and a photo cell from a RadioShack assortment. Its outputs are to the TX433 8 mW transmitter and an LED, both were also handed out. A couple of resistors and a capacitor complete the hardware. The following picture shows the hardware configuration on a protoboard which is easier to follow and describe. (Yeah, I'm using the same picture from the PICAXE page - I only have 25 megs on this site.) Then we will show it built for flight.
We mentioned on the PICAXE page that the left pin on the Half-board is the ground and runs to the blue strip. The right pin is v+ and runs to the red strip. What we want to look at now are the connections to the various I/O ports.
But once you finish prototyping a project you'll probably want to move it to a more permanent, soldered, setup. In our case we want to move it to something light enough to fly. So we have built it on half of an RadioShack IC PC board.
Now this is a slightly different version of the PICetSat. It has no LED and uses P7 to turn the TX433 on before transmit and off after. It also has a few resistors added so that you can program the chip while it is soldered to the board. Of course it is also run by two 3v coin batteries. The biggest problem is that now you are in the world of pins and not ports. And they don't match up directly. So here is how ports map to pins.
Project SoftwareThe current PICetSat code is a combination of Steve's Code, which flew on SIMSAT 3 and code from the March/April 2007 AMRAD Newsletter article, written by Andre Kesteloot (N4ICK). He wrote a Morse Code Generator that ran in a PICAXE 08 (only 128 bytes, the 08M we have has 256 bytes). I have commented where his code starts and stops in case you want to use it in your own Morse Code project. Several of us belong to AMRAD . To quote him, Andre's scheme will be: "Each Morse character is encoded in one byte: for the four Most Significant Bits, a dah is a 1 and a dit is a 0. For instance, K being -.- the first three bits from the left will be 101. The three Least Significant Bits represent the number of elements, in our case 3, hence the last 3 bits on the left will be 011 while the middle bits will be set to 0. K will thus be 10100011 = decimal 163." So you will have:
A=66 B=132 C=164 D=131 E=1
Here is the code:' Note 218 bytes used, 253 with ID ' Combination of Steve's code and Andre's code 'Symbol usage follows Andre's code Symbol Tone = 100 Symbol Quiet = 0 Symbol Dit_length = 10 Symbol Dah_length = 30 Symbol Wrd_length = 60 Symbol Character = b4 'holds the character to be sent in Morse Symbol Index1 = b5 'not needed when we have a different Main Symbol Index2 = b6 'works thru the number of elements Symbol Num_elements = b7 'the number of elements in a Morse Code Character Symbol Frame = w0 'holds the frame count Symbol Wrd = w1 'holds the number in hex, binary, whatever Symbol Decimal_0 = b8 'holds least significant decimal Symbol Decimal_1 = b9 Symbol Decimal_2 = b10 Symbol Decimal_3 = b11 Symbol Decimal_x = b12 'holds the decimal being translated to morse code Symbol Flag = b13 'indicates leading zeros Frame = 0 'Main routine starts here Main: pause 2000 'Wait 2 seconds for transmitter to come on for index1 = 0 to 5 lookup index1, (4,2,4,2,0,36),Character gosub Send_letter next index1 Wrd = Frame 'Prepare to send frame counter gosub Send_word pause 1000 'Wait 2 seconds Temperature: Character = 129 ' Send "T" for Temperature gosub Send_letter readadc10 1, Wrd 'Get value of Analog input on ADC Pin 1 (Chip pin 6) gosub Send_word pause 1000 'Wait 2 seconds Light: Character = 68 ' Send "L" for Light gosub Send_letter readadc10 4, Wrd ' Get value of Analog input on ADC Pin 4 (Chip pin 3)
gosub Send_word
|