Translate

martedì 13 maggio 2014

RaspBerry Pi - ed il motorino passo passo
 
Ecco la Seconda Puntata del mio approccio con il Raspberry pi... nulla di eclatante.. un po' di prove di "velocita massima", di passi, mezzi passi nulla di che
un po' di ottimizzazione del codice di esempio (un bel try-catch fa' sempre bene) e come al solito i commenti sono piu del codice :P


allego il codice usato:

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

enable_pin = 18
coil_A_1_pin = 4
coil_A_2_pin = 17
coil_B_1_pin = 23
coil_B_2_pin = 24

GPIO.setup(enable_pin, GPIO.OUT)
GPIO.setup(coil_A_1_pin, GPIO.OUT)
GPIO.setup(coil_A_2_pin, GPIO.OUT)
GPIO.setup(coil_B_1_pin, GPIO.OUT)
GPIO.setup(coil_B_2_pin, GPIO.OUT)

GPIO.output(enable_pin, 1)

def forward(delay, steps):  
#mezzo passo 
  for i in range(0, steps):
    setStep(1, 0, 0, 1)
    time.sleep(delay)
    setStep(0, 0, 0, 1)
    time.sleep(delay)
    setStep(0, 0, 1, 1)
    time.sleep(delay)
    setStep(0, 0, 1, 0)
    time.sleep(delay)
    setStep(0, 1, 1, 0)
    time.sleep(delay)
    setStep(0, 1, 0 , 0)
    time.sleep(delay)
    setStep(1, 1, 0, 0)
    time.sleep(delay)
    setStep(1, 0, 0, 0)
    time.sleep(delay)

def backwards(delay, steps): 
#passo intero 
  for i in range(0, steps):
    setStep(1, 0, 0, 0)
    time.sleep(delay)
    setStep(0, 1, 0, 0)
    time.sleep(delay)
    setStep(0, 0, 1, 0)
    time.sleep(delay)
    setStep(0, 0, 0, 1)
    time.sleep(delay)



def setStep(w1, w2, w3, w4):
  GPIO.output(coil_A_1_pin, w1)
  GPIO.output(coil_A_2_pin, w2)
  GPIO.output(coil_B_1_pin, w3)
  GPIO.output(coil_B_2_pin, w4)

try:
  #here you put your main loop or block of code
  delay = raw_input("Delay between steps (milliseconds)?")

  while int(delay) > 0 :
    steps = raw_input("How many steps forward? ")
    forward(int(delay) / 1000.0, int(steps))
    steps = raw_input("How many steps backwards? ")
    backwards(int(delay) / 1000.0, int(steps))
    delay = raw_input("Delay between steps (milliseconds)?")

except KeyboardInterrupt:
  # here you put any code you want to run before the program
  # exits when you press CTRL+C
  #print "\n", counter # print value of counter
  print "\nuscito per pressione tasti CTRL+C"

except:
  # this catches ALL other exceptions including errors.
  # You won't get any error messages for debugging
  # so only use it once your code is working
  print "Other error or exception occurred!"

finally:
  GPIO.cleanup() # this ensures a clean exit

giovedì 3 aprile 2014

RaspBerry Pi - Gli Albori (miei)

Finalmente Dopo mesi che era li a prendere polvere, dopo ricompilazioni varie ed aver scoperto che l'accellerazione video si ha solo a schermo pieno e non in finestra..

Seguendo le seg info la-porta-gpio-della-raspberry-pi

Ho finamente collegato la mia Linux-Box al Trabicolo di legno (compensato pressofuso con colla a caldo qualche intergrato NAND 7400 8 Led ed 8 pulsanti, Marchiato BertZ(TM) 1/9/1995!)
ed ho acceso 3 led!

ora non chiedetemi a che serve che divento triste... per ora è un inizio :o)

ps Facendo una dimostrazione a Mia figlia di 6 anni siamo riusciti a cortocircuitare massa e 3,3V ... a parte un fantasmagorico arcobaleno sul monitor ed un riavvio della macchina... abbiamo ancora la Linux-Box nome in codice Mirtillo (Lampone è troppo inflazionato :D)

Ciao





Migior prezzo su AMAZON per RaspBerry Pi