DIY IR Motion sensorsystem för Raspberry Pi (3 / 4 steg)
Steg 3: kod
Efter en fungerande utrustning har skapats, måste koden skrivas att integrera sensorn med Raspberry Pi kameran. Två exempel har tillhandahållits nedan:
1. den första, "picam", uppmanar användaren att både namnet och ange förhandsgranskningsfönstret innan du tar en bild på rörelsedetektorn. Programmet utgångar sedan kommandot för att visa bilden.
PiCam: Tar bild när rörelse detekteras. Uppmanas användaren att lämna namn och förhandsgranska Bildlängd.
#include
#include
#include
#include
#define SEN 0
#define MAXSIZE 50
#define en "Y"
#define B "O"
int system (const char * kommando);
int main)
{
wiringPiSetup();
pinMode (SEN, indata);
char answer1 [MAXSIZE];
char answer2 [MAXSIZE];
char namn [MAXSIZE] = B;
char firstprefix [MAXSIZE] = "raspistill - hf - hf -t";
char secondprefix [MAXSIZE] = "xdg-öppna";
printf ("\nDo du namnge din bild först? (Ange Y/N och tryck på RETUR): ");
scanf ("%s", answer1);
om (strcmp (answer1, A) == 0) {
printf ("vad vill du kalla din video?:");
scanf ("%s", namn);
strcat (namn, ".jpg");
}
printf ("hur länge du vill att kameran ska vänta innan du tar en bild? (Ange tid i millisekunder och tryck på RETUR): ");
scanf ("%s", answer2);
strcat (firstprefix, answer2);
strcat (firstprefix, "-o");
IF(digitalRead(sen) == låg)
printf ("\nCAMERA OFF\nError: kontrollera ledningar eller flytta från sensorn. \n");
annat
{
printf ("\nCAMERA ON\n1. För att ta bilden, stå framför videokamera. \n2. Din picutre skall tas efter angiven tid. \n3. Om du vill visa bild, ange kommandot provided.\n\n");
for(;;) {
IF(digitalRead(sen) == låg) {
system (strcat (firstprefix, namn));
bryta;
}
}
}
strcat (secondprefix, namn);
printf("Type *%s* and press Enter to View your Picture!\n", secondprefix);
Return(0);
}
2. andra, "pivid", uppmanar användaren att både namnet och ange hur länge inspelningen innan du spelar in en video på rörelsedetektorn. Programmet spelar sedan automatiskt inspelningen på skärmen.
PiVid: Spelar in video när rörelse detekteras. Uppmanas användaren att ange video namn och längd.
#include
#include
#include
#include
#define SEN 0
#define MAXSIZE 50
#define en "Y"
#define B "O"
int system (const char * kommando);
int main)
{
wiringPiSetup();
pinMode (SEN, indata);
char answer1 [MAXSIZE];
char answer2 [MAXSIZE];
char namn [MAXSIZE] = B;
char firstprefix [MAXSIZE] = "raspivid - hf - hf -t";
char secondprefix [MAXSIZE] = "omxplayer";
printf ("\nDo du namnge din video först? (Ange Y/N och tryck på RETUR): ");
scanf ("%s", answer1);
om (strcmp (answer1, A) == 0) {
printf ("vad vill du kalla din video?:");
scanf ("%s", namn);
strcat (namn, ".mp4");
}
printf ("hur länge du vill spela in? (Ange tid i millisekunder och tryck på RETUR): ");
scanf ("%s", answer2);
strcat (firstprefix, answer2);
strcat (firstprefix, "-o");
IF(digitalRead(sen) == låg)
printf ("\nCAMCORDER OFF\nError: kontrollera ledningar eller flytta från sensorn. \n");
annat
{
printf ("\nCAMCORDER ON\n1. För att spela in video, stå framför videokamera. \n2. Videon kommer att registrera under angiven tid. \n3. Filmen kommer att automatiskt spelas upp efter att den färdiga recording.\n\n");
for(;;) {
IF(digitalRead(sen) == låg) {
system (strcat (firstprefix, namn));
bryta;
}
}
}
strcat (secondprefix, namn);
printf("Type *%s* and press Enter to View your video Again!\n\n", secondprefix);
system(secondprefix);
Return(0);
}