반응형

라즈베리Pi#19윈도 PC에서 라즈베리 Pi 원격 제어하기

 안녕하세요~ 이번 시간에는 윈도 PC에서 라즈베리 Pi를 원격 제어해 보는 실습을 진행합니다.

라즈베리Pi에 네트워크가 연결되어 있다면, 모니터 연결 없이 원격으로 제어할 수 있고 연결된 회로를 동작시킬 수 있습니다.
리눅스(라즈비안) 터미널에 접속하기 위한 Putty 프로그램을 먼저 설치하게 되며, 원격제어를 위해 서로 다른 OS 시스템인,  윈도↔라즈비안의 파일 시스템을 연결해주는 Samba Server 설치를 진행합니다.
아울러, 지난 시간 실습한 LED 밝기 조절 예제로 테스트를 해 보겠습니다.

※  본 계시 글의 모든 이미지는 클릭하면 선명한 이미지로 확대하여 볼 수 있습니다. 

 먼저, 라즈베리Pi에 초기 설정이 필요한데요, 모니터를 연결하고 부팅해 주세요. 
외부에서 라즈베리 Pi로 접속할 수 있도록, 'SSH' 통신 채널을 오픈해 주어야 합니다.

 라즈베리파이 라즈 비안 OS의 상단 메뉴에서 Preferences 》'Raspberry Pi Configuration'를 실행합니다.
Interfaces 탭에서 'SSH' 부분을 Enabled로 체크 후, 'OK'를 누르고 재부팅합니다.
그리고 현재 '라즈베리 Pi'가 접속한 IP주소를 확인해야 하는데요,


여기서 중요한 것은 라즈베리 Pi의 주소가 외부에서 접속이 되는 공인 IP의 경우는 문제없지만, 대부분의 경우 라우터에서 할당받은 사설 IP인 경우이므로,  원격 접속하려는 PC는 라즈베리 Pi와 동일한 내부망으로 접속해야 합니다.

또한, 일반적인 WiFi 공유기의 경우 WiFi 접속과 LAN선 접속을 함께 제공하는데요, 예를 들어 라즈베리 Pi는 WiFi에 접속되어 있고, LAN선으로 연결된 Pc에서의 접속은 가능합니다. (같은 내부망이라면, wifi ↔ wifi  ,  LAN ↔ LAN 모두 가능합니다)  대부분의 WiFi 공유기는 WiFi 망과 LAN선망이 같은 IP대역의 내부망으로 할당되기 때문입니다.

먼저 검색 엔진에 접속해서 'Putty'로 검색합니다.  그리고  Download 페이지를 클릭하세요.

Putty 프로그램이란?  

 


'here' 여기를 클릭하세요

 

설치하려는 운영체제에 맞는 버전을 선택합니다. 여기서는 'Windows,64bit'를 선택합니다.

다운로드한 파일을 클릭해서 설치해 주세요.

 Next를 눌러 계속 설치해주세요.  설치에 별다른 어려움 없을 거예요. 


그럼, 설치된 Putty를 실행하세요.

위 이미지의 붉은 네모 부분에 라즈베리 Pi가 할당받은 IP 주소를 입력해야 합니다.  
접속 포트는 '22' 기본 설정으로 두고,  SSH로 체크하세요.

(아래 이미지) 'Default Settings'을 선택하고 Save를 누르고 'Open' 버튼을 클릭하세요. 


(아래 이미지) 만약 Open을 눌렀는데, 이런 보안 경고창이 뜬다면, Yes를 눌러 주셔야 합니다.


아래 이미지와 같은 창이 떴을 때, 
라즈베리 Pi의 계정-비번을 건드리지 않았다면, 로그인 ID는 : pi , 비번은 : raspberry (모두 소문자)

로그인 ID와 패스워드는 아래 이미지를 참고하세요.

※ 만약! 여기 처럼 로그인 메뉴가 뜨지 않는 다면,  접속하려는 라즈베리파이가 외부에서 접속이 가능한 공인IP 인지?  혹은 공인IP에 링크된(포트포워딩 같은) IP 인지? 확인해 보세요.         
하지만  사설 IP에 연결 된 라즈베리파이라도, 동일한 라우터(네트웍, WiFi 공유기)에 접속된 기기일 경우 접속이 가능합니다. 

 

현재, 라즈베리 Pi 파일 시스템에 로그인된 상태이며, 간단한 리눅스 명령어를 입력해서 테스트해 보세요. 
- ls        : 현재 폴더 내의 리스트  ,  
- pwd    : 현재 작업 중인 디렉터리 경로 표시 , 
- mkdir  : 디렉토리 만들기   
- cd      : 디렉토리 바꾸기 (폴더 이동) 
- cd..     : 상위 디렉터리로 이동     
- clear   : 현재 화면 지우기

그럼, 삼바 서버를 설치해볼 텐데요, 

우선, 화면의 명령어로 apt 설치 프로그램 관리자 DB를 먼저 업데이트해주세요. 

DB 업데이트


업데이트되었다면, 지금 보이는 아래의 명령어로 삼바 프로그램을 설치해 주세요. 

삼바 프로그램 설치


아래 이미지처럼,  'Yes / No'를 묻는 창이 나온다면, 모두 'Yes'를 선택해 주세요.

Tab키나 화살표키로  Yes를 선택하세요

마우스로는 선택이 안되며, 키보드 '← →' 키 혹은, <Tab> 키로 '<예>'를 선택할 수 있습니다.

삼바 서버 설치 모습

설치 완료 후에는, 아래의 명령어로, 삼바가 정상적으로 설치되었는지 확인할 수 있습니다

삼바 서버 설치 확인 명령어

 ' | ' 기호는 키보드 역슬래시 ' \ ' 또는 '₩' 키와 함께 있는 키에 있습니다.
네, 현재의 화면과 같이 나온다면, 설치가 잘 된 것입니다.

모든 이미지를 클릭하면 확대됩니다~

다음 명령어로 네트워크 연결 상태를 확인해 봅니다.

삼바 서버 네트워크 상태 확인 명령어

 

삼바 네트웍 설치 확인 명령어

라즈베리 Pi의 IP 주소가 보이고, 삼바 서버가 사용하는 445번 포트 번호도 보입니다.
이제 설치된 삼바 서버의 설정만 해주면 됩니다.
이제 , 라즈베리 pi 사용자의 파일 시스템을 윈도에서 접속할 수 있도록 설정합니다.
아래의 명령어를 입력하세요.

pi에 사용자 추가하는 명령어(nano 에디터 사용)

간단한 리눅스용 에디터인 'nano'를 가지고, 삼바 설정 파일에 pi 사용자를 추가해 주는 과정입니다.

위 이미지처럼, 설정 파일 문서가 열리면 커서의 위치를 잘 확인하면서 Page Down 키나 ↓화살표 키로 제일 아래 까지 내려옵니다.  그리고, [pi] 라고 되어 있는 6줄가량을 입력하세요. 
입력이 완료되었다면, 'Ctrl+X'를 눌러 저장할지를 물을 때, 'y'를 입력하고, 엔터키를 치세요. 
엔터키 이외의 다른 키를 잘못 누르거나 하면, 내용 수정이 안 되는 등의 오류가 생길 수 있으니 설명대로 해보세요.
추후에 로그인 접속 문제가 있다면, 방금 작업한 내용의 입력 내용에 오타가 없는지? 이 부분을 다시 살펴보세요.

그리고, 추가한 사용자에게 아래 이미지처럼, 공유 폴더 접근 가능한 비번을 부여해 줍니다.
비번은 기억하기 쉽도록 우선 'raspberry'로 할게요.  

사용자 추가시 등록한 아이디(pi)에 대한 비번(raspberry)예시

비번은 확인 비번까지, 두 번 입력하게 되고, 입력하는 과정이 화면에 표시되지 않으니, 당황하지 말고, 입력 후 엔터를 해주면 됩니다. 

비번 입력표시는 되지 않으니 참고하세요


 추후에 다른 사용자 추가도 이런 형태로 추가해 주면 됩니다.
이제 삼바 서버 설치와 모든 설정은 끝났습니다.
그럼, 이제 설정한 파일이 적용되려면, 다음 명령어로 삼바를 재 실행해야 합니다.

그럼, 같은 내부망으로 연결된 윈도 PC에서 네트워크로 접속해 볼게요.
아래 이미지는, 삼바 서버를 재시작했을 때, 표시되는 화면이며, 윈도 탐색 창으로 접속이 가능한 상태가 됩니다.
그리고서 윈도 실행창을 열어(윈도키 + R키), 라즈베리 pi의 ip 주소를 입력하는 모습입니다. 

 

아래처럼, 윈도 탐색 창이 열리면,  pi 드라이브를 클릭하고 열린 창에 추가해 주었던, 사용자 id와 패스워드를 입력해 줍니다.

이때, '내 자격 증명 기억'에 체크를 해 두면, 다음번에 패스워드를 다시 입력하지 않아도 됩니다.

네, 아래 이미지처럼, 라즈베리 pi에서 보았던, 폴더와 파일 목록이 그대로 뜨는 것을 볼 수 있습니다.

pi의 네트워크 드라이브를 윈도 탐색창으로 접속된 모습

그럼 여기서 잠시, NotePad++을 설치해 볼게요.  
notepad++은 윈도 기본 프로그램인 notepad처럼 가볍고, 가볍게 코딩하거나 편집하기에 정말 좋은 프로그램인데요,
화면처럼 검색해서 운영체제에 맞는 버전으로 다운로드해 설치하면 됩니다.  

노트패드++ 검색하여 설치하기

노트패드++은 코딩 전문 툴은 아니지만, 코드를 비교 분석할 수 있고, 가볍게 코딩하거나 편집하기에 정말 좋은 프로그램인데요, 아래 이미지처럼 검색해서 운영체제에 맞는 버전으로 다운로드해 설치하면 됩니다.

아래 이미지처럼, 노트패드++을 실행해주세요. 

실행시켜 보면 위 모습처럼 뜨며, 첫 화면에 뜬 change.log의 x를 눌러 닫고 새 파일을 작성하면 됩니다.
테스트를 위해 간단히, print("Hello Raspberry pi World")로 작성해보세요.

 작성한 파일을 'piWork'폴더나 적당한 곳에 'hello.py'이름으로 저장합니다.
그럼, 다시, 라즈베리 pi 접속창으로 가서, 방금 작성한 파일을 실행시켜 볼게요.
먼저, 파일을 저장한 경로로 이동합니다.

현재 라즈베리에 pi에는 파이썬 2.x대 버전과 3.x대 버전이 설치되어 있을 텐데요, 각각의 버전을 아래 이미지처럼, 확인할 수 있습니다.

위 이미지처럼, 각각의 버전으로 작성한 코드를 테스트해 보세요.
〔 2.x대 버전은 'python...'으로, 3.x대 버전은 'python3...'로 코드 실행합니다.〕

자, 이제 끝으로, 라즈베리 pi를 직접적으로 컨트롤할 수 있도록, 원격 데스크톱 연결을 해볼게요.
아래 이미지의 명령어를 입력하여, xrdp라는 프로그램을 설치해 주세요.

xrdp는 원격 접속할 때 그래픽 형태의 로그인을 지원하는 프로그램입니다.

설치가 되었다면, 윈도 검색에서 '원격 데스크톱 연결'을 검색하여 실행하세요.

위 이미지처럼, 컴퓨터 항목에, 라즈베리 pi 이름을 입력하고, 연결을 클릭하세요.
그리고, 아래와 같은 질문 창이 뜨면 (예)'(예) Y'를 클릭합니다.


그러면, 잠시 후에 아래와 같은 라즈베리 pi이 접속된 원격 데스크톱 화면이 뜨게 됩니다. 
그리고서,  좀 전에 pi 사용자로 추가해 주었던, id와 패스워드를 입력합니다.

드디어, '윈도 PC'에서 '라즈베리 pi 데스크톱 화면'이 열렸습니다   - 짝짝짝!!! - 

 SSH 관련 경고창은 닫아 주면 됩니다. 추후에 필요한 경우, Raspberri pi의 관리자 비번을 변경하면 경고창은 없어집니다.  다만, 변경 후 비번을 잘 기억해 두지 않으면, 시스템 접속이 불가할 수 있으니,  중요한 파일을 다루거나 하지 않거나, 학습용으로 사용한다면, 변경 없이 사용해도 될 것 같습니다. 

그럼, 라즈베리파이에 직접 로그인하지 않고, 이렇게 원격으로 접속된 상태에서의 파이썬 코드가 잘 실행이 되는지, 
아래처럼, 간단히 확인해 보세요. 

네, hello.py 코드 실행이 잘 되네요. 
그럼, 끝으로, 아래 이미지처럼, 지난 시간 라즈베리 pi에서 직접 pwm 예제를 실행했던 python IDE를 열어보겠습니다. 

Thonny Python IDE를 열고서,  지난 시간 PWM 회로에 사용한 코드나,  혹은 다른 코드를 올려서 라즈베리파이에 연결된 회로를 작동시켜 보세요. 

Run을 눌러 실행시켜 보면, 잘 작동하는 것을 볼 수 있습니다. 
중요한 것은,  지금 이 상황은, (멀리서?) 원격으로 라즈베리파이에 연결된 회로를 동작시킨 상황입니다.  
그래서, 이번 실습을 통해, 라즈베리 pi에 별도로 모니터 연결을 하지 않고, pi와 회로를 제어할 수 있으며,
또한,  라즈베리 pi를 이용해, NAS 서버나, 네트워크 드라이브 저장소와 같은 기능을 구축할 수 있습니다.
그럼, 다음 실습도 기대해 주세요.  감사합니다~

《 전 과정 영상으로 보기 》

 

반응형
반응형

라즈베리Pi#18HardWare PWM 사용하기!  with LED

『 선수학습 』
▶ 라즈베리Pi에 라즈비안 OS설치와 세팅, 그리고 PWM이전 기초실습 :
 【 라즈베리파이 】#01 라즈베리파이 설치하기   #01~#07까지 라즈비안OS 설치와 한글화 설정 등이 있습니다.
  
→  【 라즈베리파이 】#09 RaspberryPi 실습 ①   
→  【 라즈베리파이 】#10 RaspberryPi 실습 ②  
→  【 라즈베리파이 】#11 RaspberryPi GPIO   
→  【 라즈베리파이 】 #12 LED On Off 실습 with Switch   
→  【 라즈베리파이 】 #13 LED Fade In Out 실습 (소프트웨어 PWM) 
→  【 라즈베리파이 】 #14 타이밍 차트 활용한 LED 실습   
→  【 라즈베리파이 】 #15 LED SOS 신호와 동기신호 실습  
→  【 라즈베리파이 】 #16 State Diagram 구현 실습 
→  【 라즈베리파이 】 #17 4LED 순차 점멸 with Timing chart  

-------------------------------------------------------------------------------------------------------------------

안녕하세요~
라즈이노 IoT입니다.
라즈베리파이 베이직 학습 시리즈로 "하드웨어 PWM 사용하기"편을 준비해 봤습니다.

PWM은 디지털 출력을 가지고 아날로그처럼 동작할 수 있도록 해주는 기능이라고 보시면 되는데요,
(PWM : Pulse Width Modulation )
이번 실습에서 PWM 기능은 Led를 점점 밝게 또는 점점 어둡게 컨트롤해봄으로써 테스트해 볼 수 있습니다.

PWM 회로 연결은 아래와 같습니다.

LED는 연결할 때 + - 구분을 해주어야 합니다.

LED +- 극성구분

소프트웨어적인 PWM 기능은 입출력으로 사용되는 GPIO핀 어떤 핀이든 사용 가능한데요, 하지만 CPU에 과부하가 걸릴 수 있고 정밀 타이밍 제어가 필요한 곳에서는 오류가 날 수 있기에, 하드웨어적으로 동작하는 PWM 기능을 이용하게 되며, 그 핀은 정해져 있습니다.

화면 이미지에서 GPIO 18, 12번이 PWM0 로 사용되고, 13번 19번이 PWM1 채널로 사용됩니다.
채널별로 연동되기 때문에, 개별로 동작시킬 수 있는 핀은 실질적으로 두 개로 보시면 됩니다.
하드웨어 PWM기능은 오디오 출력 시에도 사용되기 때문에 동시에 사용할 수 없음을 주의하세요.

《주의 사항!》
1. GPIO 핀 출력 신호의 최대 전압은 3.3v이며,  각 핀당 약 18mA로 제한하며, 가급적 핀 전체 출력 전류가 50mA를 넘지 않도록 주의해 주세요. ( 전류값은 옴의 법칙인 I=V/R 으로 간단히 계산해 볼 수 있으며, 제한 값은 보드에 공급되는 전원과 소모 전력에 따라 달라질 수 있어요.)
2. 헤더 핀의 대부분은 Broadcom 메인 칩으로 직접 연결되어 있기 때문에, 잘못된 연결로 인하여 라즈베리 Pi를 영구적으로 손상시킬 수 있으니, 연결에 주의해 주세요!

실습에 사용된 환경과 준비 사항입니다

LED를 보호하는 저항 값은 220Ω~470Ω사잇값 중에 가지고 있는 것을 사용하면 됩니다.
영상에서는 라즈베리 Pi의 라즈비안 OS에서 직접 코드를 동작시키게 됩니다. 
다음번 영상에서는 윈도 PC에서 원격으로 접속하여 동작시켜 보겠습니다.

아래는 회로 동작에 사용한 파이썬 코드입니다.

《 회로 실행용 파이썬 코드 》

코딩에 사용된 프로그램은,  라즈베리 Pi 라즈비안OS에 기본 설치된 Thonny Python IDE 프로그램입니다. 
아래 이미지처럼, 실행과 디버그, Shell창이 함께 구성되어 있습니다. 

 동작 방식에는 몇 가지 있는데요, 여기서는 비교적 코드가 간단하고 이해하기 쉬운 RPi.GPIO라이브러리 모듈의 PWM 명령어를 사용했습니다.


LED의 밝기는 아래 이미지처럼, 출력 신호의 High와 Low신호의 비율(Duty Rate)로 결정됩니다.


ChangeDutyCycle(듀티비%) 함수로 0~100%의 값을 직접 입력해 넣어 주면 조절할 수 있습니다.

그리고, PWM 파형에는 주파수의 개념이 들어가는데요, 
주파수(Frequance)라는 것은 PWM 1주기의 신호가 1초에 몇 번 반복되는지를 의미합니다.

좌측 이미지처럼 1초에 1회 반복되면 1Hz라 하며, 우측 이미지처럼 1초에 3번 반복되는 형태이면 3Hz라 합니다.
만약 1초에 100번 반복되면 100Hz, 1000번 반복이면 1KHz(1000Hz)가 됩니다.
PWM 신호의 주파수는 LED에서는 신호의 깜빡임으로 나타나게 되며,  주파수가 낮으면 깜빡임이 확연하게 보이며, 주파수가 높으면 밝기 조절 때 더 자연스럽게 보입니다. 
다만, 사람의 눈은 잔상효과로 인하여 주파수가 낮더라도 깜빡임이 없는 것처럼 보일 수 있는데요, 디지털 눈인 카메라로 보면 그 차이를 쉽게 확인할 수 있습니다. 
(아래는 이미지여서 실제 깜빡 임의 차이는  맨 아래 전체 영상에서 확인 가능합니다.)


그럼 위 코드를 입력하고 Python IDE를 실행시켜 라즈베리 Pi에 연결된 LED를 동작시켜 보세요. 
코드를 살펴보면,  듀티비 값은 for 문에 의해 0~100% 증가/감소를 반복하며 밝기 조절이 되고 있습니다.
그럼 time.sleep( )의 delay 값을 0.1초에서 0.01초로 바꾸어 보면, 더 빠르게 Faid In / Faid Out이 되는 것을 볼 수 있습니다. 
주파수의 경우도, 주파수가 낮을수록 깜빡임이 심해지고, 일정 주파수가 이상 되면 깜빡임이 없는 자연스러운 Faid In/Out을 볼 수 있는데요,  옵션 값을  1000Hz, 100 Hz, 50Hz, 10Hz  이렇게 단계적으로 바꾸어 가며 실습해 보세요. 
특히 핸드폰 카메라 렌즈로 확인해 보면, 더 명확히 느끼실 수 있습니다. 

다음 영상에서는 라즈베리 Pi에 모니터를 연결하지 않고, 윈도 PC에서 원격 접속을 통해 라즈베리 Pi에 연결된 회로를 작동시켜 보는 실습을 진행합니다. 
라즈베리Pi에 라즈비안 OS설치와 세팅, 그리고 PWM이전 기초실습도 여기 블로그 【라즈베리파이 기초】 카테고리에 있으니, 필요하신 분은 함께 보면 도움이 되실 듯합니다. 

▶ 실습 전 과정 영상으로 학습하기

 

반응형
반응형

【 라즈베리파이】 Raspberry Pi ↔ windows , 간편한 파일 전송 프로그램 WinSCP 설치 & 셋업

 

라즈베리파이와 윈도우 시스템 사이에서 파일을 주고 받을 일이 생기는데, 이 때 설치와 사용이 간편한 WinSCP에 대해 소개하고자 합니다.

FTP 접속 WinScp은  오픈소스(무료) 이면서 , 파일 전송을 위해 최근 많이 사용되고 있고, 사용법도 어렵지 않습니다. 

 

우선, 아래 사이트로 이동합니다.

https://winscp.net/eng/download.php

- 위 화면에서 DOWNLOAD WINSCP 5.15...xxx (9.4 MB) 버전을 다운 받는다.

- 단, 이 때 설치가 필요 없는 포터블 버전을 받고자 한다면 , 오른쪽에 있는  OTHER DOWNLOADS를 클릭하면,

아래와 같은 포터블 다운로드 화면이 나온다.

 

- 여기서는 설치 버전으로 직접 설치해서 프로그램 사용법에 대해 설명하겠습니다.

아래와 같은 다운받은 파일을 실행해 주세요~

- 그런데, 막상 설치를 진행 하려고 하면 아래와 같은 경고 메시지를 보여줍니다.

 그럼, 당황하지 말고, 화면 중간에 있는 추가 정보 를 클릭해 줍니다.

- 그러면 아래처럼 실행 버튼이 나오게 됩니다.

- 실행을 눌러 설치를 진행합니다.

 

- 아래 화면에서, 파일을 복사해서 주고 받을 때에는 전통적인 FTP 스타일이 편하므로, 컴맨더(C)를 선택하는 것을 추천합니다.

- 설치가 완료되면 아래와 같은 완료 화면을 보실 수 있습니다.

- 완료를 누르고 바탕화면에 있는 WinSCP 아이콘을 실행시킵니다.

- 그럼 아래와 같은 화면이 나타납니다. 

- 그럼 접속 하려는 라즈베리파이의 IP 주소를 아래처럼 입력해줍니다.  (접속할 포트 번호는 디폴트 값으로 22 입니다)

- 사용자 이름은 특별히 변경하지 않았으면, 소문자료  ' pi ' 이며 ,  비번도 ' raspberry ' 로 하면 됩니다.  만약 접속이 안 된다면, ID 와 비번을 바꾼 경우 이니 확인해야 합니다.  그리고, 접속하려는 라즈베리파이에 인터넷 연결이 제대로 되어 있는지 확인하면 됩니다. 

 

- 그런데 이때 ,  User name과 Password 는 일치하나 다른 문제로 접속이 안되는 문제가 발생할 거예요. 

- 라즈베리파이와는 원격 접속형태로 이루어 지는데, 이때 사용되는 암호와된 접속 방식이 바로 SSH(Secure SHell) 입니다.   다만, 라즈베리파이의 기본 설정 상태는 접속 할 수 없는 Disable 상태로 되어 있어요.   따라서 이 설정을 Enable로 변경해주면 접속이 잘 됩니다. 

 

 그럼, 라즈베리파이의 주 메뉴중에어 아래에 표시한 'Raspberry Pi Configuration ' 을 클릭하여 들어 갑니다. 

[ 메뉴 ≫ 기본 설정 ≫ Raspberry Pi Configuration ]

 

- 그럼 아래와 같은 설정 메뉴가 뜨면 두 번째 탭에서 SSH 설정 부분의 Enable 영역에 클릭해 주고 OK 를 누르면 됩니다. 

그리고 재부팅해주고, 윈도우의 WinSCP 프로그램에서 다시 접속 시도해보면 접속이 잘 될 거예요.  

 

 

- 호스트 접속에 성공했다면, 맨처음 접속시에는 아래와 같은 메시지가 뜨는데, '예'를 눌러 주면 이후로는 뜨지 않습니다.

 

- 여기서 만약 라즈베리파이의 IP 주소를 바로 알고 싶다면, 라즈베리파이 화면 우측 상단에  인터넷(또는 WiFi) 연결 모양에 마우스 커서를 가져다 대면 IP 주소를 바로 볼 수 있어요.  저의 경우는 일반 랜선과 WiFi 둘 다 동시에 접속되어 있는 경우 입니다. 

- 접속이 제대로 이루어 지면 아래 처럼 윈도우 PC 탐색창 화면과,  라즈베리파이 PC 탐색창 화면으로 각각 나뉘어진 창을 볼 수 있습니다.   ( 라즈베리파이 첫 화면 위치는 ' /home/pi/ '  )

 

- 그러면 원하는 파일들을 선택해서 끓어다 놓으면 복사가 됩니다.  폴더 지정과 생성도 가능하며, 삭제 또한 자유자제로 가능합니다.  접속한 라즈베리파이에서도 파일의 복사와 삭제 또한 가능합니다. 

 

만약, 파일을 분명히 복사 해 넣었는데, 탐색창에 보이지 않는 다면,   이는 FTP와 같은 접속 툴 방식의 특성인데, 이럴 때는 상단 메뉴 중 아래와 같은 새로고침 버튼을 클릭하면 보일 거예요. 

 

 그럼 즐겁게 라즈베리파이 공부하세요~

반응형
반응형

【 라즈베리파이 】 #17 4LED 순차 점멸 with Timing chart

 지난시간 2개의 LED를 이용해서 타이밍 차트에 따라 반복 점멸을 하도록 만들어 보았다. 이번에는 4개의 LED이용할 것이며, 타이밍 차트 대로 순차로 점멸하되, 총 10회만 반복하도록 프로그래밍 해보자. 


▶ 선수 학습 :

 

  1. (기초#16State Diagram 구현 실습 (타이밍 차트 참고 강좌클릭


▶ 회로 구성 : 

( 이미지를 클릭하면 크게 확대 됩니다)



▶ 개요 

  GPIO의 출력을 순서대로 제어 해보는 실습으로,  파이썬의 while 구문을 함께 연습해 볼 수 있다.  아래 이미지는 스테이트 다이어그램(State Diagram)으로 동작의 순서를 도식화 해서 이를 다시 프로그래밍으로 구현해 보는 연습을 통해 정확한 동작의 구현을 기대할 수 있다. 



(아래 이미지를 클릭해서 보면 눈금등을 더 선명하게 보실 수 있어요) 



▶ 실습절차 

 저항과 LED를 준비하고 위 회로도와 같이 연결한다. 
(저항은 LED가 보호되면서 적당량의 밝기를 가질 수 있도록 용량값을 선택하는데, 통상적으로 100
Ω~470Ω 사이값으로 준비하면 실험을 위한 짧은 실습에는 크게 문제가 없다)

  

- LED1 → GPIO 18번 핀 연결  / LED2 → GPIO 23번 핀 연결

- LED3 → GPIO 24번 핀 연결  / LED4 → GPIO 25번 핀 연결

(LED 극성에 주의 : 리드선이 긴 쪽이 '+'  ,  짧은 쪽이 '-' 이다)


1. 부품 : 220Ω x 4 ,  LED x 4




▶ 파이썬 코드 


라즈베리파이에서 파이선을 실행시킨다. 

메뉴에서 새파일을 선택하고 아래와 같이 작성 저장후 실행시킨다.(F5)




▶ 코드설명 

4개의 LED가 순차적으로 반복 실행

-타이밍 차트에서 한 눈금당 0.2초 씩 계산함.
-L1High 신호 : 0.8초 동안 On
-L2High 신호 : L1신호 시작부터 0.4Delay 0.8초 동안 On
-L3High 신호 : L2신호 시작부터 0.4Delay 0.8초 동안 On
-L4High 신호 : L3신호 시작부터 0.4Delay 0.8초 동안 On
-L1High 신호 : L4신호 종료부터 1.2Delay 0.8초 동안 On

-이후 반복   (10회 반복)


-위 타이밍 차트를 분석해보면 패턴 L L L L의 패턴이 순서 대로 이어지고 있고, L4가 Off 된 이후 12개의 눈금(각0.2초 총 1.2초)

이후 다시 첫 L1으로 반복되는 것을 알 수 있다.  


- 총 10회를 반복하도록 while 구문에 조건을 주어야 한다. 

- ' no += 0.1 ' 은   'no = no + 0.1' 과 동일한 코드이다.

- State_1(0.4)  :  State_1() 함수를 호출하면서 delay 타임을 위한 인자값으로 0.4(초)를 전달하고 있다.   [ State_1(0.4)  ]



▶ 실행 결과 

( 영상을 전체보기로 크게 하여 보세요)



ED On Off 실습 with Python

반응형
반응형

라즈베리파이#16 State Diagram 구현 실습

▶ 회로 구성 : 


▶ 개요 


희망하는 GPIO의 출력을 State Diagram으로 도식화 해서 이를 다시 프로그래밍을 통해  하드웨어적으로 구현 해보도록 하자. 

( 이전글 참조  :  #15 LED SOS 신호와 동기신호 실습 )





▶ 실습절차 

저항과 LED, 준비하고 위 도면과 같이 연결한다.  

(LED1 → GPIO 18번 핀 연결  / LED2 → GPIO 23번 핀 연결)

(LED 극성에 주의 : 리드선이 긴 쪽이 '+'  ,  짧은 쪽이 '-' 이다)

1. 부품 : 220Ω x 2 ,  LED x 2



▶ 파이썬 코드 

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




▶ 코드설명 

【 GPIO 신호를 타이밍 차트로 분석하여 구현하기 


 - 위 신호를 분석 해보면 아래와 같은 4개의 패턴이 순서대로 반복 되는 것을 확인 할 수 있다.



-위 타이밍 차트를 분석해보면 패턴 S1 S2 S3 S4 의 패턴이 순서 대로 이어지고 있고, 3개 패턴의 delay가 나온 후 전체 반복되는 것을 확인 할 수 있다.

-S1패턴 →  ‘True’ , ’ False
-S2패턴 →  True, ’ True
-S3패턴 →  False, ’ True
-S4패턴 →  False, ’ False
-delay패턴 → S4뒤에S4패턴과 같은 패턴 3번 반복(delay)

-위 타이밍 차트에서 한 눈금당 0.2초 씩 계산함.
- 각 상태(State) 별로 def (definition:정의 함수) 형태로 만들어 사용한다



▶ 실행 결과 


아래 영상은 위 프로그램을 두 번 연속 실행 시킨 영상이다. 




ED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #15 LED SOS 신호와 동기신호 실습


▶ 회로 구성 : 


▶ 개요 


LED1으로 SOS 신호를 나타 내고 LED2로 동기신호(일정한 크기와 간격의 기준 신호)를 출력해 보는 실습이다. 

( 이전글 참조  :  #14 타이밍 차트 활용한 LED 실습 )


▶ 실습절차 

저항과 LED, 준비하고 위 도면과 같이 연결한다.  

(LED1 → GPIO 18번 핀 연결  / LED2 → GPIO 23번 핀 연결)

(LED 극성에 주의 : 리드선이 긴 쪽이 '+'  ,  짧은 쪽이 '-' 이다)

1. 부품 : 220Ω x 2 ,  LED x 2



▶ 파이썬 코드 

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




▶ 코드설명 

【 SOS 신호 타이밍 차트

-위 타이밍 차트에서 한 눈금당 0.2초 씩 계산함.


-S’ 신호 : 0.4On 0.4Off 0.4On 0.4Off0.4On (1.2Off :다음신호 사이의 공백 값)
-O’ 신호 1.2On 0.4Off 1.2On 0.4Off1.2On (1.2Off :다음신호 사이의 공백 값)

-LedOnLedOff 함수 , S, O, 모르스 신호 함수를 선언(def한다

-Led1(SOS 신호용)은 18번 포트를 사용하고, Led2(동기신호)는 23번 포트를 사용한다.
-반복패턴 a, b, c 세가지를 함수로 만들어 정의 한다.
-Led1, Led2 는 패턴에 따라 On(True), Off(False) 의 포트 출력을 설정한다(IoPort.output…)
-Port1 Led1(18번 포트)
-Port2 Led2(Clk, 23번 포트)
-S, O, 신호를 각각 함수로 정의 하되 이미 정의한 패턴 a,b,c 함수를 사용하여 간결화 시킨다
-타이밍 차트와 동일한 출력이 되도록 중간 중간에 패턴 a가 포함되어있음에 유의

【 SOS 신호와 동기신호 타이밍 차트


- 두 개의 신호상에서 반복되는 패턴을 살펴보면 아래와 같은 (a), (b), (c) 세 가지 패턴이 계속 반복되는 것을 발견 할 수 있다.  패턴상에서 위에 부분은 High,  아래에 위치하는 부분은 Low 신호라고 하며, High 신호일 때 LED를 켜고(On), Low 신호일 때 LED를 끄면(Off) 된다.

- 따라서 ‘S 신호는 패턴 (c)가 세 반복: ccc , ‘O 신호는 패턴(b)(c) 가 세 번 반복 : bcbcbc, 되며, 아래와 같은 차트를 만들려면 SOS 신호 사이사이 (a)패턴을 삽입 하면 동일한 신호를 만들 수 있다. 





▶ 실행 결과 


아래 영상은 위 프로그램을 두 번 연속 실행 시킨 영상이다. 

 S.O.S + 동기 신호 






LED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #14 타이밍 차트 활용한 LED 실습

▶ 회로 구성 : 


▶ 개요 


LED의 On Off 제어를 타이밍 차트 (timing chart) 라고 하는 시간에 따른 High- Low 신호에 맞추어 제어 해보는 실습이다. 

모르스 부호 중에 SOS 위급신호를 응용하여 실험해 보도록 한다.


▶ 실습절차 

저항과 LED, 준비하고 위 도면과 같이 연결한다.  (GPIO 18번핀 LED 연결)

1. 부품 : 220Ω x 1 ,  LED x 1



▶ 파이썬 코드 

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




▶ 코드설명 

【 SOS 모르스 신호 타이밍 차트


-모르스 부호의 SOS 신호를 LED를 통해서 나타내는 실험


-위 타이밍 차트에서 한 눈금당 0.2초 씩 계산함.

-S신호 : 0.4On 0.4Off 0.4On 0.4Off0.4On (1.2Off :다음신호 사이의 공백 값)
-O신호 : 1.2On 0.4Off 1.2On 0.4Off1.2On (1.2Off :다음신호 사이의 공백 값)

-LedOn, LedOff 함수 , S, O, 모르스 신호 함수를 선언(def) 한다

-Led 포트는 18번 포트를 사용


▶ 실행 결과 

아래 영상은 위 코드를 두 번 연속 실행 시킨 영상이다. 

 S.O.S , S.O.S





LED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #13 LED Fade In Out 실습

▶ 회로 구성 : 




▶ 개요 


라즈베리파이의 GPIO 포트를 통해 연결된 LED의 밝기를 제어 해보는 실습이다. 회로는 이전 실험 회로와 같으며, 스위치를 누르면 LED의 밝기가 점점 밝아진후 다시 점점 어두워지는 회로이다. 


* Fade In : 연극 무대에서 사용하는 용어로, 처음 연극 시작시 무대가 점점 밝아지는 것을 의미한다.

* Fade Out : 연극 무대에서 사용하는 용어로, 연극이 종료 될 때 점점 어두워지는 것을 의미한다.



▶ 실습절차 


저항과 LED, PB(푸쉬버튼) 스위치를 준비하고 위 도면과 같이 연결한다. 

1. 부품 : 220Ω x 1 ,  10㏀ x 1,  PB SW x 1 ,  LED x 1




▶ 파이썬 코드 

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





▶ 코드설명 

- def KeyInput(key)  :  푸쉬버튼 스위치가 눌려 졌는지 체크하는 함수를 선언한다. 

- def candle (Port, on, off)  :  LED를 On Off 해주는 루틴이다. 


- def State1(Led, sub) :  LED를 점점 밝게 Fade In 해주는 루틴이다.


- def State2(Led, sub) :  LED를 점점 어둡게 Fade Out 해주는 루틴이다.



▶ 실행 결과 

스위치를 한 번 누르면 LED가 Fade IN 하며 켜지고, 

다시 스위치를 한 누르면 LED가 Fade OUT 하며 꺼진다.




LED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #12 RaspberryPi 실습
③ LED On Off 실습 with Switch

▶ 회로 구성 : 



▶ 개요 

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


LED 제어를 스위치를 통하여 제어 할 수 있는 회로를 구성하여 실습해본다.



▶ 실습절차 


저항과 LED, PB(푸쉬버튼) 스위치를 준비하고 위 도면과 같이 연결한다. 

1. 부품 : 220Ω x 1 ,  10㏀ x 1,  PB SW x 1 ,  LED x 1




▶ 파이썬 코드 

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




▶ 코드설명 

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


- Sw1 = 8  ,  Led = 18   :  Sw와 Led가 연결된 포트 번호를 적는다.


- IoPort.setmode(Led, IoPort.OUT)  :  Led가 연결된 포트를 출력 포트로 설정

- IoPort.setmode(Sw1, IoPort.IN)  :  Sw1이 연결된 포트를 입력 포트로 설정


- rcv = IoPort.input(Sw1) :  Sw1으로 입력되는 신호 값(High)을 rcv 변수에 저장

- IoPort.output(Led,rcv) :  rcv의 값을 그대로 Led 포트로 출력 함



▶ 실행 결과 

스위치를 누르면 즉각적으로 LED가 On / Off 반응한다.



LED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #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 번으로 되어 있어 프로그램 작성시 포트 기준으로 작성이 용이하도록 한 의도를 가지고 있다.   따라서 특정 제작자에 의해 만들어진 라이브러리를 사용할 경우, 정확한 제어를 위해 어떤 명칭셋에 따라 작성된 라이브러리 인지 확인 할 필요가 있다.

 

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





반응형