导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. Cantarella
    C
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    Cantarella

    @Cantarella

    0
    声望
    16
    楼层
    1208
    资料浏览
    0
    粉丝
    0
    关注
    注册时间 最后登录

    Cantarella 关注

    Cantarella 发布的帖子

    • RE: uart串口通讯问题

      @kidswong999 谢谢 这个问题我解决了,现在可以发一个字节的数据了,但是我需要的是发送一个数组,我看您回复列表数据时提到了uart.write() 可以发送数组
      uart怎么发送列表数据

      import sensor, image, time, math
      import json
      from pyb import UART
      uart = UART(3, 9600)
      data = bytearray([0xFF, 0xFE, 0xFF, 0xFF, 0x1A, 0x4E])
      while(True):
          uart.write(data)
      

      这个我接上串口助手看到是 FF FE FF FF 1A 4E
      如果我想在arduino端接收这个数据,该如何下手呢?
      数组传送的过程中是否包含了“ ”(空格)呢

      发布在 OpenMV Cam
      C
      Cantarella
    • RE: uart串口通讯问题

      在Arduino端 将字符类型由int 改为char 就成乱码了....

      发布在 OpenMV Cam
      C
      Cantarella
    • RE: uart串口通讯问题

      您好,还是这个问题,我发现显示乱码是因为我串口监视器的波特率没有调整好,调整好后(将波特率统一为19200)发现openmv通过usb转ttl这个调试器可以成功发送字节,但连接上arduino的TX RX后 串口监视器里只能输出-1

      代码如下

      int incomingByte;
      void setup() {
      Serial.begin(19200);
      }
      
      void loop() {
      
      incomingByte=Serial.read();
      Serial.println(incomingByte);
      }
      
      import sensor, image, time, math
      import json
      from pyb import UART
      uart = UART(3, 19200)
      
      while(True):
      uart.writechar(50)
      time.sleep(10000)
      

      这里我看了您的教程发现uart.writechar()是发送一个字节,那么50对应的应该是数字2.

      通过助手发现是对的
      0_1527583733844_串口显示2.png
      但是两个板子通信就不行了
      0_1527583160323_串口显示.png
      请问怎么解决谢谢!

      发布在 OpenMV Cam
      C
      Cantarella
    • RE: 如何把色块中心坐标存入数组

      @kidswong999 谢谢我这个问题处理好了,请您看一下我另一个问题 关于uart的,谢谢

      发布在 OpenMV Cam
      C
      Cantarella
    • RE: uart串口通讯问题

      用示波器测p4端,示波器显示并不是矩形波还是杂波。
      uart我认为的是按照0101 这种高低电平变化来传数据,不知道为什么 uart.writechar(1) 是杂波.

      发布在 OpenMV Cam
      C
      Cantarella
    • uart串口通讯问题

      Arduino端

      int incomingByte;
      void setup() {
      Serial.begin(19200);
      }
      
      void loop() {
      
      incomingByte=Serial.read();
      Serial.println(incomingByte);
      }
      

      OpenMv端

      import sensor, image, time, math
      import json
      from pyb import UART
      uart = UART(3, 19200)
      
      
      while(True):
          uart.writechar(1)
          time.sleep(1000)
      

      连接的是两个板子的TX RX
      Arduino 串口监视器显示乱码

      1. 请问uart.writechar(),uart.write()可以向串口发送单独的数字或数组吗?
      2. 在未使用json格式的数据时arduino端是否需要添加例程中的解析代码
        解析程序

      不是很懂该如何操作串口通讯,为啥都是乱码...

      发布在 OpenMV Cam
      C
      Cantarella
    • RE: 如何把色块中心坐标存入数组
      C = [0,0,0]
      ......
      # Draw a rect around the blob.
                  img.draw_rectangle(blobs[largest_blob].rect())
                  #将此区域的像素数最大的颜色块画矩形和十字形标记出来
                  img.draw_cross(blobs[largest_blob].cx(),
                                 blobs[largest_blob].cy())
                  C = (blobs[largest_blob].cx())*r[4]
                  print(C,r[4])    
      

      这样可以print出C的值,但是如果改成

      print(C[1])
      

      就会出现
      TypeError: 'float' object is not subscriptable

      发布在 OpenMV Cam
      C
      Cantarella
    • RE: 如何把色块中心坐标存入数组
      C = (blobs[largest_blob].cx())*r[4]
      

      改成这个样子后print可以出来三个值,但是无法使用C[0] C[1]来调用数组里面的值..请问C这样写是个数组吗?如果是该如何调用里面的三个值进行计算呢?谢谢!

      发布在 OpenMV Cam
      C
      Cantarella
    • 如何把色块中心坐标存入数组

      TypeError: list indices must be integers, not tuple
      没办法存入数组....

      C = [[0]*2]*3
      C[r][0] = blobs[largest_blob].cx()   
      C[r][1] = blobs[largest_blob].cy()
      
      发布在 OpenMV Cam
      C
      Cantarella
    • RE: 边缘检测曲线坐标问题

      @yuan
      这样子输出都是“N/A”

      import sensor, image, time
          sensor.reset()
          sensor.set_pixformat(sensor.RGB565)
          sensor.set_framesize(sensor.QVGA)
          sensor.skip_frames(time = 2000)
      
          clock = time.clock()
          Block =(63, 87, -7, 1, -8, -1)
      
          def find_max(blobs):
          max_size=0
          for blob in blobs:
              if blob.pixels() > max_size:
                  max_blob=blob
                  max_size = blob.pixels()
          return max_blob
          
          while(True):
          clock.tick()
          img = image.Image("/RGB5.bmp", copy_to_fb=True)
          img.binary([Block])
          img.erode(1,threshold=8)
          line = img.get_regression([Block],x_stride=1, y_stride=1, invert=False)
          if (line): img.draw_line(line.line(), color = 127)
          print("FPS %f, mag = %s" % (clock.fps(), str(line.magnitude()) if (line) else "N/A"))
      
      发布在 OpenMV Cam
      C
      Cantarella