라즈베리파이2018. 11. 29. 11:14

준비물

기본

 라즈베리파이, 컨트롤러용 스마트폰(안드로이드), 드론본체, 배터리, 아두이노


요구사항별 준비물 확인

1. 드론은 컨트롤러(스마트폰)와 직접 통신하지 않음 

 -> 컨트롤러에서 동작명령을 송신하면 서버에 전송

 -> 서로 서버와 연결되며 드론은 서버에서 동작명령을 수신

2. 컨트롤러에서 서버 접속시 컨트롤러의 위치정보를 서버에 업로드

4. 컨트롤러에서 특정 위치 지정시 자율비행

5. [귀환]명령을 통해 현재 위치에 상관 없이 컨트롤러의 위치로 귀환

10. 착륙시 위치정보 서버 전송

 서버:데이터베이스(mysql), 사진/동영상 저장 및 스트리밍

 드론 통신용 AP


2. 드론은 자체 GPS를 통해 자신의 위치를 파악함

 GPS센서:아두이노용 센서 * 1개


6. 플라이트 컨트롤러는 별도 부착하지 않으며 이 처리는 라즈베리파이에서 담당

 6축센서:아두이노 센서 * 1개


7. 사진촬영/동영상촬영 -> 서버 업로드

 라즈베리파이 카메라 * 1개


8. 비행시 장애물 회피기능

 초음파센서(거리측정):아두이노용 * 4개


9. 비행시 고도는 2m까지 제한

 초음파센서(거리측정):아두이노용 * 1개


Posted by 캡슐리어
라즈베리파이2018. 11. 29. 10:55

요구사항분석


기본 요구사항

1. 드론은 컨트롤러(스마트폰)와 직접 통신하지 않음 

 -> 컨트롤러에서 동작명령을 송신하면 서버에 전송

 -> 서로 서버와 연결되며 드론은 서버에서 동작명령을 수신

2. 드론은 자체 GPS를 통해 자신의 위치를 파악함

3. 컨트롤러에서 서버 접속시 컨트롤러의 위치정보를 서버에 업로드

4. 컨트롤러에서 특정 위치 지정시 자율비행

5. [귀환]명령을 통해 현재 위치에 상관 없이 컨트롤러의 위치로 귀환

6. 플라이트 컨트롤러는 별도 부착하지 않으며 이 처리는 라즈베리파이에서 담당

7. 사진촬영/동영상촬영 -> 서버 업로드

8. 비행시 장애물 회피기능

9. 비행시 고도는 2m까지 제한

10. 착륙시 위치정보 서버 전송


추가 요구사항

1. 지도데이터 연동

2. 공간 매핑기능

3. 배터리 상황에 따른 자동 착륙

Posted by 캡슐리어
라즈베리파이2015. 1. 29. 11:29

PS3 컨트롤러를 유선(USB)로 연결했을 경우 MAME에서 키 입력이 불가능할 때 조치방법




1. minimal.cpp 수정


 $ sudo nano /opt/retropie/emulators/mame4all-pi/src/rpi/minimal.cpp


위 파일을 열어 다음 문장을 주석처리 168라인부터 174라인이 디폴트이지만 환경에 따라 다를 수 있으니 확인하고 진행한다.


//   if (SDL_JoystickNumAxes(myjoy[i]) > 6)

//   {

//      SDL_JoystickClose(myjoy[i]);

//      myjoy[i]=0;

//      logerror("Error detected invalid joystick/keyboard\n");

//      break;

//  } 


저장 및 exit




2. 리컴파일링 


 $ cd /opt/retropie/emulators/mame4all-pi/

 $ make


레트로파이 2.2의 경우 이 과정만으로 컴파일이 문제없이 잘 이루어진다. 하지만 2.2이미지는 구할수가 없었고 2.3 이미지를 활용하니 다음과 같은 오류가 발생 했다.


/usr/bin/ld: obj_mame_rpi/rpi/sound.o: undefined reference to symbol 'snd_pcm_hw_params_malloc@@ALSA_0.9'

//usr/lib/arm-linux-gnueabihf/libasound.so.2: error adding symbols: DSO missing from command line

collect2: ld returned 1 exit status

Makefile:67: recipe for target 'mame' failed

make: *** [mame] Error 1


이경우 다음 사항을 추가 진행한다.


추가 패키지 설치


 $ sudo apt-get install build-essential autoconf ccache gawk gperf mesa-utils zip unzip


Makefile 수정


$  sudo nano /opt/retropie/emulators/mame4all-pi/Makefile


/* 아래 문장을 */

~

~

~

LIBS = -lm -lpthread -lSDL -L$(SDKSTAGE)/opt/vc/lib -lbcm_host -lGLESv2 -lEGL -lglib-2.0

~

~

~


/* 이렇게 수정한다 */

~

~

~

LIBS = -lm -lpthread -lSDL -L$(SDKSTAGE)/opt/vc/lib -lbcm_host -lGLESv2 -lEGL -lglib-2.0 -lasound 

LIBS+=-lz -lrt -lm

~

~

~


이후 다시 make를 진행하면 오류없이 진행된다.




3. 다음 사항을 체크한다.

 i) /opt/retropie/emulators/mame4all-pi/cfg 디렉토리가 있는지 확인한다. 없다면 만든다.

 ii) cfg 디렉토리의 퍼미션을 확인한다. 


$ ls -ld /opt/retropie/emulators/mame4all-pi/cfg

drwxr-xr-x 2 pi pi 4096 Jul 8 14:21 /opt/retropie/emulators/mame4all-pi/cfg


 iii) 만약 위와 퍼미션과 소유자가 다르다면 다음과 같이 수정한다.


 $ sudo chown -R pi:pi /opt/retropie/emulators/mame4all-pi/cfg




4. MAME에서 아무 게임이나 실행한다음 TAB키를 누르면 키설정이 가능하니 이후는 원하는 키 설정으로 변경한다.

'라즈베리파이' 카테고리의 다른 글

자율비행드론 2018.11.29  (0) 2018.11.29
자율비행드론 2018.11.29  (0) 2018.11.29
Posted by 캡슐리어