4주차 서보모터와 동전 먹는 저금통 만들기(블록코딩)

아두위키 : Arduwiki

1. 서보모터 제어하기


서보모터를 아두이노에 연결해봅시다.

서보모터의 검정색 선을 GND, 빨간색 선을 5V, 주황색 선을 디지털 핀(8번)에 연결해주세요.


서보모터는 신호에 따라 회전 각도를 조절할 수 있습니다. 단, 0~180도 범위를 제어할 수 있습니다.



서보모터는 "서보모터 핀 [ ] 번 각도를 [ ] 으로 설정" 블록을 사용하여 각도를 제어할 수 ㅣㅇㅆ습니다.

핀 [ ] 칸에 서보모터를 연결한 디지털 핀 번호를 넣어줍니다. 뒤의 빈 칸 [ ] 에는 0~180 사이의 각도 값을 넣습니다. 서보모터가 설정한 각도로 움직이는 모습을 볼 수 있습니다.

위 코드를 실행하여 서보모터가 0도, 180도로 번갈아가며 각도가 변경되는 모습을 확인해봅시다.

2. 동전 먹는 저금통 조립하기.

2-1. 몸통 조립

먼저 5개의 조각을 가져옵니다. 저금통 모형의 아래 부분을 만들어봅시다.

아래 모양처럼 왼쪽, 오른쪽을 잘 보고 맞춰서 조립해주세요.

조립 후 몸통 부분에 나사가 구멍이 있는 곳을 7mm 나사로 고정할 수 있도록 조아주세요.

2-2. 머리 조립

먼저 5개의 조각을 가져옵니다. 저금통 모형의 머리 부분을 만들어봅시다.

아래 모양처럼 왼쪽, 오른쪽을 잘 보고 맞춰서 조립해주세요.

머리 부분의 왼쪽 면에 빨간색 동그라미로 표시한 구멍은 머리의 뒷 편으로 가도록 조립해야 합니다!

조립 후 머리 부분에 나사가 구멍이 있는 곳을 7mm 나사로 고정할 수 있도록 조아주세요.

2-3. 왼쪽 팔

저금통의 왼쪽 팔을 만들어 봅시다. 3개의 조각을 가져오고 10mm 핀과 주황 고무를 이용해 고정시켜 주세요.

2-4. 오른쪽 팔

저금통의 오른쪽 팔을 만들어 봅시다. 3개의 조각을 가져오고 7mm 나사를 이용해 조아주세요.

2-4. 서보모터 조립

위 그림처럼 서보모터를 몸통에 조립해주세요. 2개의 동그라미 조각을 가져와 양 옆에 끼워주세요.

서보모터가 조립되는 방향을 잘 보고 똑같이 적용시켜 주세요.

2-5. 팔 조립

2-3, 2-4에서 만든 팔을 저금통 몸통에 달아주세요! 주황색 고무를 이용해 고정시켜 주세요.

2-6. 철판 연결

양 팔에 전선을 먼저 연결시킵니다. 빨간색 동그라미를 잘 보고 구멍을 통과시킬 수 있도록 만들어주세요.

전선을 먼저 팔에 연결시킨 후 철판 조각 2개를 가져와서 전선과 연결시켜 주세요.

2-7. 철판 고정

철판을 고정시킬 조각을 가져와서 4mm 나사로 조아주세요.

2-8. 서보모터 선 정리

서보모터의 선을 몸통의 오른쪽 구멍으로 빼서 정리해주세요.

그 다음 서보모터를 아크릴 테이프를 이용해 흔들리지 않도록 고정시켜 주세요.

2-9. LED 연결

LED를 저금통 머리 부분에 연결합니다.

두 개의 선은 뒷 편에 있는 구멍 2개로 빼서 정리합니다.

2-10. 경첩으로 몸통과 머리 연결

경첩을 이용해 저금통의 몸통과 머리를 연결합니다. 4mm 나사를 이용해 조아줍니다.

2-11. 왼쪽 팔과 머리 연결

왼쪽 팔과 머리를 연결시켜 줍니다.

10mm 핀과 주황 고무를 이용해 고정시켜 주세요.

2-12. 동전 고정대

마지막으로 동전 거치를 위한 고정대를 조립합니다.

조립할 조각을 가져와서 7mm 나사로 조아줍니다.

3. 회로 연결

  1. 양 팔에 연결한 전선 2개 : 1개의 전선은 gnd / 1개의 전선은 digital pin에 연결합니다.
  2. LED 전선 2개 : 1개의 전선은 gnd / 1개의 전선은 digital pin에 연결합니다.
  3. 서보모터 전선 3개 : 갈색 전선은 gnd / 빨간색 전선은 5v / 주황색 전선은 digital pin에 연결합니다.

4. 코딩!

4-1. [실습] LED 제어하기

먼저 LED를 제어해봅시다. LED가 잘 동작하는지 확인해보세요.


앞서 배운 내용을 토대로 1초 간격으로 LED를 켜고 끄는 동작을 코딩해봅시다.


4-2. [실습] INPUT_PULLUP을 이용한 동전 존재 여부 판단하기

2주차 버튼 제어하기 에서 배운 INPUT_PULLUP 를 이용해 저금통에 동전을 올려놓았는지 확인하는 코드를 작성해봅시다.

우리는 저금통의 양 팔에 2개의 전선을 이용해 GND, digital pin에 연결하였습니다.

INPUT_PULLUP을 이용하면 동전이 전도체 역할을 하여 digital pin으로 LOW값을 읽어올 수 있을 것입니다.

동전을 올리게 되면 아두이노의 13번 디지털핀에 출력을 이용해 LED를 켤 수 있도록 프로그램을 작성해보세요.

참고) 디지털 13번 핀은 LED를 회로로 연결하지 않아도 아두이노의 [L] 옆의 LED를 제어할 수 있답니다! (2주차에서 배웠어용~!)


4-3. [실습] 서보모터 각도 제어하기

이제 동전을 저금통 위에 올려둔다면 서보모터의 각도를 제어하여 저금통이 움직일 수 있도록 만들어 봅시다.

서보모터의 각도가 180도 일 때 저금통이 입을 닫고 있는 모양이며, 120도 일 때 저금통이 입을 열어 동전을 먹는 모습을 만들 수 있습니다.

실습2) 를 이용해 동전이 올라오면 서보모터를 움직여 동전을 먹는 모습을 만들어 봅시다.


또, 동전이 올라오면 LED가 켜지고 동전을 삼켜 없어지면 LED가 꺼지도록 만들어 봅시다.

5. 실습 코드 참고하기

4-1. [실습] LED 제어하기

4-2. [실습] INPUT_PULLUP을 이용한 동전 존재 여부 판단하기

4-3. [실습] 서보모터 각도 제어하기