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

간단한 파이 로봇

Simple Pi Robot은 로봇 제어를 단순한 형태로 구현하는 것을 목표로 합니다.

Simple Pi Robot은 로봇 제어를 단순한 형태로 구현하는 것을 목표로 합니다.

부품 목록

(1) Raspberry pi(모든 모델)이지만 최근 pizero 또는 pi 2가 출시됨에 따라 좋은 옵션이 될 것이며 현재 모델은 B+를 사용합니다.

(2) 40핀 GPIO 케이블(파이 B+ 또는 파이 2를 사용하는 경우).

(3) 브레드보드(각종 센서의 빠른 조립용).

(4) 2륜 섀시.

(5) 거리 센서(초음파 HC SR04).

(6) 파워 뱅크(파이 전원 공급용).

(7) 충전식 배터리 AA(2100mAH 권장).

(8) 점퍼 와이어는 남성 및 여성 유형 모두, 저항기입니다.

(9) WiFi 어댑터(pi와 무선으로 통신하기 위한 EDUP/EDIMAX).

(10) 메모리 카드(pi에서 OS를 실행하려면 4GB 이상).

(11) 모터 드라이버(L298).

(12) 서보 모터.

(13) 기타 – 케이블 타이(점퍼 와이어 묶기용) 및 폼 테이프(나사 어셈블리를 사용할 수 없는 서보 또는 기타 센서 고정용).

1단계:모터 드라이브 실드 선택

현재 라즈베리 파이에 사용할 수 있는 모터 드라이브 실드가 거의 없습니다. 예를 들면 다음과 같습니다.-

(1) RTK 모터 컨트롤러 실드

(2) Raspberry Pi용 Pololu DRV8835 듀얼 모터 드라이버 키트

(3) Raspberry Pi용 Adafruit DC 및 스테퍼 모터 HAT

(4) Adafruit에서 만든 Raspirobot 보드

ZEROBORG와 같은 최근 저개발

로봇을 구축하는 가장 일반적인 문제 중 하나는 배선 요구 사항을 최소화하는 것이며 차폐/모자를 사용하여 동일한 결과를 얻을 수 있습니다. 먼저 ALSROBOT 제조사의 Raspirobot에 해당하는 실드 중 하나로 로봇을 구축해 보았습니다. 키트는 중국에서 배송되지만 문제는 모터 입력 전압을 높일 수 없다는 것이었습니다. 최대값은 5볼트 미만이었고 전압 간에 약간의 불균형이 있었지만 여전히 다음 링크를 확인할 수 있습니다. ALSROBOT - PI 모터 드라이버 실드

어쨌든 현재 튜토리얼에서는 저렴하고 다재다능한 L298 모터 드라이버인 L298을 사용했습니다.

위 보드의 장점은 저렴한 것 외에는 5볼트 출력이 조절 가능하다는 점입니다.

저는 L298 보드를 사용하여 2개의 DC 모터와 1개의 서보 모터를 구동했습니다.

2단계:L298 모터 드라이버

섀시 하단에 L298 모터 드라이버를 장착했습니다. 이제 DC 모터와 서보 모터를 연결합니다.

(i) DC 모터 -A 출력 -A(+ &-).

(ii) DC 모터 -B에서 출력 -B(+ &-)로.

(iii) L298 보드의 서보 모터 +ve ~ + 5V 조정 공급 및 L298 보드의 GND에 대한 서보 모터 -ve.

활성화 핀 점퍼를 그대로 두십시오. 속도 제어를 원하지 않으면 점퍼를 제거하십시오. 제자리에 있는 점퍼는 +5V 공급을 보장하여 핀을 활성화하여 차례로 정격 속도로 모터를 구동합니다.

이제 4개의 nos 점퍼 와이어를 제어 입력에 연결하고 점퍼 와이어의 다른 쪽 끝을 다음 단계에서 지정된 대로 GPIO 핀에 연결합니다.

서보 모터의 경우 1번을 연결하십시오. 다음 단계에서와 같이 GPIO 핀에 대한 제어용 점퍼 와이어

3단계:서보 모터

서보에는 전원, 접지 및 제어의 3선 연결이 있습니다. 전원을 지속적으로 공급해야 합니다.

제어 신호는 PWM(펄스 폭 변조)이지만 여기에서 양으로 가는 펄스의 지속 시간이 서보 샤프트의 위치를 ​​결정합니다. 예를 들어, 1.520밀리초 펄스는 Futaba S148 서보의 중심 위치입니다. 펄스가 길수록 서보는 중심에서 시계 방향으로 회전하고 펄스가 짧으면 서보는 중심에서 시계 반대 방향으로 회전합니다.

저는 Futuba s3003 서보를 사용했습니다. 연결은 매우 간단합니다. "+" &"-"는 앞에서 설명한 대로 L298 보드에 연결됩니다. 서보의 작동 전압을 확인하는 것이 중요합니다(제 경우에는 4.8 – 6V 위 이미지 참조). 신호 와이어는 일반적으로 흰색 또는 주황색인 GPIO 출력에 연결해야 합니다.

라즈베리 파이에서 서보 모터를 제어하는 ​​것은 까다로울 수 있지만 @ RPIO.PWM에서 호스트되는 매우 강력한 라이브러리가 있으므로 파이에 설치하려면 다음 코드를 사용하십시오.

sudo apt-get install python-setuptoolssudo easy_install -U RPIO 

RPIO.PWM 및 사용된 DMA에 대해 자세히 알아보려면 링크를 참조하세요. https://pythonhosted.org/RPIO/pwm_py.html

4단계:로봇 섀시

저는 Ellipzo Robot 섀시를 2wd와 함께 사용했는데, 2wd는 간단하고 제어하기 쉽습니다.

키트에는 DC 모터, 서보 모터용 팬 키트 및 키트를 조립하는 데 필요한 모든 하드웨어가 포함되어 있습니다.

자세한 링크는 다음에서 확인할 수 있습니다. – Ellipzo Robot chaisis kit.

Pl. L298 모터 드라이버, 브레이크아웃 보드, 카메라 모듈, 파워 뱅크와 함께 라즈베리 파이 조립 영상을 참고하세요.

5단계:거리 센서

거리 센서를 통합하는 것은 쉽고 점퍼 와이어와 함께 1k 저항만 있으면 됩니다. VCC 및 GND를 각각 pi +5Volts 및 GND에 연결합니다.

다른 두 핀 TRIG 및 ECHO는 이전 단계에서와 같이 GPIO 핀에 연결됩니다. 이미지와 같이 저항을 연결하는 것을 잊지 마십시오.

거리를 측정하는 파이썬 코드는 마지막 단계에 포함되어 있습니다.

6단계:Raspberry Pi -camera – VLC 플레이어를 사용한 비디오 스트리밍

여기에서 Pi 카메라 모듈을 사용했으며 설정은 매우 쉽고 다음 링크를 참조할 수 있습니다.Raspberry pi Camera setup

비디오 스트리밍의 경우 VLC는 raspberry pi에 VLC를 설치하는 것으로 시작합니다.

sudo apt-get install vlc 

RTSP를 사용하여 카메라 비디오 스트리밍을 시작하려면 다음을 입력하십시오.

raspivid -o - -t 0 -n | cvlc -vvv 스트림:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264 

또는 적절한 너비 및 높이로 다음 코드 사용

raspivid -o - -t 0 -n -w 600 -h 400 -fps 12 | cvlc -vvv 스트림:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264 

이제 VLC 플레이어를 통해 스트림을 보려면

를 사용하여 네트워크 스트림을 여는 것보다 원격 시스템에서 VLC를 여십시오.

rtsp://###.###.###.###:8554/

여기서 ###.###.###.###은 네트워크 라우터에서 제공한 파이의 주소입니다.

이제 파이가 집 안에서 움직이면 원격 시스템에서 비디오 스트림을 볼 수 있습니다.

7단계:라즈베리 파이 핀아웃 및 파이썬 코드

8단계:일부 조립 이미지

코드

RPIO에서 가져오기 PWM에서 GPIO로 RPi.GPIO 가져오기 RPIO에서 PWM으로 가져오기 PWM에서 RPi.GPIO를 GPIO로 가져오기 시간 가져오기 절전 모드에서 하위 프로세스 가져오기 .OUT)GPIO.setup(26,GPIO.OUT)GPIO.setup(16,GPIO.OUT)GPIO.setup(20,GPIO.OUT)GPIO.setup(21,GPIO.IN)GPIO.setup(8,GPIO .OUT)GPIO.setup(27,GPIO.OUT)GPIO.setup(9,GPIO.OUT)TRIG=18ECHO=17print"controls"print"1:앞으로 이동"print"2:뒤로 이동"print"3:중지 robot"print"4:사용자 정의 이름으로 사진을 찍습니다."print"5:속도 제어로 앞으로 이동"print"6:로봇 회전"print"7:로봇 회전"print"8:서보 제어를 위해"print" 11:자율 제어에 오신 것을 환영합니다."인쇄" 명령을 보내려면 Enter 키를 누르십시오."def takestillpic(inp):인쇄" 사진 문자를 입력하십시오." inp =raw_input() 호출( ["raspistill -vf -hf -o " + str(inp) + ".jpg" ],shell=True ) def fwd():GPIO.output(19,True) GPIO.output(26,False) GPIO.output(16,True) GPIO.output(20,False)def rev ():GPIO.출력(19, 거짓) GPI O.output(26,True) GPIO.output(16,False) GPIO.output(20,True)def stop():GPIO.output(19,False) GPIO.output(26,False) GPIO.output(16 ,False) GPIO.output(20,False)def distmeas():print" 거리 측정 진행 중" GPIO.setup(TRIG,GPIO.OUT) GPIO.setup(ECHO,GPIO.IN) GPIO.output(TRIG,False ) 인쇄" 센서가 안정화되기를 기다리고 있습니다." time.sleep(2) GPIO.output(TRIG,True) time.sleep(0.00001) GPIO.output(TRIG,False) 동안 GPIO.input(ECHO)==0:pulse_start =time.time() while GPIO.input(ECHO)==1:pulse_end=time.time() pulse_duration =pulse_end - pulse_start 거리 =pulse_duration * 17150 distance =round(distance,2) print " Distance ", distance, " cm" if distance <50 :GPIO.output(19,False) GPIO.output(26,False) GPIO.output(16,False) GPIO.output(20,False) time.sleep(1) print "로봇은 다음과 같이 멈췄습니다. distance is less" print " 이제 로봇이 후진 중입니다." GPIO.output(19,False) GPIO.output(26,True) GPIO.output(16,False) GPIO.output(20,True) time.sleep(1) GPIO .출력(19,거짓) GPIO.출력(26,거짓) G PIO.output(16,False) GPIO.output(20,False) TLr() time.sleep(4) fwd() distmeas() else:distmeas() def TL():GPIO.output(19,True) GPIO .output(26,False) GPIO.output(16,False) GPIO.output(20,False)def TLr():GPIO.output(19,True) GPIO.output(26,False) time.sleep(0.75) GPIO.output(19,False) GPIO.output(26,False)while True:inp=raw_input() if inp =="1":fwd() print"전방향으로 움직이는 로봇" elif inp =="2" :rev() print"회전 방향으로 움직이는 로봇" elif inp=="3":stop() print"로봇 멈춤" elif inp =="4":takestillpic(inp) print " 사진 주세요" elif inp ==" 5":GPIO.output(7,False) GPIO.output(8,False) elif inp =="6":TL() elif inp =="7":TLr() elif inp =="8":서보 =PWM.Servo() servo.set_servo(27,1000) time.sleep(2) servo.stop_servo(27) elif inp =="9":서보 =PWM.Servo() 서보.set_servo(27,1500) 시간 .sleep(2) servo.stop_servo(27) elif inp =="10":서보 =PWM.Servo() 서보.set_servo(27,2000) time.sleep(2) 서보.스톱_서보(27) elif inp =="11":fwd() distmeas() GPIO.c 린업()

출처:단순 파이 로봇


제조공정

  1. Fanuc 서보 모터 수리 전문가
  2. 지멘스 서보 모터 수리 전문
  3. 서보 모터 수리 및 문제 해결을 위한 팁
  4. 서보 모터로 로봇을 피하는 장애물
  5. 멋진 실내 내비게이션용 로봇
  6. 로봇 작동을 개선하는 서보 모션
  7. 서보 모터용 유성 기어박스의 아름다움
  8. 서보 모터 란 무엇입니까?
  9. 서보 모터 감속기 란 무엇입니까?
  10. 기어헤드와 서보 모터 페어링