Closed ShunjiHashimoto closed 3 years ago
GPIOを使えるようにした 動作確認用の抵抗が必要 モータ制御はいらないかも 次はモータ制御してみよう
基本ラズパイと同じ 最初にJetsonNano入門書に書いてある手順通りにピン配置を設定する ただそれだけ
ちゃんとコードで動かしてはないからReopen
PWMのピンを32, 33 5VとGNDのピン その他は、11,12に接続する
モータ制御のコードちゃんと読もう
R = 32
L = 33
ENABLE_r = 11
ENABLE_l = 12
GPIO.setmode(GPIO.BOARD)
GPIO.setup(R, GPIO.OUT)
GPIO.setup(L, GPIO.OUT)
GPIO.setup(ENABLE_r, GPIO.OUT)
GPIO.setup(ENABLE_l, GPIO.OUT)
GPIO.output(ENABLE_r, GPIO.LOW)
GPIO.output(ENABLE_l, GPIO.LOW)
p_r = GPIO.PWM(R, bottom)
p_l = GPIO.PWM(L, bottom)
p_r.start(0)
p_l.start(0)
BOARDとBCMの違い 物理ピンの番号のほうが直感的なので採用 GPIO.BOARD: 物理ピン番号(左上からの連番) GPIO.BCM: 役割ピン番号(broadcomが命名しているもの)
https://qiita.com/msrks/items/7de29c4294ce677e05a0 こっちのほうが詳しい https://ag.hatenablog.com/entry/2015/07/31/013013#:~:text=%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%AE%E6%8C%87%E5%AE%9A,%E8%89%AF%E3%81%95%E3%81%9D%E3%81%86%E3%81%A7%E3%81%99%E3%80%82
gpioでpwm値を設定し、正転逆転をアナログ値を使うことで動作させる pwmの変化は見られるが、アナログ値を変化させても回転方向が変わらない
gpioの状態確認
inout GPIO.input(channel)
戻り値は、GPIO.LOW, HIGH
GPIO.output(channel, state)
stateは、inの戻り値と同じ。
テスターでラズパイのGPIOの電圧を確認したところ、きれいに3.3V, 0V に変化していたが、 jetsonは、3.3V~0.0Vが不安定に変化していた プルアップ抵抗がどうちゃらこうちゃらかもしれない
まだまだわからない。。。 なぜjetosonが3.3V〜0.0Vをきれいに行き来しないのか 今gpioを40にしたところ1.6〜0.0Vを行き来するようになった しかもきれいに行き来しない
hashimoto@jetson:~/catkin_ws/src/tang/tang_teleop/scripts$ ./gpio.py
/usr/lib/python2.7/dist-packages/Jetson/GPIO/gpio.py:386: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings
RuntimeWarning)
んん〜〜よくわからん、orz
jetson用のGPIOをimportするか?
https://monoist.atmarkit.co.jp/mn/articles/1910/23/news038_2.html
焦らずに順番に潰していこう
デバッグ順番
11ピンでもちゃんと0~3.3Vを行き来しているのを確認
pwmのchangeDutycycleをやるとHIGHの値が不安定になる
コマンドからgpioを支持しても電圧が不安定
ラズパイでもおなじ挙動になるか確認する これでラズパイが正常に動作して入れば、jetsonが悪いからコンバータ使って3.3Vになるようにする
ラズパイでは安定して0~3.3Vを行き来できた モタドラがあっても安定していた
jetsonでも正常に0~3.3Vを行き来できていた あとは何が問題なのか 厳しければラズパイとの両党になるかもしれない
データシートを見ると5Vのデジタル出力が必要と書いてはいたが3.3Vでも互換性はあるらしく、実際ラズパイの出力は3.3Vだが動作した、ちなみにArduinoのGPIOは5.0V
ラズパイでは3.3Vで右ねじの逆、0.0Vで右ねじの向きに回っていた
jetsonでは、常にHIGH(3.3V)の状態のときのまわり方になっている つまり、ちゃんと0.0Vになっていないということか??? 試しに0.0VにするためにGNDに接続したところ逆回転できた
微妙に0.01Vだけ残っていて、0.0Vにはならない模様
モータが回ってる最中だと0.01Vぐらいになってしまい、ちゃんとしたLOWになっていないことが問題!!!
明日までにはほんとどうにかしたいです
あれ、きれいに0〜3.3Vにいってるけど、逆転しない。。
電流を図ろうとして測れなかった
接続したピンの途中の電圧を図ると1.5~3.8Vぐらいの間を行き来していた 0.0Vになっていなかったので、これが原因かも
ラズパイでも同様の現象が見られるか確認必要
ラズパイを確認したところ0〜3.3Vをちゃんと行き来していたので、jetson側が悪い、きれいに0〜3.3Vになっていない
分圧をしたところ逆転した
モタドラとjetsonを接続すると、電圧が1.5-3.8を行き来する挙動が確認できた 1.5を下げるために分圧を行なったところ逆転したが、正転はしなかった
pwmのchangeDutycycleをやるとHIGHの値が不安定になる
これも確認必要
機能は、電流測定、分圧を行った 電流測定は違いが見られなかった また、分圧はなぜか1.0~1.5VくらいがHIGHになって、常に逆転で回転していた さらに、同じ電圧でも正転逆転の違いがある、わからぬ、、orz モタドラ5VとjetsonLOWの0Vが合わさると1.5Vになる理由がわからない
合わさると1.5Vの理由を探りたい
安定して動作する方法を見つけた 他のgpioピンをLOWにして、それを普段使っているデジタルピンとくっつけるというか分岐させたら安定して正転逆転をする ただ、なぜそうなるかは全くわからず、現在デバッグ中 やっていることは、分圧をさせていろいろとデータをとり、挙動を分析中 同じ電圧でも正転逆転することがあり、いまいちわからない また、5Vピンを加えると、テスターでフレたときだけ逆転するという挙動も見られる
分圧とその工夫について https://rt-net.jp/humanoid/archives/2805 https://jptomoya.hatenablog.com/entry/2019/07/27/201451
引き続きデバッグをおこない、原因究明したい
http://zattouka.net/GarageHouse/micon/circuit/LevelConv.htm
秋月でレベル変換モジュールを買う! 3.3V,5.0Vの接続をいい感じにしてくれる https://akizukidenshi.com/catalog/g/gK-13837/
レベル変換をしたところ、5V4AのACアダプタであれば問題なく動作した! (11/3 祝日)
一方5V3Aモバイルバッテリだとモータの逆回転の挙動がおかしくなった なぜかはわからぬ!!!!!
まず、なぜたまに接続が不安定になるのか調査する必要がある コードを少しずらしたりするとモタドラが光ったりする 秋月でDCDCコンバータ刈ってみよか
Jetsonの電源不足解消のために、Twitterでどの電源がおすすめか募った
[Jetson Nanoについての質問]
— 橋本俊治 (@23232871hashimo) November 4, 2021
Jetson Nanoを屋外で使うときの電源はどれがいいのかわかりません!今はAnkerのモバイルバッテリーを使い、JetsonのDCジャックから5V3Aを供給していますが物体検出をやると電力不足になります。
「自分はこうしている」「これおすすめ!」等コメント頂けると泣いて喜びま