zoukankan      html  css  js  c++  java
  • openmv4arduino_uart arduino串口

    # OpenMV 和 Arduino Merge2560 基本uart通信
    
    # 1) OpenMV Cam 与 Arduino Uno 按如下连线:
    #定义了软串口
    # OpenMV Cam Ground Pin   ----> Arduino Ground
    # OpenMV Cam UART3_TX(P4) ----> Arduino Uno UART_RX(10)
    # OpenMV Cam UART3_RX(P5) ----> Arduino Uno UART_TX(11)


    openmv代码:
    import  ustruct, time
    from pyb import UART
    
    text = "Hello World!
    "
    #data = ustruct.pack("<bi%ds" % len(text), 85, len(text), text) # 85 is a sync char.
    
    # 使用 "ustruct" 来生成需要发送的数据包
    # "<" 把数据以小端序放进struct中
    # "b" 把一个 signed char 放进数据流
    # "i" 把一个 signed integer 放进数据流
    # "%ds" 把字符串放进数据流,比如:"13s" 对应的 "Hello World!
    " (13 chars).
    # 详见 https://docs.python.org/3/library/struct.html
    
    
    # 零填充数据为4字节加4字节的倍数。
    #data += "x00" * (4 + (len(data) % 4))
    
    
    
    # UART 3, and baudrate.
    uart = UART(3, 19200)
    
    while(True):
        uart.write(text)
        if (uart.any()):
            print(uart.read())
        time.sleep(500)       #延时的准确设定很重要

    arduino代码:

    #include <SoftwareSerial.h>
    
    SoftwareSerial softSerial(10, 11); // RX, TX
    
    void setup() {
      // 初始化串口
      softSerial.begin(19200);
      Serial.begin(19200);
      
    }
    
    /*//每次只获取单个字符
    void loop() {
      // 读取输入的信息
      char byteRead;
      if(softSerial.available()){
      byteRead=softSerial.read();
      // 输出信息
      Serial.println(byteRead);
      softSerial.write(byteRead);
      delay(1000); 
      }
    }
    */
    
    //获取字符串函数
    void loop(){
        int32_t temp = 0;
        char buff[100] = {0};
        //String byteRead;
        if(softSerial.available()){
          while (softSerial.available()) buff[temp++] = softSerial.read();
          // 输出信息
          //byteRead= softSerial.read();
          Serial.println(buff);
          softSerial.write(buff);
          delay(1000); 
      }
    }

    openmv运行效果:


    arduino运行效果:




    本文章实现了openmv4与arduino的相互通信,各自都能给对方发送并接受Hello World!字符串。







    正是步行者,一步步登峰!
  • 相关阅读:
    Oracle EBS json
    OAF--基础
    Oracle EBS FA 本年折旧
    Oracle EBS FA 获取累计折旧
    SOAP REST
    Oracle EBS FA 资产取值
    Java ——基础语法
    PL/SQL APIs for Concurrent Processing
    Using Globals in Oracle Reports (Doc ID 34751.1)
    Using SRW Packaged Procedures In Reports (Doc ID 61643.1)
  • 原文地址:https://www.cnblogs.com/ouyangmail/p/14419619.html
Copyright © 2011-2022 走看看