semvec/pypi-packages huggingface dataset:
HaplyHAPI 1.0.1
Python implementation of the haply hAPI

# Python Implementation of the hAPI

This is a python port of the [java implementation of the hAPI](https://gitlab.com/Haply/hAPI) .

## Installation

```bash
pip install HaplyHAPI
```

## Usage

Here’s an example of using the hAPI to control a 2diy Haply device. The example is also available in the examples folder.

In this example we will read position of the device and send a constant force.

```
from HaplyHAPI import Board, Device, Mechanisms, Pantograph
import time
import serial.tools.list_ports



CW = 0
CCW = 1

hardware_version = 3 # 2 for the metallic plate device, 3 for the newer plastic device

haplyBoard = Board
device = Device
SimpleActuatorMech = Mechanisms
pantograph = Mechanisms

com_ports = list(serial.tools.list_ports.comports())
# if only one port is available, use that one, otherwise ask the user to select the correct one
if len(com_ports) == 1:
    port = com_ports[0].device
else:
    print("Select the COM port for the Haply board:")
    for i, port in enumerate(com_ports):
        print(str(i) + ": " + port.device)
    port = com_ports[int(input())].device



def main():
    print("Starting the application!")
    haplyBoard = Board("test", port, 0)
    device = Device(5, haplyBoard)
    pantograph = Pantograph(hardware_version)
    device.set_mechanism(pantograph)

    

    #device.add_encoder(1, CCW, 240, 10978, 2)
    #device.add_encoder(2, CCW, -60, 10978, 1)
    if hardware_version == 3:
        device.add_actuator(1, CCW, 2)
        device.add_actuator(2, CCW, 1)
        device.add_encoder(1, CCW, 168, 4880, 2)
        device.add_encoder(2, CCW, 12, 4880, 1)
    else:
        device.add_actuator(1, CCW, 2)
        device.add_actuator(2, CW, 1)
        device.add_encoder(1, CCW, 241, 10752, 2)
        device.add_encoder(2, CW, -61, 10752, 1)

    device.device_set_parameters()
    i=0
    while(True):
        if(haplyBoard.data_available()):
            device.device_read_data()
            motorAngle = device.get_device_angles()
            device_position = device.get_device_position(motorAngle)
            print("Device position: " + str(device_position))
            i+=1
        forces = [0, 10]
        device.set_device_torques(forces)
        device.device_write_torques()
        time.sleep(0.001)



if __name__ == "__main__":
    main()
```
tello-solectric-pl 0.0.5
Biblioteka dla wsparcia nauczycieli w Polsce dla dronów Tello-EDU oraz Ryzen TT (z wyświetlaczem LCD)
Requires Python: >=3.8
Keywords: Dron Tello TelloEDU Ryzen RyzenTT DJI

DJI Tello Edu to dron zaprojektowany specjalnie dla edukacji i nauki programowania. Ten mały i lekki dron wyposażony jest w kamery, czujniki i narzędzia, które umożliwiają naukę i zabawę w programowanie.

Dron Tello Edu został opracowany we współpracy z firmą Ryze Tech i posiada funkcje, które ułatwiają naukę programowania. Dron ten jest kompatybilny z językiem programowania Scratch, co pozwala na łatwe tworzenie programów przez dzieci i młodzież. Ponadto, dron Tello Edu obsługuje również języki Python i Swift, umożliwiając bardziej zaawansowanym użytkownikom tworzenie bardziej skomplikowanych programów.

Dron Tello Edu jest wyposażony w kamerę HD, która umożliwia nagrywanie wideo w rozdzielczości 720p. Można nim również wykonywać zdjęcia o rozdzielczości 5 megapikseli. Dron posiada również wiele czujników, w tym czujniki wysokości, czujniki odległości oraz czujniki optyczne, które pozwalają na stabilne loty w pomieszczeniach.

Jednym z największych atutów drona Tello Edu jest jego łatwość obsługi. Dron ten jest bardzo prosty w użyciu i ma intuicyjny interfejs, co sprawia, że jest on idealny dla początkujących. Można nim również kontrolować za pomocą specjalnej aplikacji mobilnej, co dodatkowo ułatwia użytkowanie.

DJI Tello Edu to świetny wybór dla nauczycieli i uczniów, którzy chcą poznać podstawy programowania i uczyć się nowych umiejętności w interaktywny i zabawny sposób. Dron ten oferuje wiele możliwości i narzędzi, które pomagają w nauce, co czyni go idealnym narzędziem dla nauki w szkole, na kursach lub w domu.

----
*Mamy do dyspozycji dwa modele dronów:*

* czarny **Tello EDU** bez wyświetlacza LCD, dla niego jest przeznaczona klasa `TelloEDU()`
* czerwony **Ryzen TT** z wyświetlaczem LCD, dla niego jest przeznaczona klasa `RyzenTT()`

Naszym zadaniem jest użyć odpowiednie klasy - wówczas mamy dostęp do pewnych metod zarezerwowanych dla danego typu drona.

----
Minimalny kod, który pozwala na sprawdzenie **TelloEDU**:

```python
from tello_solectric_pl import TelloEDU
from time import sleep

dron = TelloEDU()

if dron.connect():
    print("Połączenie OK - start..")
    dron.takeoff()
    sleep(2)
    dron.land()
else:
    print("Połączenie nieudane")

print("KONIEC")

```

---
Zmiany w stosunku do oryginalnych metod biblioteki `djitellopy`:

* metoda `connect()` zwraca wartość `True` lub `False` - i w ten sposób kontrolujemy, czy połączenie się powiodło oraz czy używamy odpowiedniego drona.