뻔뻔한아두이노매뉴얼 Ver. 1 메카솔루션 ( 뻔뻔한아두이노 예제 1. [ 시작하기 ] 아두이노소프트웨어설치및브레드보드이용하기 2. [ 출력1] LED 깜빡이기 3. [ 출력2] 시리얼모니터에텍스트출력하기 4. [ 출력3] PWM

Size: px
Start display at page:

Download "뻔뻔한아두이노매뉴얼 Ver. 1 메카솔루션 ( 뻔뻔한아두이노 예제 1. [ 시작하기 ] 아두이노소프트웨어설치및브레드보드이용하기 2. [ 출력1] LED 깜빡이기 3. [ 출력2] 시리얼모니터에텍스트출력하기 4. [ 출력3] PWM"

Transcription

1 뻔뻔한아두이노 예제 1. [ 시작하기 ] 아두이노소프트웨어설치및브레드보드이용하기 2. [ 출력1] LED 깜빡이기 3. [ 출력2] 시리얼모니터에텍스트출력하기 4. [ 출력3] PWM을이용한 LED 밝기조절 5. [ 출력4] 여러개 LED 동시에제어하기 6. [ 출력5] 쉬프트레지스터 (74HC595) 7. [ 출력6] 서보모터구동하기 8. [ 출력7] H-Bridge를이용한 DC 모터방향제어하기 9. [ 입력1] 키보드로문자입력받아아두이노에전송하기 10. [ 입력2] 스위치사용하여 LED 컨트롤 11. [ 입력3] 근접물체감지하기 (QRD1114) 12. [ 입력4] 온도센서로온도감지하기 (TMP36) 13. [ 입력5] MPU-6050 이용각속도 / 가속도 / 온도측정하기 14. [ 입력6] Flex 센서를이용한구부림측정하기 15. [ 입력7] FSR 압력센서를이용한압력측정하기 16. [ 응용1] 밝기에따른 DC 모터속도제어 17. [ 응용2] 장애물감지후모터의방향제어 18. [ 응용3] 손가락으로모터제어하기 19. [ 응용4] 압력에따른 LED의밝기제어 1

2 20. [ 응용 5] 키보드로모터방향제어하기 21. [ 응용 6] Visual Studio Express C# 와아두이노인터페이스 22. [ 응용 7] 매틀랩을이용한센서값디스플레이 2

3 1. [ 시작하기 ] 아두이노소프트웨어설치및브레드보드이용하기 1) 아두이노소프트웨어다운로드 아두이노소프트웨어는일반적으로스케치라고부르며이스케치는 arduino.cc/en/main/software 에서다운로드받으실수있다. 주소창에위의주소를입력하면다음과같이다운로드페이지가열린다. Windows, Mac OS X, Linux 등의플랫폼에맞는스케치를다운로드받을수있으며, 이번매뉴얼은많은분들이사용하시는윈도우를기반으로작성되었기에윈도우용스케치를다운받겠다. 아두이노스케치다운로드페이지 사용하는 OS가윈도우가아니면, 위에서사용할플랫폼에맞게다운로드받을수있다. 그리고다운로드받은플랫폼은저장하고싶은위치에저장하면된다. 아두이노스케치는별도의설치가필요없으며, 다음의아두이노아이콘을이용하여소프트웨어를실행할수있다. Mac을사용한다면, 아두이노다운로드는디스크이미지 (.dmg) 로제공되며, 다운로드가완료된후파일을두번클릭하면이미지가마운트된다. 리눅스는리눅스버전에따라달라지기때문에자세한정보는아두이노위키 ( 를참조하거나메카솔루션의기술상담게시판을이용할수있다. 다운로드및설치가끝나고폴더를열어서아두이노아이콘을더블클릭하면다음과같이스케치가열리며처음에는시간이약간걸릴수있기때문에기다리도록하자. 3

4 아두이노실행폴더 : 위의아이콘을더블클릭하면아두이노스케치가열린다. 아두이노스케치초기화면 4

5 아두이노소프트웨어를오픈하였을때보이는창이다. 현재, 아두이노는 Arduino Pro Mini로설정되어있고, 시리얼포트는 COM5 설정되어있음이오른쪽하단에표기되어있다. 우리가사용할아두이노우노와적합한시리얼포트를설정하기위해아두이노우노드라이버가잘설치되었는지확인한다. 2) USB 로아두이노와컴퓨터연결 만약, USB를이용하여아두이노에연결하기전과연결한후의시리얼포트인식변화가없다면, 아두이노의드라이버가설치되어있지않은것이다. 아두이노소프트웨어에서도구 > 시리얼포트를클릭한다. 만약, 회색톤으로시리얼포트가활성화되어있지않다면, 아두이노드라이버가연결되어있지않은것이다. 또한, USB를꼽았다가빼었다를하면서시리얼포트에변화가없다면이또한, 아두이노드라이버를인식하지못한것이기때문에, 아두이노드라이버를매뉴얼로설정해준다. 시리얼포트가설정되지않은상황 : 드라이버를설치해야한다. 3) 드라이버설치 장치관리자에들어가기위해왼쪽아래에있는실행버튼을누르고프로그램및파일검색이라는조그만검색창에 devmgmt.msc 를입력하고검색한다. 그럼, 다음과같은장치관리자가나타나게된다. 혹은시작버튼 제어판 시스템및보안 시스템 장치관리자를이용해서 5

6 장치관리자에접근할수있다. 장치관리자가열리면다음과같이느낌표로드라이버설치를 요구하는아두이노를발견할수있고, 오른쪽마우스버튼을클릭하여드라이버소프트웨어 업데이트를클릭한다. 장치관리자화면과아두이노소프트웨어업데이트 드라이버소프트웨어업데이트 : 수동으로업데이트하기 그후, 컴퓨터에서드라이버소프트웨어찾아보기를클릭하여수동으로검색을한다. 찾아보기를클릭하여압축을푼아두이노폴더에들어가서 drivers라는폴더를지정한다. 그리고다음버튼을누르면드라이버가설치됩다. 가령 C:\Arduino에다운받은아두이노를압축풀었다면 C:\Arduino\arduino-1.0.3\drivers까지설정하고설치를하면된다. 설치가되지않으면메카솔루션의기술상담으로문의할수있다. 4) 아두이노보드와시리얼포트설정 6

7 설치된아두이노에몇번의시리얼 (COM 포트 ) 이입력되어있는지확인하기위해서 USB 를끼웠다 빼었다하면도구 시리얼포트에변화가생기는것을볼수있다. 변화가있는시리얼포트가 현재연결되어있는아두이노의시리얼포트입니다. 시리얼포트를클릭하여설정한다. 5) 브레드보드와익숙해지기. 일명빵판이라불리우는브레드보드는납땜없이테스팅을하기위해만들어져있다. 일반적인브레드보드는다음과같이연결되어있다. 브레드보드정면과내부케리커처 ( 출처 : SIK GUIDE, Sparkfun) 양쪽끝에있는파란색, 그리고빨간색의세로열은하나로연결되어있어서, VCC 및 GND 로 사용되고, 가로열은일반적으로 5-6 개의핀을하나로연결시킴으로서 5-6 개의핀에연결된 케이블및핀들이동일한신호를공유할수있도록해준다. 6) 프로그램을아두이노에업로드 앞으로설명될예제및여러분들이작성한프로그램들은다음과같은절차를거쳐아두이노 보드에업로드된다. 먼저, 1) 프로그램을작성혹은다운받고, 2) 프로그램을확인 (Verify) 를한 후, 3) 프로그램을업로드 (Upload) 한다. 이세단계가아두이노에서가장중요한스텝이다. 7

8 2. [ 출력 1] LED 깜빡이기 가장기본적인출력이면서동시에아두이노가제대로동작하는지를확인할수있다. 아두이노 우노는 13 번핀이 LED 에연결되어있는채출고되기때문에별다른연결없이 USB 케이블과 아두이노만으로 LED 깜빡이기예제를수행할수있다. 준비물 : 아두이노우노, USB 케이블 따라하기 : USB 를이용하여아두이노와컴퓨터의 USB 포트를연결하기. 아두이노소프트웨어의파일 예제 Basics Blink 를클릭. LED 깜빡이는예제가다음과같이열린다. 첫번째부분은변수선언파트로 13 번핀을 led 로사용하겠다는의미이며, 두번째 void setup() 는 아두이노에전원이공급되면한번실행되는메소드이며핀에대한입출력설정및시리얼함수 8

9 초기화등을한다. pinmode(led, OUTPUT) 이라는커맨드는 led 를출력으로사용하겠다는의미이다. 여기서 led 는핀번호를의미하기때문에 13 번핀을출력으로설정이라고생각하면된다. 그리고세번째 void loop() 는아두이노에전원이들어온후꺼질때까지계속반복해서실행되는메소드이며위의소스를보면 digitalwrite(led, HIGH) 라는커맨드에서 led(13번핀 ) 에출력을 HIGH(5V) 로출력하여 LED를켜고 delay(1000) 이라는함수로 1000ms(1초 ) 동안켠상태를유지한다. 그리고다시 digitalwrite(led, LOW) 라는커맨드로 led에출력을 LOW(0V) 로하여 LED를끄고 delay(1000) 이라는함수로 1000ms(1초 ) 동안끈상태를유지한다. 결과적으로 void loop() 는 LED가 1초에한번씩꺼졌다켜졌다를반복하는깜빡이는동작을하게한다. 왼쪽상단의확인 (Verify) 버튼을누른후, 완료가되면업로드버튼을눌러서 LED 깜빡이기프로그램을아두이노에올려보자. 확인이되었으면, delay(1000) 을 delay(100) 으로바꿔서 LED 가더빨리깜빡이는지도 확인해보자. 9

10 3. [ 출력 2] 시리얼모니터에텍스트출력하기 아두이노에는 USB 케이블을이용하여간단히컴퓨터와데이터를주고받을수있다. 특히, 시리얼모니터라는기능을유용하게이용할수있는데, 간단한예제를통해서시리얼데이터를 아두이노에서컴퓨터로보내본다. 준비물 : 아두이노우노, USB 케이블 따라하기 : 앞서 LED 깜빡이기예제를수행하였다면별다른하드웨어변경은필요없다. USB 케이블을이용하여아두이노와컴퓨터를연결한다. 다음의간단한프로그램을아두이노의스케치에복사한후, 확인 ( 컴파일 ) 그리고 업로드를한다. void setup() Serial.begin(9600); // 시리얼포트를사용하겠다는선언 void loop() Serial.println("Mechasolution"); // Mechasolution이라는텍스트를줄바꾸면서출력한다. 업로드후, 스케치의오른쪽상단에있는시리얼모니터아이콘을클릭하거나, 도구- 시리얼모니터, 혹은 Ctrl+Shift+M을눌러서시리얼모니터창을띄워본다. 10

11 4. [ 출력 3] PWM 을이용한 LED 밝기조절 LED 의밝기를조절하려면어떻게해야할까. PWM(Pulse Width Modulation) 이라는것을이용하여 LED 의밝기를조절할수있다. 위의그림에서와 PWM은신호의 On/Off의비율을변경시키는방법을통해높고낮은레벨의출력을할수있도록한다. 즉, Off의비율이많으면점점흐릿해지는 LED를출력하게되고, On의비율이많으면점점밝아지는 LED 출력을하게된다. 이 PWM은아날로그출력이라는함수를사용하게되는데이출력에사용할수있는핀의개수가제한되어있다. 아두이노우노에서는 3,5,6,9,10,11번의 6개핀을사용할수있고, 디지털핀쪽의물결표시 (~) 로확인할수있다. 준비물 : 아두이노우노, USB 케이블, 브레드보드, LED, 330 옴저항, 점퍼케이블 따라하기 : LED는애노드와캐소드라는두개의리드가있는반도체장치이다. 다리가긴쪽이애노드 (+) 이고, 다리가짧은쪽이캐소드 (-) 이다. 통상적으로 LED에필요한전압은 1.8~2.3V이므로 5V에서 3V가량을전압강하해야한다. 그리고 LED가끌어쓰는전류를감안해서약 330옴의저항을연결한다. 11

12 다음의소스를스케치에복사혹은타이핑을한후확인 - 업로드를해보자. int led = 3; int brightness = 0; int increment = 1; void setup() // analogwrite을통해구동되는핀은출력으로선언하지않아도된다. void loop() if(brightness > 255) increment = -1; // 255에도달하면값은낮춘다. else if(brightness < 1) increment = 1; // 0으로떨어지면값을높인다. brightness = brightness + increment; // 밝기 (brightness) 를증가혹은감소한다. analogwrite(led, brightness); // 밝기를출력한다 delay(10); 12

13 매번 LED 의밝기가밝아졌다가어두워졌다가하는것을확인할수있다. 아날로그신호를디지털 신호로읽기위해서는 analogread() 를사용하며 0~1023(10bit) 까지의값으로변환해서읽을수 있고, 이번예제에서사용한 analogwrite() 는 0~255(8bit) 까지변환하여출력할수있다. 13

14 5. [ 출력 4] 여러개 LED 동시에제어하기 LED 를깜빡이고, PWM 을이용한밝기조절을하였다면여러개의 LED 를제어하는것은어려운 일이아니다. 이번예제를통해 8 개의 LED 를순차적으로깜빡이는것을 for 루프와배열에 대하여공부도해보도록하자. for 루프 간략하게설명을하자면여러분이어떤코드를여러번실행해야할때, 사용하는매우유용한반복문의일종이다. 배열 배열 (array) 는여러개의변수를지정할때사용하며배열의인덱스를이용하여 그값을지정할수있고배열에들어있는값을요소 (element) 라한다. 다음의예를통하여 for 루프와배열에대하여알아보자. 먼저, LED 8개를 Digital핀 2번에서 9번까지 8개를연결할것을설정하였다. 각각의 LED에대하여 ledpin1에서 ledpin8이라고설정을했다. 그리고 setup() 메소드에서이 LED들을입력이아닌출력으로사용할것을 pinmode함수를통해지정하였다. 왼쪽의코드가잘못된것은전혀아니지만, for 루프와배열을이용하여좀더컴팩트한프로그램을구현해보도록하자. 오른쪽의코드는 intledpins[] 라는배열을선언했다. 8개의숫자가 ledpins라는배열에할당이된다. 아두이노에서배열은 0번이첫번째요소를지칭한다. 따라서, int ledpins[0] = 2; int ledpins[1] = 3, 그리고, int ledpins[7] 은 9가된다. 이 8개의 LED들을 OUTPUT으로설정하기위하여 for(int i=0; i<=7; i++) 라는 for 루프문을사용한다. 이는 i라는인덱스를이용하여 0에서 7까지 i를 1씩증가시키겠다는의미이다. 따라서 for 루프가시작되는처음에는 i=0, pinmode(ledpins[0], OUPUT); i를 1씩증가시켜다음에는 i=1이되고 pinmode(ledpins[1], OUTPUT); 그리고마지막으로 i=7; pinmode(ledpins[7], OUTPUT) 이되고 for 루프문은종료된다. int ledpin1 = 2; int ledpin2 = 3; int ledpin3 = 4; int ledpin4 = 5; int ledpin5 = 6; int ledpin6 = 7; int ledpin7 = 8; int ledpin8 = 9; void setup() int ledpins[] = 2,3,4,5,6,7,8,9; void setup() for(int i = 0; i <= 7; i++) pinmode(ledpins[i],output); 14

15 pinmode(ledpin1, OUTPUT); pinmode(ledpin2, OUTPUT); pinmode(ledpin3, OUTPUT); pinmode(ledpin4, OUTPUT); pinmode(ledpin5, OUTPUT); pinmode(ledpin6, OUTPUT); pinmode(ledpin7, OUTPUT); pinmode(ledpin8, OUTPUT); 기본적으로왼쪽의코드와오른쪽의코드는같다. 하지만, 왼쪽의코드는오른쪽의코드보다 50바이트정도사이즈가더크다. 한정된메모리를사용하는아두이노인만큼최적화된프로그램을위해배열과 for 루프를적절히사용하도록하자. 본격적으로 8 개의 LED 를제어해보자. 준비물 : 아두이노우노, USB 케이블, 브레드보드, LED 8 개, 330 옴저항 8 개, 점퍼케이블 따라하기 : LED는애노드와캐소드라는두개의리드가있는반도체장치이다. 다리가긴쪽이애노드 (+) 이고, 다리가짧은쪽이캐소드 (-) 이다. 통상적으로 LED에필요한전압은 1.8~2.3V이므로 5V에서 3V가량을전압강하해야한다. 그리고 LED가끌어쓰는전류를감안해서약 330옴의저항을연결한다. 330 옴을 LED 의짧은다리와 GND 에연결한다. 그리고, LED 의다리가긴쪽을아두이노의 디지털핀 2 번에서 9 번까지연결한다. ( 다음그림에서사용된저항이미지는임의로 사용되었기때문에 330 옴 ( 주황 - 주황 - 갈색 ) 을사용한다. 주황은 3 을갈색은 0 을의미함 ) 15

16 다음의소스를스케치에복사혹은타이핑을한후확인 - 업로드를해보자. int ledpins[] = 2,3,4,5,6,7,8,9; // 8 개의 LED 를 Digital2 번부터 Digital9 번까지사용함. void setup() for(int i = 0; i <= 7; i++) pinmode(ledpins[i],output); // 8개의 LED를출력으로설정. void loop() for(int i = 0; i <= 7; i++) 16

17 digitalwrite(ledpins[i], HIGH); // D2부터 D9에연결된 LED를순차적으로켬 delay(100); // 100ms(0.1초 ) 동안기다림. for(int i = 7; i >= 0; i--) digitalwrite(ledpins[i], LOW); // D9부터 D2에연결된 LED를순차적으로끔 delay(100); // 100ms(0.1초 ) 동안기다림. 17

18 6. [ 출력 5] 쉬프트레지스터 (74HC595) 만약, 여러개의 LED를제어해야하지만그만큼의사용가능한핀들이없다면 ( 많은핀들을모터및센서에할당한경우 ), 쉬프트레지스터를이용하여다수의 LED를제어할수있다. 쉬프트레지스터는 IC(integrated circuit) 의일종으로 3개의핀을이용하여 8개의각기다른출력을할수있다. 쉬프트레지스터는많은종류가있지만, 74HC595라는칩을사용하도록하자. 다음은 74HC595칩의핀배열및논리값이다. SER, SRCLK, RCLK는 74HC595의제어인풋이며아두이노에서값을받는다. 그리고 QA~QH까지는 74HC595의출력이며최대 8개의 LED에연결이가능하다. SER은 data핀, SRCLK는 Clock, RCLK는 latch 핀으로각각아두이노의디지털핀 2,3,4번에연결할수있다. 우리가사용할아두이노의핀은 D2, D3, D4이며이들은각각 data, clock, latch 핀이된다. 이번에는 bitwrite() 와 shiftout() 이라는함수를이용하여시리얼시프트함수를작성할것이다. bitwrite(): bitwrite 는숫자를 bit 로바꾸서기록하는함수이며 bitwrite(x,n,b) 와같이 사용된다. 여기서 x 는 bit 로바꿀숫자이며 n 은기록될디지털핀, 그리고 b 는 bit 에쓸 불리언수 (0 혹은 1) 을나타낸다. ( 참고 : shiftout(): shiftout은 1byte를한번에 1bit씩밀어내는시프트출력명령입니다. shiftout(datapin, clockpin, bitorder, value) 와같이사용되며 datapin은 74HC595의 SER과연결된핀, clockpin은 SRCLK에연결된핀을지정하면된다. bitorder는 MSBFIRST (Most Significant Bit First) 혹은 LSBFIRST (Least Significant Bit First) 중선택이가능한데이는쉬프트하는방향을의미한다. 그리고 value는쉬프트출력을하려는 data이다. 준비물 : 아두이노우노, USB 케이블, 74HC595, 브레드보드, LED 8 개, 330 옴저항 8 개, 점퍼 케이블 18

19 따라하기 : 먼저 74HC595 와아두이노, 그리고 8 개의 LED 와저항들을다음에보이는회로와같이 연결한다. 다음의소스를스케치에복사혹은타이핑을한후확인 - 업로드를해보자. int datapin = 2; int clockpin = 3; int latchpin = 4; byte data = 0; void setup() 19

20 pinmode(datapin, OUTPUT); pinmode(clockpin, OUTPUT); pinmode(latchpin, OUTPUT); void loop() for(int i = 0; i <= 7; i++) shiftwrite(i, HIGH); delay(100); for(int i = 7; i >= 0; i--) shiftwrite(i, LOW); delay(100); void shiftwrite(int desiredpin, boolean desiredstate) bitwrite(data,desiredpin,desiredstate); shiftout(datapin, clockpin, MSBFIRST, data); digitalwrite(latchpin, HIGH); digitalwrite(latchpin, LOW); 20

21 7. [ 출력 6] 서보모터구동하기 우리가사용할서보모터는내부에포텐쇼미터혹은볼륨이있어서모터가어느정도회전했는지센싱하고, 모터내부에있는컨트롤러를이용하여입력받은값만큼돌려주는기능을가지고있다. 대부분의서보모터는무한회전을하지않고 180도정도회전하는데, 아두이노의 PWM을이용하여각도를컨트롤할수있다. 또한, 아두이노의 delay함수를이용하여모터의회전속도도조절할수있다. 앞에서보았던 PWM을이용하여모터를회전할수있지만, 아두이노의강점인오픈라이브러리를이용하여서보모터를쉽게컨트롤해보자. 아두이노소프트웨어를다운받으면 Servo.h라는라이브러리가함께설치된다. 따라서별도의라이브러리추가를할필요없이그대로사용하면된다. Servo.h 라이브러리는다음의함수를포함한다. servo.attach(pin): 서보모터가연결될핀을지정한다. 서보모터는 PWM 으로제어되기 때문에디지털핀중물결표시가있는핀에연결하면된다. 우노의경우 3, 5, 6, 9, 10, 11 번을사용할수있다. servo.write(angle): 회전시킬각도를입력한다. 이함수가실행되면모터는 angle 만큼 회전한다. 준비물 : 아두이노우노, USB 케이블, 서보모터, 브레드보드, 점퍼케이블 따라하기 : 서보모터는일반적으로 3 개의선을가지고있다. VCC( 빨강 ), GND( 검정혹은갈색 ), 그리고신호선 ( 노랑혹은주황 ). VCC 와 GND 를아두이노에연결하고, 신호선을디지털 9 번 핀에연결한다. 21

22 다음의소스를스케치에복사혹은타이핑을한후확인 - 업로드를해보자. #include <Servo.h> // 서보라이브러리 Servo motor1; // 서보모터오브젝트 void setup() motor1.attach(9); // 서보모터를 9번에연결 void loop() for(int position = 0; position < 180; position += 2) // 0도에서 180까지 2도씩증가 22

23 motor1.write(position); // 모터를 position 만큼회전 delay(20); // 모터가돌때까지기다림. for(int position = 180; position >= 0; position -= 2)//180도에서 0도까지 2도씩감소 motor1.write(position); // 모터를 position만큼회전 delay(20); // 모터가돌때까지기다림. 23

24 8. [ 출력 7] H-Bridge 를이용한 DC 모터방향제어하기 SN754410은쉽고편리한 IC로 DC 모터의속도와방향을컨트롤할수있게한다. 이번예제를통해쉽고간단하게 DC모터의방향을제어해보자. 또한, 본예제와가속도센서를이용해세그웨이와같은밸런스로봇도제작할수있고, 모터를이용한여러가지애플리케이션을제작할수있다. 준비물 : 아두이노우노, USB 케이블, 브레드보드, SN754410, DC 모터, 점퍼케이블 배경지식 : SN754410을이용하여한개의 DC모터를컨트롤하기위해서는 1개의 PWM, 2개의디지털아웃풋이요구된다. 1개의 PWM은스피드를컨트롤하기위함이며, 2개의디지털아웃풋은모터의방향을결정하기위함이다. 다음의 SN 칩의함수테이블을보면 A가 H(high) 일때, 아웃풋 Y는 HIGH이고, A가 L(low) 일때, 아웃풋은 L이다. 모터컨트롤러를왜사용하는가생각할수있다. 아두이노에서나오는아날로그아웃풋을이용하여컨트롤할수도있고, 혹은트랜지스터와다이오드를이용하여컨트롤할수도있다. 하지만, 모터에서사용하는전류가보통 100mA이상이므로 40mA를출력하는아두이노에직접적으로연결하는것은옳지않으며간단히모터컨트롤러칩을사용함으로써두개의모터를제어하는편리함때문에이번예제에서는트랜지스터와다이오드를이용한모터컨트롤대신 SN754410을이용한모터컨트롤을하기로했다. SN754410의핀정보를보면총 4개의인풋이있다 1A, 2A, 3A, 4A. 이 4개의인풋을이용하여두개의모터방향을결정할수있다. 즉, 1A와 2A를이용하여 1Y, 2Y의값을컨트롤하고, 3A와 4A를이용하여 3Y, 4Y를컨트롤한다. 1Y, 2Y는첫번째모터에, 그리고 3Y, 4Y는두번째모터에각각연결된다. 그리고, 1,2EN핀과 3,4EN핀에 PWM 값을입력해주면서전압에따른모터의속도컨트롤이가능하다. 24

25 SN 의핀정보및함수테이블 : 모터의출력 Y, 회로다이어그램 따라하기 : 1 개의 DC 모터를컨트롤하기위해서다음의회로를구성해보자. SN 을 브레드보드에꼽는다. 아래회로에서왼쪽에있는작은홈이있는방향이 1 번핀이 시작되는방향이다. 25

26 모터에서나오는두개의신호선은 + 혹은 에대한정의가없으니, 임의로결정을한 후에브레드보드에끼워도무방하며방향은컨트롤러에서결정할수있다. 혹은 회전하는방향에따라모터에서나오는갈색과보라색의선을바꾸어끼워도된다. 회로를구성하였으면다음의프로그램을컴파일후업로드해보자. int speedpin = 3; // SN754410의 1,2EN 핀과 PWM핀에연결하였다. 속도제어용핀 int motor1apin = 6; // 1A int motor2apin = 7; // 2A int speed_value_motor1; // 모터스피드를위한변수 void setup() pinmode(speedpin, OUTPUT); pinmode(motor1apin, OUTPUT); pinmode(motor2apin, OUTPUT); void loop() 26

27 digitalwrite(motor1apin, LOW); // 1A에 LOW digitalwrite(motor2apin, HIGH); // 2A에 HIGH speed_value_motor1 = 127; // 0~255의수중선택가능함. 0: 속도제로, 255: 최고속도. analogwrite(speedpin, speed_value_motor1); // PWM 출력을하여정한속도만큼모터회전 위의코드에서 loop() 내에있는명령문중, digitalwrite(motor1apin, LOW) 와 digitalwrite(motor2apin, HIGH) 를다음과바꾸어보자. ditialwrite(motor1apin, HIGH), digitalwrite(motor2apin, LOW). 모터가반대방향으로도는것을확인할수있다. 또한, speed_value_motor1 = 127 의값을 255 로도바꾸어보자. 모터가더빨리회전하는 것을확인할수있을것이다. 27

28 9. [ 입력 1] 키보드로문자입력받아아두이노에전송하기 키보드를이용하여로봇을제어하거나, MIDI와같은장비와의인터페이스를구현하기위해, 아두이노의 Serial.read() 함수를이용하여컴퓨터와아두이노의통신을구현할수있다. 키보드로부터키를입력받아, 아두이노의시리얼모니터링창에입력하면, 그값을아두이노에전송되고, 아두이노는다시그값을컴퓨터에보냄으로확인이가능하다. 준비물 : 아두이노우노, USB 케이블 따라하기 : USB 케이블을이용하여아두이노와컴퓨터를연결한다. 보드와시리얼포트설정을한 후다음의프로그램을업로드해본다. byte KeyInput; void setup() Serial.begin(9600); void loop() if(serial.available() > 0) KeyInput = Serial.read(); Serial.write(KeyInput); 업로드후, 시리얼모니터를열고, 키를입력한후엔터를쳐서아두이노에전송해보자. 28

29 엔터를치면, 아두이노로부터값을출력받는다. 29

30 10.[ 입력 2] 스위치사용하여 LED 컨트롤 알고리즘으로 LED 를컨트롤할수도있지만, 다양한스위치를이용하여 LED 를컨트롤할수도 있다. 스위치는버튼스위치, 토글스위치등여러가지가있지만, 기본원리는회로를연결혹은 끊는것이다. 준비물 : 아두이노우노, USB 케이블, 마이크로스위치, 10k 저항, 브레드보드, 점퍼케이블 배경지식 : 위의회로를보면, 스위치가열려있을때, 아두이노의인풋 (PINx) 는 HIGH 인풋을받게된다. 하지만, 스위치가닫히게되면 PINx 는 GND 에연결이되어 LOW 인풋을받게된다. 따라하기 : 스위치를브레드보드에연결혹은필요에따라납땜을한다. 그리고스위치의한쪽에풀업저항을이용하여 5V에연결한다. 반대쪽의스위치핀은 GND에연결한다. 아두이노의디지털핀을스위치와저항이만나는점 ( 노드 ) 에연결한다. 이디지털핀은 digitalread() 라는함수를이용하여값을읽을것이다. 아두이노디지털핀 13 번에연결되어있는내장형 LED 를사용할것이나필요에따라서 앞서설명된 LED 예제들을참고할수있다. 30

31 int button1pin = 2; // 버튼스위치의 2 번핀 int ledpin = 13; // 아두이노에내장된 LED void setup() pinmode(button1pin, INPUT); // 버튼을인풋으로사용할것을설정 pinmode(ledpin, OUTPUT); // LED는아웃풋으로사용. void loop() int button1state; // 버튼의입력값을저장할변수 button1state = digitalread(button1pin); // 버튼으로부터받은 0 혹은 1의값을저장 if (button1state == LOW) // 버튼이 LOW(0) 이면 31

32 digitalwrite(ledpin, HIGH); // LED를켜고 Else // 그렇지않으면 digitalwrite(ledpin, LOW); // LED를끈다. 32

33 11. [ 입력 3] 근접물체감지하기 근접물체를감지하기위해서는여러가지센서가사용될수있지만, 저렴하면서작은 QRD1114를이용하여근접센싱을할수있다. 이 QRD1114는적외선 LED와포토트렌지스터가작은모듈에구현이되어있는것으로적외선 LED로부터발광된빛이사물에반사되어돌아오는빛의세기를포토트렌지스터로측정함으로센싱을할수있도록설계되어있다. 준비물 : 아두이노우노, USB 케이블, QRD1114, 10k 옴저항, 220 옴저항, 브레드보드, 점퍼케이블 배경지식 : 1번과 2번으로구성되어있는것은포토트렌지스터이고, 3번과 4번으로구성되어있는것은적외선 LED이다. 3번에서입력받은전원으로적외선 LED는발광하게되고, 사물에반사된적외선의세기를포토트렌지스터로센싱하게된다. 이때, 아두이노의디지털인풋은풀업저항에연결되어있기때문에사물이없을경우는센싱값이 HIGH(1) 을갖게되고, 물체가감지되었을경우에는값이 LOW(0) 을갖게된다. 시리얼모니터를이용하여확인할수있다. 따라하기 : QRD1114 의 4 개의다리를브레드보드에꼽고저항을연결하여다음과같이회로를 구성한다. 33

34 다음의프로그램을업로드한다. int signal = 4; // 디지털핀 4 번으로센서값 (0 혹은 1) 을읽을변수. int onoff; // 4 번핀에서읽은값이 High(1) 인지 Low(0) 인지저장할변수 void setup() Serial.begin(9600); // 시리얼통신을사용하여모니터링할수있다. void loop() onoff = digitalread(signal); // 불리언신호 (0 혹은 1) 을읽어서 onoff 에저장 34

35 Serial.println(onoff); // onoff 변수값을 Serial.println 을통해출력. 업로드후에시리얼모니터를이용하여센싱되는값을시리얼모니터를통해확인해볼 수있다. 시리얼모니터는스케치의오른쪽상단에있는아이콘을클릭하여볼수있다. 시리얼모니터링창이열리면센서를손으로막았다떼었다하면서값이변하는것을 체크해볼수있다. 35

36 12. [ 입력 4] 온도센서로온도감지하기 TMP36 온도센서는 -40 도에서 125 도까지온도를측정할수있는센서로약 ±2 도정도의정확도를 가지고있다. 세개의다리가있는데평평한곳을정면으로가정할때, 왼쪽다리는입력전원, 오른쪽은 GND, 그리고가운데다리를이용하여온도를측정할수있다. 비교적간단한회로이지만, 핀방향을잘숙지하고회로를구성하도록하자. 준비물 : 아두이노우노, USB 케이블, TMP36 온도센서, 브레드보드, 점퍼케이블 배경지식 : 일반적으로센서를사용하여실제적인물리량 (ex. 온도 ) 을측정하기위해서는변환공식이필요하다. TMP36에인가해주는전원은 5V이다. 그리고아두이노가센서로부터읽는방법은 analogread() 라는함수를이용한다. 이 anlogread() 함수는센서로부터나오는아날로그전압값 (0~5V) 를디지털값으로변환하여읽게되는데그범위는 10bit, 즉 0에서 1023 사이의값이다. 따라서 5V는 1023에매칭이되고, 5V/1024*analogRead를이용하여전원값을읽을수있다. 그리고, 데이터시트에서기재된센서의특징에서전압과온도의관계를생각할수있다. 36

37 위의표에서사용된 TMP36 을보면 Offset Voltage(V) 는 0.5 이고, Output Voltage Scaling 은 0.01V/C 이다. 즉, 1 도에 0.01V 씩증가한다는의미이다. V( 전압 ) 과 C( 온도 ) 와의관계를생각해보면, V = 0.01*C 가되고, 이를온도에대하여다시 풀면, C = 100*(V 0.5) 가된다. 따라하기 : TMP36 의가운데신호다리를아날로그 0 번에연결하고전원과 GND 를아두이노에 다음과같이연결한다. 37

38 다음의프로그램을업로드하고시리얼모니터를통해온도의변화를측정해보자. int temperaturepin = 0; float V; float C; void setup() Serial.begin(9600); void loop() V = analogread(temperaturepin) * 5/1024; C = 100*(V - 0.5); Serial.print("voltage: "); Serial.print(V); Serial.print(" deg: "); Serial.print(C); delay(1000); 38

39 13.[ 입력 5] MPU-6050 을이용하여각속도 / 가속도 / 온도측정하기 MPU-6050 은 9 축모션퓨전알고리즘을지원하는가속도, 자이로센서보드로서디지털로출력되는 온도센서기능도가지고있다. I2C 라는통신프로토콜을이용하여다수의센서데이터들을소수의 핀을이용하여수집할수있도록한다. MPU-6050 지금까지다루었던센서들은아날로그핀을이용하여값을읽었다. 이번에다룰 MPU-6050은아날로그핀이아닌두개의디지털핀을이용하여 3축각속도, 3축가속도, 그리고온도를측정할수있다. 준비물 : 아두이노우노, USB 케이블, MPU-6050, 브레드보드, 점퍼케이블 배경지식 : I2C(Inter-Integrated Circuit) 는저속의주변기기간 SCL(serial clock) 과 SDA(serial data) 2개의커넥션을가지고있다. 표준아두이노보드는클럭시그널을제공하는 SCL을위해아날로그핀 5을사용하고데이터전송을위한 SDA을위해서는아날로그핀 4을사용한다. (Mega는 SDA는디지털핀 20 그리고 SCL은핀 21을사용한다.) 따라서, MPU-6050의 SCL은아두이노의 A5, SDA는아두이노의 A4를사용한다. 따라하기 : 아두이노의 3.3V, GND, A4, A5 를 MPU-6050 의 VCC, GND, SDA, SCL 에각각연결한다. 39

40 다음의프로그램을업로드하고시리얼모니터링을통해값을확인한다. #include <Wire.h> #define MPU6050_ACCEL_XOUT_H 0x3B // R #define MPU6050_PWR_MGMT_1 0x6B // R/W #define MPU6050_PWR_MGMT_2 0x6C // R/W #define MPU6050_WHO_AM_I 0x75 // R #define MPU6050_I2C_ADDRESS 0x68 typedef union accel_t_gyro_union struct uint8_t x_accel_h; uint8_t x_accel_l; uint8_t y_accel_h; uint8_t y_accel_l; uint8_t z_accel_h; uint8_t z_accel_l; uint8_t t_h; uint8_t t_l; uint8_t x_gyro_h; 40

41 ; uint8_t x_gyro_l; uint8_t y_gyro_h; uint8_t y_gyro_l; uint8_t z_gyro_h; uint8_t z_gyro_l; reg; struct int x_accel; int y_accel; int z_accel; int temperature; int x_gyro; int y_gyro; int z_gyro; value; void setup() int error; uint8_t c; Serial.begin(9600); Wire.begin(); // default at power-up: // Gyro at 250 degrees second // Acceleration at 2g // Clock source at internal 8MHz // The device is in sleep mode. // error = MPU6050_read (MPU6050_WHO_AM_I, &c, 1); Serial.print(F("WHO_AM_I : ")); Serial.print(c,HEX); Serial.print(F(", error = ")); 41

42 Serial.println(error,DEC); // According to the datasheet, the 'sleep' bit // should read a '1'. But I read a '0'. // That bit has to be cleared, since the sensor // is in sleep mode at power-up. Even if the // bit reads '0'. error = MPU6050_read (MPU6050_PWR_MGMT_2, &c, 1); Serial.print(F("PWR_MGMT_2 : ")); Serial.print(c,HEX); Serial.print(F(", error = ")); Serial.println(error,DEC); // Clear the 'sleep' bit to start the sensor. MPU6050_write_reg (MPU6050_PWR_MGMT_1, 0); void loop() int error; double dt; accel_t_gyro_union accel_t_gyro; Serial.println(F("")); Serial.println(F("MPU-6050")); // Read the raw values. // Read 14 bytes at once, // containing acceleration, temperature and gyro. // With the default settings of the MPU-6050, // there is no filter enabled, and the values // are not very stable. error = MPU6050_read (MPU6050_ACCEL_XOUT_H, (uint8_t *) &accel_t_gyro, sizeof(accel_t_gyro)); Serial.print(F("Read accel, temp and gyro, error = ")); 42

43 Serial.println(error,DEC); // Swap all high and low bytes. // After this, the registers values are swapped, // so the structure name like x_accel_l does no // longer contain the lower byte. uint8_t swap; #define SWAP(x,y) swap = x; x = y; y = swap SWAP (accel_t_gyro.reg.x_accel_h, accel_t_gyro.reg.x_accel_l); SWAP (accel_t_gyro.reg.y_accel_h, accel_t_gyro.reg.y_accel_l); SWAP (accel_t_gyro.reg.z_accel_h, accel_t_gyro.reg.z_accel_l); SWAP (accel_t_gyro.reg.t_h, accel_t_gyro.reg.t_l); SWAP (accel_t_gyro.reg.x_gyro_h, accel_t_gyro.reg.x_gyro_l); SWAP (accel_t_gyro.reg.y_gyro_h, accel_t_gyro.reg.y_gyro_l); SWAP (accel_t_gyro.reg.z_gyro_h, accel_t_gyro.reg.z_gyro_l); // Print the raw acceleration values Serial.print(F("accel x,y,z: ")); Serial.print(accel_t_gyro.value.x_accel, DEC); Serial.print(F(", ")); Serial.print(accel_t_gyro.value.y_accel, DEC); Serial.print(F(", ")); Serial.print(accel_t_gyro.value.z_accel, DEC); Serial.println(F("")); // The temperature sensor is -40 to +85 degrees Celsius. // It is a signed integer. // According to the datasheet: // 340 per degrees Celsius, -512 at 35 degrees. // At 0 degrees: (340 * 35) = Serial.print(F("temperature: ")); dt = ( (double) accel_t_gyro.value.temperature ) / 340.0; Serial.print(dT, 3); 43

44 Serial.print(F(" degrees Celsius")); Serial.println(F("")); // Print the raw gyro values. Serial.print(F("gyro x,y,z : ")); Serial.print(accel_t_gyro.value.x_gyro, DEC); Serial.print(F(", ")); Serial.print(accel_t_gyro.value.y_gyro, DEC); Serial.print(F(", ")); Serial.print(accel_t_gyro.value.z_gyro, DEC); Serial.print(F(", ")); Serial.println(F("")); delay(500); int MPU6050_read(int start, uint8_t *buffer, int size) int i, n, error; Wire.beginTransmission(MPU6050_I2C_ADDRESS); n = Wire.write(start); if (n!= 1) return (-10); n = Wire.endTransmission(false); if (n!= 0) return (n); // hold the I2C-bus // Third parameter is true: relase I2C-bus after data is read. Wire.requestFrom(MPU6050_I2C_ADDRESS, size, true); i = 0; while(wire.available() && i<size) buffer[i++]=wire.read(); 44

45 if ( i!= size) return (-11); return (0); // return : no error int MPU6050_write(int start, const uint8_t *pdata, int size) int n, error; Wire.beginTransmission(MPU6050_I2C_ADDRESS); n = Wire.write(start); // write the start address if (n!= 1) return (-20); n = Wire.write(pData, size); // write data bytes if (n!= size) return (-21); error = Wire.endTransmission(true); // release the I2C-bus if (error!= 0) return (error); return (0); // return : no error int MPU6050_write_reg(int reg, uint8_t data) int error; error = MPU6050_write(reg, &data, 1); return (error); 45

46 아래보이는시리얼모니터링의창처럼, error = 0 이고, 3 축의가속도, 온도, 그리고 3 축의 자이로값이출력되는것을확인할수있다. 46

47 14.[ 입력 6] Flex 센서를이용한구부림측정하기 웨어러블수트가등장하면서각광받은 Flex 휨센서는구부러진정도를측정할수있는센서이다. FSR 압력센서와마찬가지로저항의일종인 Flex 휨센서는구부러진정도에따라저항값이바뀌는 특징을이용한다. 준비물 : 아두이노우노, USB 케이블, 10k 옴저항, Flex 센서, 브레드보드, 점퍼케이블 배경지식 : Flex 센서는다음과같이구부러진정도가커지면저항값이커진다. 따라하기 : Flex 센서와저항을이용하여다음과같은회로를구성한다. 47

48 다음의프로그램을업로드한후시리얼모니터링을통하여값의변화를체크해보자. int flexpin = 0; // 센서값을읽기위해아날로그핀 0 번을 flexpin 에지정한다. void setup() Serial.begin(9600); // 센서값을읽기위해시리얼모니터를사용할것을설정. void loop() int flexval; // 센서값을저장할변수 flexval = analogread(flexpin); // 아날로그를입력받음 (0~1023) Serial.print("sensor: "); // sensor: 라는텍스트를프린트한다. Serial.println(flexVal); // println은줄바꿈명령이다. flexval의값을출력한다. 48

49 시리얼모니터링에서데이터가빠르게진행되서값을체크하기어렵다면 delay() 함수를 사용해볼수있다. Serial.println(flexVal); 다음줄에 delay() 를사용해보자. (ex. delay(200);) 49

50 15.[ 입력 7] FSR 압력센서를이용한압력측정하기 FSR(Force Sensing Resistor) 는얇은필름방식으로제작된압력센서로서간단한접촉의압력측정이가능하다. 굽힘센서와마찬가지로저항의일종이며 10k옴저항을사용하여값을측정할수있다. 정밀한압력및힘의측정에는로드셀을사용할수있으나, 비교적저렴하면서쉽게구현이가능하기때문에널리사용되고있다. 준비물 : 아두이노우노, USB 케이블, 10k 옴저항, FSR, 브레드보드, 점퍼케이블 배경지식 : 데이터시트에서제공된실험결과를보면저항값과힘의관계가그래프에표현되어있다. V O V I = R FSR R 1 + R FSR 여기서 V I =5V, 즉 1023 이고, R 1 =10000 옴이라고하면, V O 와 R FSR 의관계식은다음과같이된다. R FSR = 9.78 V O 1 ( V O 1023 ) V O 는아두이노의 analogread() 함수를이용하여센서값을얻고, 위공식을바탕으로 FSR 의 저항값을측정할수있다. 그리고, 측정된저항값 (R FSR ) 을아래저항과힘의관계그래프를통하여 가해진힘을확인할수있다. 따라하기 : FSR 과저항을이용하여다음과같은회로를구성한다. 50

51 다음의프로그램을업로드한후시리얼모니터링을통하여값의변화를체크해보자. int FSRpin = 0; // FSRpin을아날로그0(A0) 에연결 int Vo; // 센서값을저장할변수 float Rfsr; void setup() Serial.begin(9600); // 센서값을읽기위해시리얼모니터를사용할것을설정. void loop() Vo = analogread(fsrpin); // 아날로그를입력받음 (0~1023) Rfsr = ((9.78 * Vo)/(1-(Vo/1023.0))); Serial.print("Rfsr: "); // sensor: 라는텍스트를프린트한다. Serial.println(Rfsr); // println은줄바꿈명령이다. Rfsr의값을출력한다. 51

52 시리얼모니터링에서데이터가빠르게진행되서값을체크하기어렵다면 delay() 함수를 사용해볼수있다. Serial.println(Rfsr); 다음줄에 delay() 를사용해보자. (ex. delay(200);) 52

53 16.[ 응용 1] 밝기에따른 DC 모터속도제어 조도센서는 CdS라는광전도셀을이용하여가시광선이없는곳에서는절연체와같이전류가흐르지않다가가시광선이닿으면도체와같이전류가잘흐르는성질을가지고있다. 빛을감지하여회로를 ON/OFF하거나센서및방범용모듈등에많이사용된다. 이번예제에서는조도센서를이용하여빛의세기를측정하고, 그세기에따라 DC모터의속도를제어하는프로그램을실행해보자. 준비물 : 아두이노우노, USB 케이블, 10k 옴저항, 조도센서, SN754410, DC 모터, 브레드보드, 점퍼케이블 따라하기 : Flex 센서, FSR 과같이조도센서도두개의다리를가지고있는일종의저항이다. 여기에 앞서다루었던 DC 모터방향제어하기예제를응용하여다음의회로를구성한다. 53

54 다음의프로그램을업로드한다. int sensorpin = 0; // 조도센서가연결될 A0핀 int speedpin = 3; // SN754410의 1,2EN 핀과 PWM핀에연결하였다. 속도제어용핀 int motor1apin = 6; // 1A int motor2apin = 7; // 2A int speed_value_motor1; // 모터스피드를위한변수 int lightlevel; // 조도센서로부터읽은값을저장할변수 void setup() pinmode(speedpin, OUTPUT); pinmode(motor1apin, OUTPUT); pinmode(motor2apin, OUTPUT); void loop() lightlevel = analogread(sensorpin); // 센서로부터읽은값을저장 (0~1023) digitalwrite(motor1apin, LOW); // 1A에 LOW digitalwrite(motor2apin, HIGH); // 2A에 HIGH lightlevel = map(lightlevel, 0, 1023, 0, 255); // PWM 출력레벨 (8bit) 로센서값을맵핑 analogwrite(speedpin, lightlevel); // 밝기에따라모터회전속도출력 54

55 17.[ 응용 2] 장애물감지후모터의방향제어 앞에서소개된 QRD1114 는 1cm 내에있는사물을감지하는데유용하게쓰이는센서이다. 이 센서를이용하여소형로봇의장애물감지를할수있으며모터의방향도제어할수있다. 보다 먼거리의사물을감지하기위해서는적외선센서혹은초음파센서를이용할수있다. 준비물 : 아두이노우노, USB 케이블, QRD1114, 10k 옴저항, 220 옴저항, SN754410, DC 모터, 브레드보드, 점퍼케이블 따라하기 : 앞서다루었던 QRD1114 예제와 DC 모터제어예제를이용하여다음의회로를구성한다. 55

56 QRD1114 가사물을감지했을때, 모터의방향을바꾸는예제를 if 명령어를이용하여 다음과같이프로그램을작성할수있다. 프로그램을업로드한후, QRD1114 센서를 손가락으로막았다떼었다하면서모터의회전방향을체크할수있다. int speedpin = 3; // SN754410의 1,2EN 핀과 PWM핀에연결하였다. 속도제어용핀 int signal = 4; // 디지털핀4번으로센서값 (0 혹은 1) 을읽을변수. int onoff; // 4번핀에서읽은값이 High(1) 인지 Low(0) 인지저장할변수 int motor1apin = 6; // 1A int motor2apin = 7; // 2A int speed_value_motor1; // 모터스피드를위한변수 void setup() pinmode(speedpin, OUTPUT); pinmode(motor1apin, OUTPUT); pinmode(motor2apin, OUTPUT); void loop() onoff = digitalread(signal); // 불리언신호 (0 혹은 1) 을읽어서 onoff에저장 if(onoff == 1) digitalwrite(motor1apin, LOW); // 1A에 LOW digitalwrite(motor2apin, HIGH); // 2A에 HIGH else digitalwrite(motor1apin, HIGH); // 1A에 LOW digitalwrite(motor2apin, LOW); // 2A에 HIGH speed_value_motor1 = 127; // 0~255의수중선택가능함. 0: 속도제로, 255: 최고속도. analogwrite(speedpin, speed_value_motor1); // PWM 출력을하여정한속도만큼모터회전 56

57 18. [ 응용 3] 손가락으로서보모터제어하기 손가락에 Flex 센서를연결하여굽힌정도에따라서보모터를제어할수있다. 앞에서다룬 Flex 센서예제와서보모터예제를통하여손가락으로서보모터제어를구현해보자. 준비물 : 아두이노우노, USB 케이블, Flex 센서, 10k 옴저항, 서보모터, 브레드보드, 점퍼케이블 따라하기 : 앞서다루었던 QRD1114 예제와서보모터구동예제를이용하여다음의회로를 구성한다. 57

58 다음의프로그램을업로드하여손가락의굽힌정도에따라서보모터가회전하는지체크해보자. 매 0.2초마다값을읽기때문에모터의속도가느리다면모터가회전하는중간에센서값을읽을수도있다. 테스트를하면서 delay() 함수를변경하여부드러운컨트롤을할수있다. #include <Servo.h> // 서보라이브러리 Servo motor1; // 서보모터오브젝트 int flexpin = 0; // 센서값을읽기위해아날로그핀 0번을 flexpin에지정한다. 58

59 int motorangle; void setup() motor1.attach(9); // 서보모터를 9번에연결 void loop() int flexval; // 센서값을저장할변수 flexval = analogread(flexpin); // 아날로그를입력받음 (0~1023) motorangle = map(flexval, 0, 1023, 0, 180); motor1.write(motorangle); // 모터를 position만큼회전 delay(200); // 모터가돌때까지기다림. 59

60 19.[ 응용 4] 압력에따른 LED 의밝기제어 FSR( 압력센서 : Force Sensing Resistor) 을이용하여쉽게 LED 의밝기를조절할수있다. 앞서 PWM 을이용한 LED 밝기조절예제와 FSR 을이용한압력측정예제를통하여이를구현할수 있다. 준비물 : 아두이노우노, USB 케이블, FSR 센서, 10k 옴저항, LED, 브레드보드, 점퍼케이블 따라하기 : FSR 과저항 (10k 옴 ) 을이용하여압력을측정하는예제를구현하고, LED 를 PWM 핀에 연결한다. 다음의회로를참고한다. 60

61 압력에따른 LED 밝기제어프로그램을업로드한다. int led = 3; int brightness = 0; int increment = 1; int FSRpin = 0; // FSRpin을아날로그0(A0) 에연결 int Vo; // 센서값을저장할변수 float Rfsr; void setup() // analogwrite을통해구동되는핀은출력으로선언하지않아도된다. void loop() Vo = analogread(fsrpin); // 아날로그를입력받음 (0~1023) brightness = map(vo, 0, 1023, 0, 255); analogwrite(led, brightness); // 밝기를출력한다 delay(10); 61

62 20.[ 응용 5] 키보드로모터방향제어하기 키보드로부터입력받은값을이용하여 DC 모터의회전방향을제어할수있다. 이번예제에서는 A 를입력받으면정방향회전, B 를입력받으면역방향회전, 그리고, C 를입력받으면정지하는 시스템을구현하였다. 준비물 : 아두이노우노, USB 케이블, SN754410, DC 모터, 브레드보드, 점퍼케이블 따라하기 : 다음과같이회로를구성하고, 아래의프로그램을업로드한다. int speedpin = 3; // H-bridge enable pin for speed control int motor1apin = 6; // H-bridge leg 1 int motor2apin = 7; // H-bridge leg 2 int ledpin = 13; // status LED int speed_value_motor1; // value for motor speed 62

63 byte KeyInput; void setup() // set digital i/o pins as outputs: pinmode(speedpin, OUTPUT); pinmode(motor1apin, OUTPUT); pinmode(motor2apin, OUTPUT); pinmode(ledpin, OUTPUT); Serial.begin(9600); void loop() digitalwrite(ledpin, HIGH); // status LED is always on KeyInput = Serial.read(); if(keyinput == 'A') // put motor in forward motion digitalwrite(motor1apin, HIGH); // set leg 1 of the H-bridge low digitalwrite(motor2apin, LOW); // set leg 2 of the H-bridge high else if(keyinput == 'B') digitalwrite(motor1apin, LOW); // set leg 1 of the H-bridge low digitalwrite(motor2apin, HIGH); // set leg 2 of the H-bridge high else if(keyinput == 'C') digitalwrite(motor1apin, LOW); // set leg 1 of the H-bridge low digitalwrite(motor2apin, LOW); // set leg 2 of the H-bridge high speed_value_motor1 = 127; // half speed analogwrite(speedpin, speed_value_motor1); // output speed as 시리얼모니터창을열어서 A, B, 혹은 C 를타이핑한후엔터입력을하여모터의 회전방향을체크할수있다. 63

64 . 64

65 21.[ 응용 6] Visual Studio Express C# 와아두이노인터페이스 Microsoft의 Visual Studio Express C# 은무료개발툴로서 Microsoft홈페이지에서다운로드가가능하다. C# 이란, C++ 의연산력 (computing power) 과 Visual Basic의편의성 (convenience) 을결합하기위한목적으로마이크로소프트사에서개발한객체지향프로그래밍언어이다. C++ 가기반이며, 자바랑비슷한특징을지니고있다. 준비물 : 아두이노우노, USB 케이블, 10k 옴저항, FSR 센서 따라하기 : 다음의링크에서 Visual C# 2010 Express 를다운로드받는다. 지금설치버튼을누르면, vcs_web.exe 파일이다운로드되고, 이를더블클릭하여 실행한다. 다음을클릭 65

66 다음을클릭 다음을클릭 66

67 저장할폴더를설정한후설치클릭 67

68 설치완료 설치된 Microsoft Visual C# Express 2010 을실행하면위의창이열린다. 68

69 새프로젝트를클릭하여 Window Forms 응용프로그램을클릭후이름을 ArduinoInterface 라하고확인을클릭한다. 69

70 위와같은창이열리며왼쪽에숨겨있는도구상자를클릭한후, 자동숨기기 버튼 ( 압정모양의버튼 ) 을클릭하여도구상자를아래그림과같이펼친다. 왼쪽의도구상자에서 SerialPort 를드래그하여오른쪽의 Form1 에놓는다. 도구상자에서버튼을클릭하여 Form1 에두개의버튼을넣어준다. 그리고마우스 오른쪽버튼을클릭한후속성에들어가서 button1 과 button2 의이름 (Text) 를 LED ON, LED OFF 로바꾸어준다. 70

71 71

72 라벨을이용하여 Sensor Value 라는텍스트를넣어주고, RichTextBox 를이용하여센서값이 출력될빈텍스트상자를넣어준다. 이때, Form1 을더블클릭하면다음과같이소스코드창으로넘어가게된다. Form1 을 더블클릭하였기때문에 Form1_load 라는함수가생겼다. 마찬가지로두개의 LED ON, LED OFF 버튼을더블클릭하여소스코드에버튼클릭함수를넣어주자. 이번예제에서구현할 1) C# 에서버튼으로 LED 컨트롤하기, 2) FSR 센서값 C# 에 디스플레이를하기위해, 다음의회로를구성한다. 72

73 아두이노에다음의프로그램을업로드한다. int FSRpin = 0; // FSRpin을아날로그0(A0) 에연결 int Vo; // 센서값을저장할변수 float Rfsr; void setup() pinmode(13, OUTPUT); Serial.begin(9600); // 센서값을읽기위해시리얼모니터를사용할것을설정. void loop() if(serial.available()) 73

74 int c = Serial.read(); if (c == '1') digitalwrite(13,high); else if (c == '0') digitalwrite(13,low); Vo = analogread(fsrpin); // 아날로그를입력받음 (0~1023) Rfsr = ((9.78 * Vo)/(1-(Vo/1023.0))); Serial.println(Rfsr); // println은줄바꿈명령이다. Rfsr의값을출력한다. C# 과아두이노인터페이스를구성하기위해시리얼포트를설정해야한다. 시리얼포트를설정하기위해서는 Baudrate과포트번호를아두이노와동일하게설정하여야한다. Serial.begin(9600) 에서 9600bps를사용하였기때문에 9600으로입력하고, COM10을사용하였기때문에, 다음과같이입력한다. 여러분이사용하고있는포트번호를입력한다. 다음의 C# 코드를앞서 Visual Studio C# 에치환한다. C# 코드 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace ArduinoInterface public partial class Form1 : Form 74

75 string sensorval; public Form1() InitializeComponent(); serialport1.portname = "COM10"; serialport1.baudrate = 9600; serialport1.open(); private void Form1_Load(object sender, EventArgs e) private void button1_click(object sender, EventArgs e) serialport1.write("1"); button1.enabled = false; button2.enabled = true; private void button2_click(object sender, EventArgs e) serialport1.write("0"); button1.enabled = true; button2.enabled = false; private void serialport1_datareceived(object sender, SerialDataReceivedEventArgs e) sensorval = serialport1.readline(); this.invoke(new EventHandler(DisplayText)); private void DisplayText(object sender, EventArgs e) richtextbox1.appendtext(sensorval); richtextbox1.scrolltocaret(); 75

76 상단의디버깅시작버튼혹은 F5 를누르면프로그램이실행되고다음의창이열린다. LED ON 버튼을누르면아두이노의 LED 가켜지고, LED OFF 버튼을누르면 LED 가꺼지는 것을확인할수있다. 센서값도실시간으로업데이트가되는것을확인할수있다. 76

77 22.[ 응용 7] 매틀랩을이용한센서값디스플레이 매틀랩 (MATLAB) 은 Mathworks사에서개발된수치해석및프로그래밍환경을제공하는공학용프로그램이다. 많은공학도들이매틀랩을이용한과제및연구를하고있기에이번예제에서는실시간으로변하는센서값을매틀랩에서보여주는기본적인프로그램을작성하겠다. 앞서소개된 FSR을이용한회로도를다시구성해보도록하겠다. 준비물 : 아두이노우노, USB 케이블, 10k 옴저항, FSR 센서 따라하기 : FSR 과 10k 옴저항을이용하여다음의회로를구성한다. 아두이노에다음의프로그램을업로드한다. int FSRpin = 0; // FSRpin을아날로그0(A0) 에연결 int Vo; // 센서값을저장할변수 float Rfsr; 77

78 void setup() Serial.begin(9600); // 센서값을읽기위해시리얼모니터를사용할것을설정. void loop() Vo = analogread(fsrpin); // 아날로그를입력받음 (0~1023) Rfsr = ((9.78 * Vo)/(1-(Vo/1023.0))); Serial.println(Rfsr); // println은줄바꿈명령이다. Rfsr의값을출력한다. 매틀랩을실행한다. 매틀랩초기시작화면 78

79 매틀랩스크립트를열어서다음의코드를작성한다. instrreset serialobj = serial('com10','baudrate',9600); fopen(serialobj); i=1; while(1) a = str2num(fscanf(serialobj)); plot(i,a,'*'); hold on drawnow i=i+1; end 그리고, 실행을하면, 다음과같이센서값이실시간으로출력되는것을확인할수있다. 79

80 이때, while(1) 이라는무한루프에서빠져나오기위해서 Ctrl + C 이용할수있다. 80

뻔뻔한아두이노매뉴얼 Ver. 2-1 메카솔루션 ( 목차. 1. 아두이노의특징및종류설명 2. 아두이노소프트웨어설치및브레드보드이용하기 3. 라이브러리추가하기 4. 센서류 A. 근접물체감지하기 (QRD1114) B. 온도센서로온도감지하

뻔뻔한아두이노매뉴얼 Ver. 2-1 메카솔루션 (  목차. 1. 아두이노의특징및종류설명 2. 아두이노소프트웨어설치및브레드보드이용하기 3. 라이브러리추가하기 4. 센서류 A. 근접물체감지하기 (QRD1114) B. 온도센서로온도감지하 목차. 1. 아두이노의특징및종류설명 2. 아두이노소프트웨어설치및브레드보드이용하기 3. 라이브러리추가하기 4. 센서류 A. 근접물체감지하기 (QRD1114) B. 온도센서로온도감지하기 (TMP36) C. MPU-6050 이용각속도 / 가속도 / 온도측정하기 D. ADXL335를이용하여기울기측정하기 (ADXL335) E. Flex 센서를이용한구부림측정하기 (Flex

More information

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

시프트 레지스터 Shift Resistor 자, 이제 LED MATRIX 8x8 Board를 마이크로컨트롤러에 연결된 3개의 선으 로 제어해 보자. 이는 마이크로컨트롤러의 포트를 확장함과 동시에 프로그램 으로 제어를 더 쉽게 한다는 장점이 있다. 물론 포트를 절약하게

시프트 레지스터 Shift Resistor 자, 이제 LED MATRIX 8x8 Board를 마이크로컨트롤러에 연결된 3개의 선으 로 제어해 보자. 이는 마이크로컨트롤러의 포트를 확장함과 동시에 프로그램 으로 제어를 더 쉽게 한다는 장점이 있다. 물론 포트를 절약하게 Physical Computing for Artists & Designers 연세대학교디지털아트학과 Earl Park 시프트 레지스터 Shift Resistor 자, 이제 LED MATRIX 8x8 Board를 마이크로컨트롤러에 연결된 3개의 선으 로 제어해 보자. 이는 마이크로컨트롤러의 포트를 확장함과 동시에 프로그램 으로 제어를 더 쉽게 한다는 장점이 있다.

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

실험 5

실험 5 실험. OP Amp 의기초회로 Inverting Amplifier OP amp 를이용한아래와같은 inverting amplifier 회로를고려해본다. ( 그림 ) Inverting amplifier 위의회로에서 OP amp의 입력단자는 + 입력단자와동일한그라운드전압, 즉 0V를유지한다. 또한 OP amp 입력단자로흘러들어가는전류는 0 이므로, 저항에흐르는전류는다음과같다.

More information

ü ü ü #include #include #include #include Servo servoleft; Servo servoright; int sensorvalue1, sensorvalue2; // 각각앞쪽과뒤쪽의조도센서 int voltage, voltage2;

More information

Motor

Motor Interactive Workshop for Artists & Designers Earl Park Motor Servo Motor Control #include Servo myservo; // create servo object to control a servo int potpin = 0; // analog pin used to connect

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 유니티와아두이노를활용한 VR 컨트롤러개발 Part 06 헬로앱스코딩교육 김영준 공학박사, 목원대학교겸임교수前 Microsoft 수석연구원 splduino@gmail.com http://www.helloapps.co.kr 키보드로물체생성하기 키보드로물체생성하기 public GameObject CubeObject; public GameObject MyCamera;

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

Microsoft Word doc

Microsoft Word doc 2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63> SAM4S Printer Driver Installer 달리명시하지않은한, 인쇄또는복사된문서는통제하지않는문서임 목 차 1. 1. WINDOWS DRIVER INSTALLER 설치 설치...... 2 2. 프린터추가...... 5 3. 프린터제거...... 19 4. 프린터추가 / 제거선택...... 21 5. 프로그램추가 / 제거...... 21 SHC- 11-01-

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

< 제누이노스타트키트 > 사용설명서 목차 1. Arduino IDE 설치하기 2. Genuino 연결및 Arduino IDE 셋팅하기 3. 센서설명및연결도, 예제소스 1

< 제누이노스타트키트 > 사용설명서 목차 1. Arduino IDE 설치하기 2. Genuino 연결및 Arduino IDE 셋팅하기 3. 센서설명및연결도, 예제소스 1 < 제누이노스타트키트 > 사용설명서 목차 1. Arduino IDE 설치하기 2. Genuino 연결및 Arduino IDE 셋팅하기 3. 센서설명및연결도, 예제소스 1 1. Arduino IDE 설치하기 1) Arduino IDE 다운로드 - 홈페이지주소 : https://www.arduino.cc 접속합니다. Download 를클릭합니다. Windows

More information

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word - PEB08_USER_GUIDE.doc 0. PEB08 이란? PEB08(PIC EVALUATION BOARD 8bits) 은 Microchip 8bit Device 개발을쉽고편리하게할수있는보드입니다. 1. 다양한 8bit Device 지원 기존대부분의 8bit 보드의경우일부 Pin-Count만지원을하였지만, PEB08은 PIC10, PIC12, PIC16, PIC18의 DIP Type Package의모든

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

슬라이드 1

슬라이드 1 첨부 4 리모콘별 TV 셋팅방법 2011. 1 전략서비스본부서비스지원팀 1 경제형 2002년개발쌍방향단순-2007년개발경제형 /PVR-2007년개발 2002 년 02 월 ~ 2003 년 08 월 85 만 (40 만은 TV 설정불가 ) 선호채널 도움말 만가능 1) TV 전원을키고 2) 0( 숫자 )+ 음소거동시에누름 -> LED ON 3) 리모콘 LED 주황색불확인후제조사코드입력

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 A 반 T2 - 김우빈 (201011321) 임국현 (201011358) 박대규 (201011329) Robot Vacuum Cleaner 1 Motor Sensor RVC Control Cleaner Robot Vaccum Cleaner 2 / Event Format/ Type Front Sensor RVC 앞의장애물의유무를감지한다. True / False,

More information

아날로그입력 Analog Input 작품이외부세계에관한정보를아날로그형태로읽어들이는경우. 센서를이용하는여러프로젝트들이이에속한다. 이를테면작품앞에있는사람의몸무게는어느정도인지, 방안의 조명은얼마나밝은지등을알고자하는경우가이에속한다. 예 ) 다양한센서들

아날로그입력 Analog Input 작품이외부세계에관한정보를아날로그형태로읽어들이는경우. 센서를이용하는여러프로젝트들이이에속한다. 이를테면작품앞에있는사람의몸무게는어느정도인지, 방안의 조명은얼마나밝은지등을알고자하는경우가이에속한다. 예 ) 다양한센서들 Physical Computing for Designers & Artists 연세대학교디지털아트학과 Earl Park 아날로그입력 Analog Input 작품이외부세계에관한정보를아날로그형태로읽어들이는경우. 센서를이용하는여러프로젝트들이이에속한다. 이를테면작품앞에있는사람의몸무게는어느정도인지, 방안의 조명은얼마나밝은지등을알고자하는경우가이에속한다. 예 ) 다양한센서들

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

<4D F736F F F696E74202D203131C1D6C2F7202D E6FB8A620C0CCBFEBC7D120C4B3B8AFC5CD204C43442C C1A6BEEEC7CFB1E2205

<4D F736F F F696E74202D203131C1D6C2F7202D E6FB8A620C0CCBFEBC7D120C4B3B8AFC5CD204C43442C C1A6BEEEC7CFB1E2205 강의내용 Ⅰ Arduino 를이용한캐릭터 LCD, VFD 제어하기 1 1. 소개 소개 - CDS 와디지털입출력포트그중에서도 PWM 포트를사용하여 LED 를 통하여아날로그출력을해보려고함. - 이번강좌를통해여러가지센서들을응용함에많은도움이될것임. 2 1. 소개 - 요즘 LCD와관련하여많은제품들이나오고있음. 종류도다양하고크기도다양함. - 이번강의에서는아두이노를이용하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx CrackMe 15.exe (in Simples) 문제풀이 동명대학교정보보호동아리 THINK www.mainthink.net 강동현 Blog: johnghb.tistory.com e-mail: cari2052@gmail.com 1 목차 : 1. 문제설명및기본분석 --------------------------- P. 03 2 상세분석 ---------------------------

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

차시 AS_02 대상 교육주제아두이노 LED 및버튼제어프로젝트교육시간 120 분 1. 아두이노를이용하여 LED 를제어할수있다. 교육목표 2. 아두이노를이용하여삼색 LED 를제어할수있다. 3. 아두이노에서버튼입력을수행하여프로그램에연동할수있다. 장비류는미리배분하고, 재료는

차시 AS_02 대상 교육주제아두이노 LED 및버튼제어프로젝트교육시간 120 분 1. 아두이노를이용하여 LED 를제어할수있다. 교육목표 2. 아두이노를이용하여삼색 LED 를제어할수있다. 3. 아두이노에서버튼입력을수행하여프로그램에연동할수있다. 장비류는미리배분하고, 재료는 차시 AS_02 대상 교육주제아두이노 LED 및버튼제어프로젝트교육시간 120 분 1. 아두이노를이용하여 LED 를제어할수있다. 교육목표 2. 아두이노를이용하여삼색 LED 를제어할수있다. 3. 아두이노에서버튼입력을수행하여프로그램에연동할수있다. 장비류는미리배분하고, 재료는각실험단계에서배분한다. Arduino 1.0 USB 케이블 1.0 교육자료 ( 준비물 ) 300Ω

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

슬라이드 1

슬라이드 1 임베디드시스템개론 : Arduino 활용 Lecture #9: Motor 제어 2012. 5. 18 by 김영주 강의목차 소형모터개요 트랜지스터를이용한 DC 모터제어 Motor Driver IC를이용한 DC 모터제어 Servo 모터제어 2 3 1. 소형모터 (Motor) 소형모터 (1) 소형모터 전기에너지를회전운동으로변환하는장치모터소형화로다양하게응용되고있음

More information

1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64), 3(x32), 4(x16),

1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64), 3(x32), 4(x16), All In OneSTEP MBCD-13A ( 스텝모터용 1 축컨트롤러 / 드라이버일체형 ) 사용설명서 MotionBank 1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64),

More information

Microsoft PowerPoint - es-arduino-lecture-09

Microsoft PowerPoint - es-arduino-lecture-09 임베디드시스템개론 : Arduino 활용 Lecture #9: Motor 제어 2012. 5. 13 by 김영주 강의목차 소형모터개요 트랜지스터를이용한 DC 모터제어 Motor Driver IC를이용한 DC 모터제어 Servo 모터제어 2 3 1. 소형모터 (Motor) 소형모터 (1) 소형모터 전기에너지를회전운동으로변환하는장치모터소형화로다양하게응용되고있음

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

슬라이드 제목 없음

슬라이드 제목 없음 ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

PowerPoint Template

PowerPoint Template SOFTWARE ENGINEERING Team Practice #3 (UTP) 201114188 김종연 201114191 정재욱 201114192 정재철 201114195 홍호탁 www.themegallery.com 1 / 19 Contents - Test items - Features to be tested - Features not to be tested

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 유니티와아두이노를활용한 VR 컨트롤러개발 헬로앱스코딩교육 김영준 공학박사, 목원대학교겸임교수前 Microsoft 수석연구원 splduino@gmail.com http://www.helloapps.co.kr 목차 1. 툴설치 2. 아두이노컨트롤러개발실습 3. 유니티기본명령어실습 4. 유니티 VR 콘텐츠개발실습 5. 블루투스를이용한아두이노컨트롤러연동실습 SW 설치

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

RVC Robot Vaccum Cleaner

RVC Robot Vaccum Cleaner RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

PowerPoint Presentation

PowerPoint Presentation 신호조절 (Signal Conditioning) 메카트로닉스 시스템의 구성 ECU 인터페이스 회로 (시그널 컨디셔닝) 마이컴 Model of 기계 시스템 인터페이스 회로 (드라이빙 회로) 센서 액츄에이터 (구동기) 기계 시스템 PN 접합 다이오드 [1] 다이오드의 DC 해석과 등가모델 [1] 다이오드의 DC 해석과 등가모델 [1] 다이오드 응용회로 [1] 다이오드

More information

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. D/A 변환기 2. 병렬 D/A 변환기로 LED 밝기제어하기 3. 직렬 D/A 변환기로 LED 밝기제어하기 D/A 변환기 D/A 변환기 (Digital to Analog Converter) 디지털데이터를아날로그전압으로변환하는소자 A/D변환기와함께마이크로프로세서응용회로에서널리사용됨.

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

실험 5

실험 5 실험. apacitor 및 Inductor 의특성 교류회로 apacitor 의 apacitance 측정 본실험에서는 capacitor를포함하는회로에교류 (A) 전원이연결되어있을때, 정상상태 (steady state) 에서 capacitor의전압과전류의관계를알아본다. apacitance의값이 인 capacitor의전류와전압의관계는다음식과같다. i dv = dt

More information

Endpoint Protector - Active Directory Deployment Guide

Endpoint Protector - Active Directory Deployment Guide Version 1.0.0.1 Active Directory 배포가이드 I Endpoint Protector Active Directory Deployment Guide 목차 1. 소개...1 2. WMI 필터생성... 2 3. EPP 배포 GPO 생성... 9 4. 각각의 GPO 에해당하는 WMI 연결... 12 5.OU 에 GPO 연결... 14 6. 중요공지사항

More information

[8051] 강의자료.PDF

[8051] 강의자료.PDF CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 7주차 AVR의 A/D 변환기제어레지스터및관련실습 Next-Generation Networks Lab. 3. 관련레지스터 표 9-4 레지스터 ADMUX ADCSRA ADCH ADCL 설명 ADC Multiplexer Selection Register ADC 의입력채널선택및기준전압선택외 ADC Control and Status Register A ADC 의동작을설정하거나동작상태를표시함

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Arduino- 서보모터 서울과학기술대학교기계시스템디자인공학과 교수김성환

Arduino- 서보모터 서울과학기술대학교기계시스템디자인공학과 교수김성환 Arduino- 서보모터 2017.11.25 서울과학기술대학교기계시스템디자인공학과 교수김성환 1. Arduino 란? (1) 아두이노 (Arduino) 는오픈소스를기반으로한단일보드마이크로컨트롤러. AVR 기반. (2) 가장큰장점은마이크로컨트롤러를쉽게동작시킬수있다는것. 일반적인번거로운과정을피하고, 컴파일된펌웨어를 USB를통해쉽게업로드. (3) 저렴하고, 윈도를비롯해맥

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

KMC.xlsm

KMC.xlsm 제 7 장. /S 에필요한내용 1] IGBT 취급시주의사항 ) IGBT 취급시주의 1) 운반도중에는 Carbon Cross로 G-E를단락시킵니다. 2) 정전기가발생할수있으므로손으로 G-E 및주단자를만지지마십시요. 3) G-E 단자를개방시킨상태에서직류전원을인가하지마십시요. (IGBT 파손됨 ) 4) IGBT 조립시에는사용기기나인체를접지시키십시요. G2 E2 E1

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

Microsoft Word - LKP-RTD 사용자 설명서

Microsoft Word - LKP-RTD 사용자 설명서 LKP-RTD 보드 사용자설명서 Version Information H/W Version : Version 1.0 소속 : ( 주 ) 엘케이일레븐연구소주소 : 성남시중원구상대원동 190-1 SKn테크노파크메가센터 1306호전화 : 031-776-4120 / FAX : 031-766-4119 목차 1. 개요... 5 2. 사양... 6 3. 블록도... 7 4.

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

실험. Multimeter 의사용법및기초회로이론 Multimeter 의사용법 멀티미터 (Multimeter) 는저항, 전압, 전류등을측정할수있는계측기로서전면은다음그림과같다. 멀티미터를이용해서저항, 전압, 전류등을측정하기위해서는다음그림과같은프로브 (probe) 를멀티미터

실험. Multimeter 의사용법및기초회로이론 Multimeter 의사용법 멀티미터 (Multimeter) 는저항, 전압, 전류등을측정할수있는계측기로서전면은다음그림과같다. 멀티미터를이용해서저항, 전압, 전류등을측정하기위해서는다음그림과같은프로브 (probe) 를멀티미터 실험. Multimeter 의사용법및기초회로이론 Multimeter 의사용법 멀티미터 (Multimeter) 는저항, 전압, 전류등을측정할수있는계측기로서전면은다음그림과같다. 멀티미터를이용해서저항, 전압, 전류등을측정하기위해서는다음그림과같은프로브 (probe) 를멀티미터의전면패널에꼽는다. 통상적으로검은색프로브는전면패널의검은단자 (COM) 에꼽으며, 빨간색프로브는빨간색단자에꼽는다.

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

*Revision History 날짜 내용 최초작성 Tel Fax [2] page MSP430-SDS100i 매뉴얼 V1.0 Tel. 031-781-2812 Fax. 031-706-2834 E-mail. dsptools@syncworks.co.kr [1] page *Revision History 날짜 내용 2013. 07. 010 최초작성 Tel. 031-781-2812 Fax. 031-706-2834 E-mail. dsptools@syncworks.co.kr

More information