2. 거북이 로봇 명령어 연습

파이선에서 프로그램을 작성하여 거북이 로봇에게 이동하기, 소리내기 등의 다양한 명령을 수행 시킬 수 있다. 본 장에서는 거북이 로봇을 제어하기 위한 파이선의 기본 명령어에 대해 알아보고 연습해 보도록 하자.

1거북이 로봇 앞으로, 뒤로 이동하기

거북이 로봇의 바퀴에 장착된 스테핑 모터의 회전 방향과 속도를 파이선 명령어로 제어하여 거북이 로봇을 앞으로 또는 뒤로 이동시킬 수 있다. 앞으로, 뒤로 이동하기 위한 명령어를 배워보자.


가. left_wheel(velocity), right_wheel(velocity) 명령어


왼쪽 바퀴와 오른쪽 바퀴의 속도를 설정하는 명령어이다. 바퀴의 속도는 최대 속도에 대한 % 값이다. 파라미터인 ‘speed’에 양수, 음수 부호와 숫자를 입력하여 방향과 속도를 설정할 수 있다. 양수 값은 전진 방향으로, 음수 값은 후진 방향으로 바퀴를 회전시킨다. 속도는 양수와 음수의 부호를 제외한 숫자의 값이 클수록 속도가 빨라지며 정수 ‘-100’에서 ‘100’까지 입력이 가능하다.


1) 거북이 로봇의 왼쪽 바퀴를 30%의 속도 전진 방향으로 회전시키기 위한 코드는 아래와 같다.


from roboid import * # roboid 폴더에 있는 모든 라이브러리 파일을 불러온다.


turtle=Turtle() # 거북이의 인스턴스를 생성하고 하드웨어 거북이 로봇과 통신을 연결


turtle.left_wheel(30) # 왼쪽 바퀴를 30%의 속도로 앞으로 회전

2) 거북이 로봇의 오른쪽 바퀴를 30%의 속도 전진 방향으로 회전시키기 위한 코드는 아래와 같다.


from roboid import * # roboid 폴더에 있는 모든 라이브러리 파일을 불러온다.


turtle=Turtle() # 거북이의 인스턴스를 생성하고 하드웨어 거북이 로봇과 통신을 연결


turtle.right_wheel(30) # 오른쪽 바퀴를 30%의 속도로 앞으로 회전

더 알아보기
거북이 로봇을 앞으로 이동시키기 위해서는 왼쪽 바퀴와 오른쪽 바퀴 모두 동작을 해야 한다. 따라서 left_wheel() 명령어와 right_wheel() 명령어를 모두 사용해야 앞으로 이동할 수 있다.
따라하기 - 거북이 로봇을 전진 방향으로 40%의 속도로 이동시켜 보자
이미지. 거북이 로봇을 전진 방향으로 40%의 속도로 이동하는 동영상의 스크린샷.

1) PC USB 단자에 USB 동글 꽂고 거북이 로봇의 전원을 켜서 서로 연결한다.

2) 바탕화면에서 새 폴더를 만들고 폴더명은 Turtle로 한다.

3) 메모장을 열어 아래 코드를 작성한다.


from roboid import * # roboid 폴더에 있는 모든 라이브러리 파일을 불러온다.


turtle=Turtle() # 거북이의 인스턴스를 생성하고 하드웨어 거북이 로봇과 통신을 연결


turtle.left_wheel(40) # 왼쪽 바퀴를 40%의 속도로 앞으로 회전

turtle.right_wheel(40) # 오른쪽 바퀴를 40%의 속도로 앞으로 회전


이미지. 메모장 프로그램에거북이 로봇을 전진 방향으로 40%의 속도로 이동하는 소스코드를 작성한 스크린샷.

4) 코딩이 끝나면 [turtle] 폴더에 coding1.py로 저장한다.

5) 위에서 작성한 프로그램을 파이선으로 실행시킨 후 거북이 로봇이 앞으로 움직이는지 확인한다.


이미지. 거북이 로봇을 전진하는 모습의 사진.
더 알아보기 - 거북이 로봇이 멈추지 않아요

우리가 위에서 작성한 프로그램 실행시키면 거북이 로봇이 멈추지 않고 계속 앞으로 이동한다. 왜냐하면 작성한 프로그램에는 작동시간에 대한 명령이 없기 때문이다. 만약 몇 초간 이동하고 싶다면 wait()와 turtle.stop()이라는 명령어를 사용해야 한다. wait() 명령어의 시간 단위는 밀리세컨드(Milisecond)이므로 1초를 대기하고 싶다면 wait(1000)을 입력하면 된다. wait() 명령어에 입력한 시간만큼 움직인 후 멈춘다.

코딩하기

1

거북이 로봇을 후진 방향 30%의 속도로 4초 동안 이동시켜 보자
이미지. 거북이 로봇을 후진 방향으로 40 퍼센트의 속도로 4초 이동하는 동영상의 스크린샷.

left_wheel(), right_wheel(), wait() 명령어를 사용해서 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.left_wheel(-30)# 왼쪽 바퀴를 30%의 속력으로 뒤로 회전

turtle.right_wheel(-30) # 오른쪽 바퀴를 30%의 속력으로 뒤로 회전

wait(4000) # 4초 동안 동작

turtle.stop() # 거북이 멈춤

이미지. 거북이 로봇을 후진하는 모습의 사진.
코딩하기

2

거북이 로봇이 엉금엉금 앞으로 기어가요
이미지. 거북이 로봇이 왼쪽 바퀴, 오른쪽 바퀴를 번갈아가며 회전시켜서 엉금엉금 기어가는 동영상의 스크린샷.

거북이가 앞으로 이동하는 모습을 보면 왼발 앞으로, 오른발 앞으로 왼발과 오른발을 계속 번갈아가며 엉금엉금 기어가는 것을 볼 수 있다. 우리도 거북이 로봇의 왼쪽 바퀴, 오른쪽 바퀴를 번갈아가며 회전시켜서 엉금엉금 기어가도록 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.left_wheel(30) # 왼쪽 바퀴를 30%의 속력으로 앞으로 회전

wait(1000)

turtle.stop()

turtle.right_wheel(30) # 오른쪽 바퀴를 30%의 속력으로 앞으로 회전

wait(1000)

turtle.stop()

turtle.left_wheel(30)

wait(1000)

turtle.stop()

turtle.right_wheel(30)

wait(1000)

turtle.stop()

이미지. 거북이 로봇이 양쪽 바퀴를 번갈아가며 회진하여 엉금엉금 기어가는 모습의 사진.
더 알아보기 - 순차 처리? 반복 처리?

순차 처리, 반복 처리에 대해 기억하는가? 위와 같이 명령어 하나하나를 순서대로 처리하는 것을 순차 처리라고 한다. 그런데 거북이 로봇이 앞으로 엉금엉금 기어서 멀리 가려면 코딩이 너무 길어진다. 짧게 작성하려면 어떻게 해야 할까? 맞다. 동일하게 반복되는 부분을 반복문을 사용해서 작성하면 쉽게 해결할 수 있다.


반복문을 사용해서 거북이 로봇이 엉금엉금 앞으로 기어가게 작성하려면 for 문이나 while 문을 사용하면 된다. 여기에서는 for 문을 사용해서 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


for i in range(5): # 아래 명령어를 5번 반복

    turtle.left_wheel(30) # 왼쪽 바퀴를 30%의 속력으로 앞으로 회전

    wait(1000)

    turtle.stop() #정지

    turtle.right_wheel(30) # 오른쪽 바퀴를 30%의 속력으로 뒤로 회전

    wait(1000)

    turtle.stop() #정지


나. move_forward(cm), move_backward(cm) 명령어


거북이 로봇을 몇 cm 앞으로, 뒤로 이동시키고 싶은 때 사용하는 명령어이다. 파라미터인 ‘cm’에 숫자를 입력하여 이동거리를 설정할 수 있다. 파라미터 ‘cm’의 값을 따로 설정하지 않으면 6cm로 이동한다.


1) 거북이 로봇이 6cm 앞으로 이동하기 위한 코드는 아래와 같다.


from roboid import *


turtle=Turtle()


turtle.move_forward() # 거북이 로봇을 6cm 앞으로 이동


2) 거북이 로봇이 7cm 뒤로 이동하기 위한 코드는 아래와 같다.


from roboid import *


turtle=Turtle()


turtle.move_backward(7) # 거북이 로봇을 7cm 뒤로 이동

코딩하기

1

거북이 로봇을 10cm 앞으로 이동시켜 보자
이미지. 거북이 로봇을 10cm 앞으로 이동하는 동영상의 스크린샷.

move_forward() 명령어를 사용해서 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.move_forward(10) # 거북이 로봇을 10cm 앞으로 이동


이미지. 거북이 로봇을 10cm 앞으로 이동하는 사진.
코딩하기

2

거북이 로봇을 10cm 뒤로 이동시켜 보자
이미지. 거북이 로봇을 10cm 뒤으로 이동하는 동영상의 스크린샷.

move_backward() 명령어를 사용해서 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.move_backward(10) # 거북이 로봇을 10cm 뒤로 이동


이미지. 거북이 로봇을 10cm 뒤으로 이동하는 사진.
더 알아보기 - 거북이 로봇 이동 명령어

위에서 배운 명령어 외에도 wheels 나 move_forward_sec 등 거북이 로봇을 이동시키는 다양한 명령어가 있다. 다른 이동 명령어에 대해 공부하고 싶다면 터틀 스쿨 홈페이지의 파이선 레퍼런스(http://turtle.school/ko/reference/python/)를 참조하자.


2거북이 로봇 왼쪽으로, 오른쪽으로 회전하기

거북이 로봇을 회전시키기 위해서 앞에서 배운 left_wheel(), right_wheel(), wheels() 명령어를 사용할 수 있지만 내가 원하는 정확한 각도로 회전시키기 위해서는 각 각도에 해당하는 왼쪽 바퀴와 오른쪽 바퀴의 회전 방향과 속도를 일일이 알아내어야 하는 어려움이 있다. 따라서 여기에서는 각도 값만 설정해주면 그 값에 맞게 회전하는 명령어를 배워보자.


가. turn_left(degree), turn_right(degree) 명령어


제자리에서 왼쪽으로 회전, 오른쪽으로 거북이 로봇을 회전시키는 명령어이다. 파라미터인 ‘degree’에 원하는 각도를 입력하면 그 각도만큼 회전을 한다. 파라미터 값을 입력하지 않으면 90도 각도로 회전한다.


1) 거북이 로봇을 제자리에서 왼쪽으로 90도 회전시키기 위한 코드는 아래와 같다.


from roboid import *


turtle=Turtle()


turtle.turn_left() # 거북이 로봇이 왼쪽으로 90도 될 때까지 회전


2) 거북이 로봇을 제자리에서 오른쪽으로 70도 회전시키기 위한 코드는 아래와 같다.


from roboid import *


turtle=Turtle()


turtle.turn_right(70) # 거북이 로봇이 오른쪽으로 70도 될 때까지 회전

코딩하기

1

거북이 로봇을 제자리에서 왼쪽으로 90도 회전시켜 보자
이미지. 거북이 로봇을 제자리에서 왼쪽으로 90도 회전하는 동영상의 스크린샷.

turn_left() 명령어를 사용해서 아래와 같이 코드를 작성하자.


from roboid import *


turtle=Turtle()


turtle.turn_left(90) # 거북이 로봇이 왼쪽으로 90도 될 때까지 회전


이미지. 거북이 로봇을 제자리에서 왼쪽으로 90도 회전하는 사진.
코딩하기

2

거북이 로봇을 제자리에서 오른쪽으로 45도 회전시켜 보자
이미지. 거북이 로봇을 제자리에서 오른쪽으로 45도 회전하는 동영상의 스크린샷.

turn_right() 명령어를 사용해서 아래와 같이 코드를 작성하자.


from roboid import *


turtle=Turtle()


turtle.turn_right(45) # 거북이 로봇이 오른쪽으로 45도 될 때까지 회전


이미지. 거북이 로봇을 제자리에서 오른쪽으로 45도 회전하는 사진.
따라하기 - 거북이 로봇을 이용해서 한 변이 7cm인 정사각형을 그려보자.
이미지. 거북이 로봇이 한 변이 7cm인 정사각형 모양으로 이동하는 동영상의 스크린샷.

거북이 로봇은 등에 있는 구멍에 터틀 사인펜을 꽂은 후 이동 명령어와 회전 명령어를 사용하여 종이에 다양한 도형이나 그림을 그릴 수 있다. 여기에서는 거북이 로봇으로 한 변인 7cm인 정사각형을 그려보자.


1) 먼저 정사각형을 이해해야 한다. 정사각형은 네 각이 모두 직각이고 네 변의 길이가 모두 같은 사각형을 말한다.

2) 아래 그림과 같이 거북이의 머리를 오른쪽 방향으로 놓은 후 오른쪽 방향으로 회전하며 정사각형을 그리는 코드를 작성해 보자. cm 단위로 거북이 로봇을 이동시키기 위해서는 move_forward() 함수를 사용하고 정확한 각도로 오른쪽으로 회전하기 위해서는 turn_right() 함수를 사용하면 된다.

이미지. 네 각이 모두 직각인 정사각형이 그려진 그림.
이미지. 거북이 로봇으로 정사각형 모양을 그리는 순서를 8단계로 설명한 사진.

3) 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.move_forward(7) # 거북이 로봇을 7cm 앞으로 이동

turtle.turn_right(90) # 거북이 로봇이 오른쪽으로 90도 될 때까지 회전


turtle.move_forward(7) # 거북이 로봇을 7cm 앞으로 이동

turtle.turn_right(90) # 거북이 로봇이 오른쪽으로 90도 될 때까지 회전


turtle.move_forward(7) # 거북이 로봇을 7cm 앞으로 이동

turtle.turn_right(90) # 거북이 로봇이 오른쪽으로 90도 될 때까지 회전


turtle.move_forward(7) # 거북이 로봇을 7cm 앞으로 이동

turtle.turn_right(90) # 거북이 로봇이 오른쪽으로 90도 될 때까지 회전


4) 거북이 로봇 등에 터틀 사인펜을 꽂은 후 실행시켜 보자.

5) 작성한 코드를 잘 살펴보면 반복되는 구조를 가지고 있다는 것을 알 수 있다. 좀 더 간략한 코드로 작성하기 위해 반복문 ‘for’를 사용해서 아래와 같이 작성해 보자.


from roboid import *


turtle=Turtle()


for i in range(4): # 아래 명령어를 4번 반복한다

    turtle.move_forward(7) # 거북이 로봇을 7cm 앞으로 이동

    turtle.turn_right(90) # 거북이 로봇이 오른쪽으로 90도 될 때까지 회전


더 알아보기 - pivot_left(degree)와 swing_left(degree, radius) 명령어

거북이 로봇으로 동그라미를 그리려면 어떻게 해야 할까? 거북이 로봇의 pivot_left()와 swing_left() 명령어를 사용하면 쉽게 그릴 수 있다. pivot_left(360) 명령어를 실행시키면 왼쪽 바퀴를 중심으로 왼쪽 방향으로 돌면서 동그라미를 그려준다. 만약 반지름 5cm인 동그라미를 그리고 싶다면 swing_left(360, 5) 명령어를 실행시키면 왼쪽 방향으로 돌면서 반지름 5cm인 동그라미를 그려준다.


거북이 로봇의 회전 명령어

위에서 배운 각도 단위 명령어 외에도 turn_left_sec 등 초(sec) 단위나 펄스 단위의 명령어도 있다. 더 다양한 명령어에 대해 공부하고 싶다면 터틀 스쿨 홈페이지의 파이선 레퍼런스(http://turtle.school/ko/reference/python/)를 참조하자.

3거북이 로봇 소리내기

거북이 로봇은 스피커를 통해 다양한 소리를 낼 수 있다. 거북이 로봇에게 소리를 내는 명령어로는 sound() 명령어, buzzer() 명령어, note() 명령어가 있다. 그 중에서 우리는 다양한 소리가 담겨있는 sound() 명령어와 음을 연주하기 위한 note() 명령어를 배워보자.


가. sound(sound_id) 명령어


파라미터 ‘sound_id’ 종류에 따라 다양한 소리를 낼 수 있는 명령어이다. 파라미터인 ‘sound’에 입력하는 값에 따라 ‘삐’ 소리, ‘무작위 삐 소리’, ‘사이렌’, ‘엔진’, ‘로봇’, ‘행진’, ‘생일’, ‘디비디비딤’, ‘잘했어요’에 해당하는 9개의 소리를 낼 수 있다.


1) 거북이 로봇이 ‘삐’ 소리를 내기 위한 코드는 아래와 같다.


from roboid import *


turtle=Turtle()


turtle.sound(Turtle.SOUND_BEEP) # 거북이 로봇이 '삐' 소리내기


☞ sound(sound_id) 명령어 파라미터 종류

소리 파라미터 값 소리 파라미터 값
SOUND_BEEP 행진 SOUND_MARCH
무작위 삐 SOUND_RANDOM 생일 SOUND_BIRTHDAY
사이렌 SOUND_SIREN 디비디비딤 SOUND_DIBIDIBIDIP
엔진 SOUND_ENGINE 잘했어요 SOUND_GOOD_JOB
로봇 SOUND_ROBOT
코딩하기

1

거북이 로봇에서 ‘행진’ 소리를 내어보자
이미지. 거북이 로봇이 행진 소리를 내는 스크린샷

sound() 명령어를 사용해서 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.sound(Turtle.SOUND_MARCH) # 거북이 로봇이 '행진' 소리내기


더 알아보기 - sound_until_done(sound_id) 명령어

거북이 로봇이 여러 소리를 하나씩 하나씩 순차적으로 소리 내려고 할 때 사용하는 명령어이다. 파라미터 값은 sound() 명령어와 동일하다. 그런데 여러 소리들을 sound() 명령어로 각각 지정해서 하나씩 작성하면 되는데 왜 sound_until_done() 명령어가 필요한지 궁금하지 않은가?

거북이 로봇이 ‘사이렌’ 소리를 낸 후에 ‘행진’ 소리를 내기 위해 sound() 명령어를 사용하여 아래와 같이 코드를 작성한 후 실행시켜 준다.


from roboid import *


turtle=Turtle()


turtle.sound(Turtle.SOUND_SIREN) # 거북이 로봇이 '사이렌' 소리내기

turtle.sound(Turtle.SOUND_MARCH) # 거북이 로봇이 '행진' 소리내기

‘사이렌’ 소리는 들리지 않고 ‘행진’ 소리만 나는 것을 알 수 있다. 이는 명령어가 순차적으로 시행되지만 하나의 명령어가 끝나기 전에 다른 명령어가 동시에 같이 실행되기 때문에 일어나는 현상이다.

이것을 해결하기 위해 앞에서 배운 wait() 명령어를 사용하면 어떨까? wait() 명령어는 입력한 밀리세컨드 만큼만 실행되기 때문에 각 소리에 알맞은 시간만큼 설정해주지 않으면 소리가 중간에 끊어져서 제대로 소리를 낼수 없다.


이번에는 sound_until_done() 명령어를 사용해서 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.sound_until_done(Turtle.SOUND_SIREN) # 거북이 로봇이 '사이렌' 소리내기

turtle.sound_until_done(Turtle.SOUND_MARCH) # 거북이 로봇이 '행진' 소리내기

‘사이렌’ 소리가 끝난 후에 ‘행진’ 소리가 나는 것을 들었는가? 이렇게 소리를 순차적으로 하나씩 낼 때는 sound() 명령어와 wait() 명령어를 사용하는 것보다 sound_until_done() 명령어를 사용하는 것이 훨씬 편리하다.


나. note(pitch, beats) 명령어


정확한 음정을 beats 박자만큼 소리를 낼 수 있는 명령어이다. 유효한 pitch 값은 1~88이며 피아노의 88 건반에 대응된다. 소리를 끄기 위해서는 pitch에 ‘0’을 입력하면 된다.


1) 거북이 로봇이 ‘솔’ 음을 0.5박자 동안 소리내기 위한 코드는 아래와 같다.


from roboid import *


turtle=Turtle()


turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

note() 명령어를 사용해서 연주하기 위해서는 음정에 해당하는 값을 알아야 한다. 아래에는 4번째 옥타브의 ‘도’ 음에서 5번째 옥타브 ‘도’ 음까지의 값과 해당하는 숫자이다. 입력의 코드의 맨 뒤 숫자는 옥타브를 말한다. (예. 4는 4옥타브, 5는 5옥타브)


☞ note() 명령어 파라미터 pitch 값 종류

음정 음 높이 숫자
4번째 옥타브의 도 음 Turtle.NOTE_C_4 40
4번째 옥타브의 도# 음 Turtle.NOTE_C_SHARP_4 41
4번째 옥타브의 레b 음 Turtle.NOTE_D_FLAT_4 41
4번째 옥타브의 레 음 Turtle.NOTE_D_4 42
4번째 옥타브의 레# 음 Turtle.NOTE_D_SHARP_4 43
4번째 옥타브의 미b 음 Turtle.NOTE_E_FLAT_4 43
4번째 옥타브의 미 음 Turtle.NOTE_E_4 44
4번째 옥타브의 파 음 Turtle.NOTE_F_4 45
4번째 옥타브의 파# 음 Turtle.NOTE_F_SHARP_4 46
4번째 옥타브의 솔b 음 Turtle.NOTE_G_FLAT_4 46
4번째 옥타브의 솔 음 Turtle.NOTE_G_4 47
4번째 옥타브의 솔# 음 Turtle.NOTE_G_SHARP_4 48
4번째 옥타브의 라b 음 Turtle.NOTE_A_FLAT_4 48
4번째 옥타브의 라 음 Turtle.NOTE_A_4 49
4번째 옥타브의 라# 음 Turtle.NOTE_A_SHARP_4 50
4번째 옥타브의 시b 음 Turtle.NOTE_B_FLAT_4 50
4번째 옥타브의 시 음 Turtle.NOTE_B_4 51
4번째 옥타브의 도 음 Turtle.NOTE_C_5 52
더 알아보기 - 거북이 로봇의 소리 명령어

buzzer() 명령어로 소리를 낼 수 있다. 또한 tempo() 명령어를 통해 연주 속도도 조절할 수 있다. 각 명령어에 대해 공부하고 싶다면 터틀 스쿨 홈페이지의 파이선 레퍼런스(http://turtle.school/ko/reference/python/)를 참조하자.

코딩하기

1

거북이 로봇에서 ‘라’ 음을 0.5박자 동안 소리를 내어보자
이미지. 거북이 로봇이 '라'음을 0.5박자동안 소리를 내는 스크린샷

note() 명령어를 사용해서 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.note(Turtle.NOTE_A_4, 0.5) # 거북이 로봇이 '라' 음을 0.5박자 동안 소리내기


아래와 같이 음정에 해당하는 숫자를 입력해서 코드를 작성해도 된다.


from roboid import *


turtle=Turtle()


turtle.note(49, 0.5) # 거북이 로봇이 '라' 음을 0.5박자 동안 소리내기

코딩하기

2

거북이 로봇으로 봄나들이 노래를 연주해 보자
이미지. 거북이 로봇이 봄나들이 노래를 연주해 보는 스크린샷.
이미지. 봄나들이 악보. 총 28개의 음이 있다. 순서대로 솔, 미, 솔, 미, 솔, 라, 솔, 미, 솔, 미, 도, 레, 미, 레, 솔, 미, 솔, 미, 솔, 라, 솔, 높은 도, 라, 솔, 미, 레, 미, 도.

봄나들이를 연주하기 위해서는 음정에 해당하는 ‘음 높이’ 값이나 ‘숫자’ 값을 알아야 한다. 봄나들이 연주에 사용되는 음정에 대한 값은 아래와 같다.


음정 음 높이 숫자
4번째 옥타브의 도 음 Turtle.NOTE_C_4 40
4번째 옥타브의 레 음 Turtle.NOTE_D_4 42
4번째 옥타브의 미 음 Turtle.NOTE_E_4 44
4번째 옥타브의 솔 음 Turtle.NOTE_G_4 47
4번째 옥타브의 라 음 Turtle.NOTE_A_4 49
5번째 옥타브의 도 음 Turtle.NOTE_C_5 52

거북이 로봇이 봄나들이를 연주하기 위해 아래와 같이 코드를 작성해 보자.


from roboid import *


turtle=Turtle()


turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_A_4, 0.5) # 거북이 로봇이 '라' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 1) # 거북이 로봇이 '솔' 음을 1박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_C_4, 0.5) # 거북이 로봇이 '도' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_D_4, 0.5) # 거북이 로봇이 '레' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_D_4, 1) # 거북이 로봇이 '레' 음을 1박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_A_4, 0.5) # 거북이 로봇이 '라' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 1) # 거북이 로봇이 '솔' 음을 1박자 동안 소리내기

turtle.note(Turtle.NOTE_C_5, 0.5) # 거북이 로봇이 '도' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_A_4, 0.5) # 거북이 로봇이 '라' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_G_4, 0.5) # 거북이 로봇이 '솔' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_D_4, 0.5) # 거북이 로봇이 '레' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_E_4, 0.5) # 거북이 로봇이 '미' 음을 0.5박자 동안 소리내기

turtle.note(Turtle.NOTE_C_4, 1) # 거북이 로봇이 '도' 음을 1박자 동안 소리내기

더 알아보기 - 노래 연주를 간결하게 코딩하기

노래 연주를 간략하게 코딩하기 위해서는 ‘음 높이’ 값 “Turtle_NOTE_C_4” 대신에 ‘숫자’ 값 “40”을 넣고, 반복되는 연주 부분은 반복문을 사용해서 처리하면 훨씬 간결하게 코딩할 수 있다.