2017-10-10 3 views
-1

저는 현재 지역 구조 대원을위한 무인 잠수함을 개발중인 연구 팀의 일원입니다. 목표는 작년 팀의 프로토 타입을 개선하고 수정하는 것입니다.크로스 컴파일러를 사용하여 BeagleBone Black에서 Arduino Uno 코드를 실행할 수 있습니까?

지금 차량에는 Arduino Uno와 BeagleBone Black이 사용됩니다. Arduino는 6 개의 로터와 몇 개의 온보드 센서를 제어하는 ​​반면, BeagleBone은 온보드 카메라를 제어합니다 (왜이 설정이 선택되었는지는 묻지 마십시오. 이전 팀은 오래 전에 사라 졌으므로 앞으로 나아갈 수 밖에 없습니다).).

마지막 팀에 따르면 Arduino는 "방패"문제로 인해 모든 장비를 제어 할 수 없었습니다. BeagleBone을 모든 용도에 사용하는 것은 최적 이었지만 팀은 2 일 만에 코드를 다시 작성할 수 없었습니다 (아무도 Java를 알지 못했습니다). 필자는 Java 만 알고 있었기 때문에이 프로젝트의 초기 계획은 C++을 배우고 Java로 코드를 다시 작성하는 것이 었습니다.

최근에 나는 "크로스 컴파일러"라는 용어를 사용하여, 내가 이해 한 것으로부터, 한 언어로 작성된 프로그램을 다른 언어를 사용하는 플랫폼에서 실행할 수 있도록했습니다. 크로스 컴파일러가 Arduino에서 코드를 가져 와서 BeagleBone을 "변환"할 수 있습니까? 코드가 언어에서 언어로 변환하기에는 너무 복잡해 보입니다. 죄송합니다. "noobish"라고 말하면 저는 하나의 Java 클래스를 사용하는 기계 엔지니어입니다.

+1

귀하의 질문은 코드에 문제가 없으며 다른 포럼에서 검색해야하는 일반적인 질문으로 간주됩니다. 내가 검색하고 시도한 것을 우리에게 보여줄 것을 제안합니다. – Ibo

답변

1

BeagleBone의 Arduino에서 C/C++ 코드를 컴파일하는 것이 가능할 수도 있지만 같은 방식으로 작동하지는 않습니다. I/O 포트는 동일한 방식으로 처리되지 않으며 다른 많은 문제가있을 수 있습니다. Arduino에서 프로그램은 거의 유일하게 실행됩니다. 비글 본 (Beaglebone)에는 완전한 유닉스 운영체제가 실행 중이며 코드는 많은 프로세스 중 하나입니다.

Java를 알고 있으면 C/C++ 코드를 읽기가 너무 어렵지 않아야합니다. 포트를 읽고 내가 BeagleBone에서 서보가 될 것이라고 추측 할 수있는 것은 확실히 가능합니다. Auduino 방패가 있어도 문제가 될 수 있습니다. 그들은 SPI 나 I2C에 대해 이야기 할 수도 있지만 대신 낮은 레벨의 신호를 사용할 수도 있습니다. 단지 PWM 신호 일 수도 있습니다.

이것은 사소한 프로젝트는 아니지만 제 생각은 당신이 올바른 방향으로 가고 있다는 것입니다. 한 번에 하나의 하위 시스템을 가져 와서 BeagleBone 코드를 다시 작성합니다. 이 같은 cape steppers 또는 servos 드라이브 수 있습니다. 그러나 이것은 또 다른 문제를 야기합니다 - library은 파이썬에 있습니다 - 아직 더 많은 이식이 필요합니다.

크로스 컴파일은 도움이되지 않습니다. 코드는 이론적으로는 이식 가능하지만 실제로는 아닙니다. 재 작성이 필요합니다.

+0

감사합니다! 나는 그 문제가있을 것으로 기대했다. 나는 하드웨어 확장 방패에 익숙하지 않다. 어떤 방패가 문제를 일으키는가? – JRu

+0

특정 Arduino 방패에 의존하는 경우 BeagleBone의 곶처럼 사용할 수 없습니다. steppers/servos/PWM 및 직렬 I/O와 같은 "표준"작업을 수행한다면 Arduino와 BeagleBone 사이에서 방패/케이프에 대해 이야기하는 것이 좋습니다. – stdunbar

관련 문제