合宙Air105|摄像头|capture|SPI|Serial串口|TFTLCD|Micro SD卡|串口输出|jpg|官方demo|学习(2-2):摄像头camera:功能3:串口输出.jpg

目录

前文:

探讨重点

实现功能

功能3:捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑

实现思路

代码分析

获得本机所有串口(windows版)

串口初始化

守护捕获到串口数据后另存为jpg

程序文件


基于Air105开发板:Air105 - LuatOS 文档

上手:开发上手 - LuatOS 文档

前文:

合宙Air105|摄像头|capture|SPI|Serial 串口|TFTLCD|Micro SD卡|GC032A|USB转TTL|官方demo|学习(2-1):摄像头camera-capture_Medlar_CN的博客

探讨重点

对官方camera - 摄像头demo中capture功能的复现:实现功能3,捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑。

实现功能

功能3:捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑;

功能3:捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑

实现思路

串口数据输出同步在电脑上另存JPG图像,根据上文的图片处理思路编写处理代码,采用python语言。

代码分析

获得本机所有串口(windows版)

def get_com_list():

    global port_list
    port_list = serial.tools.list_ports.comports()
    return port_list

串口初始化

number_ser = input("请输入串口编号(数字):")
ser = serial.Serial("com" + number_ser, 115200)   #稳定连接可不设置timeout,即timeout=0.0

守护捕获到串口数据后另存为jpg

while True:

    count = ser.inWaiting()
    time.sleep(0.40)
    if count > 0:
        # time1 = str(datetime.datetime.now())
        content = ser.read_all()
        newfile=filepath.replace(".jpg",'')+'_'+str(n)+".jpg"
        with open(newfile, 'wb') as fp:
            fp.write(content)
            print('截图-('+str(n)+')保存成功!\n')
            n = n + 1

程序文件

import serial
import serial.tools.list_ports
import binascii
import os
import shutil
import time
import datetime

def get_com_list():
    global port_list
    port_list = serial.tools.list_ports.comports()
    return port_list


def print_com_list(get_com_list):
    if len(get_com_list()) <= 0:
        print("无串口设备。")
    else:
        print("可用的串口设备如下:")
        for com in get_com_list():
            print(com)
            print(list(com)[0], '--', list(com)[1])  # 分别输出

if __name__ == "__main__":
    print_com_list(get_com_list)
    filepath = r"G:\bsp\LuatOS-SOC接口文档学习\camera\Air105\capture\uart.jpg"
    if os.path.exists(filepath):
        shutil.copy(filepath, filepath.replace(".jpg","")+"_old"+".jpg")
        os.remove(filepath)
    number_ser = input("请输入串口编号(数字):")
    ser = serial.Serial("com" + number_ser, 115200)   #稳定连接可不设置timeout,即timeout=0.0
    if ser.isOpen():
        print('串口打开成功!\n')
        f = open('./test.txt', 'w')
        # pass
    else:
        print('串口打开失败!\n')
    try:
        n = 1
        while True:
            count = ser.inWaiting()
            time.sleep(0.40)
            if count > 0:
                content = ser.read_all()
                newfile=filepath.replace(".jpg",'')+'_'+str(n)+".jpg"
                with open(newfile, 'wb') as fp:
                    fp.write(content)
                    print('截图-('+str(n)+')保存成功!\n')
                    n = n + 1
    except KeyboardInterrupt:
        if ser != None:
            f.close()
            ser.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打酱油的工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值