ShunjiHashimoto / tang

収穫サポートロボットTANG
2 stars 1 forks source link

モータ制御 #55

Closed ShunjiHashimoto closed 3 years ago

ShunjiHashimoto commented 3 years ago

Screenshot from 2021-09-14 08-04-13

ShunjiHashimoto commented 3 years ago

image

ShunjiHashimoto commented 3 years ago

GPIOを使えるようにした 動作確認用の抵抗が必要 モータ制御はいらないかも 次はモータ制御してみよう

ShunjiHashimoto commented 3 years ago

image

ShunjiHashimoto commented 3 years ago

できた

https://user-images.githubusercontent.com/63869336/133352672-e7f1872e-d306-40c1-8035-d9d852cd06e3.MOV

ShunjiHashimoto commented 3 years ago

基本ラズパイと同じ 最初にJetsonNano入門書に書いてある手順通りにピン配置を設定する ただそれだけ

ShunjiHashimoto commented 3 years ago

ちゃんとコードで動かしてはないからReopen

ShunjiHashimoto commented 3 years ago

PWMのピンを32, 33 5VとGNDのピン その他は、11,12に接続する

ShunjiHashimoto commented 3 years ago

モータ制御のコードちゃんと読もう

ShunjiHashimoto commented 3 years ago
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)

参考文献

https://qiita.com/kitazaki/items/9db6b0679eee5f768b3e

ShunjiHashimoto commented 3 years ago

参考にしたい内容

BOARDとBCMの違い 物理ピンの番号のほうが直感的なので採用 GPIO.BOARD: 物理ピン番号(左上からの連番) GPIO.BCM: 役割ピン番号(broadcomが命名しているもの)

URL

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

ShunjiHashimoto commented 3 years ago

参考にしたい内容

モタドラのデータシート

URL

https://github.com/ShunjiHashimoto/tang/issues/105#issue-1034298368

ShunjiHashimoto commented 3 years ago

現状

gpioでpwm値を設定し、正転逆転をアナログ値を使うことで動作させる pwmの変化は見られるが、アナログ値を変化させても回転方向が変わらない

今後について

ShunjiHashimoto commented 3 years ago

Screenshot from 2021-10-24 11-45-52

ShunjiHashimoto commented 3 years ago

参考にしたい内容

gpioの状態確認

URL

inout GPIO.input(channel)

戻り値は、GPIO.LOW, HIGH

GPIO.output(channel, state)

stateは、inの戻り値と同じ。

ShunjiHashimoto commented 3 years ago

現状

テスターでラズパイのGPIOの電圧を確認したところ、きれいに3.3V, 0V に変化していたが、 jetsonは、3.3V~0.0Vが不安定に変化していた プルアップ抵抗がどうちゃらこうちゃらかもしれない

今後について

ShunjiHashimoto commented 3 years ago

現状

まだまだわからない。。。 なぜ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

ShunjiHashimoto commented 3 years ago

参考にしたい内容

jetson用のGPIOをimportするか?

URL

https://monoist.atmarkit.co.jp/mn/articles/1910/23/news038_2.html

ShunjiHashimoto commented 3 years ago

焦らずに順番に潰していこう

ShunjiHashimoto commented 3 years ago

デバッグ順番

  1. https://github.com/ShunjiHashimoto/tang/issues/55#issuecomment-951483436
  2. ラズパイでも挙動同じか確認
  3. 他のピンでも動作するか確認
  4. モタドラなしで0~3.3Vを安定的に動作するか確認する
ShunjiHashimoto commented 3 years ago
  1. の結果テスターをクリップにつけたままだと動作が不安定だけど、一度話してもう一度つけてみるとちゃんと3.3Vになっていた
ShunjiHashimoto commented 3 years ago

11ピンでもちゃんと0~3.3Vを行き来しているのを確認

ShunjiHashimoto commented 3 years ago

pwmのchangeDutycycleをやるとHIGHの値が不安定になる

ShunjiHashimoto commented 3 years ago

コマンドからgpioを支持しても電圧が不安定

ShunjiHashimoto commented 3 years ago

ラズパイでもおなじ挙動になるか確認する これでラズパイが正常に動作して入れば、jetsonが悪いからコンバータ使って3.3Vになるようにする

ShunjiHashimoto commented 3 years ago

ラズパイでは安定して0~3.3Vを行き来できた モタドラがあっても安定していた

ShunjiHashimoto commented 3 years ago

jetsonでも正常に0~3.3Vを行き来できていた あとは何が問題なのか 厳しければラズパイとの両党になるかもしれない

ShunjiHashimoto commented 3 years ago

データシートを見ると5Vのデジタル出力が必要と書いてはいたが3.3Vでも互換性はあるらしく、実際ラズパイの出力は3.3Vだが動作した、ちなみにArduinoのGPIOは5.0V

ShunjiHashimoto commented 3 years ago

ラズパイでは3.3Vで右ねじの逆、0.0Vで右ねじの向きに回っていた

ShunjiHashimoto commented 3 years ago

jetsonでは、常にHIGH(3.3V)の状態のときのまわり方になっている つまり、ちゃんと0.0Vになっていないということか??? 試しに0.0VにするためにGNDに接続したところ逆回転できた

ShunjiHashimoto commented 3 years ago

微妙に0.01Vだけ残っていて、0.0Vにはならない模様

ShunjiHashimoto commented 3 years ago

モータが回ってる最中だと0.01Vぐらいになってしまい、ちゃんとしたLOWになっていないことが問題!!!

ShunjiHashimoto commented 3 years ago

明日までにはほんとどうにかしたいです

ShunjiHashimoto commented 3 years ago
ShunjiHashimoto commented 3 years ago

あれ、きれいに0〜3.3Vにいってるけど、逆転しない。。

ShunjiHashimoto commented 3 years ago

電流を図ろうとして測れなかった

ShunjiHashimoto commented 3 years ago

接続したピンの途中の電圧を図ると1.5~3.8Vぐらいの間を行き来していた 0.0Vになっていなかったので、これが原因かも

ShunjiHashimoto commented 3 years ago

ラズパイでも同様の現象が見られるか確認必要

ShunjiHashimoto commented 3 years ago

ラズパイを確認したところ0〜3.3Vをちゃんと行き来していたので、jetson側が悪い、きれいに0〜3.3Vになっていない

ShunjiHashimoto commented 3 years ago

分圧をしたところ逆転した

ShunjiHashimoto commented 3 years ago

現状

モタドラとjetsonを接続すると、電圧が1.5-3.8を行き来する挙動が確認できた 1.5を下げるために分圧を行なったところ逆転したが、正転はしなかった

今後について

ShunjiHashimoto commented 3 years ago

pwmのchangeDutycycleをやるとHIGHの値が不安定になる

これも確認必要

ShunjiHashimoto commented 3 years ago

現状

機能は、電流測定、分圧を行った 電流測定は違いが見られなかった また、分圧はなぜか1.0~1.5VくらいがHIGHになって、常に逆転で回転していた さらに、同じ電圧でも正転逆転の違いがある、わからぬ、、orz モタドラ5VとjetsonLOWの0Vが合わさると1.5Vになる理由がわからない

今後について

合わさると1.5Vの理由を探りたい

ShunjiHashimoto commented 3 years ago

現状

安定して動作する方法を見つけた 他のgpioピンをLOWにして、それを普段使っているデジタルピンとくっつけるというか分岐させたら安定して正転逆転をする ただ、なぜそうなるかは全くわからず、現在デバッグ中 やっていることは、分圧をさせていろいろとデータをとり、挙動を分析中 同じ電圧でも正転逆転することがあり、いまいちわからない また、5Vピンを加えると、テスターでフレたときだけ逆転するという挙動も見られる

参考文献

分圧とその工夫について https://rt-net.jp/humanoid/archives/2805 https://jptomoya.hatenablog.com/entry/2019/07/27/201451

今後について

引き続きデバッグをおこない、原因究明したい

ShunjiHashimoto commented 3 years ago

http://zattouka.net/GarageHouse/micon/circuit/LevelConv.htm

秋月でレベル変換モジュールを買う! 3.3V,5.0Vの接続をいい感じにしてくれる https://akizukidenshi.com/catalog/g/gK-13837/

ShunjiHashimoto commented 3 years ago

レベル変換をしたところ、5V4AのACアダプタであれば問題なく動作した! (11/3 祝日)

ShunjiHashimoto commented 3 years ago

一方5V3Aモバイルバッテリだとモータの逆回転の挙動がおかしくなった なぜかはわからぬ!!!!!

ShunjiHashimoto commented 3 years ago

まず、なぜたまに接続が不安定になるのか調査する必要がある コードを少しずらしたりするとモタドラが光ったりする 秋月でDCDCコンバータ刈ってみよか

ShunjiHashimoto commented 3 years ago

Jetsonの電源不足解消のために、Twitterでどの電源がおすすめか募った

ShunjiHashimoto commented 3 years ago
  1. GPIOからの給電
  2. AmazonのJetson専用の外部モバイル電源
  3. PDのモバイルバッテリとPDUSB adapterを使い、5V5Aまでを引き出すで電源 今回は3を採用し、部品を選定後、発注した