Instructables
Picture of Cheap Motion Detection Wildlife Camera

I have always wanted an inexpensive way to take unobserved pictures of wildlife in my neighborhood.  This instructable takes parts of two existing instructables and brings them together with added features to create a cheap motion detection wildlife camera.

This project uses a re-purposed PIR sensor module from an air freshener to provide motion detection, an inexpensive key chain camera to capture images, and a TI msp430 microprocessor to provide the necessary brains. The microprocessor comes with TI's $4.30 Launchpad experimenter kit.

 

 
Remove these adsRemove these ads by Signing Up

Step 1: Parts and Tools

Materials:

      1.  Re-purposed PIR sensor module from an Air Wick Freshmatic Compact i-Motion
           Air Freshener. See the links below.
      2.  Key chain Vivitar Mini digital camera (available at CVS or Walgreen's)
      3.  Project box from Radio Shack (270-1803) size 5" x 2.5" x 2"
      4.  MSP430G2211 microprocessor (part of TI Launchpad experimenters kit)
      5.  Proto board from Radio shack (276-148) size 1.5" x 1.75"
      6.  2 - 4.7k resistors
      7.  3 - 0.01 uF capacitors
      8.  1 - 1.0 uF Ta capacitor
      9.  1- 14 pin DIP IC socket
      9.  2 - general purpose NPN transistors (example: 2n2222 or 2n3904)
    10.  Single AA battery holder salvaged from air freshener
    11.  Single throw Single pole mini slide switch salvaged from air freshener
    12.   AA battery salvaged from air freshener
    13.  Hook up wire
    14.  Optional - Stained Glass Copper Foiling Tape (available at Hobby Lobby or other
                               stores that deal with Stained Glass supplies)

Tools:  
 
       1.  Solder gun and solder
       2.  Wire cutters
       3.  Needle nosed pliers
       4.  Drill and drill points (I prefer brad points for cutting plastic project boxes.)
       5.  hand or powered jig saw
       6.  Hot glue gun and hot glue

Important Links:

PIR Module
http://www.instructables.com/id/Re-purposing-an-Air-Wick-Freshmatic-Compact-i-Moti/step4/Aproach-1B-Digitized-Sensor-Output-Small-Module

Camera
http://www.instructables.com/id/Hacking-A-Keychain-Digital-Camera-for-Arduino-Cont

TI Launchpad
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G2%29?DCMP=launchpad&HQS=Other+OT+launchpadwiki

Craftman Drill
http://www.sears.com/shc/s/p_10153_12605_00917310000P?prdNo=3&blockNo=3&blockType=G3


 

Step 2: Preparing the PIR Module

If you have followed the instructable http://www.instructables.com/id/Re-purposing-an-Air-Wick-Freshmatic-Compact-i-Moti/ your PIR module should look like the picture below.

We need to do a few things to make the module easier to fit into the project box.
     1.  Remove the two connectors.
     2.  Move the two large capacitors to the back of the board.  Make sure that you put the
          leads in the same holes that you removed them from. These capacitors are polarized.
     3.  Attach wires to Vcc, Gnd, and PIR sensor output. The second picture shows where
           to connect the wires.

Step 3: Preparing the Camera - part 1

Many thanks to smb and his instructable http://www.instructables.com/id/Hacking-A-Keychain-Digital-Camera-for-Arduino-Cont/ on his discovery of the hidden screw that you need to remove to open up the case of the keychain camera that we are using.

Since we know where the screw is, you can use a Dremel tool or a sharp knife to remove the material just above the screw. Once it is exposed, you can remove it and the case easily. 

After the case has been removed, unsolder the piezoelectric buzzer from the back. This buzzer is pictured in the second photo below.

The third photo shows the location of the two switches that we will later remove and the location of the voltage regulator that will be used to power the PIR module and microcontroller.

Step 4: Preparing the Camera - part 2

This step is the hardest of the project. You will remove the switches from the camera and replace them with transistors. You will also solder a wire to one of the camera's voltage regulators to source power tor the rest of the modules, and finally attach wires to the battery connections.

If you are a visual learner, you might find the diagram on step 7 helpful in understanding where the wires go. Also, the information in smb's instructible can help guide you.

When desoldering parts from a board with surface mounted devices, using solder wick is very helpful. It is a copper braid that "wicks up" the solder so the part can be removed easily.

Procedure:

     1.  Remove the shutter switch located near the top of the camera's PCB. This
          switch has two leads and two supports. You have to unsolder all 4 points.
 
     2.  Remove the mode switch located near the bottom of the camera's PCB. This
          switch has only the 2 leads holding it. There are no additional support points.

     3.  Solder a wire to the base of each of your two transistors. Note that
          you must know the pinout of your specific transistors
, do not blindly fellow the
           pinouts I used. My transistors may have a different pinout than yours.

     4.  Solder a wire to the left most lead of the surface mount voltage regulator located
          just above the mode switch's location.

     5.  Directly solder the collector pin of one of your transistors to what was the left most
          lead of the mode switch.

     6.  Directly solder the emitter pin of the same transistor to what was the right most
          lead of the mode switch.

     7.  Directly solder the collector pin of your other transistor to what was  the left lead of 
          the shutter switch. Do not attach to the support point that is near the edge of
          the board. See the diagram on step 7, if you are unsure.

     8.  Directly solder the emitter pin of the same transistor to what was  the right lead of
          the shutter switch. Again, do not attach to the support point. 

     9.  Finally, solder wires to both the the positive and negative battery points on the 
          camera's printed circuit board.
            

Step 5: Preparing the Camera - part 3

To retain the use of the LCD screen you have to retain its support. I achieved this by using a jig saw to cut out the black plastic portion of the front of the camera case. This is shown in the photo below.

note: See FAQ on step 11 for alternate method.

The second photo shows the two screw posts that you want to retain to support the LCD.

The third photo shows the plastic piece mounted on the camera. You want to do this after you have completed the wiring to the camera PCB board.

You attach the screws from the back of the camera's PCB board into the plastic. I found I also had to create a third support using hot glue to get the LCD to work consistently.

Step 6: Wiring the Bread Board

The picture below shows how to layout the microprocessor bread board. The red traces are the runs made on the copper side of the board. A fourteen pin dip IC socket is represented as a black rectangle with the IC pins displayed in small blue squares. The socket is placed on the non-copper side of the board, and the numbering reflects this perspective.

All components are placed on the non-copper side of the bread board.

The two yellow traces shown in the picture are jumpers that are placed on the non-copper side of the bread board. The black circles represent connection points.

The second photo shows the schematic.

Step 7: The Circuit

Picture of The Circuit
The picture below shows how the modules of the Motion Detection Wildlife Camera are connected together.

note:  Use the pinouts for your transistors. Do not assume they are the same as mine. 

The diagram below does not show the plastic piece that you cut out to hold the LCD to the camera PCB board.

Step 8: The Code

Picture of The Code
The c code for the MSP430 microprocessor is attached below. The picture shows a simplified flow diagram of the program.

If you are new to microprocessors, particularly the MSP430, I suggest that you look over the instructions in the instructible  http://www.instructables.com/id/MSP430-Based-Chronulator-using-Launchpad-chip/   .  It gives a step-by-step on how to use the Launchpad and the IAR Kickstart compiler. For this project you only have to place the chip in the Launchpad and transfer the program, then put the chip in your bread board.

Step 9: Drilling the Project Box

I always find getting the holes in the project box correct a little daunting. I have tried to make it easier for you by providing the measurements in the three photos attached to this step.

Only the holes for the camera are critical, the holes for the PIR module and switch can be moved about slightly without any major concern.

 

Step 10: Assembling the Project

The picture below shows how the modules fit in the project box. I placed them in to the box in the following order.

     1.  Camera
     2.  PIR module
     3.  Battery
     4.  Microprocessor bread board

I wired each module's connections before I put it into the box. This made the soldering easier.

Each module is held in place by two small spots of hot glue. Consideration of how you would unglue if you had to should be made when tacking the modules into place.

I found that I had to add a drop of hot glue between the camera PCB board and the plastic holding the LCD in place to make sure of consistent LCD readings. The two screws were not enough.

Step 11: Using the Camera and FAQ

squirrel_4.jpg
squirrel_3.bmp
squirrel_2.bmp
Operation

To transfer pictures from the camera you must install the driver and MyPicture application that came with it on to your computer. You do not need to install the bundled photo editing program.   The camera has SRAM memory. This means that if the camera loses power the pictures are lost. We use this feature to re-initialize the camera.

To use, start with the switch in the off position, wait 10 seconds, then turn the switch to on. You will see the LCD switching through several modes. You have about 30 seconds after you turn the camera on to position it and walk away before it will start to take pictures.

When you retrieve the camera to see what you got, do not turn it off . Go to your computer and plug in the USB cable, start the MyCamera application, and download the pictures. After you have saved the pictures to your computer, you can turn the camera off.


FAQ

Q:  What is the resolution of the camera and how many pictures does it hold?

A:  In high resolution mode the camera's resolution is 352 x 288 pixels.  It can hold 20
     non-compressed pictures or 60 compressed pictures. The program places the
     camera in high resolution and compressed, so 60 images can be stored at a time.
     If 60 pictures are taken the program puts the camera to sleep.

Q:  What is the best distance between target and camera?
A:   Because of the low resolution you want to be close, but not too close. I have found 3
      to 6 feet from the target is best.

Q: What is the range of the sensor?
A:
  The sensor can pickup large movements at up to 15-20 feet. An example would be
      a deer or human moving into the line of sight of sensor. At short range, less than 5
      feet it can pickup a leaf blowing across the sensor. A very small movement, for
      example a squirrel moving a hand from a pile of seeds to his mouth without
      a stance change, might not trip the sensor. In this case, it helps to spread the 
      seeds from a large single pile to a small area so the squirrel has to move a bit.

Q:  How do I change the PIR's sensitivity?
A:
  We can't change the sensor's sensitivity directly, however we can change the system's
      sensitivity to a PIR trip. If you look in the code at the TA interupt service routine you will
      find the following lines:

      // set band time
      cntr_val = 15000;           // 15000 ~= 0.125 sec    <-----------  line of interest
      interval_delay(1,0);
      cntr_val = 120000;        // 120000 ~= 1 sec

     By changing the cntr_val number in the line
              cntr_val = 15000;           // 15000 ~= 0.125 sec
     we change how long a PIR imbalance must exist before taking a picture. I would not    
     change it to a number less than 4000 (~1/32 sec) or more than 30000 (~1/4 sec) .

Q:  Why didn't you write the code to take multiple photos when triggered?
A:
   I originally had the camera take pairs of pictures spaced by 5 seconds, but I
      decided that I preferred to have more "events" than sets of photos. It is just a matter of 
       preference. The code change is easy. It depends on how long you plan
       to leave the camera unintended, the target that you are trying to capture, and the
       purpose of your shots. For example if you want to know if there are deer going to your 
       location you would be interested in events and you might want to increase the
       minimum time between shots. If you are looking for cute pictures (what I'm doing)
       you might want to do sets of photos.

Q:  How much did the project cost?
A:   I was lucky and was able to buy both the air freshener and the camera from
      Walgreen's on sale. Together they cost me ~$10. Normally they would be double that.
      The microcontroller was part of the TI Launchpad kit which sells for $4.30 plus
       shipping. The project box cost $4 from Radio Shack. The other parts were in my
       junk box. So total cost between $20 and $30 dollars. 

Q:  Why didn't you just use the Launchpad instead of making a bread board?
A:
  I re-use my Launchpad for multiple projects, so I can't have it tied up in a project that
      I plan to keep for awhile.

Q:  Why did you put the transistors directly on the Camera's PCB board instead of just
      attaching wires and mounting the transistors onto the microcontroller board, like
      smb  did in his instructible?
A: 
My first thought was to eliminate two wires and make the microcontroller board
     simpler.  In hindsight the collectors of both transistors could be tied to Vcc on
     the microcontroller board, so no wires are actually saved. You could put the
     transistors on the microcontroller board and just bring over a wire where the
     emitter of each transistor are currently connected. If I had to do it again, this
     is how I would do it.

Q:  Could you not cut the front of the camera case, and attach it to the camera PCB
      board?
A: 
This is another hindsight moment, the way I did it worked out easy enough, but I had
      a simple way to cut out the plastic. Others might not have this luxury, and retaining the
      whole camera case front should work. I believe there is enough room in the project
      box. You would want to remove the side with the USB plug so it would fit into the
      hole in the project box side.

Q:  Did you originally plan to use this particular camera?
A:
  No, I originally planned to use a type 808 keychain spy camera from eBay.
     They are higher resolution, smaller, and have video capability. I actually bought one, 
     but the project kept being delayed because I was having too much fun with the 808 
     camera.  When I had an opportunity to buy the Vivitar mini keychain camrea for $5, I
     jumped at it, and the project moved forward. If I had used the spy keychain camera 
     the project would have cost about $20 dollars more due to camera price difference
     and need to purchase a mini-SD card.     


1-40 of 75Next »
evomax1110 months ago
Does anybody know how the lcd works? I have never seen an lcd like that before. How does the lcd connect to the traces?
callumb1 year ago
I forgot to ask what the jumpers are for.
callumb1 year ago
What a great project. I am really enjoying connecting the dots and want to make sure of a few things before I flip the switch and fry the whole thing. At top left of your schematic VCC goes to ground through two capacitors. One of them is marked (Tw) -- what does Tw mean? I wonder why there are two capacitors there? Thanks!
Letria1 year ago
Doug,
Thanks for your reply, error message number 2 persisted till then, but now OK.
I have another problem now, of my own making - I have ripped off the right-side bit of copper trace from the camera circuit board, the one to which the shutter switch was attached. Is there an alternate spot in the circuitry at which I could solder the emitter pin of the transistor to get the unit to function? Or is it now hopeless?!
Many thanks for a reply.
Letria1 year ago
Thanks for posting this project Doug!
I am trying it out but have been having some difficulty with uploading the code onto the chip, which in my case in an MSP430G2553. The compilers (I’ve tried with both the IAR and CCSv5 compilers) throw up three “error” messages and I am unable to fix these and proceed further for lack of programming knowledge.
The details are as follows:
Error 1.  For the line marked in bold below, the message says "../main.c", line 148: error #29: expected an expression
Error 2. Also for the same line, and the message says "../main.c", line 148: error #20: identifier "j" is undefined
(I managed to ‘lose’ the second error message by inserting a line that said “unsigned int j = 1”/0 near the beginning of your code, but without really knowing what I was doing.)


void chg_mode_to_compressed(void)
{
// set mode to compressed high resolution
    // turn off p1 interrupt
    P1IE &= ~BIT3;                       // Disable p1 interrupt for p1.3
    P1IFG = 0;                           // reset all p1 interrupts
    interval_delay(1,1);
    // push mode switch 8 times
    for (int j=1;j<=8;j++)      
    { 


Error 3.  This has something to do with the timer as the message reads "../main.c", line 199: error #20: identifier "TIMERA0_VECTOR" is undefined

I looked up for help on this and changed the lines from


/******************* ISR ********************/
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)

{

To
/******************* ISR ********************/
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer0_A0 (void)

{

This seemed to have worked with the compiler but I am not sure if I have chosen the right timer for the job. Please help and let me know what I did wrong.
Doug Paradis (author)  Letria1 year ago
Letria,
     It looks like that you found the solutions to your problems. The reasons for the differences in code when moving from the MSP430G2211 to the nicer MSP430G2553 microprocessor is that the MSP430G2553 has two timers instead of the single timer in the 2211.

    The include line (#include msp430.h) at the beginning of the code, calls a file based on the microprocessor used. This file defines all of the interrupt vectors for the specific microprocessor.

    The file for the 2211 (with a single timer) uses TIMERA0_VECTOR to define the timer.  The file for the 2553 (two timers) uses TIMER0_A0_VECTOR and TIMER1_A0_VECTOR.
 
    Note: There are other timer related interrupt vectors, but that would only add confusion to this
situation.

     Luckly, the pin functionality used by this project is the same between the two processors.

The other error involving the for loop (for (int j = 1; j <= 8; j++)), I have seen before. Some compilers will accept declaring the loop variable in the for statement and some compilers will not. The version of IAR workbench that I originally used did accept this form. Apparently Code Composer 5 doesn't. You mentioned getting the error using IAR, I can only guess that they changed to be compatible with CC5.

The solution is as you discovered, is to declare j before the for loop:

From:           for (int j = 1; j <= 8; j++)

To                int j;
                    for (j=1; j<=8; j++)   


It is interesting that CC5 recommends that the loop count down instead of up. In that case,
you could use; 

                     int j;
                    for (j=8; j>=0; j--)
      
Doug Paradis (author) 1 year ago
There is no direct way to connect a DSLR to this project.

If your DSLR has a method of processing an external electronic shutter trip, you could modify the project to provide that signal based on activation of the PIR module. You would to need to know the specifications of the specific camera.

I would search for a project that more closely matched your needs.

ckrug11 year ago
Hello! Is there a way to connect a DSLR camera to it?
sarhlou911 year ago
So after looking all over for the I motion, I decided to order it online and accidentally bought the scented oil one that plugs in. What would i need to do differently to make this work? I have almost no knowledge of programming or small electronics.
Doug Paradis (author)  sarhlou911 year ago
I would recommend returning the scented oil product.

The scented oil product was designed to work on 120VAC. The circuit is extremely different from the air freshener used originally in this project.

Your best options are either use the original product (~$8), or use an inexpensive Chinese PIR module from eBay (search eBay with: "PIR module", ~$2 with free shipping), or use a Parallex PIR sensor module from Radio Shack (Cat# 276-135, ~$11).  PIR sensor prices have dropped since this project was published, and the modules are easy to use.

All of these sensor options use 3 connections to hookup: Vcc, Gnd, and Sensor Output (marked PIR on circuit diagram).

If you use the original camera, the microprocessor program should work for all of the above options without modification.  

sarhlou911 year ago
Doug, How much do you think the whole project cost you?
Doug Paradis (author)  sarhlou911 year ago
If you have none of the parts, the cost would be about $25 to $40. The major expenses were the air freshener unit (~$8), the project box (~$7), the camera (~$10), the MSP430 kit ($4.30), prototype board and electronics (~$5-10).

My costs were very low because I was reusing parts from other projects, had the project box already, and bought the camera on sale ($5).

If you can't find the air freshener unit, Chinese built PIR sensor modules are now selling on eBay for $2. They can be substituted without much hassle. Also, keep your eye out for older digital cameras that can often be picked up at garage sales or thrift shops for a few dollars. These older cameras offer higher resolution and better images storage. You do have to figure out how to interface them, but that is often fairly simple and fun.

The Vivatar camera used in this project was very easy to re-purpose. I later played around with an Aries key chain camera for another project. The Aries camera was similar in functions and look, but the internals had been engineered to lower cost. It was much harder to interface the power and shutter.

Using an alternate project enclosure is another area that could be used to cut costs.
emdarcher2 years ago
Could you use an ATtiny45/85 with arduino software to do this instead of the TI launchpad controller? I see it is only using 4 pins (not including vcc and ground), and the ATtiny45/85 controllers have 5 analog/IO pins, so i think it could work. They are like $1.60 on digikey and i mainly use arduino, so these are better for me. I have been wanting to do a cheap security camera setup for some time but was looking for a cheap and compact option and this looks like it is perfect. Just got to get the camera and freshener.
Doug Paradis (author)  emdarcher2 years ago
There should be no issue using an ATtiny45/85 as the microcontroller for this project. Of course, you would need to make approprate changes to the code and wiring.

I used the MSP430G2211 because it came as part of the TI Launchpad board. They send you the board which has a built in programmer and two MSP430 micros for $4.30. Since this Instructible was written, TI has upgraded the two microprocessors included with the Launchpad to one each of the MSP430G2553 and MSP430G2452. If this class of micros meets your needs, it is a heck of a deal.
TGGrimler2 years ago
Could the battery life issue be fixed by gutting some solar powered yard lights and adding a blocking diode? Unfortunately I don't know enough about electronics to know what it would take.
Doug Paradis (author)  TGGrimler2 years ago
With an AA battery you could expect the camera to be active for about 2 weeks of continous use. Using a D cell battery would give you about 135 days. It is important that you never lose power, since the camera uses SRAM to store the images. In other words, if you lose power before downloading the images to your computer, you lose the images.

Your idea of solar powered yard lights is interesting. These lights actually work by recharging a single rechargeable battery and using a joule thief type circuit to boost the voltage high enough to light the LEDs that provide the light. The internal battery used in these lights are generally pretty crappy and have very low mah ratings (usually less than 600 mah).

The Vivitar camera used in the project has a boost power regulator, so the joule thief part of the circuit of the yard light should not be used.

A issue with rechargeable NiMH batteries is that internal resistances cause them to discharge if not used. Older technology batteries would discharge in a matter of days if not recharged. Newer  technology batteries are much better. This means that you could possibly replace the original yard lamp batteries, strip out the joule circuit, and only use the solar cell part. I would use a high mah new technology NiMH battery in the camera with the solar cell portions of the yard lights connect via an external plug. I would also use multiple modified yard lights in parallel (most likely at least 4) to provide a higher current for recharging. You do not need a blocking diode, if setup this way.

It is an interesting idea, thanks for sharing.
rastamouse3 years ago
I have been thinking about doing something like this for along time but all the others i have looked at seem to involve a microprocessor board of some sort so thanks for this simple instructable
neetz3 years ago
would it be possible to send me some pictures of your finished circuit?
i think i totally messed mine up and i just wanted to see what i did wrong.

thanks!
Doug Paradis (author)  neetz3 years ago
Neetz,
     The best picture I have is the one I added to step 6. The most likely way to mess up this board is if you have the wrong perspective of the IC socket. Remember the IC socket is on the opposite side of the board from the copper wiring. The pins are labeled as if you were looking through the copper side of the board. You can't see the IC socket when you are looking at the copper side of the board.

Here are some checks that you can make with an ohm meter. Refer to the primary image on step 6.

1.   Place circuit board on a table with the microcontroller facing up.
2.   Remove the microcontroller and put it aside.
3.   Set your meter to 100k ohm scale.
4.   Place the positive (red) lead in the IC socket at pin 1.
5.   Place the negative (black) lead in the IC socket pin 2. The reading
      should be max scale. 
6.   Repeat by moving the black lead to pins 3, 4, 6, 7, 8, 9, 11 ,12 ,13 ,14.
      All of these piins should also read max scale with the red lead in pin 1.
7.   With the red lead still on pin 1, place the black lead on pin 5. The reading
      should be about 47K ohms.
8.   Repeat by moving the black lead to pin 10. It should also read 47K ohms.
9.   Place the red lead on pin 5 and the black lead on the wire marked PIR in
      the picture. The meter should show a short or about 0 ohms.
10. Place the red lead on pin 6 and the black lead on the wire marked 
      Shutter in the picture. The meter should show a short or about 0 ohms.
11. Place the red lead on pin 7 and the black lead on the wire marked
      Mode in the picture. The meter should show a short or about 0 ohms.
12. Place the red lead on the pin 14, now touch the black lead to each lead
      of each capacitor, one side of the capacitor at a time. Each capacitor 
      should have a zero ohm side and a max scale side.

If you pass these tests, your board is most likely ok.

Were you able to program the msp430 without any problems?

Hope this helps you.


  
parkeralton3 years ago
How do you make the runs? sorry, I'm new to this
Doug Paradis (author)  parkeralton3 years ago
When working with perfboard, I usually make runs on the copper side of the perfboard with non-insulated wire. I then make jumpers on the non-copper side with insulated wire. 

When soldering the non-insulated wire, I solder at the corners of a straight run and where component leads or jumpers touch the run. It helps to use a pair of pliers or a soldering heat sink clip between a previous soldered joint and the one I'm working to prevent the first solder joint from coming undone.

On this particular project,  I was experimenting with copper foil glazing tape that is used by stained glass hobbyists. You can get a lifetime supply for about $6 at hobby shops. I cut the tape I had lengthwise in half to make the runs. I use this tape for various odd connections in some of my projects. It can come in handy.

The tape worked and I think it looked neater. I have now moved on to making my own PC boards using the toner transfer method.
bioyas3 years ago
I'm planning on using the Radio Shack PIR module, which goes high on motion detection. If I read your code correctly, the PIR module you use goes low on motion detection. C isn't my native language. How do you modify that piece of code to change the polarity of the interrupt edge select?
Doug Paradis (author)  bioyas3 years ago
boiyas,
     Port 1 interrupts on the MSP430G microprocessors are set only on transitions, not static levels. P1IES is the Port 1 interrupt edge select register. So I believe the only 2 portions of the code that would need to be changed is: 

Portion #1
From:

     // turn on p1 interrupts
     P1IE |= BIT3; // Enable p1 interrupt for p1.3
     P1IES |= BIT3; // Interrupt edge select, high-low (falling edge)
     P1IFG = 0; // clear p1 interrrupts
To:
    // turn on p1 interrupts
    P1IE |= BIT3; // Enable p1 interrupt for p1.3 
    P1IES &= ~BIT3; // Interrupt edge select, low-high (rising edge)
    P1IFG = 0; // clear p1 interrrupts

Portion #2
From:
     // if band time is reached and p1.3 still 0
    else if ((band_flg == 1) & ((P1IN & BIT3) == 0))
To:
    // if band time is reached and p1.3 still 1
   else if ((band_flg == 1) & ((P1IN & BIT3) == 1)  

I haven't actually tried these changes, but I feel confident that is all it will take.

Let me know if you run into any issues. 
For some reason, I couldn't get the code to work with low to high transitions. I was using the LaunchPad and a breadboard to simulate the camera.

But for future reference, the Radio Shack PIR module produces enough pulses that it works with your original code despite outputting a low-high detection transition.

The one thing I had to do to make it work was add an NPN transistor between the PIR and pin 5 of the microprocessor as a switch. Base to PIR output, emitter to ground and collector (pulled up to Vcc with the 47 k resistor) to pin 5. That's because the output level was about 70% of Vcc, which doesn't seem to be enough to trigger the microprocessor. With the switch added, the system seems to be working fine.
Doug Paradis (author)  bioyas3 years ago

bioyas,
    The Radio Shack PIR module is made by Parallax. Parallax has updated the sensor to a Revision "B" which extends the Vcc range to 3.3 - 5 V among other improvements.

     I am curioius, Is your sensor a Revision "A" or "B"? There should be small text on the side with the lens that says "REV A" or "REV B".

     The use of a NPN inverter between the module and the MSP430 would invert the logic of the module so that the MSP430 would see a "high to low" transistion on a PIR trip. So the original code should work without issue.

     Did you try using either an external or the internal pull up resistor in the MSP430 on pin 5, instead of the transistor? The logic would then be "low to high".

To turn on the internal pull up resistor on pin 5 (p1.3) you would change
from:
P2DIR |= BIT6 + BIT7; // all p2 pins output
P1OUT &= ~(BIT4) + ~(BIT5); // p1.4 and p1.5 output low
P2OUT |= BIT6 + BIT7; // all p2 pins high


to:
P2DIR |= BIT6 + BIT7; // all p2 pins output
P1OUT &= ~(BIT4) + ~(BIT5); // p1.4 and p1.5 output low
P1REN |= BIT3;   // enable internal pullup/pulldown resistor on p1.3
P1OUT |= BIT3;  // internal resistor on p1.3 set to pullup

P2OUT |= BIT6 + BIT7; // all p2 pins high

To use an external pullup resistor, you would just have a 47k resistor from Vcc to the PIR output. The PIR output would also be connected to pin 5 of the MSP430.


All that aside, I am glad you got it working. I am sure others will be using your instructions to make the camera with the Radio Shack / Parallax PIR sensor.  It is a nice sensor.     

I really appreciate you sharing your findings.

 

I don't see any rev info on the lens or the pcb, although it's packaged now, so I don't have complete access. The slip of paper that came with it specifies a voltage range of 3.3-5 volts, so perhaps it's a rev B.

Any inversion from the transistor is irrelevant. The PIR module puts out a high level pulse when motion is detected, which returns after a period of several seconds, so for each detection, you get both a rising and falling edge. The falling edge is delayed by the length of the pulse, which for my purposes doesn't matter. So it should work no matter which polarity of pulse edge you set up the MSP430 for. I just couldn't get the low-high transition setup to work at all - not sure why.

The purpose of the transistor switch wasn't to invert the signal, but to bring the high level output of the PIR closer to Vcc. Even with the 47k pullup resistor (external only - I'm aware of the internal pullup option but didn't try it) it only went up to around 1.8 volts when directly connected, which wouldn't trigger the MSP430. The transistor brought the high level up to close to Vcc, and allowed the MSP430 to trigger properly.

So in any case, the code works with the Parallax PIR, provided the extra transistor switch is inserted between the PIR output and the MSP430 input. Further work might result in a simpler solution, but I'm out of time and it's working ...
Doug Paradis (author)  bioyas3 years ago
Thanks for the additional comment! I am sure this will be very helpful to others.
Thanks! I think I got the Portion#1 but didn't pick up on the Portion#2 part. I'll work it and see what happens. I don't have the camera yet, so I'm still working in emulation and trying to understand the CCS compiler.
Scelos3 years ago
Hello (Sorry if i'm hard to understood. English isn't my mother langage).
The download link for the code seem to be broken.
It only allow you to download a .tmp file. I don't know for what it's useful. It appear in the link too.

Can you verify the download link?

Thanks (your project interest me).
Doug Paradis (author)  Scelos3 years ago
Scelos,
     You are the second person who indicated that they had issues downloading the code. I decided to investigate a little farther. I bet you are using Firefox as your browser.

      Since the file has a .c extension, Foxfire opens a window titled "Opening F8UY5....YYY.tmp" and asks "What should Firefox do with this file?". You should click on the the "Browse..." button and select Notepad (Window) or gedit (Linux). Hit the OK button once or twice, then save the file with the name that you desire.

    I will add a .zip version of the file to prevent confusion in the future.

   I appreciate your comment. It will help others.
neetz3 years ago
hello,i just have one question.do you have a picture of your wired bread board because i think i messed mine up so i wanted to see how you did it.
thanks!
Doug Paradis (author)  neetz3 years ago
neetz,

I searched back through my project photos and found a picture of a partially completed bread board. I added it to the secondary images on step 6. It should give you a general idea of how I did it.

I hope it helps.
sillywilly3 years ago
Doug,
I just wanted to thank you for this "ible" and for introducing me to the Texas Instruments MSP430-series micro controller at $4.30/shipped each! Who knew a fun and versital little controller could be bought so cheap so I bought several! I am well on my way to collecting all items necessary to complete the motion camera. I also wanted to tell you and audience that I found a cheaper source for the PIR on Ebay if you can wait for it to be shipped from China. It's from seller "hi-etech" and is less than $5 (or offer) called "Pyroelectric Infrared PIR Motion Sensor Detector Module". If you want a PIR with LED lights that can be used at night, there is another ebay source item called the "Infrared PIR Sensor 6-LED Light Lamp Motion Detector" for cost of $4.15/shipped from seller "700store", also from China. Use as is or swap out the LEDs for 850n infrared LED so you don't startle the critters! With the PIR detector mocule you don't hack anything to obtain it. (it's not just the PIR but the whole module!) The other one just needs disassembly. With either one you just give it power and tie the output lead into your "ible"! With your camera sourced at $10, the micro controller at $4.30, and the PIR sourced under $5, that comes to $19.30 which leaves plenty of wiggle room for purchase of project box, breadboard, transistors, etc. One other thing. If you spend just $3.88 over the recommended camera, you save 2/3rds the space making it possible to use a project box 1/2 the recommended size. The cheapest miniature "spy" cameras can be had on Ebay, again from China, for $6.98/shipped plus Sandisk 2gb memory card for $6.88/shipped. Note: by changing to different camera, you may need to modify the source code for the MSP430 and if you do, please post it? Happy snipe hunting!
Doug Paradis (author)  sillywilly3 years ago
eBay definitely can be a good source for unusual parts at good prices.

I actually have a type 808 key-chain spy camera (see FAQ on last step). It is a lot of fun. I am still looking for a project to best utilize its small size and video capabilities.

If you are looking at these cameras I strongly suggest that you look at this site. http://www.chucklohr.com/808/C8/index.html

It turns out that they come in many flavors, with some being better than others.

Also be sure not to leave it on charge for a long time. The camera has no provision to keep from overcharging and damaging the battery.

I also think that the MSP430 launchpad is a great deal.

Thank you for the good info and the kind words.

.
neetz3 years ago
how should i alter it?
thanks!
Doug Paradis (author)  neetz3 years ago
neetz,
    I finally got around to checking the menu on both cameras. They both take the same number of button presses to get to the high resolution/compressed mode that the wildlife camera uses.

   One differences is the code that you see in the mode LCD located on the front of the camera. For the Vivitar, the mode code is CP, which gives you 60 images at 352x288 compressed. For the Aries, it is Hd, which gives you 76 images at 640x480 compressed.

Bottom line is that you should not have to change the program.

neetz3 years ago
hello , i just started gathering up the stuff for it but i want to know if you have to have that specific camera or could i use a different kind? . thanks!
Doug Paradis (author)  neetz3 years ago
neetz,
    In addition to the Vivitar camera that I used in the Instructible, I believe that the newer Aries 3-in-1 camera (without preview screen) being sold by Walgreens will also work without any changes to the instructible. I haven't actually tried it, but the instructions and features appear to be the same. The original Vivitar camera is available at CVS and some Walgreens.

The advantages of the Aries is that the resolution is a little higher (640x480).  It also has a slighly faster shutter and can take 25 hi res- no compression pictures instead of only 20. The cost is the same.

There are some differences in color balance and sharpness. Below are pictures of the same  objects taken at night under CFL lights on my kitchen table. The pictures were taken hand held (no tripod). The first one (bluer one) is from the Aries and is 640x480. The second one (greener) is from the Vivitar and is (352x288). When I look at the mat and objects under CFL lights the mat is closer to the green. During the day under daylight, the mat looks more like the blue. Both images were uploaded uncompressed, I don't know what Instructibles does to the images.

I would use the Aries if I was doing it again due to the higher resolution.

aries001.bmpvivitar.bmp
Doug Paradis (author)  Doug Paradis3 years ago
If you use the Aries, you might have to alter the menu stepping routine in the program. I haven't looked at that.
neetz3 years ago
thanks! do you now if you can get it a like radio shack or something because i want to get stared on it today! sooo neet!!!!!!!!!!!!!!!!
thanks!
1-40 of 75Next »