Divide and Conquer

[Jetbot] Jetson nano Motor Control 본문

2025/ROS

[Jetbot] Jetson nano Motor Control

10살 2022. 4. 25. 22:34
728x90

PCA9685 연결 확인(1,3,5,9에 연결)

젯슨 나노는 PWM을 지원하지 않기 때문에 PCA9685와 모터 드라이버 L298N을 이용했다

sudo usermod -aG i2c jetbot

확인 
#sudo i2cdetect -r -y 1
#cd  /usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/
#sudo vim Adafruit_MotorHAT_Motors.py
#i2c device list command
#$ sudo i2cdetect -r -y 1
#i2cdump -y 1 0x40

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

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

Teleoperation

게임패드 연결 확인 사이트 http://html5gamepad.com

import ipywidgets.widgets as widgets

#1을 0으로 바꿔
#controller = widgets.Controller(index=1) 
controller = widgets.Controller(index=0) 

#눌러야 화면이 나와
display(controller)
#-0.7*x 로 속도 조절 
left_link = traitlets.dlink((controller.axes[1], 'value'), (robot.left_motor, 'value'), transform=lambda x: -0.7*x)
right_link = traitlets.dlink((controller.axes[3], 'value'), (robot.right_motor, 'value'), transform=lambda x: -0.7*x)
# 버튼 눌렸을 때 사용 방법
def print_hello(change):
    print('Hello')
    
def print_world(change):
    print('world')
    
controller.buttons[1].observe(print_hello, names='value')
controller.buttons[0].observe(print_world, names='value')
# 종료해야지만 다른 노트북에서 카메라 사용 가능
camera.stop()

 

 

GitHub - Jinsun-Lee/Jetbot

Contribute to Jinsun-Lee/Jetbot development by creating an account on GitHub.

github.com

 

반응형
Comments