Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Simple Pi Robot

Simple Pi Robot wil robotbesturing in een eenvoudige vorm brengen.

Simple Pi Robot wil robotbesturing in een eenvoudige vorm brengen.

De onderdelenlijst

(1) Raspberry pi (elk model) maar met de recente lancering van pizero of pi 2 zal een goede optie zijn, mijn huidige model gebruikt B+.

(2) 40-pins GPIO-kabel (bij gebruik van pi B+ of pi 2).

(3) Breadboard (voor snelle montage van verschillende sensoren).

(4) Een 2wd chassis.

(5) Afstandssensor (Ultrasone HC SR04).

(6) Powerbank (voor het opstarten van de pi).

(7) Oplaadbare batterijen AA (bij voorkeur 2100 mAH).

(8) Jumperdraden zowel mannelijk als vrouwelijk type, weerstanden.

(9) WiFi-adapter (EDUP/EDIMAX voor draadloze communicatie met pi).

(10) Geheugenkaart (4 GB en hoger voor het draaien van het besturingssysteem op pi).

(11) Motoraandrijvingen (L298).

(12) servomotor.

(13) Diversen - kabelbinders (voor het vastbinden van de jumperdraden) en schuimtape (voor het vasthouden van servo of een andere sensor waar schroefmontage niet kan worden gebruikt).

Stap 1:Het motoraandrijfscherm kiezen

Momenteel zijn er maar heel weinig motordrive shields beschikbaar voor Raspberry Pi, om er maar een paar te noemen:-

(1) RTK Motorcontroller-afscherming 

(2) Pololu DRV8835 Dual Motor Driver Kit voor Raspberry Pi 

(3) Adafruit DC en stappenmotor HAT voor Raspberry Pi

(4) Raspirobot-bord gemaakt door Adafruit 

en recentelijk onderontwikkeld zoals ZEROBORG 

Een van de meest voorkomende problemen bij het bouwen van een robot, is het minimaliseren van de bedradingsvereisten en hetzelfde kan worden bereikt door de schilden/hoed te gebruiken. Ik heb geprobeerd mijn robot te bouwen, eerst met een van de schilden die equivalent zijn aan Raspirobot van de fabrikant ALSROBOT. De kits worden verzonden vanuit China, maar het probleem was dat ik de ingangsspanning van de motor niet kon verhogen. Het maximum was minder dan 5 Volt, met een lichte onbalans tussen de spanningen, toch kan men de volgende link controleren - ALSROBOT – PI Motor driver shield

Hoe dan ook In mijn huidige tutorial heb ik de goedkope en veelzijdige L298-motordriver gebruikt - L298.

Het voordeel van het bovenstaande bord, behalve dat het goedkoop is, is dat er een gereguleerde 5Volt-uitgang beschikbaar is.

Ik heb het L298-bord gebruikt om twee gelijkstroommotoren en 1 servomotoren aan te drijven.

Stap 2:De L298-motordriver

Ik heb de L298-motordriver aan de onderkant van mijn chassis gemonteerd, nu om de DC-motor en servomotor aan te sluiten

(i) DC-motor -A naar uitgang -A (+ &-).

(ii) DC-motor -B naar uitgang -B (+ &-).

(iii) Servomotor +ve naar + 5V gereguleerde voeding van L298 Board &servomotor -ve naar GND van L298 Board.

Houd de inschakelpen-jumper zoals deze is, als u geen snelheidsregeling wilt, verwijder anders de jumper. De jumper op zijn plaats zorgt voor +5V-voeding om de pin mogelijk te maken die op zijn beurt de motor met nominale snelheid aandrijft.

Sluit nu 4 nos jumperdraden aan op de besturingsingangen, sluit het andere uiteinde van de jumperdraden aan op de GPIO-pin zoals aangegeven in de volgende stap.

Sluit voor servomotor een nr. jumperdraad voor besturing naar GPIO-pin zoals in de volgende stap

Stap 3:De servomotor

De servo heeft een 3-draads aansluiting:voeding, aarde en besturing. De stroombron moet constant ingeschakeld zijn.

Het stuursignaal is pulsbreedte-gemoduleerd (PWM), maar hier bepaalt de duur van de meegaande puls de positie van de servo-as. Een puls van 1.520 milliseconde is bijvoorbeeld de middenpositie voor een Futaba S148-servo. Een langere puls zorgt ervoor dat de servo vanuit het midden rechtsom draait, en een kortere puls zorgt ervoor dat de servo linksom vanaf het midden draait.

Ik heb Futuba s3003-servo gebruikt - de verbinding is heel eenvoudig, de "+" en "-" gaan naar het L298-bord zoals eerder beschreven. Het is belangrijk om naar de bedrijfsspanning van de servo te kijken (in mijn geval 4,8 – 6 V zie afbeelding hierboven), de signaaldraad moet worden aangesloten op de GPIO-uitgang, normaal gesproken is deze wit of oranje.

Het besturen van servomotoren in Raspberry Pi kan lastig zijn, maar dan is er een zeer krachtige bibliotheek gehost @ RPIO.PWM, gebruik de volgende code om het op pi te installeren.

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

Voor meer informatie over RPIO.PWM en de gebruikte DMA, raadpleeg de link  https://pythonhosted.org/RPIO/pwm_py.html

Stap 4:Het robotonderstel

Ik heb Ellipzo Robot-chassis met 2wd gebruikt, 2wd is eenvoudig en gemakkelijk te bedienen.

De kit wordt geleverd met DC-motoren, pan-kit voor servomotoren en alle benodigde hardware om de kit te monteren.

De gedetailleerde link is beschikbaar op - Ellipzo Robot chaisis-set.

pl. zie video voor montage van Raspberry Pi, samen met L298-motorstuurprogramma, het Breakout-bord, cameramodule en de powerbank.

Stap 5:De afstandssensor

Het integreren van de afstandssensor is eenvoudig en we hebben slechts 1k-weerstand nodig, samen met jumperdraden. Verbind VCC &GND met respectievelijk pi +5Volts &GND.

De andere twee pinnen TRIG &ECHO moeten worden aangesloten op GPIO-pinnen zoals in de voorgaande stappen. Vergeet niet om de weerstand aan te sluiten zoals weergegeven in de afbeelding.

De Python-code om afstand te meten is opgenomen in de laatste stap.

Stap 6:Raspberry Pi -camera – Videostreaming met VLC-speler

Hier heb ik de Pi-cameramodule gebruikt, de installatie is vrij eenvoudig en je kunt de link raadplegen:Raspberry pi Camera-instelling

Voor videostreaming, begin met VLC met het installeren van VLC op raspberry pi

sudo apt-get install vlc 

Voer het volgende in om te beginnen met het streamen van de cameravideo met behulp van RTSP:

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

of met de juiste breedte en hoogte gebruik de volgende code

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

Om de stream via de VLC-speler te bekijken, opent u VLC op uw externe systeem en opent u vervolgens een netwerkstream met

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

waarbij ###.###.###.### het adres van je pi is dat door de netwerkrouter is opgegeven.

Terwijl de pi in je huis beweegt, kun je de videostream op je externe systeem bekijken.

Stap 7:Raspberry pi pin-out &python-code

Stap 8:enkele montage-afbeeldingen

Code

van RPIO importeer PWMimporteer RPi.GPIO als GPIOvanuit RPIO importeer PWMimporteer RPi.GPIO als GPIOimporteer timefrom timeimport sleepfrom subprocesimport callGPIO.setmode(GPIO.BCM)GPIO.setup(19,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:vooruit"print"2:achteruit"print"3:stop robot"print"4:maak een foto met door de gebruiker gedefinieerde naam"print"5:ga vooruit met snelheidsregeling"print"6:draai de robot"print"7:draai de robot"print"8:voor servobesturing alstublieft"print" 11:welkom bij autonome besturing "print" druk op enter om het commando "def takestillpic(inp):print" in te voeren a.u.b. fotokarakter" inp =raw_input() call ( ["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.output (19,False) 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" Afstandsmeting in uitvoering" GPIO.setup(TRIG,GPIO.OUT) GPIO.setup(ECHO,GPIO.IN) GPIO.output(TRIG,False ) print "wachten op sensor om te regelen alstublieft" time.sleep(2) GPIO.output(TRIG,True) time.sleep(0.00001) GPIO.output(TRIG,False) while GPIO.input(ECHO)==0:pulse_start =time.time() while GPIO.input(ECHO)==1:pulse_end=time.time() pulse_duration =pulse_end - pulse_start distance =pulse_duration * 17150 distance =round(distance, 2) print " Distance ", distance, " cm" als afstand <50 :GPIO.output(19,False) GPIO.output(26,False) GPIO.output(16,False) GPIO.output(20,False) time.sleep(1) print "robot gestopt als afstand is minder" print " Nu gaat robot achteruit" GPIO.output(19,False) GPIO.output(26,True) GPIO.output(16,False) GPIO.output(20,True) time.sleep(1) GPIO .output(19,False) GPIO.output(26,False) 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"robot beweegt in voorwaartse richting" elif inp =="2" :rev() print"robot beweegt in omwentelingsrichting" elif inp=="3":stop() print"robot gestopt" elif inp =="4":takestillpic(inp) print " foto alstublieft" elif inp ==" 5":GPIO.output(7,False) GPIO.output(8,False) elif inp =="6":TL() elif inp =="7":TLr() elif inp =="8":servo =PWM.Servo() servo.set_servo(27.1000) time.sleep(2) servo.stop_servo(27) elif inp =="9":servo =PWM.Servo() servo.set_servo (27.1500) tijd .sleep(2) servo.stop_servo(27) elif inp =="10":servo =PWM.Servo() servo.set_servo(27,2000) time.sleep(2) servo.stop_servo(27) elif inp =="11":fwd() distmeas() GPIO.c leanup()

Bron:Simple Pi Robot


Productieproces

  1. Experts in Fanuc-servomotorreparatie
  2. Deskundige Siemens servomotorreparatie
  3. Tips voor servomotorreparaties en probleemoplossing
  4. Obstakels vermijden robot met servomotor
  5. Joy Robot (Robô Da Alegria)
  6. Robot voor supercoole indoornavigatie
  7. Servo Motion verbetert de robotwerking
  8. De schoonheid van planetaire versnellingsbak voor servomotor:
  9. Wat is een servomotor?
  10. Wat is servomotorreductor?
  11. Koppeling van vertragingskasten met servomotoren