전자 부품(스테퍼 모터 등)과 인터페이스하는 데 적합한 프로그래밍 언어(또는 C++용 라이브러리 세트)는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/700025

문제

나는 전자공학 전문가가 아니기 때문에 나에게 필요한 것이 무엇인지 정확하게 설명하지 못할 수도 있습니다.친구가 나에게 계속 묻는 질문이다.

내 친구가 찾고 있는 것은 다음과 같은 작업을 수행할 수 있는 프로그래밍 언어입니다.

  1. 하드웨어와의 인터페이스(직렬 및 USB 포트를 통해).
  2. 다중 스레드 코드를 작성합니다.
  3. UI를 매우 빠르게 구성하세요.
  4. 그의 코드를 가능한 한 쉽게 Linux 및 OS X로 포팅합니다. 원하다).

그는 대학생들에게 매우 기본적인 로봇 공학을 가르치는 지역 그룹을 위한 도구를 만들고 있습니다.지금 그는 C++를 사용하고 있지만 C++로 UI 코드를 작성하는 것은 그다지 재미있는 작업이 아닙니다.그는 또한 (1)에 일부 Windows 관련 라이브러리를 사용하고 있는데, 이는 내가 그의 코드를 시험해 볼 수도 없고 버그 수정에 도움을 줄 수도 없다는 뜻입니다(저는 Mac을 사용합니다).

편집하다:Python/Ruby용 라이브러리를 환영합니다.

도움이 되었습니까?

해결책

당신은 다소 보완적인 것을보고 싶을 수도 있습니다 처리 그리고 배선 도구. 처리는 사용자 인터페이스를 구축하기위한 환경이며, 배선은 시조 배선 보드, 더 간단한 사촌과 같은 I/O 보드를 프로그래밍하는 환경입니다. 아르두노, 및 관련 장치. 배선 보드는 일반적으로 직렬 링크를 통해 데스크탑 컴퓨터 또는 직렬 에뮬레이션이있는 USB와 통신합니다.

다른 팁

Java는 여기에서 좋은 선택 일 수 있습니다. 저수준 스레딩 및 통신 API에 사용할 수있는 라이브러리가 있으며 제어 루프를 위해 충분히 성능을 발휘해야합니다. 직렬 포트 커뮤니케이션 라이브러리가 있다는 것을 알고 있으며 일부 오픈 소스 USB 라이브러리가 있다고 생각합니다. UI의 경우 Java 2D Graphics API를 사용할 수 있거나보다 고급 UI의 경우 약간 무시 된 Java3D 또는 최신 Jogl 라이브러리를 시도 할 수 있습니다. 스윙에는 결함이 있지만 실제로 기본 형태의 UI를 만드는 데 사용하기가 매우 쉽습니다.

쉽고 지원되는 하드웨어를 쉽게 원한다면 최선의 방법은 LabView라고 생각합니다. 모든 그래픽 프로그래밍 (드래그 블록, 연결)이며 많은 USB 장치 (예 : DIO)에는 LabView 지원이 있습니다. 직렬 지원은 내장되어 있습니다. UIS를 쉽게 만들 수 있습니다 (주로 GUI 제어를위한 것입니다).

Ruby and Shoes (GUI)는 잘 작동하며 특히 학습 환경 / Multiplatform에 적합합니다.

편집 - 찾기가 어렵습니다) :

http://shoooes.net/

에이스(http://www.cs.wustl.edu/~schmidt/ACE.html)는 플랫폼 독립적인 C++ 라이브러리(UI 없음)이며, QT(http://www.qtsoftware.com/products/)는 C++용 크로스 플랫폼 UI 라이브러리입니다.안타깝게도 하드웨어에 액세스하는 것은 여전히 ​​플랫폼에 따라 다릅니다.)

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