This package facilitates communication between devices like Robots and peripheral embedded systems or monitors over a serial communication line. Sounds abstract? Think of connecting an OpenMV camera to a LEGO SPIKE Prime Robot. Or linking up two Pyboards.
Install from PyPI using pip:
pip install serialtalk- Go to viperIDE.org
- Connect to your MicroPython device
- Navigate to Tools > Package Manager
- Click Install package via link
- Enter:
github:antonvh/SerialTalk
mpremote mip install github:antonvh/SerialTalkimport mip
mip.install("github:antonvh/SerialTalk")When you want default UART for the platform you're running on, just go:
from serialtalk.auto import SerialTalk
When you want special channels like sockets or bluetooth, do it like this:
from serialtalk import SerialTalk
from serialtalk.sockets import ClientSocketSerial
ser = SerialTalk(ClientSocketSerial("127.0.0.1",8080))
ser.call('echo','read?')-
Copy the complete
serialtalkdirectory to the OpenMV flash (not the whole SerialTalk, just theserialtalksubfolder) -
Create a main.py with this code. It is an adaptation of the OpenMV Hello world
import sensor, image, time from serialtalk.auto import SerialTalk sensor.reset() # Reset and initialize the sensor. sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE) sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240) sensor.skip_frames(time = 2000) # Wait for settings take effect. clock = time.clock() # Create a clock object to track the FPS. st = SerialTalk() # Create UART comm object def fps(): # Create function to call from uart return clock.fps() st.add_command(fps,"repr") # Add function to callable uart commands while(True): clock.tick() # Update the FPS clock. img = sensor.snapshot() # Take a picture and return the image. st.process_uart() # Process aurt calls print(clock.fps()) # Note: OpenMV Cam runs about half as fast when connected # to the IDE. The FPS should increase once disconnected.
-
On the SPIKE Prime Install mpy-robot-tools with the installer script. Note that the installer may seem unresponsive. Just have some patience.
-
Run this script on SPIKE Prime:
from projects.mpy_robot_tools.serialtalk import SerialTalk from projects.mpy_robot_tools.mshub import MSHubSerial st = SerialTalk(MSHubSerial('F')) print(st.call('echo','Hello there OpenMV!')) print(st.call('fps'))
This should be the result:
- test on esp8266 platform
- test on bt comm channels
- create pyserial/desktop channels
