見出し画像

[深セン合宿6日目] JetBotのデバックと修正

今回の合宿ではDonkey Carの新基板とJetBotの新基版の作成をおこなっている。Donkey Carの基板は、Debugピンを出したものをPCBGogoに再発注して到着待ちの状態なので、今日はJetBot基板の動作確認を開始。

まずは、安定な電源を確保するために、J48のJumperピンをショート。これで、USBではなく、DC コネクタからの電源供給が可能になる。

電源をいれずも、まったく動作せずで、早速デバック開始。

まずは、認識周りから。Jetson nanoでI2Cのチップ郡の認識アドレスを確認。

OLEDが、0x3cで認識し、PCA9685が0x40で認識。I2Cの認識は問題なし。

JetBotは、Adafruitのモータードライバーをつかっているようなので、Driverをチェック。

/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/Adafruit_MotorHAT_Motors.py  

class Adafruit_MotorHAT:
    FORWARD = 1
    BACKWARD = 2
    BRAKE = 3
    RELEASE = 4

    SINGLE = 1
    DOUBLE = 2
    INTERLEAVE = 3
    MICROSTEP = 4

    def __init__(self, addr = 0x60, freq = 1600, i2c=None, i2c_bus=None):
        self._frequency = freq
        self.motors = [ Adafruit_DCMotor(self, m) for m in range(4) ]
        self.steppers = [ Adafruit_StepperMotor(self, 1), Adafruit_StepperMotor(self, 2) ]
        print(addr)
        self._pwm = PWM(addr, debug=False, i2c=i2c, i2c_bus=i2c_bus)
        print(addr)
        self._pwm.setPWMFreq(self._frequency)

initの部分は、0x60を参照しているので、AdafruitのMotorHATのアドレスは0x60である事が判明。作成している基板のアドレスが0x40だったので、いったんプログラムは addr = 0x40に変更し、基板の方はA5をHighにして、アドレスを0x60に修正。

これで動くかとおもいきや、まだ動作せず。AdafruitのMotorHATはTS6612を2個つかっており、どうもJetBotで使用しているのは片方のみで、ピン配置が間違っていた模様。テスト用にピン番号の参照先をかえて、再度動作確認、無事動作成功!

基本的な動作確認ができたので、今回の修正を基板にほどこし、せっかくなので、外付けのOLEDを基板に搭載するし、PCBGogoへ発注。

JetBotの基板は、次のバージョンでおおかた完成できそうだ。

JetBotは、残るは電源問題をどうやって解決するかだ。Donkey Car仲間の有山さんがJetBotのバッテリーの条件をまとめてくれている。

日本で、適正な価格で上記条件のモバイルバッテリーが見つけられるかがポイントになりそうだ。日本では法令により今年から、PSEマーク印字済みのモバイルバッテリー以外、販売できないようになっている。ここがハードルが高そうだ。

明日は、華強北で、適合するモバイルバッテリーを探してこようと思う。


この記事が気に入ったらサポートをしてみませんか?