Skip to main content

A Python library for Roomba Open Interface

Project description

PyRoombaAdapter

A Python library for Roomba Open Interface

Downloads Downloads Downloads

What is this?

This is a python library for Roomba Open Interface(ROI)

This module is based on the document:

It aims to control a Roomba easily.

This module is only tested on Roomba 690 model.

Install

You can use pip to install it.

$ pip install pyroombaadapter

Requirements

  • Python 3.6.x or higher (2.7 is not supported)

  • pyserial

Documentation

Please check the document for all API and usages.

Usage examples

All examples are in examples directory.

Click each image to see each example movie.

Go and back example

This example uses "move" API.

"""
    Go and back example with roomba
"""
from time import sleep
import numpy as np
from pyroombaadapter import PyRoombaAdapter

PORT = "/dev/ttyUSB0"
adapter = PyRoombaAdapter(PORT)
adapter.move(0.2, np.deg2rad(0.0))  # go straight
sleep(1.0)
adapter.move(0, np.deg2rad(-20))  # turn right
sleep(6.0)
adapter.move(0.2, np.deg2rad(0.0))  # go straight
sleep(1.0)
adapter.move(0, np.deg2rad(20))  # turn left
sleep(6.0)

Play song1

This example uses "send_song_cmd" and "send_play_cmd" API.

"""
    Play Darth Vader song
"""
from time import sleep

from pyroombaadapter import PyRoombaAdapter

PORT = "/dev/ttyUSB0"
adapter = PyRoombaAdapter(PORT)

adapter.send_song_cmd(0, 9,
                      [69, 69, 69, 65, 72, 69, 65, 72, 69],
                      [40, 40, 40, 30, 10, 40, 30, 10, 80])
adapter.send_play_cmd(0)
sleep(10.0)

Play song2

This example uses "send_song_cmd" and "send_play_cmd" API.

"""
    Play namidaga kirari by spitz
"""
from time import sleep

from pyroombaadapter import PyRoombaAdapter

PORT = "/dev/ttyUSB0"
adapter = PyRoombaAdapter(PORT)

adapter.send_song_cmd(0, 10,
                      [66, 67, 69, 67, 66, 62, 64, 66, 67, 66],
                      [16, 16, 16, 32, 32, 16, 16, 16, 16, 64])

sleep(1.0)
adapter.send_song_cmd(1, 9,
                      [66, 67, 69, 67, 66, 71, 59, 62, 61],
                      [16, 16, 16, 32, 32, 32, 16, 16, 64])

sleep(1.0)
adapter.send_song_cmd(2, 13,
                      [62, 64, 61, 62, 64, 66, 62, 64, 66, 67, 64, 66, 71],
                      [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16])
sleep(1.0)
adapter.send_song_cmd(3, 7,
                      [71, 67, 64, 62, 61, 62, 62],
                      [16, 16, 16, 16, 48, 16, 64])

sleep(3.0)
adapter.send_play_cmd(0)
sleep(4.0)
adapter.send_play_cmd(1)
sleep(4.0)
adapter.send_play_cmd(0)
sleep(4.0)
adapter.send_play_cmd(1)
sleep(4.0)
adapter.send_play_cmd(2)
sleep(4.0)
adapter.send_play_cmd(3)
sleep(4.0)

Contribution

Any contributions to this project are welcome!

Feel free to make an issue and a PR to improve this OSS.

License

MIT

Authors

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

pyroombaadapter-0.1.5.tar.gz (10.3 kB view details)

Uploaded Source

File details

Details for the file pyroombaadapter-0.1.5.tar.gz.

File metadata

  • Download URL: pyroombaadapter-0.1.5.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

File hashes

Hashes for pyroombaadapter-0.1.5.tar.gz
Algorithm Hash digest
SHA256 89ca1c96e1fae4b33e6eb6f294d1f53aef9fe621ddccff6ff956ffda0d4c1e76
MD5 f9ede429aff0b73c377893bf06c73abc
BLAKE2b-256 3fa1f8a432099ca8e90e2d3f35d97cb748d37577a782f0e3ae3558b321374e10

See more details on using hashes here.

Supported by

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