Skip to main content

Platform-independent symmetric communication library for MicroPython and Python devices

Project description

rcservo logo

SerialTalk: platform-independent symmetric communication library

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.

PyPI version License: MIT MicroPython Compatible

Installation

For Python (PyPI)

Install from PyPI using pip:

pip install serialtalk

For MicroPython

Option 1: Using viperIDE.org (Recommended)

  1. Go to viperIDE.org
  2. Connect to your MicroPython device
  3. Navigate to Tools > Package Manager
  4. Click Install package via link
  5. Enter: github:antonvh/SerialTalk

Option 2: Using mpremote

mpremote mip install github:antonvh/SerialTalk

Option 3: Using mip from device REPL

import mip
mip.install("github:antonvh/SerialTalk")

Usage

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?')

Example with OpenMV H7

  1. Copy the complete serialtalk directory to the OpenMV flash (not the whole SerialTalk, just the serialtalk subfolder)

  2. 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.
    
  3. On the SPIKE Prime Install mpy-robot-tools with the installer script. Note that the installer may seem unresponsive. Just have some patience.

  4. 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:

Spike result

Roadmap, todo

  • test on esp8266 platform
  • test on bt comm channels
  • create pyserial/desktop channels

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

serialtalk-1.0.0.tar.gz (614.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

serialtalk-1.0.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file serialtalk-1.0.0.tar.gz.

File metadata

  • Download URL: serialtalk-1.0.0.tar.gz
  • Upload date:
  • Size: 614.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for serialtalk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 07b574ca460ab69a10980cc53274378a3a9164a3d1fa08aea7c5a2274cee511c
MD5 7af29cde1bfff762ba68e4769e5d5b5b
BLAKE2b-256 6bdebd098f282ccef771660e626b24b866f473b942b73a5c15d492e2c725dfdd

See more details on using hashes here.

File details

Details for the file serialtalk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: serialtalk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for serialtalk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 657621f4fe488bc32e2ecf3aeca8d00408ced10a689af85ccd6337deab23dce7
MD5 7ca8ec9a7cf95030d2a67f07fff23b82
BLAKE2b-256 500c72114b8eb1cd397c64ded998a590a9cf88eea60e2d82fb8df6849802d1d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page