Lesson Progress
0% Complete
IR 센서
IR 센서를 이해합시다. 적외선(IR) 센서는 주변 환경에서 적외선을 측정하고 감지하는 전자 장치입니다. IR은 사람의 눈에는 보이지 않습니다.
Quarky에는 2개의 IR 센서가 있습니다.
그들이 어떻게 작동하는지 이해합시다.
IR 센서는 2개의 LED로 구성됩니다. 하나는 IR 빛을 전송하고 다른 하나는 IR 빛을 수신합니다. IR 광선이 전송되면 가장 가까운 표면에서 반사되어 수신기 LED로 돌아갑니다. 이것이 IR 센서가 물체를 감지하는 방식입니다.
그 값을 기반으로 PictoBlox에서 센서 값을 얻을 수 있습니다. 장애물이 있는지 여부를 추정할 수 있습니다.
- 센서가 아무것도 감지하지 못하면 출력 값이 증가합니다. 이는 센서가 활성 상태임을 의미합니다.
- 장애물을 감지하면 출력 값이 감소합니다. 이는 센서가 비활성 상태임을 의미합니다.
먼저 IR 센서를 보정해야 합니다. 즉, 제대로 작동하는지 확인해야 합니다. 이를 위해 PictoBlox에서 스크립트를 만들어 보정합니다.
IR 센서는 햇빛에서 작동 하지 않습니다 . 태양의 IR 광선은 센서의 전체 임계값을 증가시킵니다. 따라서 그들은 항상 활성 상태를 유지합니다. 폐쇄된 환경 또는 야간은 로봇을 따라가는 라인과 함께 작업할 장소/시간입니다.
코딩하자!
코드는 매우 간단합니다. 바로 시작하겠습니다. 아래 단계를 따르세요.
- 먼저 Quarky를 PictoBlox에 연결하는 것으로 시작하겠습니다.
- 먼저 USB 케이블을 사용하여 Quarky를 노트북에 연결합니다.
- PictoBlox를 열고 새 파일을 만듭니다. 코딩 환경을 Python Coding으로 선택합니다.
- Board를 Quarky로 선택합니다. 그런 다음 Quarky를 연결할 Bluetooth 포트를 선택하고 Connect을 누릅니다.
- 우리는 이 활동에서 Quarky를 사용할 것이므로 quarky 관련 함수도 작성하고 이러한 함수를 작성하려면 quarky에 대한 객체를 정의해야 합니다.
quarky = Quarky()
- 다음으로 쿼키 로봇의 방향을 설정하려고 합니다. Quarky는 가로 또는 세로 방향으로 설정할 수 있습니다. 여기서는 세로 방향을 설정합니다. 이를 위해 setorientation(“VERTICAL”) 함수를 사용합니다.
quarky.setorientation("VERTICAL")
- 이제 왼쪽 및 오른쪽 IR 센서의 임계값을 설정하려고 합니다. 이전 활동에서 임계값을 찾는 방법을 이미 배웠습니다. 임계값을 설정하는 구문은 다음과 같습니다.
quarky.setirthreshold([1],[2]) ##"[1]:String-IR=""IRL""[2]:Number-THRESHOLD=3000" quarky.setirthreshold("IRL", 3500) quarky.setirthreshold("IRR", 3500)
- 이제 조건을 while True로 제공하여 while 루프를 작성할 것입니다. 이는 주어진 부울 조건이 False로 평가될 때까지 루프가 계속 실행되어야 함을 의미합니다. while True라고 쓰면 루프가 영원히 실행됩니다.
while True:
- 여기서 우리의 논리는 왼쪽 IR 센서가 활성인지 비활성 인지 먼저 확인하는 것입니다. if-else 루프와 getirstate(“IRL”) 을 사용하기 때문입니다. 그런 다음 정의된 LED를 빛나게 할 것입니다. led 설정 구문을 살펴보겠습니다.
quarky.setled([1],[2],[3],[4]) ## "[1]:Number-XPOS = 1 [2]:Number-YPOS=1 [3]:Num_Array-COLOR=[R,G,B] Number: (R,G,B) [4]:Number-BRIGHTNESS=50"
if quarky.getirstate("IRL"): quarky.setled(1, 1, [250, 0, 0], 50)
- 이제 else 부분을 정의합니다. 위의 조건이 거짓이면 else 루프가 실행됩니다.
else: pass quarky.setled(1, 1, [0, 130, 250], 50)
- pass 함수는 사용자가 어떤 코드를 작성해야 할지 모를 때 사용하므로 사용자는 해당 줄에 pass를 배치하기만 하면 됩니다. 때로는 사용자가 코드 실행을 원하지 않을 때 pass가 사용됩니다.
- 코드는 다음과 같습니다.
quarky = Quarky() quarky.setorientation("VERTICAL") quarky.setirthreshold("IRL",3000) quarky.setirthreshold("IRR",2800) while True: if quarky.getirstate("IRL"): quarky.setled(1, 1, [250, 0, 0], 50) else: pass quarky.setled(1, 1, [0, 130, 250], 50)
- 마찬가지로 if-else 루프를 사용하여 올바른 IR 센서가 활성인지 비활성 인지 확인합니다.
if quarky.getirstate("IRR"): quarky.setled(7, 1, [250, 0, 0], 50) else: pass quarky.setled(7, 1, [0, 130, 250], 50)
- 여기서 우리의 논리는 왼쪽 IR 센서가 활성인지 비활성 인지 먼저 확인하는 것입니다. if-else 루프와 getirstate(“IRL”) 을 사용하기 때문입니다. 그런 다음 정의된 LED를 빛나게 할 것입니다. led 설정 구문을 살펴보겠습니다.
- 전체 코드는 다음과 같습니다.
quarky = Quarky() quarky.setorientation("VERTICAL") quarky.setirthreshold("IRL",3000) quarky.setirthreshold("IRR",2800) while True: if quarky.getirstate("IRL"): quarky.setled(1, 1, [250, 0, 0], 50) else: pass quarky.setled(1, 1, [0, 130, 250], 50) if quarky.getirstate("IRR"): quarky.setled(7, 1, [250, 0, 0], 50) else: pass quarky.setled(7, 1, [0, 130, 250], 50)
과제 업로드
과정을 마친 후 수료증을 받으려면 과제를 제출해야 합니다.
과제를 업로드하려면 아래 단계를 따르세요.
- 먼저 Pictoblox 파일을 선택해야 하므로 Browse를 클릭합니다.
- .sb3 파일을 선택합니다.
- 그리고 Upload 버튼을 클릭합니다.
행운을 빕니다! ????