当前位置:   article > 正文

[星瞳科技]OpenMV有哪些合适的配件?

[星瞳科技]OpenMV有哪些合适的配件?

LCD的使用

视频教程7 - LCD显示屏的使用:OpenMV使用LCD显示屏 | 星瞳科技

IDE中运行下面的代码:

此代码适用于4.5.1至最新的固件版本。

  1. # LCD显示例程
  2. #
  3. # 注意:要运行这个例子,你需要一个用于OpenMV的LCD扩展板。
  4. #
  5. # LCD扩展板允许您在运行时查看您的OpenMV Cam的帧缓冲区。
  6. #
  7. # 此代码适用于4.5.1至最新的固件版本。
  8. import sensor
  9. import display
  10. sensor.reset() # 初始化sensor
  11. sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
  12. sensor.set_framesize(sensor.QQVGA2) # 128x160大小的特定液晶屏。
  13. # 初始化lcd屏幕。
  14. # 注意:如果支持,可以使用 DAC 或 PWM 背光控制器来控制背光强度:
  15. # lcd = display.SPIDisplay(backlight=display.DACBacklight(channel=2))
  16. # lcd.backlight(25) # 25% intensity
  17. # 否则,将使用默认的 GPIO(开on/off)控制器。
  18. lcd = display.SPIDisplay()
  19. while True:
  20. lcd.write(sensor.snapshot()) # 拍照并显示图像。

效果如下图:

以下代码适用于4.4.3及之前的固件版本。

  1. # LCD显示例程
  2. #
  3. # 注意:要运行这个例子,你需要一个用于OpenMV的LCD扩展板。
  4. #
  5. # LCD扩展板允许您在运行时查看您的OpenMV Cam的帧缓冲区。
  6. #
  7. # 此代码适用于4.4.3及之前的固件版本。
  8. import sensor, image, lcd
  9. sensor.reset() # 初始化sensor
  10. sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
  11. #设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种
  12. sensor.set_framesize(sensor.QQVGA2) # 128x160大小的特定液晶屏。
  13. lcd.init() # 初始化lcd屏幕。
  14. while(True):
  15. lcd.display(sensor.snapshot()) # 拍照并显示图像。

wifi通信

视频教程12 - WIFI无线图传:OpenMV Wi-Fi图传 | 星瞳科技

OpenMV官方扩展板采用ATWINC1500模组,可以传输图像。

详细参数:OpenMV WiFi扩展板 | 星瞳科技

wifi扫描

无线传输图像

无线传输小球坐标

  1. import sensor, image, time, network, usocket, sys, json
  2. SSID ='OPENMV_AP' # Network SSID
  3. KEY ='1234567890' # Network key (must be 10 chars)
  4. HOST = '' # Use first available interface
  5. PORT = 8080 # Arbitrary non-privileged port
  6. green_threshold = ( 0, 80, -70, -10, -0, 30)
  7. # Reset sensor
  8. sensor.reset()
  9. # Set sensor settings
  10. sensor.set_contrast(1)
  11. sensor.set_brightness(1)
  12. sensor.set_saturation(1)
  13. sensor.set_gainceiling(16)
  14. sensor.set_framesize(sensor.QQVGA)
  15. sensor.set_pixformat(sensor.GRAYSCALE)
  16. # Init wlan module in AP mode.
  17. wlan = network.WINC(mode=network.WINC.MODE_AP)
  18. wlan.start_ap(SSID, key=KEY, security=wlan.WEP, channel=2)
  19. # You can block waiting for client to connect
  20. #print(wlan.wait_for_sta(10000))
  21. def response(s):
  22. print ('Waiting for connections..')
  23. client, addr = s.accept()
  24. # set client socket timeout to 2s
  25. client.settimeout(2.0)
  26. print ('Connected to ' + addr[0] + ':' + str(addr[1]))
  27. # Read request from client
  28. data = client.recv(1024)
  29. # Should parse client request here
  30. # Send multipart header
  31. client.send("HTTP/1.1 200 OK\r\n" \
  32. "Server: OpenMV\r\n" \
  33. "Content-Type: application/json\r\n" \
  34. "Cache-Control: no-cache\r\n" \
  35. "Pragma: no-cache\r\n\r\n")
  36. # FPS clock
  37. clock = time.clock()
  38. # Start streaming images
  39. # NOTE: Disable IDE preview to increase streaming FPS.
  40. img = sensor.snapshot()
  41. blobs = img.find_blobs([green_threshold])
  42. if blobs:
  43. for b in blobs:
  44. img.draw_rectangle(b[0:4]) # rect
  45. img.draw_cross(b[5], b[6]) # cx, cy
  46. client.send(json.dumps(blobs))
  47. client.close()
  48. while (True):
  49. # Create server socket
  50. s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
  51. try:
  52. # Bind and listen
  53. s.bind([HOST, PORT])
  54. s.listen(5)
  55. # Set server socket timeout
  56. # NOTE: Due to a WINC FW bug, the server socket must be closed and reopened if
  57. # the client disconnects. Use a timeout here to close and re-create the socket.
  58. s.settimeout(3)
  59. response(s)
  60. except OSError as e:
  61. s.close()
  62. print("socket error: ", e)
  63. #sys.print_exception(e)

与传输图像类似,浏览器输入192.168.1.1:8080
就可以获得json数据

如果想在自己的代码中获得数据,只需要GET 192.168.1.1:8080
就会获得JSON。

例如python:

  1. import requests
  2. r = requests.get('192.168.1.1:8080')

只传输一张图片

  1. import sensor, image, time, network, usocket, sys
  2. SSID ='OPENMV_AP' # Network SSID
  3. KEY ='1234567890' # Network key (must be 10 chars)
  4. HOST = '' # Use first available interface
  5. PORT = 8080 # Arbitrary non-privileged port
  6. # Reset sensor
  7. sensor.reset()
  8. # Set sensor settings
  9. sensor.set_contrast(1)
  10. sensor.set_brightness(1)
  11. sensor.set_saturation(1)
  12. sensor.set_gainceiling(16)
  13. sensor.set_framesize(sensor.QQVGA)
  14. sensor.set_pixformat(sensor.GRAYSCALE)
  15. # Init wlan module in AP mode.
  16. wlan = network.WINC(mode=network.WINC.MODE_AP)
  17. wlan.start_ap(SSID, key=KEY, security=wlan.WEP, channel=2)
  18. # You can block waiting for client to connect
  19. #print(wlan.wait_for_sta(10000))
  20. def response(s):
  21. print ('Waiting for connections..')
  22. client, addr = s.accept()
  23. # set client socket timeout to 2s
  24. client.settimeout(2.0)
  25. print ('Connected to ' + addr[0] + ':' + str(addr[1]))
  26. # Read request from client
  27. data = client.recv(1024)
  28. # Should parse client request here
  29. # Send multipart header
  30. client.send("HTTP/1.1 200 OK\r\n" \
  31. "Server: OpenMV\r\n" \
  32. "Content-Type: image/jpeg\r\n\r\n")
  33. # FPS clock
  34. clock = time.clock()
  35. # Start streaming images
  36. # NOTE: Disable IDE preview to increase streaming FPS.
  37. frame = sensor.snapshot()
  38. cframe = frame.compressed(quality=35)
  39. client.send(cframe)
  40. client.close()
  41. while (True):
  42. # Create server socket
  43. s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
  44. try:
  45. # Bind and listen
  46. s.bind([HOST, PORT])
  47. s.listen(5)
  48. # Set server socket timeout
  49. # NOTE: Due to a WINC FW bug, the server socket must be closed and reopened if
  50. # the client disconnects. Use a timeout here to close and re-create the socket.
  51. s.settimeout(3)
  52. response(s)
  53. except OSError as e:
  54. s.close()
  55. print("socket error: ", e)
  56. #sys.print_exception(e)

浏览器输入192.168.1.1:8080,即可查看一张图片。

洞洞板

 视频教程2 - 开箱介绍:OpenMV教程02: 开箱 | 星瞳科技

OpenMV的洞洞板可以扩展OpenMV的功能。可以在洞洞板上焊接元器件、传感器或者连线等。

 

SD卡

 视频教程29 - SD内存卡的使用:OpenMV SD内存卡的使用 | 星瞳科技

那如果我的代码有10万行,内置的flash不够用怎么办?我想保存图片怎么办?

答案是,可以使用SD卡!

那么SD卡怎么用呢?SD卡也是一个文件系统,当上电的时候,如果插入SD卡,那么SD卡的文件系统就会自动取代内置的Flash文件系统,每次上电,就会运行SD卡中的main.py啦,是不是很直观,很方便。SD卡最大支持2TB的容量。

长脚排母

 视频教程2 - 开箱介绍:OpenMV教程02: 开箱 | 星瞳科技

OpenMV的排母是专用的长脚排母,一端为插针,一端为插座。这种长脚排母,方便了OpenMV配件的叠层使用。其他的普通插针则实现不了这种效果。

排母与OpenMV的焊接

OpenMV配件的叠层使用

直角固定板

 视频教程2 - 开箱介绍:OpenMV教程02: 开箱 | 星瞳科技

OpenMV的直角固定板,可以将OpenMV竖直固定。

直角片安装:

螺丝直接拧到OpenMV主板上方的安装孔里(螺丝与孔大小贴合的,直接用螺丝刀拧进去就可以), 螺丝与直角片之间加一个白色绝缘垫圈,直角片相当于螺母。

新款直角固定片:

旧款直角固定板:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/1020392
推荐阅读
相关标签
  

闽ICP备14008679号