전자 부품(스테퍼 모터 등)과 인터페이스하는 데 적합한 프로그래밍 언어(또는 C++용 라이브러리 세트)는 무엇입니까?
-
22-08-2019 - |
문제
나는 전자공학 전문가가 아니기 때문에 나에게 필요한 것이 무엇인지 정확하게 설명하지 못할 수도 있습니다.친구가 나에게 계속 묻는 질문이다.
내 친구가 찾고 있는 것은 다음과 같은 작업을 수행할 수 있는 프로그래밍 언어입니다.
- 하드웨어와의 인터페이스(직렬 및 USB 포트를 통해).
- 다중 스레드 코드를 작성합니다.
- UI를 매우 빠르게 구성하세요.
- 그의 코드를 가능한 한 쉽게 Linux 및 OS X로 포팅합니다. 나 원하다).
그는 대학생들에게 매우 기본적인 로봇 공학을 가르치는 지역 그룹을 위한 도구를 만들고 있습니다.지금 그는 C++를 사용하고 있지만 C++로 UI 코드를 작성하는 것은 그다지 재미있는 작업이 아닙니다.그는 또한 (1)에 일부 Windows 관련 라이브러리를 사용하고 있는데, 이는 내가 그의 코드를 시험해 볼 수도 없고 버그 수정에 도움을 줄 수도 없다는 뜻입니다(저는 Mac을 사용합니다).
편집하다:Python/Ruby용 라이브러리를 환영합니다.
다른 팁
Java는 여기에서 좋은 선택 일 수 있습니다. 저수준 스레딩 및 통신 API에 사용할 수있는 라이브러리가 있으며 제어 루프를 위해 충분히 성능을 발휘해야합니다. 직렬 포트 커뮤니케이션 라이브러리가 있다는 것을 알고 있으며 일부 오픈 소스 USB 라이브러리가 있다고 생각합니다. UI의 경우 Java 2D Graphics API를 사용할 수 있거나보다 고급 UI의 경우 약간 무시 된 Java3D 또는 최신 Jogl 라이브러리를 시도 할 수 있습니다. 스윙에는 결함이 있지만 실제로 기본 형태의 UI를 만드는 데 사용하기가 매우 쉽습니다.
쉽고 지원되는 하드웨어를 쉽게 원한다면 최선의 방법은 LabView라고 생각합니다. 모든 그래픽 프로그래밍 (드래그 블록, 연결)이며 많은 USB 장치 (예 : DIO)에는 LabView 지원이 있습니다. 직렬 지원은 내장되어 있습니다. UIS를 쉽게 만들 수 있습니다 (주로 GUI 제어를위한 것입니다).
에이스(http://www.cs.wustl.edu/~schmidt/ACE.html)는 플랫폼 독립적인 C++ 라이브러리(UI 없음)이며, QT(http://www.qtsoftware.com/products/)는 C++용 크로스 플랫폼 UI 라이브러리입니다.안타깝게도 하드웨어에 액세스하는 것은 여전히 플랫폼에 따라 다릅니다.)