Mac에서 Lego Mindstorms NXT 환경 구축 in2018
목표
대학 강의에는 NXT를 이용한 강의가 있지만 강의가 제공하는 자료가 낡아 Mac의 사람들이 환경을 구축할 수 없는 상황이다.
따라서 비망록으로 자신의 환경을 구축하는 방법을 보존한다.
오류 처리에 관하여 제때에 추가하다.
환경
단계
1. 와인 설치
Windows 실행 파일입니다.
brew를 사용하기 위해서는 가져오지 않은 사람이 직접 조사해서 가져오기를 바랍니다.
다음 명령을 실행하여 wine을 가져옵니다.$ brew install wine
실행 후 /usr/local/bin/wineconsole
파일의 존재를 확인합니다.
2. YAGARTO 설치
컴파일 도구인 YAGARTO를 다운로드합니다.
그 전에 NXT의 사용 환경을 요약하는 디렉토리를 만듭니다.
필자는 메인 디렉터리 바로 아래에 NXT
라는 디렉터리를 만들었다.
여기 웹 사이트yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_intelmac_20111119.dmg
다운로드
다운로드 후 dmgyagarto-4.6.2
을 실행하여 방금 만든 NXT로 옮겨 실행합니다.
그러면 yagarto-4.6.2
이라는 디렉토리가 나타납니다.
디렉토리의 이름을 yagarto
로 변경합니다.
3.nxtoSEK 다운로드
여기의 사이트에서 다운로드합니다.
필자는 다운로드했다nxtOSEK_v218.zip
.
다운로드가 끝나면 2 제작NXT
의 바로 아래에 배치됩니다.
이때 NXT
은 다음과 같습니다.NXT
├── nxtOSEK
├── yagarto
└── yagarto-4.6.2.app
그러나 현재 상황은 필요한 서류가 부족하다.
따라서 여기에서 다운로드osek_os-1.1.lzh
.
이후 해동된 toppers_osek/sg/sg.exe
을 NXT/nxtOSEK/toppers_osek/sg
로 복사합니다.
이때 NXT/nxtOSEK/toppers_osek/sg
은 다음과 같습니다.NXT/nxtOSEK/toppers_osek/sg
├── impl_oil
├── lego_nxt.sgt
└── sg.exe
4. NeXTTool 설치
NXT에 프로그램을 보낼 수 있습니다.NeXT Tools
이 아니라 NeXTTool
이니 틀리지 마세요.Download for Mac OSX (universal binary)
어딘가에서 다운로드.
다운로드 후 2 제작NXT
의 바로 아래에 배치됩니다.
이때 NXT
은 다음과 같습니다.NXT
├── nexttool
├── nxtOSEK
├── yagarto
└── yagarto-4.6.2.app
5.NXT Fantom Driver 설치
컴퓨터에서 NXT를 식별할 수 있습니다.
여기의 사이트에서 다운로드합니다.
책장 밑에 있으니 빠뜨리지 마세요.
다운로드 후 해동을 실행합니다MAC legodriver.pkg
.
6.make의 준비
현재 상태를 유지하면 Cygwin을 사용하기 때문에 Mac도 문제가 없도록 변경합니다.
다음 네 곳을 찾아 변경을 진행하며 각각의 설정에 따라 변경을 원합니다.
NXT/nxtOSEK/ecrobot/tool_gcc.mak9行目
- GNUARM_ROOT = /cygdrive/C/cygwin/GNUARM
+ GNUARM_ROOT = /Users/vivid344/NXT/yagarto # YAGARTOのパス
14行目
- NEXTTOOL_ROOT = /cygdrive/C/cygwin/nexttool
+ NEXTTOOL_ROOT = /Users/vivid344/NXT # nexttoolがあるパス
21行目
- TARGET_PREFIX :=arm-elf
+ TARGET_PREFIX :=arm-none-eabi
38行目
- NEXTTOOL = NeXTTool.exe
+ NEXTTOOL = nexttool
또한 Wine와cygpath에서 현재 상태라면 오류가 발생하기 때문에 변경합니다.
C로 개발할 때 다음 2곳의 수정을 진행한다.
NXT/nxtOSEK/ecrobot/ecrobot.mak312行目
- WINECONSOLE := /Applications/Wine.app/Contents/MacOS/startwine wineconsole
+ WINECONSOLE := /usr/local/bin/wineconsole
335〜336行目
- $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg $(shell cygpath -m -w ${TOPPERS_OSEK_OIL_SOURCE}) \
- -os=ECC2 -I$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/impl_oil -template=$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/lego_nxt.sgt
+ $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg.exe $(TOPPERS_OSEK_OIL_SOURCE) -os=ECC2 -I${TOPPERS_OSEK_ROOT_SG}/sg/impl_oil -template=${TOPPERS_OSEK_ROOT_SG}/sg/lego_nxt.sgt
C++로 개발할 때 아래 2곳의 수정을 진행한다.
NXT/nxtOSEK/ecrobot/ecrobot++.mak316行目
- WINECONSOLE := /Applications/Wine.app/Contents/MacOS/startwine wineconsole
+ WINECONSOLE := /usr/local/bin/wineconsole
339〜340行目
- $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg $(shell cygpath -m -w ${TOPPERS_OSEK_OIL_SOURCE}) \
- -os=ECC2 -I$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/impl_oil -template=$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/lego_nxt.sgt
+ $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg.exe $(TOPPERS_OSEK_OIL_SOURCE) -os=ECC2 -I${TOPPERS_OSEK_ROOT_SG}/sg/impl_oil -template=${TOPPERS_OSEK_ROOT_SG}/sg/lego_nxt.sgt
이어서 각 함수를 호출하는 데 필요한 파일을 생성합니다.NXT/nxtOSEK/ecrobot/c
에서 다음 명령을 실행합니다.$ make all
$ make release
NXT/nxtOSEK/ecrobot/c++
,NXT/nxtOSEK/ecrobot/bios
,NXT/nxtOSEK/ecrobot/nxtway_gs_balancer/
에서도 마찬가지다.
7. 실제 생성
C에서 진행하는 사람NXT/nxtOSEK/samples_c/helloworld
C++로 진행하는 사람NXT/nxtOSEK/samples_c++/cpp/Helloworld
에서 다음 명령을 실행합니다.$ make all
실행 후 생성.rxe
파일을 확인합니다.
생성되지 않은 경우 6에서 변경된 부분이 잘못될 수 있습니다.
8. 로봇으로 실행
NXT와 PC를 USB로 연결하여 NXT의 전원을 켭니다.
다음 명령을 수행합니다.$ ./rxeflash.sh
이후 로봇 측에서 실행해 이 파일이 있는지 확인한다.
여기서 마치겠습니다.
총결산
이상은 필자의 환경에서 구축할 수 있다.
앞으로 새로운 개발을 진행할 때 NXT/nxtOSEK/
아래에서 개발한다.
또한 Makefile의NXTOSEK_ROOT
를 각 환경으로 개작한 후make를 진행한다.
참고 자료
ET 로봇 컴퓨터 개발 환경 구축 for Mac
Reference
이 문제에 관하여(Mac에서 Lego Mindstorms NXT 환경 구축 in2018), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/vivid344/items/2f23f846cd3b135c5a74
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ brew install wine
NXT
├── nxtOSEK
├── yagarto
└── yagarto-4.6.2.app
NXT/nxtOSEK/toppers_osek/sg
├── impl_oil
├── lego_nxt.sgt
└── sg.exe
NXT
├── nexttool
├── nxtOSEK
├── yagarto
└── yagarto-4.6.2.app
9行目
- GNUARM_ROOT = /cygdrive/C/cygwin/GNUARM
+ GNUARM_ROOT = /Users/vivid344/NXT/yagarto # YAGARTOのパス
14行目
- NEXTTOOL_ROOT = /cygdrive/C/cygwin/nexttool
+ NEXTTOOL_ROOT = /Users/vivid344/NXT # nexttoolがあるパス
21行目
- TARGET_PREFIX :=arm-elf
+ TARGET_PREFIX :=arm-none-eabi
38行目
- NEXTTOOL = NeXTTool.exe
+ NEXTTOOL = nexttool
312行目
- WINECONSOLE := /Applications/Wine.app/Contents/MacOS/startwine wineconsole
+ WINECONSOLE := /usr/local/bin/wineconsole
335〜336行目
- $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg $(shell cygpath -m -w ${TOPPERS_OSEK_OIL_SOURCE}) \
- -os=ECC2 -I$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/impl_oil -template=$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/lego_nxt.sgt
+ $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg.exe $(TOPPERS_OSEK_OIL_SOURCE) -os=ECC2 -I${TOPPERS_OSEK_ROOT_SG}/sg/impl_oil -template=${TOPPERS_OSEK_ROOT_SG}/sg/lego_nxt.sgt
316行目
- WINECONSOLE := /Applications/Wine.app/Contents/MacOS/startwine wineconsole
+ WINECONSOLE := /usr/local/bin/wineconsole
339〜340行目
- $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg $(shell cygpath -m -w ${TOPPERS_OSEK_OIL_SOURCE}) \
- -os=ECC2 -I$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/impl_oil -template=$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/lego_nxt.sgt
+ $(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg.exe $(TOPPERS_OSEK_OIL_SOURCE) -os=ECC2 -I${TOPPERS_OSEK_ROOT_SG}/sg/impl_oil -template=${TOPPERS_OSEK_ROOT_SG}/sg/lego_nxt.sgt
$ make all
$ make release
$ make all
$ ./rxeflash.sh
이상은 필자의 환경에서 구축할 수 있다.
앞으로 새로운 개발을 진행할 때
NXT/nxtOSEK/
아래에서 개발한다.또한 Makefile의
NXTOSEK_ROOT
를 각 환경으로 개작한 후make를 진행한다.참고 자료
ET 로봇 컴퓨터 개발 환경 구축 for Mac
Reference
이 문제에 관하여(Mac에서 Lego Mindstorms NXT 환경 구축 in2018), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/vivid344/items/2f23f846cd3b135c5a74
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Mac에서 Lego Mindstorms NXT 환경 구축 in2018), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vivid344/items/2f23f846cd3b135c5a74텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)