用于 Raspberry Pi 的 DIY 红外运动传感器系统
2015 年 7 月,我在科罗拉多州立大学完成了高中实习,我参与的项目之一是用于 Raspberry Pi 的红外接近传感器。
这种短距离红外传感器可用于多种应用,包括巡线机器人和运动激活相机。
您将需要:
1. 树莓派(一)
2. 面包板 (1)
3. 穿孔原型印刷电路板 - 任何尺寸 (1)
4. 涂层线(最好是红色、黑色和黄色)。
5. 红外线 LED 发射器 (1)
6、红外LED探测器(一)
7. 母-母跳线 (3)
8. 普通 LED – 任何颜色 (1)
9. 电工胶带 - 可选 (1)
10. 头销 – 可选 (3)
11. LM358N9013运算放大器(一)
12. 1k 微调电位器 (1)
13. 39 欧姆电阻 (1)
15. 1k 欧姆电阻 (1)
16. 10k 欧姆电阻 (1)
17. 6.8k 欧姆电阻 (1)
18. 3.5k 欧姆电阻 (1)
19. 小螺丝刀 – 用于电位器 (1)
20. 剥线钳 (1)
21. 线切割机 (1)
22. 焊锡和烙铁 (1)
第 1 步:原型设计
在您实际创建设备之前,首先花时间使用面包板并按照上面提供的原理图创建原型。电源应来自 Raspberry Pi 的 5v GPIO 引脚,并分配给红外发射器、接收器、运算放大器和电位器:每个都有各自的电阻器。请注意,运算放大器连接到两个不同的电阻器;这是有意为之,用作分压器,将输出电压降至 3.3v(允许输入引脚的最大电压)。完成后,使用母-母跨接电缆将您的原型连接到位于 Raspberry Pi 上的 5v 和接地 GPIO 引脚。如果 LED 不亮,小心地将电位器上的旋钮向右旋转,灯亮后立即停止。这样做将使传感器的范围和灵敏度最大化。如果通电后灯亮,向左旋转旋钮直到灯熄灭,然后向右轻轻旋转旋钮,灯亮后再次停止。
第 2 步:构建您的设备
创建工作原型后,小心地将其组件转移到穿孔电路板上。为正极和负极端子指定电路板的一侧(类似于面包板上的电源板),并确保每个组件的方向正确。将每个组件焊接到位,并根据需要使用跨接电缆将它们连接起来。最后,将接地、输出和电源连接到 3 个相应的插头引脚。使用剪线钳去除所有突出的电线,并使用母-母跨接电缆测试您的设备是否正常工作。如果没有,请考虑使用万用表来验证所有连接是否正确。
注意:如果您愿意,可以在红外发射器上加一条电工胶带。这样做会增加传感器的范围。
第 3 步:代码
创建功能设备后,必须编写代码以将传感器与 Raspberry Pi 相机集成。下面提供了两个示例:
1. 第一个,“picam”,提示用户在移动检测时在拍照前命名和设置预览窗口。然后程序输出查看图片所需的命令。
//PiCam:检测到运动时拍照。将提示用户提供图片名称和预览长度。
#include #include #include #include #define SEN 0 #define MAXSIZE 50 #define A “Y” #define B “O”
int system(const char *command);
int main() {wiringPiSetup(); pinMode(SEN,输入);字符答案1[MAXSIZE];字符答案2[MAXSIZE];字符名称[MAXSIZE] =B; char firstprefix[MAXSIZE] =“raspistill -hf -hf -t”; char secondprefix[MAXSIZE] =“xdg-open”; printf(“\n你想先给你的图片命名吗?(输入 Y/N 并按 ENTER):”); scanf(“%s”, answer1); if(strcmp(answer1, A) ==0){ printf(“你想怎么称呼你的视频?:”); scanf(“%s”, 名字); strcat(名称,“.jpg”); } printf(“您希望相机在拍照前等待多长时间?(以毫秒为单位输入时间并按ENTER):”); scanf(“%s”, answer2); strcat(firstprefix, answer2); strcat(firstprefix, ” -o “); if(digitalRead(SEN) ==LOW) printf(“\n相机关闭\n错误:请检查接线或远离传感器。\n”); else { printf(“\nCAMERA ON\n1. 要拍照,请站在摄像机前。\n2. 将在指定时间后拍摄您的照片。\n3. 要查看图像,请输入提供的命令。\n\ n”); for(;;){ if(digitalRead(SEN) ==LOW){ system(strcat(firstprefix, name));休息; } } } strcat(secondprefix, name); printf(“输入*%s*并按回车键查看你的图片!\n”, secondprefix);返回(0); }
欲知更多详情:DIY 树莓派红外运动传感器系统
制造工艺