11186| 9
|
[项目] [DS18B20传感器套件level up]别看他们仪表堂堂,背地里连只猫... |
喵~ 这篇文是给我码的哦! #########2017.10.12更新见文末###########################3 步骤1:原理图 让我们来制作这个项目的草稿。 首先我需要一个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:组装 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上的舵机 我有一个温度传感器,当(宠物小猫)背部传感器温度达到一定的预设高度时,会给出反馈。 步骤7:添加(伪)Chatbot功能(铲屎官识别功能即将上线。。。。) 当我抚摸它时(摩擦喵喵的脊背),我希望机器人做出一些反馈。 可以是通过舵机,试图摆动尾巴稍(舵机不给力)或者言语反馈。 例如。 '喵!舒服~ 就这里,继续。” “Purrrrrr。你今天过得怎么样,铲屎的?“ “别看那些有女朋友的程序员人前光鲜!背地里他们连只猫都没有!“ 我把这些句子中的每一个都编号(利用随机数),并且在我撸猫十分钟甚至更长时间之后,我的手机显示收到来自喵喵的嘲讽短信(twilio)。 ##################### (铲屎官面部识别功能即将上线。。。。) ##################### 步骤8:更新代码 步骤9:打包一切硬件,把它们放进玩具小猫「摄像头目前拟定用项圈形式」 #############更新################################# 原先的模型被一只很real的喵(用ta特别的方式)标记了领地。。。。。。。 更新一波(嵌入温度传感器)细节图 以及无处安放的摄像头Orz(求各位大佬指点) |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed