스크래치(Scratch)는 아이들을 위해 설계된 블록 기반 언어로, 라즈베리 파이(Raspberry Pi)의 GPIO를 통해 게임을 만들어 전자 장치를 제어할 수 있다. 전문가들은 GPIO는 라즈베리 파이(Raspberry Pi)의 가장 좋은 기능 중 하나라고 설명한다. 또한 스크래치 GPIO 프로젝트를 발전시키려면 S3GPIO가 필요하다.
외신인 톰스하드웨어(Tom's Hardware)는 다음과 같이 S3GPIO를 설치하고 초음파 센서를 DC 모터의 컨트롤러로 사용하여 속도를 효과적으로 설정하는 방법을 소개했다. 또한, 모터에 대한 비상 정지를 생성하고 모터 제어를 코드 시퀀스에 통합하는 방법을 안내했다.

∙ 준비물
이 프로젝트의 전체 코드는 Github 저장소에서 다운로드 할 수 있다.
라즈베리 파이 3 / 4 / 400
최신 라즈베리 파이 OS
HCSR04-P 초음파 센서(HCSR04의 3V 모델)
L9110S 모터 컨트롤러
DC 모터
모터용 외부 마이크로 USB 브레이크아웃 전원 공급 장치
7 x 암-암 전선
2 x 수-암 전선
인터넷 연결
∙ 전자 부품 연결하기
S3GPIO는 라즈베리 파이(Raspberry Pi) Foundation에서 설정한 BCM 번호 지정 표준이 아닌 물리적 핀 번호 지정을 사용한다. 이것은 우리가 20개의 핀으로 된 두 개의 열을 가지고 있음을 의미한다. USB 포트가 바닥을 가리키는 Pi를 잡고 두 개의 열은 왼쪽 상단의 핀 1과 오른쪽 상단의 핀 2에서 시작한다. 왼쪽 열은 홀수 패턴을 따르는 핀이 있는 "홀수" 열이다. (1,3,5,7,9 등) 오른쪽 열은 "짝수" 열이며 숫자는 2,4,6,8 등으로 진행된다.
1. 암-암 점퍼 와이어를 사용하여 HC-SR04P 초음파 센서를 라즈베리 파이(Raspberry Pi)에 연결한다. GND를 라즈베리 파이(Raspberry Pi)의 모든 GND 핀에 연결하고 11번 핀으로 트리거핀 13에 에코한다.
2. 모터의 단자를 L9110S의 MOTORA 단자 (어느 쪽이든 상관없음)에 연결한다. 나사로 제자리에 꼭 맞게 부착되도록 조인다.
3. L9110S의 GND를 라즈베리 파이(Raspberry Pi)의 GND 핀에 연결한다. 이렇게 하면 프로젝트가 작동하는 데 필요한 공통 접지 참조가 생성된다.
4. 외부 5V 마이크로 USB 전원 공급 장치의 +를 L9110S 모터 컨트롤러의 VCC에 연결한다.
5. 전원 공급 장치의 -(GND) 핀을 라즈베리 파이(Raspberry Pi)의 GND 핀에 연결한다.
6. L9110S의 A1-A 및 A1-B 터미널을 라즈베리 파이(Raspberry Pi)의 핀 8 및 10에 연결하는 두 개의 암-암 점퍼 와이어를 연결한다. 즉, GPIO를 사용하여 L9110S를 제어하여 모터가 작동하도록 할 수 있다.
이제 외부 전원 모터가 있어 라즈베리 파이(Raspberry Pi)에 연결되어 S3GPIO에서 제어할 수 있다. 이떄 HCSR04-P 초음파 센서가 연결되어 있어야 속도 컨트롤러로 사용할 수 있다.
∙ S3GPIO 설치
1. 라즈베리 파이(Raspberry Pi)의 전원을 켜고 터미널을 연다. 명령어를 입력해 설치를 다운로드한다.
2. 명령을 실행하여 S3GPIO를 설치한다.
3. 변경 사항을 적용하려면 라즈베리 파이(Raspberry Pi)를 재부팅해야 한다.
4. S3GPIO 아이콘을 두 번 왼쪽 클릭하고 "터미널에서 실행"을 선택하여 세 개의 응용 프로그램을 시작한다. 웹 서버, ScratchGPIO 및 특수 S3GPIO 확장이 있는 Chromium 브라우저가 모두 실행되며 S3GPIO가 표시될 때까지 몇 분 정도 걸릴 수 있다.
5. "내부 보기"를 클릭하여 온라인 S3GPIO 편집기를 연다.
∙ 프로젝트 생성
S3GPIO는 Scratch 3와 동일한 인터페이스를 가지고 있지만 "My Blocks"에 사용할 S3GPIO 블록 시리즈도 있다.
1. 이벤트 섹션에서 "녹색 플래그 클릭 시"를 코딩 영역으로 드래그한다. 이것은 코드의 시작이며 HCSR04-P 초음파 센서를 테스트한다.
2. S3GPIO 명령과 이전 블록을 연결한다. 흰색 상자에 ultra11,13을 입력한다. 이것은 트리거 및 센서의 에코용 핀이다.
3. Control에서 Forever 루프를 끌어서 이전 블록에 연결한다.
4. 흰색 상자에 ultra13을 입력하면 초음파 센서의 에코 핀을 읽고 배후에서 ‘센티미터 단위 측정’으로 변환된다.
5. 첫 번째 공백에 Power8을 입력하고 두 번째 공백에 변수의 다른 센서 블록을 입력한다. 이렇게 하면 핀 8에 연결된 모터 핀이 센서에서 반환된 값으로 설정된다.
6. 컨트롤에서 1초 대기 블록을 드래그하여 이전 블록에 연결하고 0.1초 대기하도록 블록을 편집한다.
7. 코드가 완료되면 녹색 깃발을 클릭하여 시작한다. 그러면 모터가 살아나게 된다. 이제 센서에 더 가까이 손을 움직이면 모터가 느려진다.
∙ 제동 장치(브레이크) 만들기
1. 코드의 새 섹션에서 이벤트에 있는 When Space Key is Pressed 블록을 배치한다.
2. 내 블록에서 두 개의 S3GPIO 세트 _ ~ _ 블록을 끌어서 이전 블록에 연결한다.
3. 녹색 깃발을 클릭하고 센서가 손에 반응하는지 테스트한다. 모터는 손의 위치에 따라 빠르거나 느려야 한다. 준비가 되면 스페이스바를 눌러 모터를 멈춘다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]