Lesson Progress
0% Complete
이제 우리만의 장애물 회피 로봇을 프로그래밍할 시간입니다! 장애물 회피 로봇에 대한 스크립트를 작성하려면 아래 단계를 따르십시오.
로봇 초기화
- Variables 팔레트에서 Max 및 Min이라는 두 개의 변수를 만듭니다.
- Events 팔레트에서 when green flag clicked 블록을 끌어다 놓습니다 .
- 그런 다음 set () to() 블록을 추가합니다. Min ~ 5로 설정합니다.
- 이 블록을 복제하고 Max를 30으로 설정합니다. 따라서 기본적으로 최대 및 최소 거리를 30cm와 5cm로 초기화합니다.
- – Initialize Robot이라는 블록을 만듭니다. 블록을 놓습니다.
- 이제 핀을 초기화하려면 Sensors 팔레트로 이동하여 로봇 초기화 모자 블록 아래에 있는 trig(), echo()에 connect Ultrasonic()을 추가합니다 .
- 다음 단계는 초기 서보 각도를 90도로 설정하는 것입니다. 이를 위해 Robot 팔레트에서 set servo on() to () angle을 드래그 앤 드롭합니다.
- set servo on () to () angle 아래에 wait () second 블록을 추가합니다.
장애물 감지
- 이제 Control 팔레트로 이동하여 Initialize Robot 아래에 forever 블록을 추가합니다 .
- 그런 다음 Control 팔레트의 if () then 블록을 forever 블록 안에 배치합니다 .
- 다음으로 Operators 팔레트로 이동하여 if () then 블록 공간 안에 ()<() 블록을 넣습니다.
- ()<() 블록과 Min 변수의 첫 번째 공간 내 Sensors 팔레트에서 get ultrasonic() distance 블록을 드래그 앤 드롭합니다. 두 번째 공간에서. 이 블록은 센서 값과 최소 거리를 비교하는 데 도움이 됩니다.
여유 공간 확인
- 다음으로 Angle을 매개변수로 사용하여 Set Servo Angle with Delay ()라는 블록 사용자 지정 블록을 만듭니다.
- 각도를 Angle로 set servo () to () angle 블록을 넣습니다.
- 그런 다음 wait () second를 도입하여 0.5초의 지연을 추가합니다.
- 기본 스크립트로 돌아갑니다. Robot 팔레트에서 stop robot을 추가합니다 . 각도가 45도로 설정된 Set Servo Angle with Delay() 블록을 추가합니다. 이 조건은 최소 거리 범위에 장애물이 들어올 때마다 로봇을 멈추고 서보의 각도를 45도로 돌립니다.
- 이제 Control 팔레트에서 if() then else 블록을 추가하여 최대 거리를 확인합니다.
- 다음으로 Operators 팔레트로 이동하여 if () then else 블록 안에 ()>() 블록을 넣습니다.
- ()>() 블록과 Max 변수의 첫 번째 공간 내 Sensors 팔레트에서 get ultrasonic() distance 블록을 드래그 앤 드롭합니다. 두 번째로. 이 블록은 센서 값과 최대 거리를 비교하는 데 도움이 됩니다.
- 조건이 만족되면 로봇은 우회전해야 합니다. 이것은 추가하여 수행할 수 있습니다. go () at () % speed for () seconds if 문 내부. 속도는 50%, 시간은 0.6초로 설정합니다.
- 그런 다음 Set Servo Angle with Delay() 블록에서 블록을 복제하고 else 분기에 배치합니다. 각도를 135도로 변경하고 로봇 방향을 left로 변경합니다.
- – Check Extreme이라는 사용자 지정 블록을 만듭니다. 이 블록은 0도와 180도에 대한 조건을 확인합니다. else 분기에 블록을 추가합니다.
- 다음으로 로봇이 장애물을 만나지 않으면 계속 전진해야 합니다. 그래서, 첫 번째 if 분기의 끝에서 servo () to the () angle을 넣습니다.. 각도를 90도로 설정합니다.
- 마지막으로 go() at() speed() 블록을 배치합니다 . 드롭다운에서 방향을 앞으로, 속도를 50% 로 선택합니다.
극한 상황 확인
- Set Servo Angle with Delay() 블록에서 값이 135인 블록을 복제하고 Check Extreme 블록 아래에 배치합니다. 각도를 0도, 로봇 방향을 right로, 시간을 1.2초로 변경합니다.
- Set Servo Angle with Delay() 블록에서 블록을 복제하고 else 분기에 배치합니다. 각도를 180도로 변경하고 로봇의 방향을 왼쪽으로 변경합니다.
- else-branch 내에서 go () at ()% speed for () seconds 블록을 추가합니다 . 이번에는 방향을 오른쪽으로, 속도를 80%로, 시간을 1.5초로 설정합니다. 이렇게 하면 로봇이 후진하게 됩니다.
드디어 로봇이 달릴 준비가 되었습니다!
테스트
로봇을 실행하여 제대로 작동하는지 확인합니다.
Quarky에 코드 업로드
Quarky에 코드를 업로드하여 로봇이 PictoBlox와 독립적으로 실행되도록 할 수도 있습니다. 이것은 랩탑에서만 가능합니다. 다음 단계를 따르십시오.
- Upload 모드로 전환합니다.
- when green flag clicked 블록을 when Quarky starts up 블록으로 바꾸십시오.
- 코드 Upload Code 버튼으로 코드를 업로드합니다.
그게 다야. 이제 로봇이 독립적으로 작업할 수 있습니다.
과제
다음 수업으로 넘어가기 전에 작은 과제가 기다리고 있습니다!
활동에서 생성한 프로젝트를 과제로 제출합니다.
과정을 마친 후 수료증을 받으려면 과제를 제출해야 합니다.
과제를 업로드하려면 아래 단계를 따르세요.
- Choose File을 클릭합니다.
- 열리는 팝업 창에서 이미지를 선택합니다.
- 이미지가 선택되면 Upload Assignment를 클릭합니다.
허용되는 파일 유형은 PictoBlox 프로그램에서 생성된 SB3입니다. 허용되는 최대 파일 크기는 15MB입니다.
행운을 빕니다!