로봇을 위한 Go 프로그래밍, 한발 더 들어가기

 

Go 프로그래밍을 위한 Sublime 플러그인 설치

Go 프로그래밍 들이대기

Go 프로그래밍 라이브러리 만들기

로봇을 위한 Go 프레임워크 Gobot

 

 

Go Robot Framework, Gobot - GPIO Button

이제 한걸은 더 들어갑니다. 간단한 예제 이지만 Gobot 프레임워크를 이해하는데 도움이 될것입니다.

이번에는 가장 기초적이지만 중요한 버튼 콤포넌트를 사용해 보는 예제입니다.

 

위에있는 링크에서 필요한 파일들을 설치하고 준비를 합니다.

 

현재, 시스템에 Go 언어가 설치되어 있고 경로도 설정되어 있습니다.

지난번에 Gobot 에서 필요한 라이브러리와 예제 소스도 받았습니다.

 

저의 경우는 아래 경로에 예제 파일들이 다운로드 되어 있습니다.

~/Developments/Go/workspace/src/github.com/hybridgroup/gobot/examples

예제 디렉토리로 이동합니다.

Firmata 올리기 

DFRobot 의 비기너 키트의 보드에 firmata 를 올립니다.

지난번에 올린 상태라면 그 대로 사용하셔도 좋고 아니면 다시 올립니다.

decsers:~/Developments/Go/workspace/src/github.com/hybridgroup/gobot/examples (master) $ gort scan serial
/dev/cu.Bluetooth-Incoming-Port /dev/tty.Bluetooth-Incoming-Port
/dev/cu.Bluetooth-Modem /dev/tty.Bluetooth-Modem
/dev/cu.HojuniPhone-WirelessiAP /dev/tty.HojuniPhone-WirelessiAP
/dev/cu.JunoiPhone6-WirelessiAP /dev/tty.JunoiPhone6-WirelessiAP
/dev/cu.usbmodem1421 /dev/tty.usbmodem1421

위에서 처럼 일단 시리얼 포트를 확인합니다.

시리얼 포트의 이름은 사용하는 아두이노마다 약간씩 다를 수 있습니다.

위에서는 /dev/tty.usbmodem421 입니다.

 

이제 gort arduino upload firmata 명령으로  firmata를 올립니다.
decsers:~/Developments/Go/workspace/src/github.com/hybridgroup/gobot/examples (master) $ gort arduino upload firmata '/dev/tty.usbmodem1421'

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: reading input file "/var/folders/rp/xxhqgy6134z_mhvsq_p7z95r0000gn/T/498069072"
avrdude: writing flash (11452 bytes):

Writing | ################################################## | 100% 1.84s

avrdude: 11452 bytes of flash written
avrdude: verifying flash memory against /var/folders/rp/xxhqgy6134z_mhvsq_p7z95r0000gn/T/498069072:
avrdude: load data flash data from input file /var/folders/rp/xxhqgy6134z_mhvsq_p7z95r0000gn/T/498069072:
avrdude: input file /var/folders/rp/xxhqgy6134z_mhvsq_p7z95r0000gn/T/498069072 contains 11452 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.47s

avrdude: verifying ...
avrdude: 11452 bytes of flash verified

이렇게 firmata 가 올려지면 준비는 끝났습니다.

 

 

 

 

소스의 시리얼 포트 수정하기

 

이제 예제 디록토리로 이동하여 에디터로 소스를 읽어옵니다.

sublime 을 사용하신다면 sublime . 을 입력하시면 됩니다.

포트를 찾아서 현재 포트로 수정해줍니다.

여기에서는 /dev/cu.usbmodem421 로 수정했습니다.

 

스크린샷 2015-07-06 오후 5.09.06

 

 

 

 

아두이노 구성하기 

 

이제 아두이노와 프로토타입 쉴드와 버튼과 저항을 준비합니다.

IMG_0038

구성은 버튼을 눌렀을때 13번 LED를 켜고 버튼이 놓으면 꺼지는 구조입니다.

따라서 버튼에 저항을 연결하고 저항을 그라운드에 연결합니다.

다른쪽은 5V 를 걸어줍니다.

 

그라운드에 연결된 반대쪽에서 신호를 체크합니다. 디지털 2번핀으로 연결합니다.

이제 2번 핀에서 버튼의 이벤트를 받을 수 있습니다.

 

버튼이 눌리면 Push 이벤트를, 놓으면 Release 이벤트를 받습니다.

 

work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
led.On()
})
gobot.On(button.Event("release"), func(data interface{}) {
led.Off()
})
}

 

 

 

실행하기 
이제 아두이노의 파워를 뺐다가 다시 넣어줍니다.

그리고 예제 파일을 실행합니다.

go run firmata_button.go

스크린샷 2015-07-01 오전 11.23.11

이제 버튼을 누르면 13번 Led  켜지고 놓으면 꺼집니다.

동작영상 

 

 

 

 




관련상품 : DFRobot 비기너 키트 

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005605397&catg_code=101141152


 

로봇을 위한 Go 프로그래밍 맛보기

 

Go 프로그래밍을 위한 Sublime 플러그인 설치

Go 프로그래밍 들이대기

Go 프로그래밍 라이브러리 만들기

 

위에서 Go 프로그래밍에 대한 준비를 끝냈다면 로봇을 만들기 위한 Go 언어 프레임워크인 Gobot을 사용해 보도록 합니다.

시작하기

고봇(Gobot)은 로봇을 위한 재미있고 즐거운 Go 프레임워크입니다.

시작하기 위해서 먼저 필요한것들을 설치합니다.

콘솔에서 아래와 같이 명령합니다.

go get -d -u github.com/hybridgroup/gobot/...

필요한 파일들이 다운로드 됩니다.

 

지원 하드웨어 플랫폼

Gobot  이 지원하는 하드웨어 플랫폼은  현재  15개입니다.

스크린샷 2015-07-01 오전 10.56.22

 

오리지널 참고 사이트는 아래입니다.

http://gobot.io/

 

대부분의 하드웨어 플랫폼을 지원하며 특히 아두이노와 에디슨, 비글, 디지스파크, 라즈베리등이 눈에 들어옵니다. 우리의 최대 관심 플랫폼인 아두이노는 당연 지원합니다.

 

Gort 로 firmata 업로드 하기

gort 가 설치가 되어 있지 않다면 cylon 들이대기  에서 참고하여 gort 를 설치합니다.

gort  가 설치되었으면 gort scan serial 명령으로 연결된 아두이노의 포트를 확인합니다.

포트가 확인되었다면 firmata를 업로드합니다.

콘솔을 새로 열고

스크린샷 2015-07-01 오전 11.17.04

 

아래와 같이 입력하면 아두이노에 firmata 를 업로드합니다.

gort arduino upload firmata '/dev/tty.wch ch341 USB=>RS232 1420'

 

Go 프로그램 실행하기

예제는

$GOPATH/src/github.com/hybridgroup/gobot/examples 에 다운로드되어 있습니다.

Sublime 으로 읽어와서 포트를  수정해줍니다.

스크린샷 2015-07-01 오전 11.21.14

gort scan serial 에서 확인한 포트중에 cu..포트를 찾아서 그 이름으로 바꿔 줍니다.

그리고

프로그램을 실행합니다.

go run firmata_blink.go

스크린샷 2015-07-01 오전 11.23.11

이제 Go 프로그램은 아두이노의 13번 LED를 1초마다 켯다 껏다를 반복합니다.

아두이노의 Blink 와 같은 동작을 하는것입니다.

이렇게 로봇을 위한 Go 프로그래밍이 시작되었습니다.^^

 

Gobot 사이트는 아래에 있습니다.

http://gobot.io/

 

관련상품 소개

http://www.icbanq.com/shop/product_detail.asp?prod_code=P005670094&catg_code=<ype=S

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 아이씨뱅큐의 지원을 받아 작성되었습니다]