본문 바로가기

Project/KUSMO

[KUSMO] 1/8 (LN298N, USB Port 설정, 아두이노 stray ‘\302’ in program 에러)

728x90

 

1) L298N 관련 내용

  • Arduino의 Digital Output pin에서는 최대 40mA의 전류밖에 출력하지 못함 : 모터 제어가 어려움
  • 따라서 motor 제어를 위해 Motor Driver L298N 사용

 

  • Vcc, GND핀에 motor driver에 사용할 외부 전원 입력 (동작 전압 : 5~35V, 가급적 7~12V 사용)
  • 5V 핀은 Arduino 전원 공급용으로 사용 (5~7V 공급 가능)
  • OUT1~4 핀은 최대 2A의 전류 출력 가능 (Vcc에 따라 달라짐)
  • ENA, ENB 핀은 최초에 핀홀더로 덮여있음 : 이 경우 각 핀들은 바로 위에 있는 5V와 연결되어 Motor가 최대 속도로 회전함 반대로 핀홀더를 제거하면 motor가 회전하지 않음
  • ENA, ENB 핀은 Arduino의 PWM 핀과 연결하여 Analog Signal을 통해 Motor의 속도를 조절함 (+ 각 Motor를 키고 끄는 역할)
  • IN1~4는 motor의 방향 조절 핀으로 IN1, 2는 Motor1, IN3,4는 Motor2의 방향 제어. 실제로는 H-bridge 내부의 스위치를 조절함 (아래에 설명)
  • IN1, 2핀 입력 전압에 따른 모터 회전 방향 (High = 5V)
Input1 Input2 Spinning Direction
Low(0) Low(0) Motor OFF
High(1) Low(0) Forward
Low(0) High(1) Backward
High(1) High(1) Motor OFF

 

  • DC Motor의 회전 방향은 Input Voltage의 polarity를 변경하여 조절 가능. L29N은 H-brigde를 활용
    • H-bridge : 하나의 전원으로 Motor에 들어가는 voltage의 방향 조절이 가능한 H모양의 4개의 switch들을 사용하는 회로
  • V+는 Vcc핀에서 입력받은 외부 전원

4개의 스위치 조절을 통한 모터의 회전 방향 제어

 

 

  • 위처럼 Regulator에 jumper가 끼워져있을 시 5V Regulator가 Enable되어 Vcc핀에서 입력받은 전압을 5V로 변환하여 아두이노에 공급 (0.5A의 전류 공급)
  • 만약 해당 jumper를 제거하면 5V Regulator가 Disable되어 5V핀에 전압을 따로 입력해야 함
  • Vcc가 12V 이상일 경우 5V Regulator에 손상이 갈 수 있으므로 jumper 제거 필요

 

  • L298N에는 H-bridge 2V정도의 Voltage Drop이 발생함
  • H-bridge에서 사용하는 transistor가 forward biased 될 경우 1V정도의 voltage drop을 가지고, 전류는 2개의 transistor를 통과해야 하므로 총 2V의 voltage drop이 발생함
  • 따라서 12V의 DC Motor 사용을 위해 12V의 Vcc를 인가할 경우 아래 그림처럼 최대 10V까지밖에 공급할 수 없음
  • Motor를 maximum speed로 회전시키기 위해서는 motor의 요구 전압보다 2V정도 높은 전압을 인가해야 함
  • 이러한 Voltage Drop은 상당한 열을 발생시킴 : 큰 방열판이 붙어있는 이유

 

 

 

 

 

2) USB Port 설정 관련

https://youngseong.tistory.com/121

 

[RIS] 1/2

- USB Port 설정법 각 센서를 제작한 회사에서 지원하는 프로그램을 이용하여 윈도우에서 USB Port의 Serial을 변경 $ lsusb 위 명령어를 USB를 꽃고 치고 빼고 쳐서 해당 usb port의 idVendor와 idProduct를 확인

youngseong.tistory.com

 

$ udevadm info -a /dev/ttyUSB0 | grep '{serial}'
 ATTRS{serial}=="0010"
 ATTRS{serial}=="0000:00:14.0"
$ udevadm info -a /dev/ttyUSB1 | grep '{serial}'
 ATTRS{serial}=="0010"
 ATTRS{serial}=="0000:00:14.0"
  • 앞서 공부했던 USB port 설정법을 통해 각 IMU, Lidar와 Arduino Serial Cable의 port 설정을 하려 했는데, IMU와 Lidar의 idVendor, idroduct와 serial까지 모두 동일한 문제 발생

 

$ udevadm info /dev/ttyUSB0 
$ udevadm info /dev/ttyUSB1
  • 위 명령어를 통해 각 usb port에 대한 더 자세한 정보 확인

  • 위 결과 중 각 port의 ID PATH를 확인하여 /etc/udev/rules.d directory 내의 port 설정 파일에 입력

 

 

 

- 다른 방법

KERNEL=="ttyUSB[0-9]", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{busnum}=="1", 
ATTRS{devnum} =="5", MODE:="0666", GROUP:="dialout", SYMLINK+="ttyIMU"

KERNEL=="ttyUSB[0-9]", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{busnum}=="1", 
ATTRS{devnum} =="6", MODE:="0666", GROUP:="dialout", SYMLINK+="ttyRPLidar"
  • 위 방법 대신에 Bus, Device 정보를 입력하는 방법도 가능하다는 내용이 reddit에 있음 (확인 필요)

 

 

 

3) Arduino IDE error : stray ‘\302’ in program

  • Open Source Code를 Arduino IDE에 복사한 후 Upload를 하려 하자 위와 같은 오류 발생
  • Source Code 복사시 생긴 공백으로 인한 오류
  • 숨은 공백이나 탭, 엔터를 제거함으로써 해결 가능

 


참고 자료 :

https://m.blog.naver.com/emperonics/221834467735

 

아두이노로 모터 제어하기(L298N 모듈사용)

아두이노로 모터제어하기(L298N) 안녕하세요. 이번에는 아두이노로 모터를 제어하는 방법에 대해 알아보...

blog.naver.com

https://lastminuteengineers.com/l298n-dc-stepper-driver-arduino-tutorial/

 

In-Depth: Interface L298N DC Motor Driver Module with Arduino

Learn about L298N Motor Driver module along with PWM, H-bridge Working, Pinout, Wiring, Arduino Code for controlling speed & direction of DC motor.

lastminuteengineers.com

http://www.3demp.com/community/boardDetails.php?cbID=139 

 

아두이노 DC 모터 2

이번에는 H-Bridge회로를 이용해서 DC모터의 방향과 회전 속도를 제어 해 보도록 하겠습니다. H-Bridge 회로란 하나의 전원으로 모터에 가하는 전압의 방향을 바꿀 수 있는 회로를 말합니다. 기본적

www.3demp.com

https://www.reddit.com/r/linuxquestions/comments/4m6l1j/multiple_devices_with_same_product_id_vendor_id/

 

multiple devices with same product id, vendor id and serial number ?

I have different usb-serial adapters with the same infos and i need to distinguish between them without the need to guess each time the path of...

www.reddit.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=junsickman&logNo=220907083927 

 

error: stray ‘\302’ in program 원인과 해결방법

출처 : http://forum.airiclenz.com/showthread.php?tid=6881 error: stray ‘\302’ in program &...

blog.naver.com