The goal of the package is to facilitate 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.
We are developing a special version of SerialTalk that can be used with the PyBricks PrimeHub firmware using the native Lego serial PF2 communication protocol. See SerialTalk_LPF2
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
serialtalk
directory to the OpenMV flash (not the whole SerialTalk, just theserialtalk
subfolder) - 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'))
- test on esp8266 platform
- test on bt comm channels
- create pyserial/desktop channels