in some cases they really do, e.g. when saving our word documents:
New algorithm lets autonomous robots divvy up assembly tasks on the fly (or at least 4 times slower than to bore reality).
In a leap for robotic development, the MIT researchers who built a robotic cheetah have now trained it to see and jump over hurdles as it runs — making this the first four-legged robot to run and jump over obstacles autonomously.
See more on: http://newsoffice.mit.edu/2015/cheetah-robot-lands-running-jump-0529
During my thesis I did some research about mobile robots. Therefore the Goliath tracked mine, or the ‘Leichter Ladungsträger Goliath (Sd.Kfz. 302/303a/303b)’ in German as one of the first mobile robots always fascinated me. Created in the late 1940 and mass produced between 1942 and 1944 about 7500 of this remote cable controlled mobile bases could carry up to 60kgs of high explosives. Way before modern Robots like the iRobot BigDog or its successors this equally sounding robot is powered by two combustion engines.
After some research I figured out that in my area there is the Bundeswehr Military History Museum in Dresden, which is presenting one of this impressive machines. Therefore I went to Dresden an took some photos, which I want to share with you:
Some people also present them in action:
In case there will be an bigger version of the aMoSeRo this robot might share its physical dimensions with it. Also the track system is impressive and in case its operable upside down really well suitable for heavy duty terrain.
Actually there is no need to explain more about stepper motors than that video does:
Currently I am using this python code to get the motors running:
#!/usr/bin/env python # import required libs import time import RPi.GPIO as GPIO GPIO.cleanup() #cleaning up in case GPIOS have been preactivated # Use BCM GPIO references # instead of physical pin numbers GPIO.setmode(GPIO.BCM) # be sure you are setting pins accordingly # GPIO10,GPIO9,GPIO11,GPI25 StepPins = [10,9,11,25] # Set all pins as output for pin in StepPins: GPIO.setup(pin,GPIO.OUT) GPIO.output(pin, False) #wait some time to start time.sleep(0.5) # Define some settings StepCounter = 0 WaitTime = 0.0015 # Define simple sequence StepCount1 = 4 Seq1 =  Seq1 = range(0, StepCount1) Seq1 = [1,0,0,0] Seq1 = [0,1,0,0] Seq1 = [0,0,1,0] Seq1 = [0,0,0,1] # Define advanced sequence # as shown in manufacturers datasheet StepCount2 = 8 Seq2 =  Seq2 = range(0, StepCount2) Seq2 = [1,0,0,0] Seq2 = [1,1,0,0] Seq2 = [0,1,0,0] Seq2 = [0,1,1,0] Seq2 = [0,0,1,0] Seq2 = [0,0,1,1] Seq2 = [0,0,0,1] Seq2 = [1,0,0,1] #Full torque StepCount3 = 4 Seq3 =  Seq3 = [3,2,1,0] Seq3 = [0,0,1,1] Seq3 = [1,0,0,1] Seq3 = [1,1,0,0] Seq3 = [0,1,1,0] # set Seq = Seq2 StepCount = StepCount2 # Start main loop try: while 1==1: for pin in range(0, 4): xpin = StepPins[pin] if Seq[StepCounter][pin]!=0: #print " Step %i Enable %i" %(StepCounter,xpin) GPIO.output(xpin, True) else: GPIO.output(xpin, False) StepCounter += 1 # If we reach the end of the sequence # start again if (StepCounter==StepCount): StepCounter = 0 if (StepCounter<0): StepCounter = StepCount # Wait before moving on time.sleep(WaitTime) except: GPIO.cleanup(); finally: #cleaning up and setting pins to low again (motors can get hot if you wont) GPIO.cleanup(); for pin in StepPins: GPIO.setup(pin,GPIO.OUT) GPIO.output(pin, False)
it is based on code by matt.hawkins but with some improvements I did.
Please be sure you set your GPIOs accordingly to your [amazon &title=Raspberry Pi&text=Raspberry Pi] Revision. So mine was REV 2.0.
Run the code with
sudo python nameOfTheFile.py
and hit [Ctrl]+[C] to stop it. All pins will be set to low afterwards.
In case you want control two motors of this type see another post I made here.