Skip to content

Latest commit

 

History

History
114 lines (88 loc) · 3.68 KB

planetproj.md

File metadata and controls

114 lines (88 loc) · 3.68 KB

プラネタリウム (v2) API一覧

エラー時の挙動

ホスト側で復帰可能なエラーが起きた場合、ValueErrorを返します。
考えられる原因:

  • 指定する値の範囲を間違えた。
  • 過大な角度ぶん回転させようとしてしまった。

ホスト・スレーブ側に関わらず、復帰不可能なエラーが起きた場合、IOErrorを返します。 この場合、LEDおよびモーター制御基板の電源を直ちに切ってください
考えられる原因:

  • マイコンとの通信が途切れた。
  • 過負荷によりLEDやモーターの電源が落ちた。

なお、IOErrorを返さずとも基板が燃えている場合があります。
以下の場合でも直ちに電源を切ってください:

  • 基板があまりにも (100℃以上) 熱い。
  • 焼け焦げた臭いがする・煙が上がっている。
  • 爆発音がした。
  • LEDが点かない・点滅する。
  • モーターが回らない・異様に振動している。
  • いつもの動作と違う。

class LED

set_brightness_multi(t)

  • t: [(led1, brightness1), ..., (ledn , brightnessn)]
    • ledn: int [0,11]
    • brightnessn: float [0,1]
    • n個目のLED (ledn) の明るさをbrightnessnに設定する。

get_brightness(led)

  • led: int [0,11]
  • -> float [0,1]
  • led個目のLEDの明るさを返す。

#!/usr/bin/env python

import planetproj

LED = planetproj.LED()
LED.set_brightness_multi([(9, 0.8)])
LED.set_brightness_multi([(0, 0.2), (1, 0.53), (2, 0.45), (8, 0.9), (11, 1)])
print(LED.get_brightness(2))

class Motor

__init__(degree_range = [[-pi, pi], [-inf, inf]])

  • degree_range: [[motor0min, motor0max], ..., [motornmin, motornmax]]
    • motorn{min,max}: numeric
    • n個目のモーター (motorn) の可動域をmotornmin以上motornmax以下 (単位:ラジアン) に制限する。
    • デフォルトではモーター2つということです。

set_power(n, power)

  • n: int [0,1]
  • power: float [0, 1]
  • モーターnの出力を最大値のpower倍にする。

set_zero_position(n)

  • n: int [0,1]
  • モーターnのゼロ点を現在位置とする。

get_current_degree(n)

  • n: int [0,1]
  • -> float
  • モーターnの現在位置 (単位:ラジアン) を返す。

do_rotate_step_relative(n, relative_step)

  • n: int [0,1]
  • relative_step: int
  • モーターnを現在位置から相対的にrelative_stepステップ回転させる。
  • stepが正なら正回転、負なら逆回転となる。
  • 回転が完了するまで返らない

do_rotate_degree_relative(n, relative_degree)

  • n: int [0,1]
  • relative_degree: float
  • モーターnを現在位置から相対的にrelative_degreeラジアン回転させる。
  • 回転が完了するまで返らない

do_rotate_degree_absolute(n, absolute_degree)

  • n: int [0,1]
  • absolute_degree: float
  • モーターnabsolute_degreeラジアンの位置まで回転させる。
  • 回転が完了するまで返らない

#!/usr/bin/env python

from __future__ import print_function

import planetproj
from math import pi

Motor = planetproj.Motor()
Motor.set_power(0, 1)
Motor.set_power(1, 0.8)
Motor.do_rotate_degree_relative(0, pi/3)
Motor.do_rotate_degree_relative(1, -pi)
print('Current degree of motor #0:', Motor.get_current_degree(0))
Motor.set_zero_position(0)
Motor.do_rotate_degree_absolute(0, 0)
Motor.do_rotate_degree_absolute(1, pi/4)
print('Current degree of motor #0:', Motor.get_current_degree(0))