3장 라즈베리 파이와 gpio
TRANSCRIPT
1
3장 라즈베리 파이와 GPIO
사물인터넷을 위한 리눅스 프로그래밍
서영진
valen&[email protected]
h/p://valen&s.pe.kr
GE&T9Solu&ons9대표이사
2
Contents• GPIO의 개요
• LED 제어 프로그래밍
• wiringPi를 이용한 GPIO 프로그래밍
• 스위치와 센서를 이용한 입출력
3
GPIO(General Purpose I/O)
• ���i�jX�w�iq�s��rbK�n��3W�u�F�9v
– �"'b��µxb�ą���ąĘ¬�í¢�ãùqS�ą¸
– �"�!���Ý�æÜ�ßø�Ø�Ôĕ�ĊĆ���xï¡��ćÛ\�½oÛ_�K×�£p�Þ¡sp�¶µă�Ƭ�Ï¥�ēpÓÄÚ�ÉNØ�ÔĘ�§Ð
• B}UM��r5�jX��>meiq�s��rbH�����K�{0�
– xï¡��ćÛb��$��Z������� ������ �Ø��"'��§Ð
– �$�×�������,<*5+-,��1+86+65:8633-8��;9��8+01:-+:;8-�xb��µ��;9���ąĘ�Ï¥�ãùqS�Él
– xï¡��ćÛƬ��"�!b�����Ú�%6��Ĉ�Ĉ}�7-8170-8*3�Æ�ÉN
– �����¦�Iñ�°¬���å���Ā�K×�Ç÷ÆÛĀ��lâ¶ýZ�ÔĘ�§Ð
4
라즈베리 파이의 GPIO
• P<g�@B\�9vaq��r���\H,q���^�{0– �j�����xï¡��ćÛ����b��LÚ�eá�Æ���LÚ��"�!�ĊĆF�êR– �j���Æb���L�eáÆ���LÚ��"�!�ĊĆF�êR
5
하드웨어의 스케치와 fritzing
• �$�&*�!�����>meq�h/p�b���3�n��[l�5�=1– ½oÛ_\�xï¡��ćÛ��ÜĂÚ�H��Ë�£p�K×�dÃĕ�ËĐ�±µ�ēpÓÄ��ñÒ
– #:��mÄàZ�t�Æ�ÕkÑ���aµ����!%�)�K×�dÃĕ�đ{Č�ñÒ– ĝ������W�¤Ö�»�¹ê�ēpÓÄÚ��ù��£d��ěēM�k·ĚĖ�²�àP��êèØ����ć¾�Fc
– 0::7�.81:@15/�68/,6=536*,
6
Contents• GPIO의 개요
• LED 제어 프로그래밍
• wiringPi를 이용한 GPIO 프로그래밍
• 스위치와 센서를 이용한 입출력
7
GPIO와 외부연결
• 8d��yv�X������&$"!��%� " #"!�!&�
– xï¡��ćÛÚ��"�!Æ�������Ā��¦�Iñ�ëk��ĊĄ�ñµĆ���Ìk��Á���æÏ�rÚ�dÃĕ�°¬qØ�§Ð
– °¬q�ÏÆk�åė��üi¬��dÛËp��ĆzñµĀ�����K×�dÃĕ�¥ĎqÛ�ìä
– Û�õƬb������åė��ĆzñµĀ��¦�Iñ�°¬���Ā�rÚ�çá�¥ĎØ�§Ð
8
GPIO와 LED
• YD>V>��$�����"�$��– ]uÅÛ�åėÛ\�üi¬�K×�çá¥ĎqØ�ÉN– åėÚ�d��VZÆ��b�È|�LÚ�U���63-�Ø�FñP�àÖ���¿óƬ�ĕ�xܼ�ÉNmÄ�àĬ�¥ĎØ��ùēP�āµĆēZ�ĉ�
– ÃÊÆ�àb�çÒ×�Ô½y��Ý���ç¥�ÉNmÄ�àP��îG�Æb�¥Ď��ù��ÔĘ��L¼�ºÖ��Ý���ÉN
• YD>V>K�rl�\����K�S��– ����Î���E�åė�ē\���"�!�����ĒS�� ��Ē�ÉN
– �����1/0:��41::15/��16,-���T�dÛËp�b�¦Ø��¨ēb�çá±á��X¯Ø�FñP�àd�
– d���p�F�[�óÛ�ÃX�����56,-�S�ò×�óÛ�ÙX�����*:06,-�
9
저항(Resistor)
• yIq��Lp�{e�3�n��3W�`v– Í�!04�Ú� ú���(�çÁ������ç���D�$�åė�
– åėÚ�J���åėÆ�č¶n�ªw��p����L�vb��LÚ�ªw
– ªw����A LÚ�wF�³á����Ú�êQ²���Ëô��Ô
10
echo 명령어와 LED의 점멸
• ������{eK�n��3Wx�?Qrb��tH��%)%����%%��#�"K�[l– -+06���Ä��§Ðʬ�ēpÓÄ��êÄ����"�!�����ĒØ�§Ð– 9?9+3*99/716->768:Æ�B��CØ�ø�ē��Ęf�ċh�«¯– <*3;-�ćÝ��B�C�65�S�BC�6..�Ø�ø�ʬ�����è�Ø�êÄ– �"�!Ú�§Ð�Ğ�9?9+3*99/716;5->768:�ćÝØ�ÛÐĘ�§Ðĕ�Ē�Ęê
• ��$��&�"!��t��������p��F�P>�A5�uF�P>H�]z�– ���\��ĀÎ�K×�Â÷ÆÛĀ��+:;*:68�Ü�OÑÆb��"�!��ø��6;:���p– µÔù\�°¬ö~�JØ��½qÛb�OÑÆb�ß��15���p
11
gpio 명령어
• �#�"�OGe5�$""&�2�r�c7:B=�[l– =1815/"1��®ùē��§Ð�Fc
– 9?9.9Ú�9?9+3*99/716�ćÝ�¶µăÚ�§Ðk�ñÒ
12
Contents• GPIO의 개요
• LED 제어 프로그래밍
• wiringPi를 이용한 GPIO 프로그래밍
• 스위치와 센서를 이용한 입출력
13
wiringPi
• B}UM��rg\�[l�5�� ������ ���q������[lp�n�� �fe�BrYCM– xï¡��ćÛÚ��"�!Æ�£d�GeēM�éY– £d�´M�ēpÓÄ�êÄ��Ôĕ�ď�Wy��Fc
• ]��EN���&���~+��k– Ā�^Ø�ÛÐʬ�GeēM�®ù
14
wiringPi를 이용한 LED 제어
• (�$�!�����&'#�����aH�(�$�!����BrYCM��3�
digitalRead( ) 함수 / digitalWrite( ) 함수 analogRead( ) 함수 / analogWrite( ) 함수pwmWrite( ) 함수delay( ) / delayMicroseconds( ) 함수
15
wiringPi의 핀 번호
• tR�B}UM��rq���T�i5�8J���T��[l
– ��/716�8-*,*33
16
Contents• GPIO의 개요
• LED 제어 프로그래밍
• wiringPi를 이용한 GPIO 프로그래밍
• 스위치와 센서를 이용한 입출력
17
스위치의 사용(1)
• bn���(�&���4�_\�.o�;r�q�uF=�+6
– ÿ�µÔù�&*+2�%=1:+0����µÔù��`�ñ�À×�©þÛ��65��`��©þÛ��6..��lâ�ę×��g����L¼�ĕ�ºÖ��§Ð
18
스위치의 사용(2)
• �������T��o�(�$�!���g\��T
19
조도 센서의 사용(1)
• |=�_\���Z-~�_\
– ĜĚûp���,%�×�¦Û�qÄË��åėÛ�I±ēP�¦Û�ÅÖ��åėÛ�ðFēb�ĚĔ�
20
조도 센서의 사용(2)
21
Q & A
•The9End
감사합니다.