Category Archives: Blog

My Blogs

[rasp.] MPU-6050 가속도, 자이로 센서 설정

I2C 가 설정 되었다면! 아주 간단하게 센서로 부터 가속도 정보와 자이로 정보를 얻을 수 있다.

물론, 디테일한 설정은 알아서

 

#!/usr/bin/python

 

import smbus

import time

 

 

bus = smbus.SMBus(1)

 

DEV_ADDR = 0x68

 

# Reset

PWR_MGNT_1 = bus.read_byte_data(DEV_ADDR,0x6B)

bus.write_byte_data(DEV_ADDR,0x6B,0x88)

 

time.sleep(.5)

 

#sleep out

bus.write_byte_data(DEV_ADDR,0x6B,0x08)

 

while 1 :

# Accel Data Read

        acc_x_axis_m = bus.read_byte_data(DEV_ADDR,0x3B)

        acc_x_axis_l = bus.read_byte_data(DEV_ADDR,0x3C)

        acc_x_asix = (acc_x_axis_m << 8) + acc_x_axis_l

 

        acc_y_axis_m = bus.read_byte_data(DEV_ADDR,0x3D)

        acc_y_axis_l = bus.read_byte_data(DEV_ADDR,0x3E)

        acc_y_asix = (acc_y_axis_m << 8) + acc_y_axis_l

 

        acc_z_axis_m = bus.read_byte_data(DEV_ADDR,0x3F)

        acc_z_axis_l = bus.read_byte_data(DEV_ADDR,0x40)

        acc_z_asix = (acc_z_axis_m << 8) + acc_z_axis_l

 

# Gyro Data Read

        gyro_x_axis_m = bus.read_byte_data(DEV_ADDR,0x43)

        gyro_x_axis_l = bus.read_byte_data(DEV_ADDR,0x44)

        gyro_x_asix = (gyro_x_axis_m << 8) + gyro_x_axis_l

 

        gyro_y_axis_m = bus.read_byte_data(DEV_ADDR,0x45)

        gyro_y_axis_l = bus.read_byte_data(DEV_ADDR,0x46)

        gyro_y_asix = (gyro_y_axis_m << 8) + gyro_y_axis_l

 

        gyro_z_axis_m = bus.read_byte_data(DEV_ADDR,0x47)

        gyro_z_axis_l = bus.read_byte_data(DEV_ADDR,0x48)

        gyro_z_asix = (gyro_z_axis_m << 8) + gyro_z_axis_l

 

        print "ACC : %6d %6d %6d"% (acc_x_asix, acc_y_asix, acc_z_asix), "Gyro : %6d %6d %6d "% (gyro_x_asix, gyro_y_asix,gyro_z_asix)

 

        time.sleep(.05)

 

 

[rasp.] i2c 설정

이미 많이 다른데서 설명 되어 있지만.. 

먼저 블랙리스트에서 i2c 설정을 제거한다. 

sudo vi /etc/modprobe.d/raspi-blacklist.conf 파일에서 아래와 같이 i2c 부분을 주석 처리

sudo vi /etc/module 파일에 아래와 같이 i2c-dev 를 추가

 

sudo apt-get install i2c-tools libi2c-dev python-smbus  를 사용해 필요한 도구를 install 한다.

그리고, 확인해 보면 된다.

 

sudo i2cdetect -y 1 를 실행하면 아래 같은 화면으로 연결되어 있는 device가 표시된다.

 

나에겐 3개의 device가 연결되어 있으며, 각각의 device ID를 알 수 있다.

 

 

[rasp.] Mac OS X 에서 라즈비안 설치

1. raspberrypi.org 에서 라즈비안을 다운 받는다. (xxx.img)

2. uSD 카드를 리더기에 꽂는다.

3. df -h 를 이용 uSD 카드의 mount 위치를 확인한다. (나의 경우에는 /dev/disk2)

4. uSD 카드를 unmount 한다. (주의 : eject 가 아님)

   sudo diskutil unmount /dev/disk2

5. sudo dd bs=1m if=img_path  /dev/disk2 명령어로 설치

6. 나의 경우 약 300초 정도 후에 보면 완료

7. uSD를 eject 하고, Raspberry pi 꽂아 확인하면 끝~

[rasp.] 무선 랜 sleep or suspend 모드 disable

라즈베리파이 무선랜 설정을 잡고 오랜? 기간 대기 하고 있으면 suspend 모드 혹은 sleep 모드로 들어가는 듯하다.

이 부분을 disable 할 수 있다.

 

vi /sys/module/8192cu/parameters/rtw_power_mgnt

요 파일을 보면, 파일 제일 상단에 "0", "1", "2" 의 숫자가 표시 된다.

 

블로그를 뒤져보니 의미가 아래와 같다고 한다.

A value of 0 means disabled, 1 means min. power management, 2 means max. power management.

 

이 파일을 직접 수정을 할 수는 없다.

 

아래의 위치에 다음과 같은 파일을 만들어서

sudo vi /etc/modprobe.d/8192cu.conf

 

요렇게 적어 주도록하자

options 8192cu rtw_power_mgnt=0

 

그리고 다시 재부팅

sudo restart

 

다시 들어가서 

vi /sys/module/8192cu/parameters/rtw_power_mgnt

파일을 확인해 보면  "0"으로 설정 되어 있는 것을 확인 할 수 있다.

 

끝~

[rasp.] 무선랜 수동 설정

내가 사용한 무선 랜 제품은 

eunicorn 이라는 회사의 mini-150N 이라는 제품. 작다..;;

 

라즈베리파이에 라즈비안을 올리고 바로 실행. (난 GUI를 사용하지 않을 예정이므로, 그냥 콘솔 모드만 설명한다.)

lsusb

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 

Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

 

USB 연결은 요렇게 잡힌 것이 보인다.

 

이렇게 되어 있다면 일은 다 끝난 것. ㅎㅎ

 

sudo vi /etc/network/interfaces

 

auto lo

 

iface lo inet loopback

iface eth0 inet dhcp

 

allow-hotplug wlan0

iface wlan0 inet manual

wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp

 
요렇게 바꿔주고 
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
요 파일에 아래 부분을 추가
 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

 

network={

        ssid="your ssid"

        psk="your password"

}

 
 
마지막으로 네트워크를 재시작

sudo /etc/init.d/networking restart

 

하거나

sudo restart 

로 재시작 하면 끝~