2021年11月26日金曜日

Make Lottery Using Pico


 






#MakeLottryUsingPico.py
#Stepper motor:28BY-48 5VDC
#Stepper board:Using DRV8833
#LCD 1002 i2c display
##November 25,2021 finished

import machine 
import utime
from machine import I2C,Pin
from pico_i2c_lcd import I2cLcd
import urandom

SW1=Pin(4,Pin.IN,Pin.PULL_DOWN)
SW2=Pin(5,Pin.IN,Pin.PULL_DOWN)
IN1=Pin(6,Pin.OUT)
IN2=Pin(7,Pin.OUT)
IN3=Pin(8,Pin.OUT)
IN4=Pin(9,Pin.OUT)
wait_ms=2
State=False

i2c=I2C(0,sda=Pin(0),scl=Pin(1),freq=400000)
I2C_ADDR=i2c.scan()[0]
lcd=I2cLcd(i2c,I2C_ADDR,2,16)
        
def stepperstart():
    IN1.value(1)
    IN2.value(0)
    IN3.value(0)
    IN4.value(1)
    utime.sleep_ms(wait_ms)
    IN1.value(1)
    IN2.value(1)
    IN3.value(0)
    IN4.value(0)
    utime.sleep_ms(wait_ms)
    IN1.value(0)
    IN2.value(1)
    IN3.value(1)
    IN4.value(0)
    utime.sleep_ms(wait_ms)
    IN1.value(0)
    IN2.value(0)
    IN3.value(1)
    IN4.value(1)
    utime.sleep_ms(wait_ms)

def stepperstop():
    IN1.value(0)
    IN2.value(0)
    IN3.value(0)
    IN4.value(0)
    #utime.sleep(2)
    
def openlcd():
    lcd.putstr("Bit 1 to 6" + "\n")
    lcd.putstr("Long press sw" + "\n")   
    lcd.clear
    
def stoplcd():
    i=urandom.randrange(1,6)
    istring =str(i)
    lcd.putstr("Number is  "  + istring +"\n")
    lcd.putstr(""+"\n")
    lcd.clear
    
openlcd()

while True:   
    if SW1.value()==1:
        State=True
    if SW2.value()==1:
        State=False
      
    if  State==True :
        stepperstart()
    if  State==False and SW2.value()==1 and SW1.value()==0:
        stepperstop()
        stoplcd()

2021年11月5日金曜日

Control DrivenBucketTruck Using Pico


















Kim Grossa porticatiger@gmail.com

15:21 (22 分前)
To porticatiget
#DrivenBucketTruck.py
#6buttons 3DCmotors
#2021/11/05 up

import machine
import utime

L_IN1=machine.Pin(17,machine.Pin.OUT)
L_IN2=machine.Pin(18,machine.Pin.OUT)
L_IN3=machine.Pin(19,machine.Pin.OUT)
L_IN4=machine.Pin(20,machine.Pin.OUT)
R_IN1=machine.Pin(6,machine.Pin.OUT)
R_IN2=machine.Pin(7,machine.Pin.OUT)
R_IN3=machine.Pin(8,machine.Pin.OUT)
R_IN4=machine.Pin(9,machine.Pin.OUT)

btn1=machine.Pin(10,machine.Pin.IN,machine.Pin.PULL_DOWN)
btn2=machine.Pin(11,machine.Pin.IN,machine.Pin.PULL_DOWN)
btn3=machine.Pin(12,machine.Pin.IN,machine.Pin.PULL_DOWN)
btn4=machine.Pin(13,machine.Pin.IN,machine.Pin.PULL_DOWN)
btn5=machine.Pin(14,machine.Pin.IN,machine.Pin.PULL_DOWN)
btn6=machine.Pin(15,machine.Pin.IN,machine.Pin.PULL_DOWN)

Status1=0
Status2=0
Status3=0
Status4=0
Status5=0
Status6=0

def GoForward():
    L_IN1.value(1)
    L_IN2.value(0)    
    L_IN3.value(1)
    L_IN4.value(0)
    utime.sleep(0.5)
   
def GoBack():
    L_IN1.value(0)
    L_IN2.value(1)
    L_IN3.value(0)
    L_IN4.value(1)
    utime.sleep(0.5)
   
def TurnRight():
    L_IN1.value(1)
    L_IN2.value(0)
    L_IN3.value(0)
    L_IN4.value(1)
    utime.sleep(0.5)
   
def TurnLeft():
    L_IN1.value(0)
    L_IN2.value(1)
    L_IN3.value(1)
    L_IN4.value(0)
    utime.sleep(0.5)
   
def StageDown():
    R_IN1.value(0)
    R_IN2.value(1)
    R_IN3.value(0)
    R_IN4.value(1)
    utime.sleep(0.5)
   
def StageUp():
    R_IN1.value(1)
    R_IN2.value(0)
    R_IN3.value(1)
    R_IN4.value(0)
    utime.sleep(0.5)
   
def MotorStop():
    L_IN1.value(0)
    L_IN2.value(0)
    L_IN3.value(0)
    L_IN4.value(0)
    R_IN1.value(0)
    R_IN2.value(0)
    R_IN3.value(0)
    R_IN4.value(0)    
   
while True:        
    Status1=btn1.value()
    if(Status1==1):
        GoForward()
        Status1=0
        utime.sleep(0.01)
    else:
        MotorStop()      
        utime.sleep(0.01)
       
    Status2=btn2.value()
    if(Status2==1):
        GoBack()
        Status2=0
        utime.sleep(0.01)
    else:
        MotorStop()
        utime.sleep(0.01)
       
    Status3=btn3.value()
    if(Status3==1):
        TurnRight()
        Status3=0
        utime.sleep(0.01)
    else:
        MotorStop()
        utime.sleep(0.01)
       
    Status4=btn4.value()
    if(Status4==1):
        TurnLeft()
        Status4=0
        utime.sleep(0.01)
    else:
        MotorStop()
        utime.sleep(0.01)
       
    Status5=btn5.value()
    if(Status5==1):
        StageDown()
        Status5=0
        utime.sleep(0.01)
    else:
        MotorStop()
        utime.sleep(0.01)
       
    Status6=btn6.value()
    if(Status6==1):
        StageUp()
        Status6=0
        utime.sleep(0.01)
    else:
        MotorStop()
        utime.sleep(0.01)