new usb uart examples
parent
1ad857a8b5
commit
8434390115
@ -0,0 +1,4 @@
|
||||
# CANBus
|
||||
|
||||
I don't know if I believe it but this https://docs.pycom.io/firmwareapi/pycom/machine/can/ article claims that we can
|
||||
use the `machine.CAN` with the ESP32.
|
@ -0,0 +1,5 @@
|
||||
from machine import CAN
|
||||
|
||||
can = CAN(mode=CAN.NORMAL, baudrate=500000, pins=('P22', 'P23'))
|
||||
can.send(id=12, data=bytes([1, 2, 3, 4, 5, 6, 7, 8]))
|
||||
can.recv()
|
@ -0,0 +1,9 @@
|
||||
# USB Echo
|
||||
|
||||
This is a simple program that runs in a loop, looking for character data over the
|
||||
UART0 line which happens to be hooked up to the MicroUSB to UART circuit on these
|
||||
dev kits.
|
||||
|
||||
## Usage
|
||||
|
||||
You should use the
|
@ -0,0 +1,10 @@
|
||||
import select
|
||||
import sys
|
||||
|
||||
print("Starting echo server over USB UART")
|
||||
print("...")
|
||||
|
||||
while True:
|
||||
if select.select([sys.stdin], [], [], 0)[0]:
|
||||
characters = sys.stdin.readline()
|
||||
print(f"Recieved: {characters.strip()}")
|
@ -0,0 +1,38 @@
|
||||
"""
|
||||
This is a simple program that runs in a loop, looking for character data over the
|
||||
UART0 line which happens to be hooked up to the MicroUSB to UART circuit on these
|
||||
dev kits.
|
||||
"""
|
||||
import os
|
||||
import random
|
||||
import serial
|
||||
import time
|
||||
|
||||
ESP32_PORT= '/dev/cu.SLAB_USBtoUART' if os.uname().sysname == "Darwin" else "/dev/ttyUSB0"
|
||||
SENTENCES = [
|
||||
"The little green frog hopped to the pond.\n",
|
||||
"The cheese was late to the party.\n",
|
||||
"Don't let your dreams just be dreams.\n"
|
||||
]
|
||||
|
||||
|
||||
def main():
|
||||
print(f"Connecting to {ESP32_PORT}....")
|
||||
try:
|
||||
with serial.Serial(ESP32_PORT, 115200, timeout=1) as serial_conn:
|
||||
while True:
|
||||
if serial_conn.is_open:
|
||||
serial_conn.write(random.choice(SENTENCES).encode('ascii'))
|
||||
time.sleep(0.5)
|
||||
if serial_conn.in_waiting:
|
||||
print(f"Found {serial_conn.in_waiting} bytes waiting in input buffer!")
|
||||
print(serial_conn.readlines())
|
||||
else:
|
||||
print("No data received.")
|
||||
except KeyboardInterrupt:
|
||||
print("Exiting program")
|
||||
|
||||
exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -0,0 +1,42 @@
|
||||
import select
|
||||
import sys
|
||||
import time
|
||||
from machine import Pin
|
||||
from neopixel import NeoPixel
|
||||
|
||||
print("Starting USB UART")
|
||||
print("...")
|
||||
|
||||
NEO_PIXELS = NeoPixel(Pin(48), 1)
|
||||
|
||||
|
||||
def parse_cmd(raw_bytes):
|
||||
# Drop the last element
|
||||
raw_cmds = raw_bytes.strip().split(';')
|
||||
cmds = []
|
||||
for cmd in raw_cmds:
|
||||
try:
|
||||
led, red, green, blue = cmd.split(',')
|
||||
# Still strings so zero is true here
|
||||
if all([led, red, green, blue]) and len(cmd.split(',')) == 4:
|
||||
cmds.append(tuple([int(led), tuple([int(red), int(green), int(blue)])]))
|
||||
except ValueError:
|
||||
continue
|
||||
return cmds
|
||||
|
||||
|
||||
def main():
|
||||
print("Waiting for commands...")
|
||||
|
||||
while True:
|
||||
if select.select([sys.stdin], [], [], 0)[0]:
|
||||
raw_cmds = sys.stdin.readline()
|
||||
cmds = parse_cmd(raw_cmds)
|
||||
# print(f"Parsed: {cmds}")
|
||||
if cmds:
|
||||
for led_cmd in cmds:
|
||||
led_id, led_value = led_cmd
|
||||
NEO_PIXELS[led_id] = led_value
|
||||
NEO_PIXELS.write()
|
||||
|
||||
main()
|
@ -0,0 +1,41 @@
|
||||
"""
|
||||
This is a simple program that runs in a loop, looking for character data over the
|
||||
UART0 line which happens to be hooked up to the MicroUSB to UART circuit on these
|
||||
dev kits.
|
||||
"""
|
||||
import os
|
||||
import random
|
||||
import serial
|
||||
import time
|
||||
|
||||
ESP32_PORT= '/dev/cu.SLAB_USBtoUART' if os.uname().sysname == "Darwin" else "/dev/ttyUSB0"
|
||||
|
||||
COLORS = {
|
||||
"red": "0,255,0,0;\n",
|
||||
"blue": "0,125,204,223;\n",
|
||||
"yellow": "0,120,153,23;\n",
|
||||
"purple": "0,255,0,153;\n"
|
||||
}
|
||||
|
||||
def main():
|
||||
print(f"Connecting to {ESP32_PORT}....")
|
||||
print("Sending color commands")
|
||||
try:
|
||||
with serial.Serial(ESP32_PORT, 115200, timeout=1) as serial_conn:
|
||||
while True:
|
||||
if serial_conn.is_open:
|
||||
color = random.choice(list(COLORS.keys()))
|
||||
print(f"Setting color: {color.upper()}")
|
||||
serial_conn.write(COLORS[color].encode('ascii'))
|
||||
time.sleep(0.1)
|
||||
if serial_conn.in_waiting:
|
||||
# print(f"Found {serial_conn.in_waiting} bytes waiting in input buffer!")
|
||||
print(serial_conn.readlines())
|
||||
time.sleep(2)
|
||||
except KeyboardInterrupt:
|
||||
print("Exiting program")
|
||||
|
||||
exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue