반응형

【 라즈베리파이 】 #11 RaspberryPi GPIO



※ GPIO 포트 란 

 GPIO( General Purpose Input Output) Port 라는 용어로서 ,  Port는 어떤 신호가 드나드는 지점을 말한다통신을 하기 위한 신호가 드나들면 통신포트, 신호가 입력되면 입력포트, 신호가 출력되면 출력 포트라고 한다. GPIO 포트는 신호의 입력과 출력 또는 다른 부가 기능으로 사용될 수 있는 다목적 포트이다. 이를 프로그래밍으로 제어하는 것이다





※ GPIO 포트 셋 2가지 ( BCM & wPi )  

 라즈베리파이의 GPIO 포트에 주요 2가지 포트 명칭 셋이 사용되는데

wPi (WiringPi) BCM 이다

 BCM라즈베리파이의 메인 칩인 BCM283x 칩의 물리적인 핀 번호를 적용한 핀 명칭으로서 기본 제공되는 파이썬 라이브러리가 이 명칭 셋을 사용한다.   wPi 명칭 셋은 GPIO핀을 우선 기준으로 순서대로 동일하게 매칭이 되도록 배치를 한 것인데, 예를 들어 GPIO.5 번핀의 wPi 명칭도 5 번이며,  GPIO.21 번핀의 wPi 명칭도 21 번으로 되어 있어 프로그램 작성시 포트 기준으로 작성이 용이하도록 한 의도를 가지고 있다.   따라서 특정 제작자에 의해 만들어진 라이브러리를 사용할 경우, 정확한 제어를 위해 어떤 명칭셋에 따라 작성된 라이브러리 인지 확인 할 필요가 있다.

 

아래 이미지들은 두가지 포트를 보기 편하게 만든 것이고 자신이 보기에 편한 이미지를 사용하면 된다. 





반응형
반응형

【 라즈베리파이 】 #10 RaspberryPi 실습

② LED On Off 실습 with Python



▶ 회로 구성 : 


▶ 개요 

 앞전 실험에서와 같은 회로를 구성하고, LED On Off를 조금더 다양하게 변화 시켜 보도록 하자.


▶ 실습절차 


저항과 LED 를 준비하고 위 도면과 같이 GPIO18번 핀에 연결되도록 한다.



▶ 파이썬 코드 

명령창에 한 줄씩 바로 입력 하지말고 저장파일을 만들어 아래와 같이 작성후 실행 시킨다.




▶ 코드설명 


- def LedOn(Portno, Delay) : ...  :  definition(정의) 문을 이용해서 자주 사용 되는 명령을 간결하게 할 수 있다. 

위 정의문을 통해 IoPort.output (led, True) ,  time.sleep(2) 를 LedOn(led, 2) 로 사용 할 수 있음으로 코딩이 간결해진다. 


- import RPi.GPIO as IoPort  :  기억하기 쉽고 쓰기 간단한 'IoPort' 라는 이름으로 포트를 지정 하는 것이다.


- import time   :  delay 타이밍을 위해 시간 함수를 사용하기 위해서는 time 함수를 넣어야 한다. 


- IoPort.setup(led,IoPort.OUT)    // led 포트인 18번 포트를 출력포트로 설정

- led = 18

- LedOn(led,5)  // 18번 포트(led 연결) 로 5초간 High 신호를 출력 (LED On)



▶ 실행 결과 


2초간 LED On

1초간 LED Off

1초간 LED On

1초간 LED Off

5초간 LED On

1초간 LED Off


반응형
반응형

【 라즈베리파이 】 #09 RaspberryPi 실습
① LED On Off 실습 with Python


▶ 회로 구성 : 


▶ 개요 

 라즈베리파이의 GPIO 커넥터를 이용하여 LED를 On Off 하는 실습을 해 볼 수 있다.  구동 프로그램으로는 라즈비안 OS에 포함되어 있는 파이썬(Python 3) 프로그램을 이용하여 작성한다.  파이썬 프로그램의 특징은 매우 간결하고 직관적인데, 마치 과거 도스(MS-DOS) 시절 쉬운프로그램인 BASIC 만큼이나 쉽다.  그러니 부담 갖지 말고 접근하길 바란다.   


파이썬에 실행에 대한 내용은 파이썬 카테고리를 참조하길 바란다. 



▶ 실습절차 


저항과 LED 를 준비하고 위 도면과 같이 GPIO18번 핀에 연결되도록 한다.



▶ 파이썬 코드 

명령창에 한 줄씩 바로 입력 하지말고 저장파일을 만들어 아래와 같이 작성후 실행 시킨다.



▶ 코드설명 

- import RPi.GPIO as IoPort  :  기억하기 쉽고 쓰기 간단한 'IoPort' 라는 이름으로 포트를 지정 하는 것이다.


- import time   :  delay 타이밍을 위해 시간 함수를 사용하기 위해서는 time 함수를 넣어야 한다. 


※ GPIO 포트 란?  

 GPIO( General Purpose Input Output) Port 라는 용어로서 ,  Port는 어떤 신호가 드나드는 지점을 말한다.  통신을 하기 위한 신호가 드나들면 통신포트, 신호가 입력되면 입력포트, 신호가 출력되면 출력 포트라고 한다. GPIO 포트는 신호의 입력과 출력 또는 다른 부가 기능으로 사용될 수 있는 다목적 포트이다. 이를 프로그래밍으로 제어하는 것이다. 


-IoPort.setmode(IoPort.BCM) : 입출력 포트를 BCM 타입으로 설정한다는 의미 이다.    라즈베리파이의 GPIO 포트에 주요 2가지 포트 명칭 셋이 사용되는데,  wPi (WiringPi) 와 BCM 이다. 

 BCM은 라즈베리파이의 메인 칩인 BCM283x 칩의 물리적인 핀 번호를 그대로 적용한 핀 명칭으로서 기본제공되는 파이썬 라이브러리가 이 명칭 셋을 사용한다.   wPi 명칭 셋은 GPIO핀을 우선 기준으로 순서대로 동일하게 매칭이 되도록 배치를 한 것인데, 예를 들어 GPIO.5 번핀의 wPi 명칭도 5 번이며,  GPIO.21 번핀의 wPi 명칭도 21 번으로 되어 있어 프로그램 작성시 포트 기준으로 작성이 용이하도록 한 의도를 가지고 있다.   따라서 특정 제작자에 의해 만들어진 라이브러리를 사용할 경우 정확한 제어를 위해 어떤 명칭셋에 따라 작성된 라이브러리 인지 확인 할 필요가 있다.    @ 다음글에서 GPIO 포트에 대해 좀더 자세히 다루어 보도록 하겠다. 


- led = 18

- IoPort.setup(led,IoPort.OUT)    // led 포트인 18번 포트를 출력포트로 설정

- IoPort.output (led, True)         // led를 On   ,    False 는 Off

- time.sleep(2)                        //  2초간 기다린다.  delay 타임 



▶ 실행 결과 

2초간 LED On

2초간 LED Off

2초간 LED On

LED Off


LED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #06 RaspberryPi OS 부팅 

  ④ 한글 입력기 설치

그런데, 현재까지 완료하면 한글 폰트깨짐은 사라지지만, 한글 입력이 되지 않는데요, 한글 입력기를 별도로 설치해 주어야 합니다. 라즈비안에서 사용가능한 대표적인 한글 입력기에는 ibus, nabi, fcitx등이 있는데요, ibus는 오류가 좀 있어, nabi 입력기를 설치해 볼게요. 터미널에서 아래 명령어를 입력해 주세요.

~$ sudo apt-get install –y im-config nabi
 

설치가 완료되면 아래 명령어로 입력기를 선택해 주어야 합니다.

~$ im-config -a

그러면 아래와 같은 순서대로 확인 및 선택을 해주세요.

 

아래, ⊙hangul을 체크하고 확인을 클릭하세요.

 

재부팅을 합니다. 

~$ sudo reboot

 

재부팅 후,  한글은 "Shift(좌) + Space Bar" 로 한글과 영문을 전환 하실 수 있습니다.

다음 글에서는 타임존 설정을 해보겠습니다.

반응형
반응형
【 라즈베리파이 】#05 RaspberryPi OS 부팅 ③ 한글폰트 설치
 

네트워크 설정을 마치고 웹브라우저를 띄워보면, 특히 한글로 된 사이트, 예를 들어 네이버를 띄워보면 아래와 같이 폰트

깨지는 것을 볼 수 있습니다.지는 것을 볼 수 있습니다. 

 
- 한글 폰트 설치가 안 되어 있기 때문인데요,  네이버에서 제공하는 나눔폰트를 설치해 볼게요.
터미널 창에 아래와 같은 명령어를 터미널창에 입력한다.
 ~$ sudo   apt install fonts-nanum
 
그리고, 고딕 폰트 등 추가 폰트까지 설치하려면 아래 명령어를 입력하면 됩니다.
 ~$ sudo   apt install fonts-nanum-extra
 
아래와 같이 두 가지를 한번에 명령어를 주어 설치하여도 됩니다.
 ~$ sudo   apt install fonts-nanum fonts-nanum-extra
설치 후에는 재부팅을 해 주세요. 
~$ sudo  reboot
 

 

재부팅을 하면 아래와 같이 한글이 모두 잘 표시 되는 것을 볼 수 있습니다.
 

 

 

• 그런데, 현재까지 완료하면 한글 폰트깨짐은 사라지지만, 한글 입력이 되지 않는데요, 한글 입력기를 별도로 설치해주
어야 합니다.
라즈비안에서 사용가능한 대표적인 한글 입력기에는 ibus, nabi, fcitx등이 있는데요, ibus는 오류가 좀 있어, 다음 글에
nabi 입력기설치해 볼게요.
• 그리고 raspi-config 를 통해 언어 설정과 키보드 등의 설정 을 진행 할 예정입니다.
 

 

반응형
반응형

라즈베리파이 】 #04 RaspberryPi OS 부팅 

       ② 라즈비안 업데이트와 / 업그레이드


• sudo apt-get update 명령으로 OS 및 장치 update 내용이 있는지
 확인한다. 확인된 자료만 업데이트 할 수 있다




• sudo apt-get upgrade 명령으로 확인된 update 내용을 토대로 
업그레이드를 진행한다. 데이터 기록을 위해 공간을 찾지 할 경우 
물어보는 경우가 자주 있다(Y/N ?)  ,  이 때 ‘y’ 입력한다.


업그레이드 진행이 완료 되면 명령어 또는 메뉴를 클릭하여 재부팅 시켜 준다.


▶ 재부팅 명령어 : sudo reboot 

▶ 종료   명령어 : sudo shutdown -h now

 






반응형

【 C 언어 】#24 sizeof 연산자 이해하기

Language/C & C++ 2018. 3. 16. 17:03 Posted by 엑소더스팩토리
반응형

※  24 sizeof 연산자 이해하기


  변수 또는 문자열이 차지하는 메모리의 크기를 알수 있는 연산자가 바로 sizeof 연산자 이다.


▶ 문제 : char, int, double 형이 찾이 하는 메모리 크기를 i, j, k 변수를 지정하여 구하라.  sizeof 연산자 사용


▶ 포인트 


char i;  int j; double k; 를 선언하여 sizeof() 연산함수를 이용해 구한다. 



▶ 프로그램 : 




▶ 실행 결과 :



▶ 소스코드 다운로드 :  

24 sizeof 연산자 이해하기.cpp





반응형
반응형

【 라즈베리파이 】 #02 RaspberryPi 라즈베리파이 셋업


• 라즈베리파이 OS 설치
        – 여러 가지 운영체제 설치 가능(Windows, MAC OS, 안드로이드, 리눅스, 라즈비안)./라즈베리파이에 최적화 된 리눅스 기반의 라즈비안 추천

 


  만약 라즈비안을 선택하고 나면 아래 이미지가 보일 것이다.


 운영체제를 가볍게 사용하거나 간단한 용도로 사용할 때는 우측의 LITE 버전을 다운 받어 설치하면 되고, 그 외 일반적인 경우에는 DESKTOP 버전을 사용하면 무난하게 쓸 수 있다.


• 라즈비안 데스크탑 버전 설치 예
• 다운받은 파일의 압축을 풀면 약 4Gb넘는 이미지 파일 나타난다.



• 이미지 파일을 SD Card에 심어주는 Win32DiskImager를 다운받아 SD 카드에 위 다운받아 압축을 푼 이미지를 설치한다.
• 리눅스 버전을 설치한 적 있는 SD 카드의 경우 윈도우에서 포맷되지 않으므로 SD Card Formatter 를 다운받아 포맷한다



• Win32 Disk Imager 를 이용하면 이미지 파일을 SD Card에 바로 부팅이 될 수 있는 형태로 Write 시켜 준다.

• 또한 잘 셋팅된 운영체제 그대로 백업 할 때 Read 기능을 이용하여 이미지 파일로 만들어 둘 수 있다.


※ 마이크로 SD 카드로 Writing이 완료 되면 라즈비안이 설치가 손 쉽게 된 것이다. 

 다음 글에서는 라즈비안 OS 부팅편을 다루어 보고자 한다.



반응형

【 Processing 】 프로세싱 멋지게 시작하기...

Language/프로세싱 2018. 1. 26. 14:46 Posted by 엑소더스팩토리
반응형

【 Processing 】 프로세싱 멋지게 시작하기... 


하드웨어 제품의 경쟁력은 뭐니 뭐니 해도 아름다움이다.  즉, 제품디자인이 무엇보다 중요하다.  


독보적인 디자인 하나로 막대한 수입을 올리고 있는 애플을 예를 들지 않더라도, 감탄과 탄성마저 자아내는 제품의 디자인과 외관의 아름다움은 그 만큼 중요하다고 할 수 있다. 


 하드웨어에서 외관의 아름다움이 중요했듯, 소프트웨어에서 아름다움 또한 중요한데, 소프트웨어의 아름다운 디자인을 책임져 주는 코딩툴이 바로 프로세싱이라고 말 할 수 있다. 


 프로세싱을 한 마디로 표현 하면, "손쉽고 멋지게 화면상에 그림을 그려주는 툴(프로그래밍 언어)"라고 이해해도 좋겠다. 



현재 3버전 까지 개발되어 있다.


우리가 일반적인 프로그래밍 툴(C언어, JAVA 등)을 이용해서는 원하는 결과를 구현해 내는 데는 부족함이 없지만 직관적이면서도 미려한 디자인으로 표현하는데는 어려움이 있다.  


이를 극복시켜준 툴이 바로 프로세싱( Processing ) 툴이다. 

C언어처럼 단독으로 사용할 수 있는 언어툴이다. 

 프로세싱을 이용하면 보다더 직관적이고 심플한 코딩만으로 원하는 결과를 미려한 그래픽으로 표현 할 수 있다. 


 특히 코딩과정에서 스위치를 돌리듯 직관적으로 쉽게 수정할 수 있는 기능들이 매력적이다. 


이러한 장점 때문에 디자인 업계 관련 사람들이 많이 사용하고 있다. 


 특히 요즘 대세로 떠오른 아두이노와 라즈베리파이와 찰떡궁합으로 활용도는 엄청나게 높다. 


예를 들어, 아두이노를 이용해 온습도 센서 보드를 만들경우 단순히 액정 디스플레이로(CLCD) 표시 할 수도 있지만 LCD 모니터로 예쁘게 표현할 수 있다. 


아래는 프로세싱을 통해 아두이노 보드의 섭씨 온도와 화씨 온도를 실시간으로 표현 되도록 구현한 것이다. [ 아두이노에 습도센서를 연결한 후 시리얼통신을 통하여 전달 되는 값들을 PC 화면에 아래처럼 표현 한 것이다. - 화면캡쳐 ]



시쳇말로 쌈빡한 툴이라고 할 수 있다. 

물론 새로운 코딩언어를 배워야 한다는 부담감은 있으나, 아두이노의 스케치 처럼 코딩하기 정말 편하고 쉽게 익힐 수 있도록 되어 있다. 


 지금 다른 프로그래밍 언어를 공부하고 있더라도 ,  상관하지말고 함께 공부하면 좋을 것이다. 


그럼 프로세싱의 매력속으로...!


[ 프로세싱 최신 버전 다운 로드(사이트) 안내 ]

https://processing.org/download/

설치하려는 PC의 운영체제를 확인하고 설치하면 되겠다. 


[ 아래 링크를 클릭하여도 된다 ] 

  • Windows 64-bit
    Windows 32-bit
  • Linux 64-bit
    Linux 32-bit
    Linux ARMv6hf 




  • [ 라즈베리파이 등 설치 버전용]


    반응형

    【 C언어 】 # 04 연산자 개념 이해하기

    카테고리 없음 2018. 1. 25. 11:12 Posted by 엑소더스팩토리
    반응형

    ※  04 연산자 개념 이해하기


     C언어에서 자주 사용되는 연산자 활용법에 대해 배워보도록 하겠습니다.


    ▶ 문제 : 변수 x에 10을 대입하고 x에서 5를 빼는 프로그램을 작성하라


    ▶ 포인트 : C언어 프로그래밍에서 사용되는 연산자는 수학에서 사용되는 연산자 표시 및 기능이 기본적으로 동일합니다.  

    (단, 나누기는 '/'  ,  곱하기는 '*'를 사용하는 차이가 있습니다)


    ▶ 프로그램 : 


    ▶ 실행 결과 :



    ▶ 소스코드 다운로드 :  

    04 연산자 개념 이해하기.cpp



    ※ 연산자의 종류



    반응형