[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...

2017-10-021.4万
精华项目
AI 快速预览详细 收起
本项目介绍如何使用树莓派3型号B、Arduino UNO R3和防水DS18B20传感器套件,结合摄像头和舵机,制作一个互动猫咪机器人。项目包括面部识别、温度反馈和聊天功能,适合STEM教育和亲子共学。通过该项目,孩子可以学习编程和动手实践,体验科技的乐趣。
喵~ 这篇文是给我码的哦!
#########2017.10.12更新见文末###########################3
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图1
步骤1:原理图
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图5
让我们来制作这个项目的草稿。
首先我需要一个Raspberry Pi,它有一个Linux操作系统,可以编译Python,甚至可以访问互联网。次要我想使用Arduino获取一些数据,并实现一些基本的物理反应。第三,需要网络摄像头来捕获用户操作。
最后是连接到一个模拟聊天机器人
材料清单:
树莓派 3型号B
树莓派夜视摄像头
DFRduino UNO R3 [类似于Arduino UNO R3]
用于Arduino Uno / Mega的USB电缆A-B
防水DS18B20传感器套件
金属9g舵机(1.6kg)
并且Raspberry Pi需要一个显示器
步骤2:组装
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图2
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图3
image.png
把所有东西都放在正确的位置。
步骤3:初始化树莓派

image.png
请移步浏览本教程
提示:只需安装Raspbian。
步骤4:测试Pi相机
这是pythonprogramming.net的测试代码:
[mw_shl_code=python,true]
import io
import picamera
import cv2
import numpy

#Create a memory stream so photos doesn't need to be saved in a file
stream = io.BytesIO()
#Get the picture (low resolution, so it should be quite fast)
#Here you can also specify other parameters (e.g.:rotate the image) with picamera.PiCamera() as camera: camera.resolution = (320, 240) camera.capture(stream, format='jpeg')
#Convert the picture into a numpy array
buff = numpy.fromstring(stream.getvalue(), dtype=numpy.uint8)
#Now creates an OpenCV image
image = cv2.imdecode(buff, 1)
#Load a cascade file for detecting faces
face_cascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml')
#Convert to grayscale
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#Look for faces in the image using the loaded cascade file
faces = face_cascade.detectMultiScale(gray, 1.1, 5)
print "Found "+str(len(faces))+" face(s)"
#Draw a rectangle around every found face for (x,y,w,h) in faces:
cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,0),2)
#Save the result image
cv2.imwrite('result.jpg',image)
[/mw_shl_code]


步骤5:PySerial封装串行端口的访问
用电缆连接Raspberry Pi和Arduino Uno。安装pySerial后,从Arduino读取数据:
[mw_shl_code=python,true]
>>> import serial

>>> ser = serial.Serial('/dev/tty.usbserial', 9600)

>>> while True:

... print ser.readline()

'1 Hello world!\r\n'

'2 Hello world!\r\n'

'3 Hello world!\r\n'

Writing data to Arduino is easy too (the following applies to Python 2.x):

>>> import serial # if you have not already done so

>>> ser = serial.Serial('/dev/tty.usbserial', 9600)

>>> ser.write('5')[/mw_shl_code]

提示:https://playground.arduino.cc/Interfacing/Python
步骤6:测试传感器和Arduino上的舵机
我有一个温度传感器,当(宠物小猫)背部传感器温度达到一定的预设高度时,会给出反馈。
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图6[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图7[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图8

步骤7:添加(伪)Chatbot功能(铲屎官识别功能即将上线。。。。)
当我抚摸它时(摩擦喵喵的脊背),我希望机器人做出一些反馈。
可以是通过舵机,试图摆动尾巴稍(舵机不给力)或者言语反馈。
例如。 '喵!舒服~    就这里,继续。”
“Purrrrrr。你今天过得怎么样,铲屎的?“
“别看那些有女朋友的程序员人前光鲜!背地里他们连只猫都没有!“

我把这些句子中的每一个都编号(利用随机数),并且在我撸猫十分钟甚至更长时间之后,我的手机显示收到来自喵喵的嘲讽短信(twilio)。
#####################
(铲屎官面部识别功能即将上线。。。。)
#####################
步骤8:更新代码
步骤9:打包一切硬件,把它们放进玩具小猫「摄像头目前拟定用项圈形式」
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图4
#############更新#################################
原先的模型被一只很real的喵(用ta特别的方式)标记了领地。。。。。。。
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图12[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图13

更新一波(嵌入温度传感器)细节图
[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图11[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图10


[DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫...图9
以及无处安放的摄像头Orz(求各位大佬指点)










创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
gray6666
gray6666
好招人喜欢的小猫
胡秩通123
胡秩通123
:)我有猫
胡秩通123
胡秩通123
我有猫
iooops
iooops
背地里却连只猫都没有 = =
Frankie34
Frankie34
作者
:lol 样品改进ing 11月左右可以来蘑菇云围观~~~~
Frankie34
Frankie34
作者
~~~~~~~~~
1973742214
1973742214
喵星人都懒得理你@hnyzcj 来看看
1973742214
1973742214回复hnyzcj
喵星人都懒得理你指的是楼主
hnyzcj
hnyzcj回复1973742214
啥事,不理我
- 没有更多了 -