ตั้งค่า TFT 2.8″ LCD 240×320 touch screen (HY28B) บน RaspberryPi

ตั้งค่า TFT 2.8″ LCD 240×320 touch screen (HY28B) บน  Raspberry Pi

hy28b lcd hy28b touch screen lcd

การต่อสาย

HY28B LCD      GPIO name      RPi Pin
3V3_in————–3.3V—————-1
GND—————-GND—————-6
LCD_SCK———-SCLK—————23
LCD_SDO———MISO—————21
LCD_SDI———–MOSI—————19
LCD_CS————CE0—————–24
LCD_RST———-GPIO25————22
TP_SCK————SCLK—————-23
TP_SDO———–MISO—————-21
TP_SDI————-MOSI—————19
TP_CS————–CE1——————26
TP_IRQ————GPIO17————-11
BL_CTRL———-GPIO18————-12

ขั้นตอน

1. Expand root filesystem

sudo raspi-config

2. Enable SPI

sudo nano /etc/modprobe.d/raspi-blacklist.conf

ใส่  # หน้าบรรทัด #blacklist spi-bcm2708

3. Update Rpi

sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update

4. Backup /lib/modules

sudo mv /lib/modules/$(uname -r) /lib/modules/$(uname -r).bak

5. install update

sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update

6. reboot

sudo shutdown -r now

7. modeprobe ขั้นตอนนี้จอจะเปลี่ยนจะสว่างเป็นมืด เป็นอันใช้ได้

sudo modprobe fbtft dma
sudo modprobe fbtft_device name=hy28b rotate=90

8. ให้ module ทำงานตลอดหังจาก boot

sudo nano /etc/modules

แล้วเพิ่ม 3 บรรทัดนี้ลงไป

fbtft dma
fbtft_device name=hy28b rotate=90
ads7846_device pressure_max=255 y_min=190 y_max=3850 gpio_pendown=17 x_max=3850 x_min=230 x_plate_ohms=100 swap_xy=1 verbose=3

9. แก้ไข cmdline.txt เพื่อให้ จอนี้เป็น console ด้วย

sudo nano /boot/cmdline.txt

เพิ่ม fbcon=map:10 fbcon=rotate:4 fbcon=font:VGA8x8 ต่อท้ายบรรทัด

10. reboot ถ้าหน้าจอมีตัวหนังสือ กำลังแสดงสถานะต่างๆ ขณะ boot ขึ้นมาเป็นใช้ได้

11. ปรับเทียบหน้าจอ touch screen

sudo apt-get update
sudo apt-get install libts-bin evtest xinput python-dev python-pip -y
sudo pip install evdev

จากนั้นรันคำสั่งด้านล่าง ที่หน้าจอ lcd จะมีให้ touch หน้าจอ เพื่อปรับตั้งค่า

sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate

ถ้ามีอุปกรณ์อื่นๆ ต่ออยู่ /dev/input/event0 อาจจะเปลี่ยนเป็น /dev/input/event1 หรือ /dev/input/event2

Code python สำหรับ GY-521 (MPU-6050)

หายาก เจอแล้วขอเอามาแปะไว้ก่อน กันลืม Code python สำหรับ GY-521 (MPU-6050)

===== code for GY-521 (MPU-6050)======

#!/usr/bin/python

import smbus
import math

# Power management registers
power_mgmt_1 = 0x6b
power_mgmt_2 = 0x6c

def read_byte(adr):
return bus.read_byte_data(address, adr)

def read_word(adr):
high = bus.read_byte_data(address, adr)
low = bus.read_byte_data(address, adr+1)
val = (high << 8) + low
return val

def read_word_2c(adr):
val = read_word(adr)
if (val >= 0x8000):
return -((65535 – val) + 1)
else:
return val

def dist(a,b):
return math.sqrt((a*a)+(b*b))

def get_y_rotation(x,y,z):
radians = math.atan2(x, dist(y,z))
return -math.degrees(radians)

def get_x_rotation(x,y,z):
radians = math.atan2(y, dist(x,z))
return math.degrees(radians)

bus = smbus.SMBus(1)
address = 0x68

# Now wake the 6050 up as it starts in sleep mode
bus.write_byte_data(address, power_mgmt_1, 0)

print “gyro data”
print “———“

gyro_xout = read_word_2c(0x43)
gyro_yout = read_word_2c(0x45)
gyro_zout = read_word_2c(0x47)

print “gyro_xout: “, gyro_xout, ” scaled: “, (gyro_xout / 131)
print “gyro_yout: “, gyro_yout, ” scaled: “, (gyro_yout / 131)
print “gyro_zout: “, gyro_zout, ” scaled: “, (gyro_zout / 131)

print
print “accelerometer data”
print “——————“

accel_xout = read_word_2c(0x3b)
accel_yout = read_word_2c(0x3d)
accel_zout = read_word_2c(0x3f)

accel_xout_scaled = accel_xout / 16384.0
accel_yout_scaled = accel_yout / 16384.0
accel_zout_scaled = accel_zout / 16384.0

print “accel_xout: “, accel_xout, ” scaled: “, accel_xout_scaled
print “accel_yout: “, accel_yout, ” scaled: “, accel_yout_scaled
print “accel_zout: “, accel_zout, ” scaled: “, accel_zout_scaled

print “x rotation: ” , get_x_rotation(accel_xout_scaled, accel_yout_scaled, accel_zout_scaled)
print “y rotation: ” , get_y_rotation(accel_xout_scaled, accel_yout_scaled, accel_zout_scaled)

=======================

รายละเอียดเพิ่มเติม : http://blog.bitify.co.uk/2013/11/reading-data-from-mpu-6050-on-raspberry.html

MPU-6050 data sheet : http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera