Sida 1 av 1

Den lever!! (raspberrystyrd robot)

Postat: 5 mars 2013, 14:35:11
av johano
Håller på o pillar med en raspberry-styrd liten robot (rover) för ett halvjobb-relaterat projekt och den funkade faktiskt på första försöket :-)

http://www.youtube.com/watch?v=hwKpyZyOO6E

Edit (försök att göra det lite mer "projekt"-trådsaktigt):

Jag tänker alltså "bygga" en liten robot som skall kunna navigera runt på egen hand. (Bygga är satt inom "fnuttar" då jag inte
är så intresserad/kunnig i att bygga själva robotmekaniken utan mer av mjukvaran). Roboten är baserad på Rover5-chassit med
ett tillhörande motorstyrningskort vilket sen skall styrsa av en RaspberryPI.

Jag har helt sonika direkt kopplat GPIO-pinnarna 22,23,24 och 25 till kanal 1 och 2 på motorstyrningen. Än så länge har jag struntat i att motorkortet jobbar med 5V logik och pajen med 3.3V då jag inte tar in någon signal _till_ pajen. (När det är dags att koppla in rotationsenkodrarna så måste det till någon nivåkonvertering).
Bild

Här är det första naivt stapplande lilla robotstyrprogrammet (robot.py) för att se om det funkar:

Kod: Markera allt


#!/usr/bin/python
import RPi.GPIO as GPIO
from time import sleep

Forward = 1
Reverse = 2
Left = 3
Right = 4

# initiera och kör runt roboten i en liten fyrkant och stanna sedan
def main():

	init()
    
   engage(Forward)
	sleep(3.0)
	engage(Right)
	sleep(1.0)
	engage(Forward)
	sleep(3.0)
	engage(Right)
	sleep(1.0)
	engage(Forward)
	sleep(3.0)
	engage(Right)
	sleep(1.0)
	engage(Forward)
	sleep(3.0)
	engage(Right)
	stop()

	cleanup()

# starta motorerna med riktning beroende på (d)irection parametern
def engage(d):

	if d==Forward:
		GPIO.output(23, GPIO.HIGH)
		GPIO.output(25, GPIO.HIGH)
	
	elif d==Reverse:
		GPIO.output(23, GPIO.LOW)
		GPIO.output(25, GPIO.LOW)

	elif d==Left:
		GPIO.output(23, GPIO.HIGH)
		GPIO.output(25, GPIO.LOW)

	elif d==Right:
		GPIO.output(23, GPIO.LOW)
		GPIO.output(25, GPIO.HIGH)

	GPIO.output(22, GPIO.HIGH)
	GPIO.output(24, GPIO.HIGH)

def stop():
	# stanna
	GPIO.output(22, GPIO.LOW)
	GPIO.output(24, GPIO.LOW)
	
def init():
	# använd gpio portnummer istället för den fysiska pinpositionen
	GPIO.setmode(GPIO.BCM)

	# initiera gpio portar
	GPIO.setup(22, GPIO.OUT, initial=GPIO.LOW) # power motor 1
	GPIO.setup(23, GPIO.OUT, initial=GPIO.LOW) # riktning motor 1
	GPIO.setup(24, GPIO.OUT, initial=GPIO.LOW) # power motor 2
	GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW) # riktning motor 2

def cleanup():
	GPIO.cleanup()

if __name__ == "__main__":
    	main()
Jag är f.ö. inte säker på att det är pajen som ska styra motorerna direkt, det kanske ska till någon liten avr emellan
som är lämpligare att ta in interrupten från enkodrarna och som kan presentera ett gränssnitt med lite högre nivå till
pajen.

Navigeringen sen, det jag vill göra är att utforska RTK lite för att se hur bra man kan få till det med två relativt billiga gpsmottagare och antenner.

Projektet är absolut lågbudget så långt det är möjligt.

/johan

Re: Den lever!!

Postat: 5 mars 2013, 15:13:08
av Lennart Aspenryd
Kör hårt!

Vi vill se den döö.

Re: Den lever!!

Postat: 5 mars 2013, 15:32:08
av tecno
Snyggt jobbat, detta vill vi se mera om vartefter :tumupp:

Re: Den lever!! (raspberrystyrd robot)

Postat: 5 mars 2013, 16:34:08
av JimmyAndersson
Mycket kul att se! :tumupp:

Från själva chassit och ner till varje däck så går det vita diagonala boxar. Är det växellådor?
Var kommer de ifrån? De verkar väldigt praktiska för att få lite markfrigång.
Vad har du använt för motorer? (kraft, ström, eller länk, mm.)



johano:
"Nu återstår bara att hacka på navigationen"

och åtminstone 1st inlägg som gör att det här kvalificerar sig som en projekt-tråd. :wink:
Annars kommer tråden att flyttas till Allmänt. Läs gärna mer här:
http://elektronikforumet.com/forum/view ... =3&t=28145

Re: Den lever!! (raspberrystyrd robot)

Postat: 5 mars 2013, 17:30:15
av johano
Ja, det är en motor och växellåda i varje "ben".
Jag har dock kopplat ur två av motorerna, en på var sida, då det kändes meningsslöst
med fyra motorer om den ändå är larvbandsdriven.

Antar att den kommer med fyra motorer för att man ska kunna sätta (mecanum) hjul på den...

Kraften kommer från ett vanligt NiMh-ack på 7.2V/3Ah och pajen+motorstyrningen drivs
att ett USB "powerpack".

/johan

Re: Den lever!! (raspberrystyrd robot)

Postat: 5 mars 2013, 21:50:17
av ToPNoTCH
Coolt... :tumupp:

Efterssom regeln säger att allt med Raspberryn skall "försvenskas" så föreslår jag namnet:

"Paj Vandraren"

Re: Den lever!! (raspberrystyrd robot)

Postat: 25 mars 2013, 21:47:39
av Adamtj
Interessant!

Du har inte funderat på att kompletera gps med LIDAR el liknande?

Re: Den lever!! (raspberrystyrd robot)

Postat: 25 mars 2013, 22:21:44
av Lennart Aspenryd
Nu har någon förstått att Bengt Ilons eminenta patenterade hjul kan användas drygt trettio år sedan.
New Product Friday: Moving Right Along
http://www.sparkfun.com/news/1102

Re: Den lever!! (raspberrystyrd robot)

Postat: 26 mars 2013, 02:43:06
av PeterH
Den typen av hjul har använts ett bra tag på komersiella gaffeltruckar i USA (finns säkert på fler ställen). Men det är kul att dom också börjar komma till robotbyggarvärlden :tumupp:

Re: Den lever!! (raspberrystyrd robot)

Postat: 26 mars 2013, 15:50:39
av bellasoda
Så det funkade på första försöket? Inget itererande med någonting som strulade tills du till slut fick igång fanskapet?

Nej, då har du gjort fel. :D

Re: Den lever!! (raspberrystyrd robot)

Postat: 7 april 2013, 02:21:55
av manickel
Imponerande :)

Re: Den lever!! (raspberrystyrd robot)

Postat: 8 april 2013, 19:19:16
av Bigstone
Impressive! :tumupp: :bravo: