Home » 산딸기 가지고 놀기 » 산딸기 GPIO » GPIO 활용강좌 » 라즈베리파이 GPIO 활용강좌 : 라즈베리파이로 멀티두이노(Atmega328) 만들기

라즈베리파이로 멀티두이노(Atmega328) 만들기

안녕하세요 산딸기마을 이장 나무꾼 입니다.

최근 라즈베리파이에 취약점인 모터 부분을 다루면서 dc motor 까지는 별도의 MCU가 없이 잘 제어를 하였지만, 서보 모터를 다루기 시작하면서부터 MCU의 필요성을 느끼게 되었다.

아래 [사진1]은 아두이노 우노가 라이트 된 Atmega328 cheap을 이용해 파이에서 SPI + 시리얼 통신을 이용하여 Atmega328을 적용한 사례이다.

sok4JcHLQVVW0TyxF5_GZJg
[사진1] Artmega328 + RPi 결합도

 

 

자 그럼 이제부터 나무꾼과 함께 파이와 Atmega328이 결합된 Piduino를 제작하고 사용 해 보도록 하자.

 

0. 라즈베리파이 와 Atmel328 결선도

 

위 [사진1]에는 제외가 되어 있지만, [그림1] 에서와 같이 22pF x 2 개를 캐패시터를 추가해 안전하게 PiDuino를 제작해 보도록 하자

piduino2piduino2

[그림1] Piduino 결선도

1. 라즈베리파이에서 Arduino IDE 사용하기

 

이미 GPS 및 알피노 관련 포스트를 통해 경험을 한 사례에서 보았듯이 라즈베리파이에서 시리얼 통신을 하기 위해선 /boot/cmdline.txt 와 /etc/inittab 파일을 수정해 주어야만 Arduino IDE 사용이 가능하다.

 

1-1. /boot/cmdline.txt 수정

 

“/boot/cmdline.txt” 파일 내용을 모두 교체 해 주도록 하자.

 

pi@openmake ~ $ sudo nano /boot/cmdline.txt

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

위 원본을 아래와 같이 “console=ttyAMA0,115200 kgdboc=ttyAMA0,115200” 내용을 삭제 하도록 하자

dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

1-2. /etc/inittab 수정하기

 

“/etc/inittab” 파일 내용 중 아래 ttyAMA0 항목 찾아 통신이 가능하도록 주석처리를 하자.

 

pi@openmake ~ $ sudo nano /etc/inittab

#To:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

 

1-3. /etc/udev/rules.d 작성

 

위 내용 처럼 시리얼 포트를 사용 할 수 있도록 설정을 했다고 하여 라즈베리 파이에서 알피노 처럼 바로 Arduino IDE를 사용할 수 있는 것은 아니다.

마지막으로 절차로 “/etc/udev/rules.d/85-paperduinopi.rules” 파일에 아래 내용을 추가하고 리부팅 후부터 비로소 Arduino IDE 사용이 가능 해 진다.

 

pi@openmake ~ $ sudo nano /etc/udev/rules.d/85-paperduinopi.rules

KERNEL==“ttyAMA0”, SYMLINK+=“ttyS0”,GROUP=“dialout”,MODE:=0666

 

1-4. avrdude 다운로드 및 실행권한 부여

pi@openmake ~ $ wget http://project-downloads.drogon.net/gertboard/avrdude_5.10-4_armhf.deb

–2013-11-06 17:47:11–  http://project-downloads.drogon.net/gertboard/avrdude_5.10-4_armhf.deb

Resolving project-downloads.drogon.net (project-downloads.drogon.net)… 195.10.226.169, 2a00:ce0:2:feed:beef:cafe:0:4

Connecting to project-downloads.drogon.net (project-downloads.drogon.net)|195.10.226.169|:80… connected.

HTTP request sent, awaiting response… 200 OK

Length: 202814 (198K) [application/x-debian-package]

Saving to: `avrdude_5.10-4_armhf.deb’

100%[======================================>] 202,814      123K/s   in 1.6s

2013-11-06 17:47:14 (123 KB/s) – `avrdude_5.10-4_armhf.deb’ saved [202814/202814

 

pi@openmake ~ $ sudo dpkg -i avrdude_5.10-4_armhf.deb

Selecting previously unselected package avrdude.

(Reading database … 80739 files and directories currently installed.)

Unpacking avrdude (from avrdude_5.10-4_armhf.deb) …

Setting up avrdude (1:5.10-4) …

Processing triggers for man-db …

pi@openmake ~ $ sudo chmod 4755 /usr/bin/avrdude

 

1-5. Arduino IDE 설치

 

pi@openmake ~ $ sudo apt-get install arduino arduino-mk

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following extra packages will be installed:

arduino-core avr-libc avrdude binutils-avr extra-xdg-menus gcc-avr libftdi1

libjna-java librxtx-java

Suggested packages:

arduino-mk avrdude-doc task-c-devel gcc-doc gcc-4.2 libjna-java-doc

The following NEW packages will be installed:

arduino arduino-core avr-libc avrdude binutils-avr extra-xdg-menus gcc-avr

libftdi1 libjna-java librxtx-java

0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.

Need to get 24.7 MB of archives.

After this operation, 81.6 MB of additional disk space will be used.

Do you want to continue [Y/n]? y

 

1-6. Arduino IDE 환경설정

pi@openmake ~ $ wget http://project-downloads.drogon.net/gertboard/setup.sh

–2013-11-06 15:29:26–  http://project-downloads.drogon.net/gertboard/setup.sh

Resolving project-downloads.drogon.net (project-downloads.drogon.net)… 195.10.226.169, 2a00:ce0:2:feed:beef:cafe:0:4

Connecting to project-downloads.drogon.net (project-downloads.drogon.net)|195.10.226.169|:80… connected.

HTTP request sent, awaiting response… 200 OK

Length: 1870 (1.8K) [application/x-sh]

Saving to: `setup.sh’

100%[======================================>] 1,870       –.-K/s   in 0s

2013-11-06 15:29:26 (20.0 MB/s) – `setup.sh’ saved [1870/1870]

pi@openmake ~ $ sudo chmod +x setup.sh
pi@openmake ~ $ sudo ./setup.sh

Setting up Raspberry Pi to make it work with the Gertboard

and the ATmega chip on-board with the Arduino IDE.

Checking …

 Avrdude: OK

 Arduino IDE: OK

Fetching files:

 boards.txt

 programmers.txt

 avrsetup

Replacing/updating files:

inittab: OK

cmdline.txt: OK

boards.txt: OK

programmers.txt: OK

All Done.

Check and reboot now to apply changes.

 

1-7. 라즈베리파이 gpio 와 atmega328 통신 테스트

pi@openmake ~ $ sudo avrdude -p m328p -c gpio

 

1-8-1. 아두이노 스케치 사용하기

pi@openmake ~ $ sudo arduino

1-8-2. 아두이노 스케치 보드 및 프로그래머 설정

1-8-3. 아두이노 컴파일 및 업로드

arduino

산딸기마을 포스트 검색

공동제작 공동프로젝트 무상후원 기관

산딸기마을 기부하기

산딸기마을 방문자 현황

Flags Countries Visits Page views
South Korea 626063 1845660
United States 10882 26091
Japan 5011 13204
Germany 2755 5151
India 1897 2902
Canada 1729 4640
United Kingdom 1596 2642
Australia 1240 2901
Russia 1219 1677
China 1077 2239
Total Pageviews: 1936700