산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Pi Servo Hat 연결 가이드

소개

SparkFun Pi Servo Hat을 사용하면 Raspberry Pi에서 I2C 연결을 통해 최대 16개의 서보 모터를 제어할 수 있습니다. 이렇게 하면 GPIO가 저장되고 온보드 GPIO를 다른 용도로 사용할 수 있습니다. 또한 Pi Servo Shield는 직렬 터미널 연결을 추가하여 모니터와 키보드에 연결할 필요 없이 Raspberry Pi를 불러올 수 있습니다.

필수 자료

이 튜토리얼과 함께 따라야 할 사항은 다음과 같습니다. NOOBS 지원 카드에는 Pi Zero W를 지원하기에 충분한 새로운 OS가 없을 수 있으므로 NOOBS 지원 카드보다는 빈 microSD 카드를 구입하는 것이 좋습니다.



또한 설정을 테스트하기 위해 일종의 서보 모터가 필요합니다. 먼저 일반 서브 마이크로 서보를 사용하여 가이드의 뒷부분에 제공된 예시를 테스트해 보세요.


필요한 도구

이 제품 조립을 수행하는 데 특별한 도구가 필요하지 않습니다. 납땜 인두, 납땜 및 일반 납땜 액세서리가 필요합니다.


하드웨어 개요

사용상의 어려움을 최소화하도록 설계된 모자이기 때문에 게시판에는 몇 가지 흥미로운 항목만 있습니다.

USB 마이크로 B 커넥터 – 이 커넥터는 서보 모터에만 전원을 공급하거나 서보 모터와 모자에 연결된 Pi에 전원을 공급하는 데 사용할 수 있습니다. 또한 Pi 설정을 위해 모니터와 키보드를 사용할 필요가 없도록 직렬 포트 연결을 통해 Pi에 연결하는 데 사용할 수도 있습니다.

전원 공급 장치 분리 점퍼 – 이 점퍼를 지워서(기본적으로 닫혀 있음) 서보 전원 레일을 Pi 5V 전원 레일에서 분리할 수 있습니다. 왜 그렇게 하시겠습니까? 여러 대의 서보 또는 부하가 큰 대형 서보가 있는 경우 서보 모터에 의해 전원 공급 장치 레일에 생성된 노이즈는 Pi에서 원치 않는 작동을 일으켜 완전한 재설정 또는 종료까지 초래할 수 있습니다. Pi에 전원이 공급되는 한 직렬 인터페이스는 이 점퍼의 상태에 관계없이 계속 작동합니다.

서보 모터 핀 헤더 – 이 헤더는 서보 모터를 더 쉽게 부착할 수 있도록 간격을 두고 있습니다. 대부분의 취미용 서보 모터 커넥터에 대해 올바른 순서로 핀으로 고정되어 있습니다.

하드웨어 어셈블리

Pi Zero W에 수 헤더를 납땜하는 것이 좋습니다.

이러한 유형의 상황에서 내가 가장 좋아하는 트릭은 핀 하나를 납땜한 다음 오른손에 인두를 잡고 해당 핀의 땜납을 녹이고 왼손을 사용하여 아래 그림과 같이 평평해질 때까지 헤더를 조정하는 것입니다. 헤더의 짧은 쪽과 더 긴 핀이 구성 요소쪽에 있는지 확인하십시오. 핀 하나를 고정한 후 모든 핀을 Pi Zero W에 납땜으로 마무리합니다.

암 헤더와 Pi Servo Hat으로 단계를 반복합니다.

Pi Servo Hat이 Pi Zero W의 수 헤더 핀 위에 쌓이도록 보드 하단에서 짧은 핀을 삽입하고 구성 요소 측면에 땜납을 추가해야 합니다. 또한 모든 핀을 납땜하기 전에 헤더가 수평을 이루고 있는지 확인해야 합니다.

헤더가 납땜되면 Pi Servo Hat을 Pi Zero W에 쌓습니다. 그런 다음 취미 서보를 사용 중인 서보를 기반으로 채널 "0"에 연결합니다. 취미 서보의 데이터시트를 보거나 이 가이드에 나열된 표준 서보 커넥터 핀 배치를 참조하세요. 충분한 5V 벽면 어댑터를 사용하여 Pi Zero W에 전원을 공급할 수 있습니다. 벽면 어댑터를 벽면 콘센트에 연결하여 전원을 공급하고 Pi Zero W의 "PWR IN" 포트라고 표시된 micro-B 커넥터를 연결합니다.

소프트웨어 – Python

여기에서 파이썬에서 파이 서보 모자에 액세스하고 사용하는 방법에 대해 자세히 살펴보겠습니다.

전체 예시 코드는 제품 GitHub 저장소에서 사용할 수 있습니다.

SMBus 리소스에 대한 액세스 설정

첫 번째 요점:대부분의 OS 수준 상호 작용에서 I 2 C 버스를 SMBus라고 합니다. 따라서 우리는 첫 번째 코드 라인을 얻습니다. 이렇게 하면 smbus 모듈을 가져오고 SMBus 유형의 개체를 만든 다음 Pi의 다양한 SMBus 중 버스 '1'에 연결합니다.
import smbus
bus =smbus.SMBus(1)

프로그램에 부품의 주소를 알려야 합니다. 기본값은 0x40이므로 나중에 사용할 수 있도록 변수를 설정하십시오.

addr =0x40

다음으로, PWM 칩을 활성화하고 쓰기 후 자동으로 주소를 증가시키도록 지시하고 싶습니다(이를 통해 단일 작업 다중 바이트 쓰기를 수행할 수 있음).

<사전 데이터 언어="언어:파이썬, 파이썬 ">bus.write_byte_data(addr, 0, 0x20)bus.write_byte_data(addr, 0xfe, 0x1e)

PWM 레지스터에 값 쓰기

이것이 완료되어야 하는 모든 설정입니다. 이제부터 PWM 칩에 데이터를 쓸 수 있고 응답을 기대할 수 있습니다. 다음은 예입니다.

버스.쓰기_단어_데이터(주소, 0x06, 0)버스.쓰기_단어_데이터(주소, 0x08, 1250)

첫 번째 쓰기는 채널 0의 "시작 시간" 레지스터에 대한 것입니다. 기본적으로 칩의 PWM 주파수는 200Hz 또는 5ms마다 한 펄스입니다. 시작 시간 레지스터는 펄스가 5ms 주기에서 하이가 되는 시점을 결정합니다. 모든 채널은 해당 주기에 동기화됩니다. 일반적으로 이것은 0으로 작성되어야 합니다. 두 번째 쓰기는 "정지 시간" 레지스터에 대한 것이며 펄스가 로우가 되어야 하는 시점을 제어합니다. 이 값의 범위는 0에서 4095까지이며 각 카운트는 해당 5ms 기간(5ms/4095) 또는 약 1.2us의 한 조각을 나타냅니다. 따라서 위에 쓰여진 1250의 값은 5ms 주기당 약 1.5ms의 높은 시간을 나타냅니다.

서보 모터는 해당 펄스 폭에서 제어 신호를 얻습니다. 일반적으로 1.5ms의 펄스 폭은 모터 범위의 극단 사이의 중간인 "중립" 위치를 생성합니다. 1.0ms는 중심에서 약 90도 벗어나고 2.0ms는 중심에서 -90도를 나타냅니다. 실제로 이러한 값은 90도보다 약간 크거나 작을 수 있으며 모터는 어느 방향으로든 90도보다 약간 크거나 작을 수 있습니다.

다른 채널의 주소를 지정하려면 위의 두 레지스터의 주소를 4만큼 늘리십시오. 따라서 채널 1의 시작 시간은 0x0A이고, 채널 2의 경우 0x0E, 채널 3은 0x12 등입니다. 채널 1의 중지 시간 주소는 0x0C입니다. 채널 2의 경우 0x10, 채널 3의 경우 0x14 등입니다. 아래 표를 참조하세요.

채널 번호 시작 주소 정류장 주소
채널 0 0x06 0x08
채널 1 0x0A 0x0C
2장 0x0E 0x10
3장 0x12 0x14
4장 0x16 0x18
5장 0x1A 0x1C
6장 0x1E 0x20
7장 0x22 0x24
8장 0x26 0x28
9장 0x2A 0x2C
10장 0x2E 0x30
11장 0x32 0x34
12장 0x36 0x38
13장 0x3A 0x3C
14장 0x3E 0x40
15장 0x42 0x44

시작 주소에 0을 쓰는 경우 90도에서 오프셋의 모든 각도는 중지 주소에 기록된 4.6 카운트가 필요합니다. 즉, 달성하고자 하는 중립에서 오프셋 각도 수를 4.6으로 곱한 다음 원하는 모션 방향에 따라 1250에서 해당 결과를 더하거나 뺍니다. 예를 들어, 중심에서 45도 오프셋은 207(45×4.6)이 될 것이며 모션을 원하는 방향에 따라 1250보다 크거나 작습니다.

더 많은 정보를 읽어보세요...

Pi Servo Hat 연결 가이드


제조공정

  1. CNC 프로토타이핑 가이드
  2. FLIR Lepton 연결 가이드
  3. Raspberry Pi 3 스타터 키트 연결 가이드
  4. Qwiic HAT for Raspberry Pi 연결 가이드
  5. 사전 조립된 40핀 Pi Wedge 연결 가이드
  6. 간단한 파이 로봇
  7. 파워 해머 가이드
  8. 대장간 대장간 가이드
  9. 정밀 주조 가이드
  10. GD&T 병렬 처리에 대한 빠른 가이드