문제

USB를 통해 USB를 통해 통신하는 OSX 용 Ruby 프로그램을 rduino로 씁니다. 나는 그 목적을 위해 serialport 보석을 사용할 것입니다.

샘플 코드를 찾았습니다.

port_str = "/dev/ttyUSB0"  #may be different for you
.

Arduino를 스캔하고 찾아 내고 자동으로 연결 해야하는 포트를 알 수 있습니까? (나는 OSX가있다) 감사합니다!

도움이 되었습니까?

해결책

Arduino 장치가 USB 직렬 포트로 표시되므로 Arduino와 Non-Arduino 포트를 구별하기가 어렵 기 때문에 일반적인 방법으로 수행 할 수 있습니다.

Brute-force 접근법은 다음과 같습니다. USB 직렬 장치를 열거하고 엽니 다 () 펌웨어 부트 헤더가 다른 쪽 끝에서 전송되는지 확인하십시오. OSX에서는 USB 직렬 장치가 /dev/tty.*에 있지만 향후 OS 업데이트로 변경 될 수 있습니다. 이 방법은 작동하지만 느리고 타이밍 할 수 있습니다. 나는 헤더를 보내기 전에 Arduino의 시작 지연이 있음을 발견했습니다. 단순한 " 안녕하세요. " "명령은 삶의 흔적을 위해 쾅하는 데 사용할 수 있습니다. < / P>

또한 마지막 포트를 저장할 수 있도록 마지막 포트를 저장할 수 있으므로 해당 포트를 먼저 시도해보십시오.

A 앱 : 앱이 사용자가 시작시 Arduino를 연결하도록 요청하면 / dev의 USB 포트를 나열하고 사용자가 꽂혀 있는지 확인하고 포트를 다시 나열 할 수 있습니다. 새로 나타나는 장치는 Arduino 가능성이 있습니다.

다음 레벨에서는 USB 공급 업체 및 제품 ID (Vid & PID)를 볼 수 있습니다. 그러나 이러한 ID는 모두 Arduino-Land의지도 위에 있습니다. 모델, 버전, 개정, 중국 클론 및 다양한 Arduino 호환 장치에 따라 다릅니다. Adafruit "를 참조하십시오

매우 좁은 하드웨어 세트로 작업을 수행하려는 경우 (예 : 벤치의 Arduino 하나)를 사용 하여이 osx 명령을 사용하여 USB 장치 세부 정보를 볼 수 있습니다.

system_profiler SPUSBDataType
.

시스템을 사용하면 얻습니다 :

...
USB Bus:

  Host Controller Location: Built-in USB
  Host Controller Driver: AppleUSBUHCI
  PCI Device ID: 0x7fff000027c9 
  PCI Revision ID: 0x7fff00000002 
  PCI Vendor ID: 0x7fff00008086 
  Bus Number: 0x3d 

    Communication Device:

      Product ID: 0x0043
      Vendor ID: 0x2341
      Version: 0.01
      Serial Number: 75331313133351800000
      Speed: Up to 12 Mb/sec
      Manufacturer: Arduino (www.arduino.cc)
      Location ID: 0x3d100000 / 2
      Current Available (mA): 500
      Current Required (mA): 100
.

위치 ID (0x3D100000 / 2)는 장치 이름과 일치하는 것 같습니다. /dev/cu.usbmodem3d11

이 질문은 명령 줄에서 명령 행 명령을 실행합니다. 루비 스크립트.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top