2017년 11월 26일 일요일

36. 3.5인치 LCD 480*320 설치

Step 0. 개요.

라즈베리파이를 사용할 때 보통 컴퓨터로 모니터를 사용하게 됩니다. 라즈베리파이 크기와 같은  3.5인치 모니터를 사용하면 휴대하면서 사용할 수 있을 것 같습니다. 게임기나 MP3사용하는데 편리할 수 있습니다. 그런데 컴퓨터 모니터 해상도 1920*1080로 3.5인치 모니터로 보면 글씨가 너무 작아 불편합니다. 3.5인치 모니터는 해상도를 480*320으로 변경해서 사용해야 시각적으로 편리합니다.해외직구로 구입해서 몇번 해상도 변경하려했으나  일주일 정도 시도하다 실패하여 포기하려 했습니다.

위 사진에서 라즈베리파이 부팅하면 글씨가 너무 작아 불편합니다. 물론 컴퓨터모니터로 보면 잘 보입니다.

Step. 1 모델명 확인

 3.5인치 모니터는 여러 종류가 있습니다. 여기서는 KeDei v1.1입니다. 인터넷에는 version에 따라 설치하지 않으면 재부팅하자마지 먹통이 되고 되돌아가지 않아 포멧하고 OS를 다시 설치하게 됩니다.따라서 3.5인치 모니터 뒷면 오른쪽 하단을 확인해야합니다. 인터넷에서는 버전이 높은 v5, v6에 대한 내용은 많이 나와있으나 따라하면 부팅하면 먹통이 됩니다.


Step2. 라즈베리파이 부팅

 부팅할 때 라즈베리파이에 컴퓨터모니터를 사용하여 부팅합니다.
 인터넷에 접속하여 
먼저 다운받을 사이트로 이동합니다.

위 그림처럼 LCD_show_35 파일을 다운받습니다.
그러면 라즈베리파이가 Downloads에 있는 해당파일을 루트에 복사해 놓습니다.

- 다음 다운받은 압축파일을 풀어 놓습니다. 명령어를 복사해서 붙여놓고 실행하면 좋겠습니다.

tar -xzvf LCD_show_35.hdmi.tar.gz

- 해당 폴더로 이동합니다.

cd LCD_show_35hdmi

- 업데이트 합니다. 
 sudo apt-get update

- 관리자 권한으로 설치합니다. 해당 폴더에는 여러 해상도 파일이 있습니다.
sudo ./LCD35_480*320

- 잠시후 자동 재부팅돼면서 다음과 같이 정상적으로 해상도가 480*320상에서 시원하게 보입니다. 이렇게 보이면 성공입니다.


Step 3. 후기

위 설치자료는 알리익스프레스 사이트에 설명이 된 것을 따라해 보았습니다. 유투브나 기타 문서자료를 따라했지만 모두 실패했습니다.

라벨:

2017년 11월 5일 일요일

35. 라즈베리파이에서 LCD 사용하기

Step0. 개요

라즈베리 파이에서 LCD를 사용하는 것을 구현해 보겠습니다. 아두이노로 LCD를 이용하여 문자 출력이나 시계를 구현해 보았는데 라즈베리파이로 LCD 사용해 보겠습니다.
이것을 이용하여 MP3, audio를 만들어 play, stop,pause등을 lcd에 표현할 수 있을 것입니다. 실제로 해보니 결과는 간단하지만 여러 과정에서 세심하게 진행해야 합니다. 실수로 잘못연결하여 LCD모니터가 쇼트로 망가져 다시 시작하게 되었습니다.

Step 1. 준비물

 라즈베리파이(여기서는 raspberry 3 model b v1.2), lcd(1602A), 가변저항, 저항(100Ω), 점퍼선, 브레드보드이 필요합니다.

Step 2. 사전 준비사항

라즈베리파이에 있는 GPIO핀을 이용하려면 먼저 wiringPi를 설치해야 합니다. 설치 방법은 제 블로그 34번 글을 참고하시기 바랍니다.

Step 3. 조립하기

 아래 사진을 참고하시기 바랍니다.


no Lcd wiringPi 물리적 위치
1 VSS -

2 VDD +

3 VO 가변저항 가운데

4 RS CE1 26
5 RW -

6 E CE0 24
7 D0



8 D1



9 D2



10 D3



11 D4 6 22
12 D5 5 18
13 D6 4 16
14 D7 1 12
15 A 저항과 +

16 K -


위 표를 보는 방법은 가장 왼쪽 번호는 LCD 의 번호이고 가장 오른쪽은 라즈베리파이 GPIO핀의 번호를 표시한 것입니다. 라즈베리 파이 핀은 조밀하게 총 40개핀으로 양쪽 20개씩 배열되어있습니다.오른쪽 13번째 핀은 26번을 뜻합니다.
LCD 핀 가장 왼쪽 1번 핀 VSS는 점퍼선으로 브레드보드(빵판)의 -극에 연결합니다.
LCD 4번핀인 RS핀은 라즈베리파이 26번째 핀과 점퍼선으로 연결한다는 것입니다. 그리고 LCD 7번 부터 10번(D0~D3) 연결하지 않습니다. LCD 15번째 핀은 브레드보드 에 저항100Ω을 거쳐 +극에 점퍼선으로 연결하면 됩니다. 여기서 가변저항을 설치한 것은 LCD모니터의 밝기를 조정하기 위한 것입니다. 너무밝게하거나 너무 어둡게 하면 화면에 글자가 보이지 않는 것을 조정하기 위한 것입니다.

참고로 아래 그림은 인터넷에서 복사한 것입니다. 왼쪽은 라즈베리파이 실제 모습으로 오른쪽 검은 바탕에 배열된 것이 GPIO핀의 모습이고 오른쪽 표는 각각의 핀의 물리적위치와 핀의 이름입니다. 핀의 이름은 다를 수 있으므로 반드시 gpio readall을 입력하여 정확한 표를 확인하시기 바랍니다.
라즈베리Gpio핀 배열에 대한 이미지 검색결과






















아래표는 제 라즈베리파이 gpio표를 나타낸 것으로 위의 인터넷과 비교하면 좀 다른 곳이 여러곳 있는 것을 알 수 있습니다.예를들어 7번핀이 위에는 GPIO 4,아래표에서는 GPIO7로 되어있고, 38~40번 핀도 이름이 다르게 표시되어 있습니다.(sudo gpio readall 명령)

Step 4. 코딩

코딩은 터미널 모드에서

cd wiringPi

wiringPi 폴더에서
nano lcd1602.c 를 입력하여 nano 편집기로 다음과 같이 입력합니다.


#include <wiringPi.h>           //WiringPi headers
#include <lcd.h>                //LCD headers from WiringPi
#include <stdio.h>              //Needed for the printf function below

//Pin numbers below are the WiringPi pin numbers

#define LCD_RS  11               //Register select pin
#define LCD_E   10               //Enable Pin
#define LCD_D4  6               //Data pin 4
#define LCD_D5  5               //Data pin 5
#define LCD_D6  4               //Data pin 6
#define LCD_D7  1               //Data pin 7

int main()
{
    int lcd;                //Handle for LCD
    wiringPiSetup();        //Initialise WiringPi

    //Initialise LCD(int rows, int cols, int bits, int rs, int enable, int d0, $
    if (lcd = lcdInit (2, 16,4, LCD_RS, LCD_E ,LCD_D4 , LCD_D5, LCD_D6,LCD_D7,0$
            printf ("lcd init failed! \n");
            return -1 ;
    }
    lcdPosition(lcd,0,0);  //Position cursor on the first line in the first col$
    lcdPuts(lcd, "HELLO WORLD");  //Print the text on the LCD at the current cu$
    getchar();                      //Wait for key press
}

nano 편집기에서 
^o(ctrl+o)
^x(ctrl+x)
입력하여 저장하고 터미널 모드로 빠져 나옵니다.

Step 5. 컴파일과 실행

정확히 입력저장되었다면  다음과 같이 터미널모드에서 컴파일을 합니다.


gcc -o lcd1602 lcd1602.c -lwiringPi -lwiringPiDev

실행하려면 다음과 같이 관리자 권한으로 실행하면 됩니다.
sudo ./lcd1602




출처: http://fishpoint.tistory.com/1953 [기린]


라벨: