'*** Kite Photography 1 (Argus Controller) *** '*** Note: Could also use this for Time Lapse Photography... '*** Solar Eclipse '*** Lunar Eclipse '*** Track Sun Spots '*** Watch Flower Open '*** Watch Garden over several Months '*** Watch Crystals Grow '*** PicAxe 08M *** '*** Memory $50 (80) to $7F (127) '*** Pin | Function '*** ----+---------- '*** 1 | +5V '*** 2 | SerialIn '*** 3 | In4, Out4, ADC4 '*** 4 | In3, InfraIn '*** 5 | In2, Out2, ADC2, PWM2, Tune '*** 6 | In1, Out1, ADC1 '*** 7 | Out0, SerialOut, InfraOut '*** 8 | 0V (ground return) '*** PicAxe 18X *** '*** Memory $50 (80) to $7F (127), and $C0 (192) to $EF (239) '*** Pin | Function '*** ----+---------- '*** 1 | In2, ADC2 '*** 2 | Serial Out '*** 3 | Serial In '*** 4 | Reset '*** 5 | 0V (ground return) '*** 6 | Out0 '*** 7 | Out1 '*** 8 | Out2 '*** 9 | Out3 '*** 10 | Out4 '*** 11 | Out5 '*** 12 | Out6 '*** 13 | Out7 '*** 14 | +5V '*** 15 | In6 '*** 16 | In7 '*** 17 | In0, ADC0 '*** 18 | In1, ADC1 '*** Byte to Word Relationship *** '*** w0 = b1 : b0 '*** w1 = b3 : b2 '*** w2 = b5 : b4 '*** w3 = b7 : b6 '*** w4 = b9 : b8 '*** w5 = b11 : b10 '*** w6 = b13 : b12 '*** W0 (b1:b0) Break down *** '*** b0 = bit7: bit6: bit5: bit4: bit3: bit2: bit1: bit0 '*** b1 = bit15: bit14: bit13: bit12: bit11: bit10: bit9: bit8 '*** Memory used in this Program *** '*** $50 = Count HighByte '*** $51 = Count LowByte '*** $52 thru $7F even = PSIA HighByte '*** $53 odd = PSIA LowByte '************************************************************************************************* symbol TESTMODE_PIN = pin4 '*** Physical Pin 3 symbol VIDEOMODE_PIN = pin3 '*** Physical Pin 4 symbol CAMERA_SHUTTER_PIN = 1 '*** Physical Pin 5 symbol CAMERA_MODE_PIN = 2 '*** Physical Pin 6 symbol PIC_PAUSE = 53600 symbol PIC_TESTMODE_PAUSE = 1000 symbol CAMERA_VIDEO_MINUTES = 10 symbol CAMERA_PRESS_PERIOD = 200 '*** 1mS units symbol CAMERA_EXPIRE_PERIOD = 6000 '*** 1mS units symbol CAMERA_VIDEO_PERIOD = 10000 '*** 1mS units symbol MINUTE_PAUSE = 60000 '*** 1mS units '************************************************************************************************* '*** Initialize *** Initialize: '*** Pause 1 Second *** pause 1000 '*** Turn Camera On *** gosub Camera_Turn_On '*** Clear Memory *** gosub Camera_Clear_Memory '************************************************************************************************* '*** Main Loop *** StartMainLoop: '*** Test for Video Mode *** if VIDEOMODE_PIN = 1 then sertxd("Vid", 13, 10) '*** Test for TestMode *** if TESTMODE_PIN = 1 then pause PIC_TESTMODE_PAUSE else for w0 = CAMERA_VIDEO_MINUTES to 1 step -1 sertxd(#w0, ",") pause MINUTE_PAUSE next w0 sertxd(13, 10) endif '*** Turn Camera On *** gosub Camera_Turn_On '*** Select Continuous Mode *** gosub Camera_Press_Mode 'gosub Camera_Press_Shutter '*** Record Video *** sertxd(13, 10, "Record...", 13, 10) gosub Camera_Hold_Shutter else sertxd("Pic", 13, 10) do '*** Test for TestMode *** if TESTMODE_PIN = 1 then pause PIC_TESTMODE_PAUSE else pause PIC_PAUSE endif '*** Turn camera On *** gosub Camera_Turn_On '*** Snap a Picture *** sertxd("Snap", 13, 10) gosub Camera_Press_Shutter loop endif end '************************************************************************************************* '************************************************************************************************* '************************************************************************************************* '*** Subroutines *** '************************************************************************************************* '************************************************************************************************* '************************************************************************************************* Camera_Turn_On: '*** Turn Camera On *** sertxd("Camera On", 13, 10) gosub Camera_Press_Mode pause CAMERA_EXPIRE_PERIOD return '************************************************************************************************* Camera_Clear_Memory: sertxd("Clear ") '*** Press Mode 3 Times *** for w0 = 1 to 3 gosub Camera_Press_Mode next w0 '*** Press Shutter 2 Times *** for w0 = 1 to 2 gosub Camera_Press_Shutter next w0 sertxd(13, 10) return '************************************************************************************************* '*** Mode is Active Low Camera_Press_Mode: sertxd("M") low CAMERA_MODE_PIN pause CAMERA_PRESS_PERIOD sertxd("m") input CAMERA_MODE_PIN pause CAMERA_PRESS_PERIOD return '************************************************************************************************* '*** Shutter is Active Low Camera_Press_Shutter: sertxd("S") low CAMERA_SHUTTER_PIN pause CAMERA_PRESS_PERIOD sertxd("s") input CAMERA_SHUTTER_PIN pause CAMERA_PRESS_PERIOD return '************************************************************************************************* '*** Shutter is Active Low Camera_Hold_Shutter: sertxd("SSS") low CAMERA_SHUTTER_PIN pause CAMERA_VIDEO_PERIOD sertxd("s") input CAMERA_SHUTTER_PIN pause CAMERA_PRESS_PERIOD return '*************************************************************************************************