Как записать на устройство Micro Python через USB? - PullRequest
0 голосов
/ 30 марта 2020

Я хочу создать сценарий python, который будет передавать файл с моего P C на устройство Micro Python, прослушивая его терминал, а затем вызывая следующий код на устройстве:

newFile = open('--whatever-the-filename-is--', 'wb')
newFile.write(b'--all-the-stuff-in-the-file--')
newFile.close()

На этом этапе мне удалось подключиться к устройству и прочитать загрузочную распечатку со следующим кодом, введенным в терминал:

>>> import serial
>>> conn = serial.Serial('com3', 112500, timeout = 0.5)
>>> data = b'  '
>>> while data != b'':
...     data = conn.readline()
...     print(data)

Этот код дает следующие результаты:

ets Jun  8 2016 00:22:57\r\n'
b'\r\n'
b'rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)\r\n'
b'configsip: 0, SPIWP:0xee\r\n'
b'clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00\r\n'
b'mode:DIO, clock div:2\r\n'
b'load:0x3fff0018,len:4\r\n'
b'load:0x3fff001c,len:4844\r\n'
b'load:0x40078000,len:9656\r\n'
b'load:0x40080400,len:6216\r\n'
b'entry 0x400806f0\r\n'
b'\x1b[0;32mI (457) cpu_start: Pro cpu up.\x1b[0m\r\n'
b'\x1b[0;32mI (457) cpu_start: Application information:\x1b[0m\r\n'
b'\x1b[0;32mI (457) cpu_start: Compile time:     Dec 20 2019 07:50:41\x1b[0m\r\n'
b'\x1b[0;32mI (461) cpu_start: ELF file SHA256:  0000000000000000...\x1b[0m\r\n'
b'\x1b[0;32mI (467) cpu_start: ESP-IDF:          v3.3\x1b[0m\r\n'
b'\x1b[0;32mI (471) cpu_start: Starting app cpu, entry point is 0x40083600\x1b[0m\r\n'                                  b'\x1b[0;32mI (0) cpu_start: App cpu up.\x1b[0m\r\n'
b'\x1b[0;32mI (482) heap_init: Initializing. RAM available for dynamic allocation:\x1b[0m\r\n'
b'\x1b[0;32mI (489) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM\x1b[0m\r\n'
b'\x1b[0;32mI (495) heap_init: At 3FFBA488 len 00025B78 (150 KiB): DRAM\x1b[0m\r\n'
b'\x1b[0;32mI (501) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM\x1b[0m\r\n'
b'\x1b[0;32mI (507) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM\x1b[0m\r\n'
b'\x1b[0;32mI (514) heap_init: At 40092D6C len 0000D294 (52 KiB): IRAM\x1b[0m\r\n'
b'\x1b[0;32mI (520) cpu_start: Pro cpu start user code\x1b[0m\r\n'
b'\x1b[0;32mI (203) cpu_start: Chip Revision: 1\x1b[0m\r\n'
b'\x1b[0;33mW (203) cpu_start: Chip revision is higher than the one configured in menuconfig. Suggest to upgrade it.\x1b[0m\r\n'
b'\x1b[0;32mI (206) cpu_start: Starting scheduler on PRO CPU.\x1b[0m\r\n'
b'\x1b[0;32mI (0) cpu_start: Starting scheduler on APP CPU.\x1b[0m\r\n'
b'MicroPython v1.12 on 2019-12-20; ESP32 module with ESP32\r\n'
b'Type "help()" for more information.\r\n'
b'>>> '
b''

Это означает, что устройство успешно загрузилось и работает. Однако если я попытаюсь отправить команду python, она не будет выполнена, и вместо результатов будет выведена обратно отправленная мной команда:

>>> conn.write(b'print(\'hello world!\')\n')
22
>>> conn.readline()
b"print('hello world!')"
>>> conn.readline()
b''
>>> conn.readline()
b''
>>> 

Как отправлять и получать информацию между Python и этим Устройство Micro Python?

Python 3.7.5 на Windows 10

Micro Python 1.12 generi c на ESP32 (Adafruit HUZZAH32)

...