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

Raspberry Pi를 사용한 제스처 제어 로봇

버튼으로 모든 것을 제어하는 ​​데 지친 적이 있습니까? 게으른 소파에 앉아 간단한 손놀림으로 무언가를 제어하고 싶습니까? 그렇다면 올바른 사이트에 있는 것입니다. 이 튜토리얼에서는 단순히 손의 움직임을 사용하여 두 개의 DC 모터로 구동되는 로봇을 제어할 것입니다. 플럭스 센서, 가속도계 및 기타 중력 기반 센서와 같이 손의 움직임을 감지하는 다양한 종류의 센서가 있습니다. 따라서 무선 전송을 위해 4비트 데이터를 전송하는 RF 434 모듈을 사용할 것입니다. 4비트 데이터는 16가지 다른 조합(예:0000에서 1111)을 전송할 수 있음을 의미합니다. 더 나아가 이 튜토리얼에서는 인코더와 디코더를 사용하여 무선 인터페이스의 간섭을 피할 것입니다. 모터 드라이버는 디코더 데이터를 사용하여 모터를 구동합니다.

Raspberry Pi를 사용하는 제스처 제어 로봇

트랜스미터 끝에서 Raspberry pi를 사용하여 센서 데이터를 분석하고 데이터 조합을 모터 드라이버에 전송하여 로봇이 호버링할 수 있도록 그에 따라 모터를 구동합니다. 디코더 모듈, 수신기 모듈 및 모터에 전원을 공급하기 위해 로봇의 12V 배터리를 사용할 것입니다. 송신기 끝에서 센서와 송신기 인코더 모듈은 raspberry pi 자체에 의해 전원이 공급됩니다.

구성요소

9개 항목 중 1-9개 표시이전다음

Raspberry Pi를 사용한 제스처 제어 로봇 – 블록 다이어그램

송신기 끝

Raspberry Pi를 사용한 제스처 제어 로봇 – 송신기 끝

송신기 측에는 가속도계, 라즈베리 파이, 인코더 모듈 및 RF 송신기가 있습니다. 제스쳐 데이터는 가속도계에서 라즈베리 파이로 흐르고 거기에서 처리되어 로봇의 움직임을 결정하고 모션 데이터는 GPIO 핀을 통해 인코더 모듈로 전송됩니다. 인코더 모듈은 데이터를 인코딩하고 RF 송신기의 도움으로 무선 인터페이스로 전송합니다.

Raspberry Pi를 사용한 제스처 제어 로봇 – 수신기 끝

Raspberry Pi를 사용하는 제스처 제어 로봇 – 수신기 끝

수신기 측의 RF 수신기는 무선 인터페이스에서 데이터를 가져와 디코더 모듈에 제공합니다. 디코더 모듈은 수신된 데이터를 디코딩하여 모터 드라이버 L293D에 제공합니다. 모터 드라이버에서 모터는 제스처 데이터에 따라 구동됩니다.

가속도계

가속도는 속도의 변화 또는 속도를 시간으로 나눈 값입니다. 예를 들어 자동차가 정지 상태에서 60Km/hr로 10초 동안 움직인다면 자동차는 6Km/hr로 가속됩니다. 내 손짓과 무슨 관계가 있는 걸까요?

가속도계는 가속력을 측정하는 데 사용되는 전기 기계 장치입니다. 이러한 힘은 지속적인 중력과 같이 정적일 수도 있고 많은 모바일 장치의 경우처럼 움직임이나 진동을 감지하기 위해 동적으로 작용할 수도 있습니다. 중력으로 인한 정적 가속도의 양을 측정하여 장치가 지구에 대해 기울어진 각도를 알 수 있습니다. 동적 가속도를 감지하여 장치가 움직이는 방식을 분석할 수 있습니다.

일부 가속도계는 압전 효과를 사용합니다. 여기에는 가속력에 의해 스트레스를 받는 미세한 결정 구조가 포함되어 있어 전압이 생성됩니다. 이를 수행하는 또 다른 방법은 커패시턴스의 변화를 감지하는 것입니다. 서로 옆에 두 개의 미세 구조가 있으면 그 사이에 특정 정전 용량이 있습니다. 가속력이 구조 중 하나를 움직이면 커패시턴스가 변경됩니다. 커패시턴스를 전압으로 변환하는 회로를 추가하면 가속도계를 얻을 수 있습니다.

가속도계는 아날로그 전압의 형태로 가속도를 출력하고 일부 가속도계는 디지털 형태로 출력하는 저전력 장치입니다. ADXL 335와 같은 아날로그 가속도계는 움직임의 축을 기준으로 3개의 아날로그 출력 X,Y,Z를 제공합니다. ADC를 통해 이러한 아날로그 전압을 디지털 전압으로 변환할 수 있습니다. ADXL345와 같은 디지털 가속도계는 SPI 또는 I2C 프로토콜을 통해 통신합니다. 소음이 적고 가장 안정적입니다.

가속도계와 자이로스코프가 모두 있는 또 다른 센서 MPU6050이 있습니다. 가속도계 대신 사용할 수도 있습니다. ADXL345 및 MPU6050의 주소는 I2C 모드에서 라즈베리 파이로 연결하는 동안 다르며, ADXL 0x53 및 MPU의 경우 0x68입니다. 이 자습서에서는 ADXL345와 MPU6050을 모두 사용하는 방법을 설명합니다.

가속도계 인터페이스

이제 가속도계 ADXL 345 및 MPU 6050을 라즈베리 파이에 연결하고 센서 판독값을 확인합니다. 여기에서 python 코드를 사용할 것이기 때문에 귀하의 raspberry pi는 최신 운영 체제와 python과 함께 설치되어 있다고 생각합니다.

ADXL345/MPU6050을 라즈베리 파이에 연결합니다. 여기서는 I2C 프로토콜을 사용하여 장치 간에 통신할 것입니다. I2C 프로토콜에서 데이터는 SDA(Serial Data)와 SCL(Serial Clock)의 클럭을 통해 전송됩니다. 비동기식 반이중 통신 프로토콜입니다. 마스터는 전체 프로세스를 제어하고 슬레이브는 마스터 명령에 따라 응답합니다. 데이터 속도는 슬레이브의 가능 주파수에 의해 결정됩니다. 마스터와 슬레이브 사이에는 3V, Gnd, SCL 및 SDA의 4개 연결만 있습니다.

ADXL345 디지털 가속도계

GPIO 핀 출력 다이어그램에서 Rpi의 SDA 및 SCL 핀을 보고 각각 ADXL345/MPU6050 SDA 및 SCL 핀에 연결할 수 있습니다. RPi 자체를 사용하여 센서에 전원을 공급합니다. 이제 연결이 완료되었습니다.

라즈베리 파이 3 GPIO 헤더

센서를 테스트하기 전에 rpi에 I2c 프로토콜용 python-smbus를 설치하고 RPi에서 I2C 프로토콜을 활성화하겠습니다.

smbus 설치:
sudo apt-get install python-smbus i2c-tools
RPi에서 I2C 활성화:
sudo raspi-config
인터페이스 옵션으로 이동하여 I2c 프로토콜을 활성화합니다.

그런 다음 다음 명령으로 i2c 사양 줄을 포함합니다.
sudo nano /etc/modules
다음 줄 추가
i2c-bcm2708
i2c-dev

이전 rpi를 사용하는 경우 다음 명령을 사용하여 백리스트에서 i2c를 제거하세요.
sudo nano /etc/modprobe.d/raspi-blacklist.conf
댓글(#) i2c-bcm2708 블랙리스트
sudo 재부팅
이 명령을 사용하여 연결을 테스트합니다. 이것은 우리 파이에 연결된 센서의 주소를 표시합니다.
sudo i2c detect -y 1
Adxl은 0x53에서 찾을 수 있고 Mpu는 0x68 또는 0x69에서 찾을 수 있습니다.

이제 Github에서 python의 pi용 ADXL345용으로 미리 작성된 라이브러리를 다운로드하고 센서 출력을 테스트합니다. 다음 명령을 사용하십시오.
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo 파이썬 example.py

Example.py는 아래와 같이 X, Y, Z 값을 출력하는 프로그램입니다.

이 프로그램을 수정하거나 프로젝트에 사용할 수 있습니다.

MPU6050의 경우 pimoroni 프로그램이 작동하지 않으므로 github의 다른 python 모듈을 사용합니다.

이 명령을 사용하여.
git clone https://github.com/Tijndagamer/mpu6050.git

cd mpu6050

python setup.py 설치
센서 연결 및 주소를 확인하려면 터미널을 열고 아래 명령을 입력하십시오. 아래와 같이 0x68 또는 0x69에 센서 주소가 표시됩니다.

그리고 센서 데이터를 테스트하려면 Python 편집기로 이동하여 센서 출력을 보려면 이 명령을 하나만 입력하십시오.
from mpu6050 import mpu6050

mympu=mpu6050(0x69)

데이터=mympu.get_accel_data()

한 걸음 더 나아가 이제 오른쪽, 왼쪽, 앞으로 및 뒤로 이동에 대한 4가지 다른 위치의 임계값을 결정하고 기록할 수 있습니다. 보정은 앞으로 이동을 원하는 위치에 유지하고 5개의 유사한 값을 기록하고 임계값으로 반올림하여 센서가 반올림된 값을 교차하는 경우와 같이 다른 위치에서 센서 값을 기반으로 수행할 수 있습니다. 프로그램에서 조건문을 활성화할 수 있습니다. 마찬가지로 왼쪽, 오른쪽, 뒤로 및 정지와 같은 다른 모든 움직임에 대해 보정합니다.

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

Raspberry Pi를 사용한 제스처 제어 로봇

현재 프로젝트/게시물은 다음을 사용하여 찾을 수도 있습니다.

<울>
  • 라즈베리 파이를 사용한 제스처 컨트롤러

  • 제조공정

    1. LabVIEW를 사용한 Raspberry Pi 온도 프로파일
    2. 라즈베리 파이 제어 아쿠아포닉스
    3. Raspberry Pi의 다중 채널 전문 데이터 로거 – 1부
    4. Python 및 Raspberry Pi 온도 센서
    5. Raspberry Pi를 사용한 원격 날씨 모니터링
    6. Node-RED를 사용하여 Blynk하는 SensorTag
    7. Raspberry Pi를 사용한 모션 센서
    8. Raspberry Pi 및 Bridge Shield를 사용하는 로봇
    9. 라즈베리 파이 CD 상자 로봇
    10. Bluetooth를 통해 제어되는 Raspberry Pi Robot