MicroMV 物品分拣台
Radiumray9@gmail.com(讨论 | 贡献)2018年5月16日 (三) 09:23的版本 (创建页面,内容为“=='''基本原理'''== *MicroMV扫描到二维码后,通过串口发送给microduino *microduino接收数据后控制舵机电机 =='''MicroMV的代码准备'''==…”)
基本原理
- MicroMV扫描到二维码后,通过串口发送给microduino
- microduino接收数据后控制舵机电机
MicroMV的代码准备
把以下代码替换到MicroMV生成的U盘空间中的main.py做为主程序
import sensor, image, lcd, time
from pyb import UART
uart = UART(4, 115200)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA2) # can be QVGA on M7...
sensor.skip_frames(30) # 修改sensor配置之后, 跳过30帧
sensor.set_auto_gain(False) # must turn this off to prevent image washout...
sensor.set_brightness(2)
lcd.init() # Initialize the lcd screen.
while(True):
lcd.display(sensor.snapshot())
img = sensor.snapshot()
img.lens_corr(1.8) # strength of 1.8 is good for the 2.8mm lens.
for code in img.find_qrcodes():
time.sleep(1000)
uart.write(code[4]+'\n')
print(code[4])
IDE运行效果为
屏幕中会扫描二维码
Microduino的代码准备
#include <Servo.h>
Servo myservo;
#define servoPin 6
#define startAngle 90
#define runAngle 28
String msg = "";
void setup() {
Serial.begin(115200);
myservo.attach(servoPin);
myservo.write(startAngle);
}
void loop() {
if (Serial.available() > 0) {
msg = Serial.readStringUntil('\n');
Serial.println(msg);
if (msg == "mCookie") {
myservo.write(startAngle - runAngle);
delay(3000);
myservo.write(startAngle);
}
else if (msg == "mPie") {
myservo.write(startAngle + runAngle);
delay(3000);
myservo.write(startAngle);
}
msg="";
}
}