[搬运]StickV+StickC做无线一维条码扫描器-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1730|回复: 0

[搬运]StickV+StickC做无线一维条码扫描器

[复制链接]
发表于 2020-4-21 14:49 | 显示全部楼层 |阅读模式
本帖最后由 vany5921 于 2020-4-21 15:12 编辑

_tEl5pZ69If.blob.jpeg 为你的图书ISBN码创建一个无线条码扫描器,当然也可以扫描其他一维码。你可以在StickV上用相机看书号,用M5SctickV查看isbn,然后在键盘上键入代码。使用前在Arduion IDE中安装ESP32 BLE键盘库,地址https://github.com/T-vK/ESP32-BLE-Keyboard//使用以下程序时需要先将蓝牙与电脑配对连接,确保连接正常,否则注释掉BLE相关部分。
stickctovjpg_cw5uCvAzr4.jpg
StickV端程序
[mw_shl_code=python,true]
import sensor
import image
import lcd
import time
from machine import I2C,UART

from fpioa_manager import fm

#uart initial
fm.register(35, fm.fpioa.UART2_TX, force=True)
fm.register(34, fm.fpioa.UART2_RX, force=True)

uart_Port = UART(UART.UART2, 115200,8,0,0, timeout=1000, read_buf_len= 4096)


clock = time.clock()
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1)
sensor.set_hmirror(1)
sensor.run(1)
sensor.skip_frames(20)
while True:
    clock.tick()
    img = sensor.snapshot()
    res = img.find_barcodes()
    fps =clock.fps()
    if len(res) > 0:
        data = res[0].payload()
        print(data)
        uart_Port.write(data)
        time.sleep(2)
    lcd.display(img)
[/mw_shl_code]


M5StickC端
[mw_shl_code=arduino,true]
#include <M5StickC.h>
#include <BleKeyboard.h>


//reception M5StickV
HardwareSerial serial_ext(2);

//Connect HID Bluetooth
BleKeyboard bleKeyboard;

void setup() {

  M5.begin();
  M5.Lcd.setRotation(3);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setCursor(0, 0);
  M5.Lcd.setTextSize(2);
  M5.Lcd.println("GO");
  bleKeyboard.begin();

// Connect M5StickV
  pinMode(32, OUTPUT);
  pinMode(33, INPUT);
  serial_ext.begin(115200, SERIAL_8N1, 32, 33);
  
}

// for IBSN (Number)
void loop() {
   
    if(bleKeyboard.isConnected()) {
        
    if ( serial_ext.available() > 0 ) {
      bleKeyboard.press(KEY_LEFT_SHIFT );
      String str = serial_ext.readStringUntil('\n');
      bleKeyboard.print(str);
      bleKeyboard.releaseAll();   
      M5.Lcd.fillScreen(BLACK);
      M5.Lcd.setCursor(0, 0);
      M5.Lcd.println(str);
    }
   
}
}
[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 09:40 , Processed in 0.078873 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表