Jump to content
bowgod02

Sony M1

Recommended Posts

I've been playing with this cam for a little bit now and finally got it completed tonight. It uses the sony M1 camera. This camera is pretty unique in that it has buttons for picture and video and also has hybrid modes where it will take 5 seconds of video, take a pic, then 3 seconds of video. I'll play with that a little more as I want to later on, but for right now I have the camera set to take IR pics when Dark and 30 second video clips when Light. So far in the house its testing very good and it will be on a tree tomorrow for some real testing. It also will fire with P41 programming, but for the first real test I'm using a pause 1500 just to make sure everything else works properly. Here are the specs...

 

Sony M1_ IR modified.

Electronic123 glass to help with some color during the day

3 AA for externals

SE-120 case dipped in ultimate

Pipethrough

All In One Picaxe controller

Vivitar 3700

Replaced the cameras flash capacitor with three of the a503 replacement capacitors we use. One or two wasnt reliable to get both flashes and this worked.

Duel mics on this camera for stereo sound so I extended them to the outside of the case.

 

Cant wait to see how this setup does.

 

 

019-2.jpg

 

022-3.jpg

 

021-1.jpg

 

020-3.jpg

Edited by bowgod02

Share this post


Link to post
Share on other sites
 

Heres the code for how I have it running the cam right now with night pics and 30 second day video clips.

 

' PICAxe 20x2 Code for Sony M1 that does video during the day and takes IR pics at night using a 
' Vivitar 3700 slave flash. The cap inside the camera was replaced since the flash on the camera is useless.  

'=========
'11/25/10 
'=========
'Modified Smclark code from A503
'=========================
'Sony M1 w/ Slave Flash
'=========================




#picaxe20x2 
'#terminal 9600
#no_data
#no_table
disablebod

'=====================================================
' Map Ports
'=====================================================
Symbol PT_IN = B.0 ' Photo Transistor input
Symbol CDS_Out = C.5 ' Output to LDR voltage Divider 
Symbol Flash_Out = C.4 ' slave flash opto
Symbol Flash_Charge = C.3 ' Flash Charge Mosfet
Symbol PT_Out = C.2 ' Photo Transistor output
Symbol Video_Out = C.1 ' Spare Mosfet used to push video button
Symbol Battery_Monitor = B.6 ' ADC Input for battery monitor
Symbol LDR_IN = B.5 ' LDR ADC Input
Symbol Shutter_Out = B.4 ' Shutter Mosfet
Symbol Power_Out = B.3 ' Power Mosfet
Symbol LED_Out = B.2 ' LED 
Symbol PIR_In = B.1 ' Input from PIR Circuit
Symbol BkGrnd_Timer = B1
Symbol Byte_Var = B2
Symbol ValidPIR = B3
Symbol PIR_Event = B4
Symbol WlkTestFlag = B5 ' Walk test status flag
Symbol WlkTestTime = B6 ' Number of 15 sec periods for walk test
Symbol Activity_Flag = B7
Symbol Normal_OP = B8
Symbol CamRefresh = B9
Symbol Activity_Count = B10
Symbol Event_Delay = B11
Symbol CamEvent_Flag = B12
Symbol Cam_Mode = B13
Symbol PRELOAD = 63890 ' approx 15 sec at 31khz
Symbol Flash_Flag = b14' Flag to count the # of flashes seen 
Symbol TO_Counter = W1 ' Timeout counter
Symbol First_Flash = b15
Symbol Wait_Loop = W2
Symbol CDS_Value = b16
Symbol Night_Flag = b17
Symbol Day = b18
Symbol Night = b19
Symbol SlaveRefresh = b20
Symbol FlashCharge = b21
Symbol PT_On = b22


'=====================================================
' Set Port Directions
'=====================================================
Input PT_IN
Output CDS_Out
Output Flash_Out
Output Flash_Charge
Output PT_Out
Output Video_Out
Output Battery_Monitor
Input LDR_IN
Output Shutter_Out
Output Power_Out
Output LED_Out
Input PIR_In
Output C.7
Output C.0 
Output B.7
Output A.0


'=====================================================
'Pullups
'=====================================================
'Disable all PUs
pullup %00000000

'=====================================================
' Configure ADC
'=====================================================
adcsetup = %010000000000 'make adc 10 a input
'============================================================================

' STARTUP
'============================================================================

; Allow board to stabilize for 20 sec

High LED_Out
pause 5000
GoSub CamPWR
pause 5000
GoSub CamPWR 
pause 20000
Low LED_Out




Powerup:
WlkTestTime = 2 ' set walk test timer to 15sec intervals of timer
WlkTestFlag = 1 ' Turn on walk test mode
CamRefresh = 0
Event_Delay = 2 ' # of 15sec periods to wait before another cam event occurs
CamEvent_Flag = 0 ' Set flag to off
Cam_Mode = 1
Activity_Flag = 0
Activity_Count = 0
Normal_OP = 1 ' board is operating in normal mode if 0. Activity mode or walktest if 1
Night = 155; lux level 7 = 100k(R16) 2v @ 4v 2 X 256 / 4 = 128
Day = 144 
Night_Flag = 0
SlaveRefresh = 0
' Do initial board setup for light & battery levels
GoSub CdsChk
IF Night_Flag = 1 Then GoSub Slave_Charge
'=====================================================
'Configure Interrupts
hintsetup %01100110 'set HINT2(PIR) & HINT1(FLASH) to trigger Interrupt at rising edge
Setintflags %00000100,%00000100 'enable interrupt flags


'=====================================================
Main: ' Main loop that checks for a PIR event, charges slave, turns off the cam if in trail mode and increments counters & timers, then sleeps for 15 secs and does it all over again:
'=====================================================

If PIR_Event = 1 Then GoSub PIR_INTService

' Slave charge every 10 minutes for 10 seconds if night_flag = 1 (40 15 second periods)
If SlaveRefresh = 40 And Night_Flag = 1 Then 
GoSub Slave_Charge
SlaveRefresh = 0 ' restart our 10min period
EndIf

''Turn off cam if no more activity for trail mode.
'If Activity_Flag = 1 And Activity_Count = 0 Then
' High Power_Out
' pause 150
' Low Power_Out ' Turn camera off 
' If Pinc.3 = 1 Then ' Turn of mosfet for flash charging
' Low Flash_Charge
' EndIf
' Activity_Flag = 0

'EndIf


' Turn off walk test if time is up 
If WlkTestFlag = 1 And WlkTestTime = 0 Then
WlkTestFlag = 0 'turn off walk test If Time is up
Byte_Var = 0 ' Flash LED to indicate walk test over 
For Byte_Var = 0 To 7
pause 400
Toggle LED_Out
Next
Pause 3000 ' pause so CdsCHK does not see led and think it's day time
EndIf



' Increment counters & timers
Inc BkGrnd_Timer
If WlkTestFlag = 1 And WlkTestTime <> 0 Then Dec WlkTestTime : EndIf
'If WLKTestFlag = 0 Then Inc CamRefresh : EndIf
If Activity_Flag = 1 And Activity_Count >= 0 Then Dec Activity_Count : EndIf

If Night_Flag = 1 Then Inc SlaveRefresh :EndIf

GoSub CdsChk
Sleep 7
GoTo Main


Interrupt:
'sertxd ("Interrupt ",13,10)
If hint2flag = 1 Then 'Check to see if INT2 has been triggered
PIR_Event = 1 'Set the PIR event flag
hint2flag = 0 'reset hint2flag to 0
EndIf

If hint1flag = 1 Then ' Flash has been detected
'sertxd ("Flash Flags ", #Flash_Flag,13,10)
First_Flash = 1
IF PT_On = 0 then Inc Flash_Flag :endif
hint1flag = 0
Setintflags %00000010,%00000010 'enable interrupt flags FOR FLASH ONLY!
EndIf


hintflag = 0

Return


PIR_INTService: 

PIR_Event = 0 
; +++++++ Now See how long the port is high ++++++++++++++
Byte_Var = 0 'clear the counter
Do While Pinb.1= 1 'While the PIR is high (motion detected)
Inc Byte_Var 'Inc our counter
'Pause 1 'un-comment for a longer period
If Byte_Var >= 2 Then 
ValidPIR = 1 'flag the motion detected as valid
Exit
EndIf 
Loop 



If ValidPIR = 1 Then 'If valid motion then
ValidPIR = 0 

' WalkTest
If WlkTestFlag = 1 Then 'if walktest then turn on led to indicate PIR event
WlkTestTime = 2 'reset walktest timer back to original count again
Byte_Var = 0 
For Byte_Var = 0 To 19
Toggle LED_Out
Pause 20
Next
Pause 4000; wait a few secs to settle PIR
GoTo PIR_INTService_Exit
EndIf


If Night_Flag = 1 Then 
High PT_Out ' Turn on PT to detect flash
Setintflags %00000010,%00000010 'enable interrupt flags FOR FLASH ONLY!
High Flash_Charge
EndIf 

Flash_Flag = 0

If Activity_Flag = 0 And WlkTestFlag = 0 Then 
GoSub CamPWR ' Turn the camera on for the first time
Pause 1500
If night_flag = 1 then
Gosub Fire_Flash
Else
Gosub Video
EndIf

'Activity_Flag = 1
Pause 3000 
'Activity_Count = 2 ' set activity counter to 2 allowing 30sec
Gosub CamPwr ' power cam down

EndIf

If Night_Flag = 1 Then
Pause 12000 'Allow flash to recharge 
Low Flash_Charge 'and then turn off
Pause 20000
Else 
Pause 30000
EndIF

EndIf
PIR_INTService_Exit:
'sertxd ("PIR Exit ",13,10)
Setintflags %00000100,%00000100
ValidPIR = 0
Return

LED_Blink:
Byte_Var = 0 
For Byte_Var = 0 To 19
Toggle LED_Out
Pause 20

Next
Return


CamPWR:
High Power_Out
pause 150
Low Power_Out
Return

Shutter:
High Shutter_Out
pause 150
Low Shutter_Out
Return 

Video:
High Video_Out
pause 150    
Low Video_Out
Pause 30000
High Video_Out
pause 150    
Low Video_Out
Return







Fire_Flash:
SetFreq m16
flash_flag = 0
'sertxd ("Flash Start ",13,10)
'Gosub Shutter
High Shutter_Out
Do
Inc TO_Counter
If TO_Counter =1000 Then 
Flash_Flag = 0 ' Reset flags
TO_Counter = 0 
GoSub Flash_Led ' Flash Led to indicate time out.
GoTo Flash_Exit
EndIf
Loop while flash_flag <> 2

' FireFlash


'If Flash_Flag = 2 Then
High Flash_Out

pause 400

Low Flash_Out
Flash_Flag = 0 ' Reset flags
TO_Counter = 0
FlashCharge = 1 ' Flash fired so set flag to charge it.
GoTo Flash_Exit

'EndIf 



Flash_Exit:
Low Shutter_Out
First_Flash = 0
Flash_Flag = 0
Low PT_Out
SetFreq m8
'sertxd ("Flash Exit ",13,10)

Return

Flash_Led:
For b0 = 1 To 50
Toggle LED_Out
pause 20
Next
Return


CdsChk:
High CDS_Out 'Turn on pin to supply voltage to cds voltage divider
readadc 10 , CDS_Value ' Read light value
'sertxd ("CDS Value ",#CDS_Value,13,10)
'IF Night_Flag IS SET THEN WE CHECK TO SEE IF THE LIGHT LEVEL IS > = 144 IF ADC GREATER OR = THEN STILL DARK AND EXIT
'IF ITS BELOW 144 THEN WE CLEAR NITEFLG AND RETURN
'IF Night_Flag = 0 THEN CHECK TO SEE IF ADC ABOVE 155 THEN WE SET NITEFLG AND RETURN
Low CDS_Out 'Turn off voltage divider
If Night_Flag = 1 And CDS_Value >= Day Then
GoTo CdsChk_Exit 'already set and Still dark so we exit
Else
Night_Flag = 0 ' already set and Daylight so clear flag
EndIf
If Night_Flag = 0 And CDS_Value >= Night Then
Night_Flag = 1 ' Its dark so set flag
Gosub Slave_Charge ' Charge the slave up also
Else
Night_Flag = 0 ' Daylight so clear flag
EndIf
CdsChk_Exit:

Return


Slave_Charge:
High Flash_Charge
Pause 12000 ' charge for 12sec
Low Flash_Charge
Return

Share this post


Link to post
Share on other sites
 
 

Strange little camera, but you sure did a nice job using it! I'm anxious to see some examples, it sure sounds good on the spec sheet.

Share this post


Link to post
Share on other sites
 
 

Hopefully I'll have some samples on monday. I'm sticking it out tomorrow and will be hunting the area on monday so I can check it. The menu and settings are much like the P41 camera with a few extras mixed in there. Its 5.1mp and its a fixed focus and fixed lense too which I like. It also takes the pro duo card and I have a 16GB card in it right now. On standard 5.1mp it will hold over 10000 pics or over 12 hours of video so I may have to pack more batteries in there. No problems firing away with the 16gb card in there so far either. :)

Edited by bowgod02

Share this post


Link to post
Share on other sites
 
 

That looks super! If the pics and video are as good as the build looks it will be awesome!

Share this post


Link to post
Share on other sites
 
 

Ron, I been thinking about this build, maybe you should just put the old thing up for the Charity Auction, I'm sure someone will bid on it :D .

Share this post


Link to post
Share on other sites
 

aw man... I like this one too much to let it go so soon. I have one more of these cams too, but I'd rather auction off one of my other cams. :sad: But I bet I would get atleast 50.00 for it if I did.

 

 

But I may consider it if you put up that lethal muzzleloader of yours on the auction block... :lol:

Edited by bowgod02

Share this post


Link to post
Share on other sites
 
 
 

Thanks Fred. I cant take the credit for the program though. I took one that smclark had posted for the AIO controller and the A503 and added to it for use with this camera and the video/day thingy. It took a while for me to let it sink in how Scott writes his codes, but I think I may have got it now.

Edited by bowgod02

Share this post


Link to post
Share on other sites
 
I think this build, up for the Charity Auction :D .

 

 

I'll start it at $200.00. :unsure:

 

 

 

Very nice job!

 

 

That was a bid for TC's muzzle loader right?

Share this post


Link to post
Share on other sites
 
Guest
This topic is now closed to further replies.

×