Python SDK for hiwonder TurboPi device communication
Project description
Fast Wonder SDK
The Fast Wonder SDK is a Python library that facilitates communication with the Hiwonder TurboPi controller. It provides easy-to-use functions for controlling various peripherals such as RGB LEDs, buzzers, infrared sensors, and more, while ensuring reliable communication with checksum validation using CRC-8.
Features
- Control RGB LEDs: Easily control the colors of RGB LEDs using indexed tuples.
- Control BUZZER: Simple API to control the buzzer.
- Control Infrared Sensors: Interface with infrared sensors to detect obstacles or follow lines.
- Control Motors:
- Reliable Communication: Ensures data integrity with CRC-8 checksum validation for communication.
- Configurable Serial Communication: Adjust serial communication parameters such as baud rate, timeout, etc.
Installation
To get started with Fast Wonder SDK, follow these steps:
- Clone the repository:
git clone https://github.com/dmberezovskyii/fast-hiwonder.git
Usage
- Infra red sensors
from fast_hi_wonder import InfraredSensors # Initialize the sensor with the default I2C address and bus sensors = InfraredSensors() # Read sensor data sensor_states = sensors.read_sensor_data() # Process sensor states for i, state in enumerate(sensor_states): print(f"Sensor {i+1} is {'active' if state else 'inactive'}")
- Mecanum wheels
Polar Coordinates
In polar coordinates, we describe a point (or movement) in space using two parameters:
- Radius (r): The distance from the origin (0,0) to the point.
- Angle (θ): The direction of the point relative to the X-axis (horizontal axis) in degrees or radians.
In the case of your mechanism:
- Velocity: The distance the robot moves per unit of time.
- Direction: The angle at which the robot is moving, measured from the X-axis.
Trigonometry and Coordinate Transformation
To control the robot's movement, we break the velocity down into two components — vx and vy:
- vx: The velocity component along the X-axis (horizontal axis).
- vy: The velocity component along the Y-axis (vertical axis).
To calculate these components, we use trigonometric functions:
-
vx (component along the X-axis) is calculated using the cosine of the direction angle: [ vx = \text{velocity} \times \cos(\text{direction}) ]
-
vy (component along the Y-axis) is calculated using the sine of the direction angle: [ vy = \text{velocity} \times \sin(\text{direction}) ]
Example
If the robot needs to move at a speed of 100 mm/s in the direction of 30 degrees (from the X-axis):
-
( vx = 100 \times \cos(30^\circ) )
-
( vy = 100 \times \sin(30^\circ) )
chassis = Motors() # Move forward at 100 mm/s in the direction of 0 degrees (forward along the X-axis) chassis.set_velocity(100, 0, 0) # Rotate the chassis at an angular rate of 30 degrees per second chassis.set_velocity(100, 0, 30) # Translate the chassis based on Cartesian coordinates (e.g., moving diagonally) chassis.translation(50, 50) # Stop all motors and reset movement attributes chassis.reset_motors()
External Links
You can find more information about the TurboPi robot here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file turbopi_fast_sdk-0.3.6.tar.gz.
File metadata
- Download URL: turbopi_fast_sdk-0.3.6.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
468611eff25ee94b4de9f25fc6e1023631fd29a4e63259c755513a633db9cfd0
|
|
| MD5 |
825291c438c84f1367a93c656151e494
|
|
| BLAKE2b-256 |
97a244eac56369278148ba8ae7b4312e588b7504b40aba65b35bb8b014a7b051
|
File details
Details for the file turbopi_fast_sdk-0.3.6-py3-none-any.whl.
File metadata
- Download URL: turbopi_fast_sdk-0.3.6-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2302639f886c29714dd8ad4bbf803e64ab84a1cf6215a58417e86078a8f0a2c7
|
|
| MD5 |
a8422eb743f096fdf06dfef6d92d612b
|
|
| BLAKE2b-256 |
32032017116f7a90c5f10229e1302684913a44c87089c819ac333116327f6182
|