본문 바로가기

라즈베리파이(RPI)

[버섯돌이의 라즈베리 기초] 04 개발을 위한 Notepad++ 환경 꾸미기



버섯돌이의 라즈베리 기초
04 개발을 위한 Notepad++ 환경 꾸미기

Created Date: 2013.11.30
Modified Date: 2013.11.30
revision 1

키워드 : 라즈베리 파이, SSH, notepad, notepad++, SFTP

안녕하세요 버섯돌이 유재성입니다.
지난 시간에는 원격 개발 환경을 위해 필수적인 SSH와 작업의 편의를 위한 putty와 Filezilla에 대해서 살펴봤습니다.
또한, 좀 더 편한 사용을 위해 SAMBA 환경 설정에 대해서 설명 드렸습니다.
SAMBA의 경우에는 설치를 희망하는 분들도 계실테고, 설치를 싫어 하는 분들도 계실거라 생각되기에
SAMBA없이 SSH를 활용 해서 조금이나마 쉽게 개발 할 수 있는 방법에 대해 다루려고 했지만
시간이 여의치 않아서 자꾸 미뤄지다보니 더 이상 미룰 수 없어서 급하게나마 이제서야 올리게 되네요.^^;;

참고로, 제가 최근에 올린 글들은 다양하게 적용되기도 하지만 ROVER5 프로젝트에 참여 하시려는 분들 중
저와 같은 초보분들을 위해서 최소한의 개발 환경 구축에 대한 내용들이니
혹시라도 ROVER5 프로젝트에 참여 하고자 하시는 초보분들은 이전 글들도 참고 하시기 바랍니다.^^
(검색어 : "개발을 위한" 또는 "[버섯돌이의 라즈베리 기초]")

그리고, samba환경 구축 강좌에서 smartrobot님의 요청이 있었으니 상호간의 혼동을 피하기 위해
ROVER5의 개발 소스 폴더는 /work/rover5 밑에 구축되는걸 전제로 글을 작성 하겠습니다.

사설이 길어졌군요..^^
본 글에서는 ssh의 기능인 SFTP 기능을 이용해서 윈도우즈 환경에서 라즈베리 파이의
/work/rover5 폴더에 파일을 생성 및 수정하는 방법에 대해 설명 드리며,
GPIO 사용을 위한 C언어용 WiringPi 의 설치에 대해서 간단히 다루도록 하겠습니다.

SFTP 기능이 지원되는 에디터중 무료 소프트웨어를 찾다보니 Notepad++를 선택했지만
제가 즐겨 사용하는 프로그램은 아니라서 사실 저도 잘 모르니 양해 바랍니다.*^^*V

글 내용은 편의상 불 필요한 문제를 피하기위해 root 계정으로 진행되니 root 계정을 이용하지 않을 분들은
각 명령어 앞에 sudo 명령의 사용 및 권한 설정등 적절히 대응하시기 바랍니다.


1. 사전 준비사항
- SSH 환경 구축 (라즈베리 파이 설치시 기본 옵션)

- root 계정 활성화 (/work 폴더 생성을 위해 필요)


2. notepad++ 설치


Notepad++의 경우 네이버에서 "notepad++" 로 검색하시면 위 처럼 쉽게 찾을 수 있습니다.
상단의 바로가기의 링크를 클릭해서 Notepad++ 사이트로 이동합니다.


좌측 메뉴에서 "download"를 클릭하시면 위와 같은 다운로드가 가능한 화면으로 이동됩니다.
위 화면에서 하단의 "DOWNLOAD" 버튼을 클릭하시면 됩니다.
현재 6.5.1 버전의 다운로드 URL : http://notepad-plus-plus.org/download/v6.5.1.html



위와 같은 파일이 다운로드되었으면 더블 클릭해서 설치를 시작 합니다.


한국어를 지원하니 한국어를 선택하고 OK를 클릭하세요.


특별히 신경 쓸 부분은 없으니 단순히 "다음>" 버튼만 계속 클릭하시면 됩니다.


Notepad++를 이용해서 개발을 자주 하실 생각이면 "Create Shortcut on Desktop"을 체크 하셔서
바탕화면에 단축 아이콘을 만드시면 좋으리라 봅니다.
무료 소프트웨어인데다 기능이 좋아서 다양한 용도로 사용이 가능하리라 봅니다.^^


정상적으로 설치된 경우 위와 같은 첫 화면이 나옵니다.^^

3. 환경 설정 (라즈베리 파이)
FTP 설정을 잡기전에 라즈베리파이에 작업 디렉토리를 만들도록 하겠습니다.
Putty를 이용해서 root 계정으로 라즈베리 파이에 접속 하셔서 아래 처럼 작업 폴더를 생성  하시기 바랍니다.
root 계정이 아니면 /work 폴더를 생성 할 수 없으니 참고 하시기 바랍니다.

> mkdir /work
> mkdir /work/rover5
> cd /work/rover5


4. 환경 설정 (Notepad++)
이전 강좌에서는 Filezilla를 이용해서 라즈베리 파이에 접속했었는데
설명 드렸듯이 Filezilla에서는 문서 편집 기능이 없어서 파일 업로드와 다운로드만 가능합니다.
그에 비해 Notepad++는 문서 편집기 차원에서 SFTP를 지원하기 때문에 리눅스 상에서
Nano나 vi의 사용이 불편한 분들은 Notepad++를 이용하시는게 훨씬 편 할 수 있습니다.^^
Filezilla에서 SFTP를 설정하던 방식과 비슷하게 설정해 주시면 됩니다.


Notepad++에는 기본적으로 NppFTP가 설치되어 있습니다.
"플러그인" 메뉴의 "NppFTP"를 선택 후 "Show NppFTP Window"를 선택 하세요.


위 처럼 우측에 NppFTP 창이 나타납니다.
그림에서 파란색으로 표시한  "메시지 윈도우 아이콘"을 클릭하세요.



"NppFTP - Output" 창이 활성화 되었습니다.^^
위 창에서 SFTP와 관련된 실행 내역을 확인 할 수 있습니다.


이제부터 가장 중요한 SFTP의 환경 설정을 위해 톱니 바퀴 아이콘을 클릭 후 "Profile settings"를 선택하세요.


왠지 친숙한(?) 화면이 나옵니다.
좌측 하단에서 "Add new" 버튼을 클릭합니다.


편의상 Profile명을 "rover5"라고 입력합니다.


Hostname에는 자신의 라즈베리 파이의 Ip나 호스트명을 입력합니다.
그리고 가장 중요한 Connection type에서 반드시 "SFTP"를 선택 합니다.

Username에는 root를 입력해주세요.
root외의 계정을 이용 할 분들은 적절히 대응 해서 사용하시기 바랍니다.^^

"Initial remote directory:"에는 저희가 주로 작업 할 폴더인 "/work/rover5"를 입력하시기 바랍니다.
즉, 해당 SFTP에 접속하면 자동으로 /work/rover5 폴더로 이동하게 됩니다.^^

저장 버튼이 안 보이죠?
모든 내용이 정상적으로 입력되었으면 과감하게 "Close" 버튼을 클릭하시면 됩니다. ^^;;


이젠 빨간색으로 표시한 상단의 연결 아이콘이 활성화 되어있을텐데 클릭 하시면
좀 전에 추가한 "rover5"가 나타납니다.
고민 할 필요 없이~~~ "rover5"를 선택해야겠지요^^



Output 창에 보면 해당 서버에 접속을 시도하는걸 알 수 있으며 설정이 제대로 되었다면
Notepad++에서 최초 접속하기때문에 위와 같은 SSH의 인증화면이 나옵니다.
단순히 "예(Y)"를 선택 해주세요.


ID와 Password가 정상적으로 입력되었으면 위 처럼 [SFTP] 로그인이 성공되고...
우측 상단 창에는 초기 폴더로 지정했던 "/work/rover5"가 보일 것입니다.

노파심에 다시 한번 설명드리면...
Notepad++에서 테스트하기 전에 사전에 Putty를 이용해서 SSH로 원격 접속하시거나
라즈베리 파이에 직접 접속 하셔서 root 계정으로 "/work/rover5" 폴더를 만들어 놓아야 합니다.


5. 문서 작성 및 편집 방법
이미 기존에 해 봤던 작업들이라 여기까지 특별히 어려운 과정은 없을 거라봅니다.^^
이젠 간단히 라즈베리 파이에 hello.c 파일을 작성하는 방법을 살펴 보겠습니다.


라즈베리 파이의 "rover5" 폴더 밑에 "hello.c" 파일을 작성 할 예정이니
"rover5" 폴더를 선택 후 우클릭하면 위와 같은 팝업 메뉴가 나오는데
신규 파일을 생성 할 예정이니 "Create new file"을 선택 합니다.



"hello.c" 라는 파일을 만들 예정이니 hello.c 라고 입력 후 OK 버튼을 클릭합니다.
우측 상단 창을 보면 rover5 폴더 밑에 "hello.c" 파일은 생성되었지만 좌측의 에디터 창에는 변화가 없습니다.^^


rover5 폴더 밑에있는 "hello5.c" 파일을 더블 클릭 하시면  위처럼 해당 파일을 다운로드 합니다.
그리고 좌측 에디터 창에 아무런 내용이 없는 "hello.c" 의 내용이 출력됩니다.

이제 편하게 작성하고 싶은 내용을 작성 후 저장만 하시면됩니다(단축키 : Ctrl+S)
간단하죠? ^^;;


6. hello.c 코딩 및 빌드
그럼 이제 간단한 빌드 테스트를 위해 화면에 "hello"를 출력하는 예제를 만들어 보도록 하겠습니다.


그림처럼 "hello.c" 탭이 선택된 상태에서 아래 내용을 입력 후 저장하시면 자동으로 Upload가 되기 때문에 편합니다.^^
그림 파일이라 Copy & Paste가 안되니 타이핑이 귀찮으면 아래 내용을 Copy & Paste 하세요^^

#include <stdio.h>
int main()
{
   printf("hello\n");
   return 0;
}


좀 더 쉽게 작업 할 수 있는 한가지 Tip을 알려드리면...
"5."번 과정처럼 라즈베리 파이에 신규 파일을 생성 후 더블 클릭해서 작성하지 않고...
메모장에서 신규 문서를 작업 하듯이 직접 Notepad++에서 새 문서를 추가 하신 후


위 그림 처럼 NppFTP창에 보시면 빨간색으로 표시한 Upload file 아이콘이 활성화가 되는데..
단순히 해당 아이콘을 한번 클릭 해 주시면 라즈베리 파이에 저장 됩니다.^^

같은 방법으로 기존에 작성된 파일을 라즈베리 파이에 올리고 싶다면...
올리고 싶은 파일(예:첨부 파일의 hello.c)을 Notepad++에서 Open하신 뒤 위 아이콘을 클릭하면 됩니다.^^

참.. 쉽죠잉~~?

이젠 Putty 창에 가셔서 빌드및 테스트 하시면 됩니다.


gcc로 빌드하면 되기 때문에 간단히 rover5 폴더에 가셔서 아래 명령을 실행 하면 됩니다.
> gcc hello.c

아무런 옵션을 주지 않았기 때문에 정상적인 경우 "a.out" 파일이 생성되기 때문에
그림처럼 ls -al 명령어로 "a.out" 파일이 생성되었나 확인 합니다.

끝으로, 생성된 "a.out" 파일을 실행해서 화면에 "hello"가 출력되는지 확인합니다.
참고로, "a.out" 이라고 입력하면 보안상 현재 폴더는 검색에서 제외되기 때문에
현재 폴더에 있는 a.out 을 실행하라는 의미에서 "./a.out" 으로 입력해야지만 실행됩니다.^^

지금까지의 모든 과정을 제대로 따라서 하셨다면 워낙 간단하고 쉬운 내용들이라
에러가 나고 싶어도 에러를 만나기 힘들거라 봅니다.ㅜㅜ;;;

C언어의 기초및 세부 내용은 아래 강좌를 참고 하시기 바랍니다.


7. WiringPi 설치
이제 험난한 과정도 다 끝나고 마지막으로 WiringPi의 설치만 남았습니다.^^
rover5의 경우 기존 C 샘플 코드를 봐서는 WiringPi를 이용해서 진행 될 거라 생각되기 때문에
아래 강좌를 참고 하셔서 wiringpi를 설치 하시기 바랍니다.

라즈베리파이 GPIO 강좌 : 04. Output 테스트 (LED 출력, C언어) - http://cafe.naver.com/openrt/228

해당 강좌로 이동하는 귀차니즘을 위해 간단히 설치 명령어만 옮겨 봅니다.

>sudo apt-get update
>sudo apt-get upgrade
>sudo apt-get install git-core
>git clone git://git.drogon.net/wiringPi


정상적인 경우 위 처럼 진행되며 설치가 진행 될 것입니다. ( 2013-12-01 03:08 기준 )


잠시 후 위 그림처럼 "All Done."이 표시되면 설치가 끝난것입니다.
wiringPi의 사용이 필요 한 경우 컴파일 할 때 "-lwiringPiDev" 옵션을 주시면 됩니다.

정상적으로 설치되었는지 확인하기 위해 "gpio -v" 명령을 실행하면 위와 비슷한 화면이 나올 것 입니다.


"gpio readall" 명령어로 전체 상태를 확인 가능 합니다.

여기까지가 라즈베리 파이를 갖고 계신 분들이 하실 수 있는 최소한의 환경입니다.^^
이후의 과정은 각자의 보유 환경이 다르기 때문에 [참고자료]에 있는
기존 강좌들을 참고하셔서 적절히 테스트 및 기초 내용들을 이해 하시기 바랍니다.


8. 샘플 예제 실행
rover5를 받으신 분들이나 관련 플젝을 고려 중이신 분들은 아래 내용들도 참고 하시기 바랍니다.
일부 내용은 smbd(Smart Robot Board)가 없으면 테스트가 안되는게 있으니...
해당 보드가 없는 분들은 라즈베리 파이의 GPIO를 활용하시거나 아두이노 등을 적절히 활용하세요.^^

관련 부분에 대해 도움을 드리고 싶어도 저도 관련 내용에 대한 기초가 없는데
남는 시간을 모두 글 작성하는데 할애해서 아직 테스트 해 본게 없다보니 도움을 드릴 수 있는 부분이 없군요.^^
카페에 작성된 기초 자료들이 방대하니 나머지는 각자의 몫~!!!

[Skeleton Code 04] WiringPi를 이용한 GPIO TEST

[Skeleton Code 05] WiringPi 이용 간단한 SmartRobot B'D 제어(UART)

특히 Rover5에 참여하는 분들은 아래 내용은 꼭 살펴 보시기 바랍니다.
ROVER 5에 기본적으로 올릴 것들 정리 - http://cafe.naver.com/openrt/2897
   [SRBD 응용 : GPIO-01] [Skeleton Code 05]와 연계한 GPIO 제어 - 회로도

   [SRBD 응용 : GPIO-02] [Skeleton Code 05]와 연계한 GPIO 제어 - FW        

   [SRBD 응용 : GPIO-03] [Skeleton Code 05]와 연계한 GPIO 제어 - 아두이노 


대충 이정도면 라즈베리 파이를 이용하여 개발을 시작하시는데 무리는 없으리라 보며...
인터넷 연결이 아닌 PC와 라즈베리간의 크로스 케이블을 이용한 연결 방법이 남아있군요.
관련 부분은 [참고자료]에 링크를 추가 했으며 "심해아귀"님이 크로스 케이블을 구매 하셨으니
언젠가 관련 내용을 작성 해 주실거라 믿어 봅니다.^^

글 내용 중 잘못 된 부분을 알려주시면 시간될 때 반영 하도록 하겠습니다.


[참고자료]
[2] [버섯돌이의 라즈베리 기초] 02 개발을 위한 SSH 환경 꾸미기 - http://cafe.naver.com/openrt/2944
[3] [Skeleton Code 01] printf를 이용한 hello smartrobot 화면 출력 - http://cafe.naver.com/openrt/1691
[4] 라즈베리파이 GPIO 강좌 : 01. GPIO 소개 및 핀배치 - http://cafe.naver.com/openrt/224
[5] 라즈베리파이 GPIO 강좌 : 04. Output 테스트 (LED 출력, C언어) - http://cafe.naver.com/openrt/228
[6] Wiring Pi - http://wiringpi.com
[7] [Skeleton Code 04] WiringPi를 이용한 GPIO TEST - http://cafe.naver.com/openrt/1724
[8] [Skeleton Code 05] WiringPi 이용 간단한 SmartRobot B'D 제어(UART) - http://cafe.naver.com/openrt/1726
[9] ROVER 5에 기본적으로 올릴 것들 정리http://cafe.naver.com/openrt/2897
      ROVER 5 부품 정리 - 최종 - http://cafe.naver.com/openrt/3131
      (참고:최종 문서에는 회로도와 부품 구매 링크가 있고 그 이전 글에는 강좌등의 링크가 있습니다.^^)
[A] Raspberry Pi Remote Connections – Without A Network!
[B] Log into Raspberry Pi using Ethernet / Crossover cable ‘painlessly’

End.

written by 버섯돌이

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리 3.0 Unported 라이선스에 따라 이용할 수 있습니다.