<p><span style="color: #404040; font-family: 굴림;">라즈베리파이와&nbsp; 아두이노 사이의 통신에는 SPI, I2C , UART 등을 사용할수 있습니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">그중에 제일 만만한? UART(Serial) 을 테스트 해보았습니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">같은 전압의 IO핀을 사용하면 바로 결선해서 사용하면 간단해 지겠지만 아두이노의 입출력 핀 전압 5V 와 라즈베리파이의 GPIO 의 입출력 핀전압 3.3V 의 차이 때문에 직접적인 결선은 문제가 있어서 회로구성이 불가피 해집니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">UART 통신하는 회로의 구성에도 여러가지가 있습니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">MOSFET 과 저항으로 구성되는 방법 과 아두이노와 라즈베리파이 사이를 USB케이블로 연결하는 방법 그리고&nbsp; 높은 레벨의 Logic 신호를 낮은 레벨의 Logic으로 바꿔주는 Logic IC를 사용 하는 방법등이 있습니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">USB케이블은 따로 사용해야 하므로 제외하고 가격면이나 회로구성이 조금이나마 단순해 지는 Logic IC를 사용 하겠습니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">제가 사용한 Logic IC 는 국내쇼핑몰 등에서 구입하기 쉬운 74HC4050 입니다. 74HC4049 를 사용해도 무관 합니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">&nbsp;&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">라즈베리 파이의 UART 설정 수정&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">라즈베리 파이는 기본적으로 115200 의 uart로 콘솔에 접속 하도록 되어 있습니다. 따라서 아두이노와&nbsp; minicom등 을 사용하여 시리얼에 바로 연결하게 되면 정상적으로 작동하지 않습니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">/boot/cmdline.txt&nbsp; 파일과&nbsp; /etc/inittab 을 수정하여 콘솔역할을 제거하여 시리얼 연결로만 작동하도록 수정해줄 필요가 있습니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">&nbsp;&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">우선 cmdline.txt 를 수정합니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">Shell&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">$ sudo nano /boot/cmdline.txt&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">1&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">$ sudo nano /boot/cmdline.txt&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">다음 내용을 찾아서 붉은 글씨 부분을 제거 합니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">/boot/cmdline.txt&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">1&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">&nbsp;&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">다음으로 inittab 을 수정합니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">Shell&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">$ sudo nano /etc/inittab&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">1&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">$ sudo nano /etc/inittab&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 를 찾아서 주석처리를 해주면 됩니다.&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">/boot/cmdline.txt&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">1&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100&nbsp;</span><br style="color: #404040; font-family: 굴림;" /><span style="color: #404040; font-family: 굴림;">수정 후 리부팅을 해주면 콘솔역할을 막아주는 작업은끝이 납니다.</span></p>