[深セン合宿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マーク印字済みのモバイルバッテリー以外、販売できないようになっている。ここがハードルが高そうだ。
明日は、華強北で、適合するモバイルバッテリーを探してこようと思う。
この記事が気に入ったらサポートをしてみませんか?