본문 바로가기

Small Devices/Raspberry Pi5

[벨런싱 로봇] PID 제어기 적용 벨런싱 로봇이 서 있는 상태를 유지하기 위해서는 MPU6050 에서 측정되는 값이 어떤 목표치에 근접하도록 모터를 움직여 줘야 한다. 즉 다음 그림에서 목표 각도와 현재 각도의 차이인 error를 해소하기 위해서 보정 움직임이 필요한 것이다. 일반적으로 이런 목표하는 센서 값으로 움직임을 제어하기 위한 방법으로 PID 제어기를 사용한다. PID 제어기에 대한 내용은 이전 포스팅 "PID제어에 대하여" 및 "PID제어기 구현하기" 를 참고 바란다. 앞 포스팅에서 MPU6050에서 Yaw/Pitch/Roll의 각도를 가져오는 부분에 대해서 설명했는데, 이번 포스팅에서는 PID 제어기를 붙여보겠다. Balanced 상태를 Pitch 가 0인 경우로 생각하고 0을 맞추기 위해서 보정 움직임을 계산하는 코드를 설.. 2018. 7. 1.
[벨런싱 로봇] Raspberry Pi 3에서 MPU6050 DMP 모드 이용하여 YPR 각도 측정 MPU6050 은 자이로센서와 가속도 센서가 결합된 센서이다. 이 센서에는 DMP(Digital Motion Processing) 모드가 있어서 상보필터를 이용해서 계산하지 않아도 Yaw/Pitch/Roll 각도를 구할 수 있다. Raspberry Pi에서 MPU6050의 DMP 모드는 C++ 코드로 이용 가능하다. 다음은 MPU6050 센서에서 값을 가져오는 코드가 있는 github 이다. https://github.com/richardghirst/PiBits 이 코드는 I2Cdev 라이브러리가 포함되어 있는데, Raspberry Pi 3에서 이용하기 위해서는 I2cDev.cpp에서 /dev/i2c-0 를 /dev/i2c-1 로 바꿔주어야 한다. git clone https://github.com/ri.. 2018. 6. 30.
ubuntu 16.04 에서 Raspberry Pi Cross Compile 하기 (node.js 사례) Raspberry Pi 자체에서 빌드 툴을 설치해서 소스를 빌드할 수 있으나, 많은 시간이(사실 어마어마한) 소요된다. 라즈베리파이에서 DB등, 자신이 원하는 프로그램을 빌드해서 설치하려면 크로스 컴파일 환경에서 컴파일하고 라즈베리파이로 전송해서 사용하는게 정신 건강에 좋을 수 있다. 이번 포스팅에서는 유분투 16.04에서 라즈베리파이 프로그램을 빌드하기 위한 방법을 정리해 본다. 1. Cross-Compile 환경 설정다음의 사이트에서 크로스컴파일을 위한 툴을 다운로드 한다. https://github.com/raspberrypi/tools 명령어: git clone https://github.com/raspberrypi/tools 64 비트 우분투에서는 해당 툴이 실행되지 않는다. 32비트 지원을 위.. 2018. 3. 10.
[Raspberry Pi] I/O Extension Shield 를 만들어 보자 Raspberry Pi에는 다음에서와 같이 GPIO Pin이 있다.이 Pin을 이용하기 위해서는 커넥터를 만들거나 Shield 형태로 만들어야 이용 가능하다. GPIO의 PIN Layout은 다음과 같다.이 핀들을 연결하여 다음과 같은 Shield 형태의 확장 보드를 만들었다.이 보드의 Pin Layout은 다음과 같다.이 Shield를 Raspberry Pi에 연결한 모습은 다음과 같다. 2013. 1. 21.
Mac OSX 에서 Raspberry Pi SD Card에 이미지 만들기 http://www.raspberrypi.org/downloads 에서 이미지를 다운로드 받는다. console을 열고 다음처럼 입력한다. 2013. 1. 20.