Nano。1. #### 配置中文输入法

Jetson Nano自带ibus中文输入法,需要进行基本的配置,参考:中文输入法ibus配置 (opens new window)

# 2.1 安装文件ibus-pinyin
sudo apt-get install ibus-pinyin
# 2.2 系统设置

在系统设置中,双击"language support";点击“install / remove language…”,选择简体中文,输入密码,此时系统会进行更新,大约几分钟;将汉语(中国)拖到最上端;点击Apply System-Wide,并将keyboard input method system下拉选框选ibus。

# 2.3 ibus设置

终端下输入ibus-setup,在弹框中添加Pinyin,并使用ibus restart重启ibus。

ibus-setup
ibus restart
# 2.4 重启电脑
sudo reboot
  1. # 有符号16进制数转化为10进制

    如果前提说了,用带符号表示这个数。第一个字符小于8为正,大于等于8(即8到F)为负。

    def signed_base10(data, width):
        ''''有符号16进制转化为10进制
    
        Args:
            data: 有符号16进制字符串
            width: 该16进制数所占的位数
    
        Returns:
            10进制数
        '''
        if(int(data[0], 16) >= 8):
            data = 'F'*int(width/8) + data
            data = int(data, 16)
            data = 2 ** width - data
            return -data
        else:
            return int(data, 16)
    
  2. # 通过PC直连Nano开发板

    # 1.1 共享网络与远程控制

    1)将PC的网线口与Jetson Nano的网线口通过网线连接

    2)在控制面板中打开“更改适配器设置”,右击通路网络,在属性中将其共享给Nano连接网络。

    3)在Windows中通过arp -a命令查看Nano网络的IP地址,即可使用该IP地址进行远程操作,本次测试的时候是192.168.137.224

    备注:a)在第2步的时候,Nano网络属性的网关地址通常自动设置为了192.168.137.1,如果没有设置成功,需要手动设置;b)也可以通过TTL转USB进行串口连接访问开发板,从而省去了网络连接的步骤,待尝试。

    # 1.2 远程桌面

    上述操作只能进行命令行操作,远程桌面则需要通过VNC软件

    详细操作见:VMC远程桌面教程 (opens new window)

  3. # 通过Python操作串口数据

    参考文章:python下串口数据读取、解析和保存 (opens new window)

    #!/usr/bin/python
    # -*-coding: utf-8 -*-
    
    import serial
    import threading
    import binascii
    from datetime import datetime
    
    class SerialPort:
        def __init__(self, port, buand):
            self.port = serial.Serial(port, buand)
            self.port.close()
            if not self.port.isOpen():
                self.port.open()
    
        def read_data(self):
            global data_bytes
            while True:
                count = self.port.inWaiting()
                if count > 0:
                    rec_str = self.port.read(count)
                    data_bytes = data_bytes + rec_str
                    # print('当前数据接收总字节数:'+str(len(data_bytes))+' 本次接收字节数:'+str(len(rec_str)))
                    print(str(datetime.now()), binascii.b2a_hex(rec_str))
    
    serialPort = '/dev/ttyTHS1'  # 串口 对应阵脚10和8
    baudRate = 115200  # 波特率
    data_bytes = bytearray()
    
    if __name__ == '__main__':
        # 打开串口
        mSerial = SerialPort(serialPort, baudRate)
    
        # 文件写入操作
        filename = input("请输入文件名(比如'test.txt',请注意添加引号):")
        dt = datetime.now()
        nowtime_str = dt.strftime('%y-%m-%d %I-%M-%S')  # 时间
        filename = nowtime_str + '_' + filename
        out = open(filename, 'a+')
    
        # 开始数据读取线程
        t1 = threading.Thread(target = mSerial.read_data)
        t1.setDaemon(True)
        t1.start()
        print('data collecting...')
        
        # 主线程:对读取的串口数据进行处理
        while True:
            data_len = len(data_bytes)
            out.write(binascii.b2a_hex(data_bytes[0:data_len])) # 字节数组转化为16进制字符串
            data_bytes[0:data_len] = b''