RobokitRS


NameRobokitRS JSON
Version 1.0.1.30 PyPI version JSON
download
home_pagehttps://eng.roborobo.co.kr/main
Summary
upload_time2024-01-16 02:52:43
maintainer
docs_urlNone
authorRoborobo
requires_python>=3
licenseMIT
keywords robokitrs roborobo
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # About RobokitRS Package
RS KIT & DIYGO 제품에 포함되어 있는 RS CPU 및 I/O 하드웨어 제어용 Python Package입니다.

# while문 사용 시 주의 사항
## 명령 누적 방지
```python
from RobokitRS import *
from time import sleep
import keyboard

rs = RobokitRS.RobokitRS()
rs.port_open("COM5")
rs.sonar_begin(13)  

while(True):
    SONAR = rs.sonar_read(13)
    if SONAR >= 100:
        rs.motor_write(0,0,15)
        sleep(0.1)

    elif SONAR < 30:
        rs.motor_write(0,0,0)
```

위 코드는 잘못된 코드입니다. elif 조건문 내부의 명령이 시간 지연 없이 계속하여 실행되어 무수한 명령을 생성합니다. 이때 명령을 생성하는 속도가 기기와 통신하는 속도보다 빨라 처리되지 않은 명령이 누적되어 코드가 올바르게 동작하지 않습니다. 따라서 아래와 같이 sleep 문을 추가하여 실행해야 합니다.

```python
from RobokitRS import *
from time import sleep
import keyboard

rs = RobokitRS.RobokitRS()
rs.port_open("COM5")
rs.sonar_begin(13)  

while(True):
    SONAR = rs.sonar_read(13)
    if SONAR >= 100:
        rs.motor_write(0,0,15)
        sleep(0.1)

    elif SONAR < 30:
        rs.motor_write(0,0,0)
        sleep(0.1)
```

## while문 탈출
로봇이 장시간동안 동작하기 위한 코드에 무한 반복을 위한 __'while true:'__ 가 있다면 while을 탈출할 수 있는 방법이 있어야 합니다.(실행중인 코드를 강제 종료하는 것은 권장하지 않습니다.) 다음은 ESC 키를 눌러서 무한 반복문을 탈출하는 것에 대한 가이드입니다.
### Keyboard package 설치

Terminal(Powershell, VSCode Terminal 등)에 다음과 같이 입력하여 Keyboard package를 설치합니다.

```Powershell
pip install keyboard
```

### 예시 코드

```python
from RobokitRS import *
from time import sleep
import keyboard

rs = RobokitRS.RobokitRS()
rs.port_open("COM5")
rs.sonar_begin(13)  

while(True):
    if keyboard.is_pressed('ESC'):
        rs.end()
        break

    SONAR = rs.sonar_read(13)
    if SONAR >= 100:
        rs.motor_write(0,0,15)
        sleep(0.1)

    elif SONAR < 30:
        rs.motor_write(0,0,0)
        sleep(0.1)
```

while loop 바로 아래에 ESC 키를 누르는 것을 검출하는 조건문이 있습니다. 따라서 위와 같이 해당 조건문 내에 종료를 위한 코드를 작성하면, ESC를 눌러 실행중인 코드를 종료할 수 있습니다. 사용자가 추가적으로 원하는 코드가 있다면 rs.end() 함수 앞에 추가로 작성하는 것을 권장합니다..
# 버전 업데이트 정보

> 1.0.1.29 (2023.09.12.)
>> end() 함수 업데이트
>>> 초기화 신호 송신을 통해 현재 동작중인 명령을 모두 종료하고 코드 실행을 종료.


> 1.0.1.30 (2024.11.16.)
>> digital_reads(), analog_reads() 함수 수정
>>> 3.11 버전 기준 기존 코드가 range(list) 로 인해 에러가 발생하여 수정.

            

Raw data

            {
    "_id": null,
    "home_page": "https://eng.roborobo.co.kr/main",
    "name": "RobokitRS",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3",
    "maintainer_email": "",
    "keywords": "RobokitRS,roborobo",
    "author": "Roborobo",
    "author_email": "roborobolab@gmail.com",
    "download_url": "https://github.com/RoboroboLab/RobokitRS/archive/master.tar.gz",
    "platform": null,
    "description": "# About RobokitRS Package\r\nRS KIT & DIYGO \uc81c\ud488\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\ub294 RS CPU \ubc0f I/O \ud558\ub4dc\uc6e8\uc5b4 \uc81c\uc5b4\uc6a9 Python Package\uc785\ub2c8\ub2e4.\r\n\r\n# while\ubb38 \uc0ac\uc6a9 \uc2dc \uc8fc\uc758 \uc0ac\ud56d\r\n## \uba85\ub839 \ub204\uc801 \ubc29\uc9c0\r\n```python\r\nfrom RobokitRS import *\r\nfrom time import sleep\r\nimport keyboard\r\n\r\nrs = RobokitRS.RobokitRS()\r\nrs.port_open(\"COM5\")\r\nrs.sonar_begin(13)  \r\n\r\nwhile(True):\r\n    SONAR = rs.sonar_read(13)\r\n    if SONAR >= 100:\r\n        rs.motor_write(0,0,15)\r\n        sleep(0.1)\r\n\r\n    elif SONAR < 30:\r\n        rs.motor_write(0,0,0)\r\n```\r\n\r\n\uc704 \ucf54\ub4dc\ub294 \uc798\ubabb\ub41c \ucf54\ub4dc\uc785\ub2c8\ub2e4. elif \uc870\uac74\ubb38 \ub0b4\ubd80\uc758 \uba85\ub839\uc774 \uc2dc\uac04 \uc9c0\uc5f0 \uc5c6\uc774 \uacc4\uc18d\ud558\uc5ec \uc2e4\ud589\ub418\uc5b4 \ubb34\uc218\ud55c \uba85\ub839\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc774\ub54c \uba85\ub839\uc744 \uc0dd\uc131\ud558\ub294 \uc18d\ub3c4\uac00 \uae30\uae30\uc640 \ud1b5\uc2e0\ud558\ub294 \uc18d\ub3c4\ubcf4\ub2e4 \ube68\ub77c \ucc98\ub9ac\ub418\uc9c0 \uc54a\uc740 \uba85\ub839\uc774 \ub204\uc801\ub418\uc5b4 \ucf54\ub4dc\uac00 \uc62c\ubc14\ub974\uac8c \ub3d9\uc791\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc544\ub798\uc640 \uac19\uc774 sleep \ubb38\uc744 \ucd94\uac00\ud558\uc5ec \uc2e4\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.\r\n\r\n```python\r\nfrom RobokitRS import *\r\nfrom time import sleep\r\nimport keyboard\r\n\r\nrs = RobokitRS.RobokitRS()\r\nrs.port_open(\"COM5\")\r\nrs.sonar_begin(13)  \r\n\r\nwhile(True):\r\n    SONAR = rs.sonar_read(13)\r\n    if SONAR >= 100:\r\n        rs.motor_write(0,0,15)\r\n        sleep(0.1)\r\n\r\n    elif SONAR < 30:\r\n        rs.motor_write(0,0,0)\r\n        sleep(0.1)\r\n```\r\n\r\n## while\ubb38 \ud0c8\ucd9c\r\n\ub85c\ubd07\uc774 \uc7a5\uc2dc\uac04\ub3d9\uc548 \ub3d9\uc791\ud558\uae30 \uc704\ud55c \ucf54\ub4dc\uc5d0 \ubb34\ud55c \ubc18\ubcf5\uc744 \uc704\ud55c __'while true:'__ \uac00 \uc788\ub2e4\uba74 while\uc744 \ud0c8\ucd9c\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.(\uc2e4\ud589\uc911\uc778 \ucf54\ub4dc\ub97c \uac15\uc81c \uc885\ub8cc\ud558\ub294 \uac83\uc740 \uad8c\uc7a5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.) \ub2e4\uc74c\uc740 ESC \ud0a4\ub97c \ub20c\ub7ec\uc11c \ubb34\ud55c \ubc18\ubcf5\ubb38\uc744 \ud0c8\ucd9c\ud558\ub294 \uac83\uc5d0 \ub300\ud55c \uac00\uc774\ub4dc\uc785\ub2c8\ub2e4.\r\n### Keyboard package \uc124\uce58\r\n\r\nTerminal(Powershell, VSCode Terminal \ub4f1)\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \uc785\ub825\ud558\uc5ec Keyboard package\ub97c \uc124\uce58\ud569\ub2c8\ub2e4.\r\n\r\n```Powershell\r\npip install keyboard\r\n```\r\n\r\n### \uc608\uc2dc \ucf54\ub4dc\r\n\r\n```python\r\nfrom RobokitRS import *\r\nfrom time import sleep\r\nimport keyboard\r\n\r\nrs = RobokitRS.RobokitRS()\r\nrs.port_open(\"COM5\")\r\nrs.sonar_begin(13)  \r\n\r\nwhile(True):\r\n    if keyboard.is_pressed('ESC'):\r\n        rs.end()\r\n        break\r\n\r\n    SONAR = rs.sonar_read(13)\r\n    if SONAR >= 100:\r\n        rs.motor_write(0,0,15)\r\n        sleep(0.1)\r\n\r\n    elif SONAR < 30:\r\n        rs.motor_write(0,0,0)\r\n        sleep(0.1)\r\n```\r\n\r\nwhile loop \ubc14\ub85c \uc544\ub798\uc5d0 ESC \ud0a4\ub97c \ub204\ub974\ub294 \uac83\uc744 \uac80\ucd9c\ud558\ub294 \uc870\uac74\ubb38\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc704\uc640 \uac19\uc774 \ud574\ub2f9 \uc870\uac74\ubb38 \ub0b4\uc5d0 \uc885\ub8cc\ub97c \uc704\ud55c \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uba74, ESC\ub97c \ub20c\ub7ec \uc2e4\ud589\uc911\uc778 \ucf54\ub4dc\ub97c \uc885\ub8cc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\uac00 \ucd94\uac00\uc801\uc73c\ub85c \uc6d0\ud558\ub294 \ucf54\ub4dc\uac00 \uc788\ub2e4\uba74 rs.end() \ud568\uc218 \uc55e\uc5d0 \ucd94\uac00\ub85c \uc791\uc131\ud558\ub294 \uac83\uc744 \uad8c\uc7a5\ud569\ub2c8\ub2e4..\r\n# \ubc84\uc804 \uc5c5\ub370\uc774\ud2b8 \uc815\ubcf4\r\n\r\n> 1.0.1.29 (2023.09.12.)\r\n>> end() \ud568\uc218 \uc5c5\ub370\uc774\ud2b8\r\n>>> \ucd08\uae30\ud654 \uc2e0\ud638 \uc1a1\uc2e0\uc744 \ud1b5\ud574 \ud604\uc7ac \ub3d9\uc791\uc911\uc778 \uba85\ub839\uc744 \ubaa8\ub450 \uc885\ub8cc\ud558\uace0 \ucf54\ub4dc \uc2e4\ud589\uc744 \uc885\ub8cc.\r\n\r\n\r\n> 1.0.1.30 (2024.11.16.)\r\n>> digital_reads(), analog_reads() \ud568\uc218 \uc218\uc815\r\n>>> 3.11 \ubc84\uc804 \uae30\uc900 \uae30\uc874 \ucf54\ub4dc\uac00 range(list) \ub85c \uc778\ud574 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud558\uc5ec \uc218\uc815.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "",
    "version": "1.0.1.30",
    "project_urls": {
        "Download": "https://github.com/RoboroboLab/RobokitRS/archive/master.tar.gz",
        "Homepage": "https://eng.roborobo.co.kr/main"
    },
    "split_keywords": [
        "robokitrs",
        "roborobo"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "741175fece40aff306aad7b60019cd9889fd78ac5bca62ab59cf2fbdee80feea",
                "md5": "cfa7cfbed9539a6c7536875d2054ca41",
                "sha256": "c588948586f49090c2e492245041ee14c63bc2dddae48184a84b39087165cafe"
            },
            "downloads": -1,
            "filename": "RobokitRS-1.0.1.30-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cfa7cfbed9539a6c7536875d2054ca41",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3",
            "size": 15674,
            "upload_time": "2024-01-16T02:52:43",
            "upload_time_iso_8601": "2024-01-16T02:52:43.932025Z",
            "url": "https://files.pythonhosted.org/packages/74/11/75fece40aff306aad7b60019cd9889fd78ac5bca62ab59cf2fbdee80feea/RobokitRS-1.0.1.30-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-16 02:52:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "RoboroboLab",
    "github_project": "RobokitRS",
    "github_not_found": true,
    "lcname": "robokitrs"
}
        
Elapsed time: 0.16056s