示例#1
0
def liveMode(enable=True):
        global led_stat
        if (enable):
                btn_flash = pin(0, pin.OUT)
                led_stat.on()
                log('liveMode')
        else:
                btn_flash = pin(0, pin.IN, pin.PULL_UP)
                led_stat.off()
                btn_flash.irq(handler=intr, trigger=pin.IRQ_FALLING)
                log('eventMode')
示例#2
0
def readPin(pinNo):
    """
        Read and return the pin value.
    """
    pinNo = getMappedPin(pinNo)
    p = pin(pinNo, pin.IN)
    return p.value()
示例#3
0
def writePin(pinNo, val):
    """
        Write a value (0 or 1) to the pin.
    """
    pinNo = getMappedPin(pinNo)
    p = pin(pinNo, pin.OUT)
    p.value(val)
示例#4
0
def releaseServo(pinNo, override=False):
    if not override:
        servoPin = getMappedPin(pinNo)
    else:
        servoPin = pinNo
    servo = PWM(pin(servoPin))
    servo.deinit()
示例#5
0
def pinOn(pinNo):
    """
        Set the pin as High and returns the new value
    """
    pinNo = getMappedPin(pinNo)
    p = pin(pinNo, pin.OUT)
    p.on()
    return p.value()
示例#6
0
def pinOff(pinNo):
    """
        Set the pin as Low and returns the new value.
    """
    pinNo = getMappedPin(pinNo)
    p = pin(pinNo, pin.OUT)
    p.off()
    return p.value()
示例#7
0
def readPinPUP(pinNo):
    """
        Read and return the pin value.
        Note: The pin is pulled up.
    """
    pinNo = getMappedPin(pinNo)
    p = pin(pinNo, pin.IN, pin.PULL_UP)
    return p.value()
示例#8
0
def togglePin(pinNo):
    """
        Toggle the value (0 or 1) of the pin and return the new value.
    """
    pinNo = getMappedPin(pinNo)
    p = pin(pinNo, pin.OUT)
    p.value(not (p.value()))
    return p.value()
示例#9
0
def pinStateListener(pinNo, _listener=None, _trigger=pin.IRQ_RISING):
    """
        sets a pin state change listener
    """
    if _listener is not None:
        pinNo = getMappedPin(pinNo)
        p = pin(pinNo, pin.IN, pin.PULL_UP)
        p.irq(handler=_listener, trigger=_trigger)
    else:
        pass
示例#10
0
def scan_i2c():
        log('scanning i2c port')
        i2c = _i2c(scl=pin(1), sda=pin(2))
        scans = i2c.scan()
        busy_led = pin(0, pin.OUT)

        if (len(scans) == 0):
                log("No I2C device found! Reset device..")
                busy_led.on()
                utime.sleep(2)
                busy_led.off()
                utime.sleep_ms(200)
                updateI2CState(I2C_NIL)
        else:
                log("i2c found:")
                for addr in scans:
                        log(hex(addr))
                busy_led.off()
                utime.sleep(1)
                updateI2CState(I2C_FOUND)
示例#11
0
def runServo(pinNo, duty=None, override=False, freq=50):
    if not override:
        servoPin = getMappedPin(pinNo)
    else:
        servoPin = pinNo
    servo = PWM(pin(servoPin))
    servo.freq(freq)

    if duty is not None:
        # limit the duty between 1 & 130
        duty = min(130, max(0, int(duty)))
        servo.duty(duty)
        return servo
    else:
        #return the angle of the servo
        return servo.duty()
示例#12
0
def runServoAngle(pinNo, angle=None, override=False, freq=50):
    if not override:
        servoPin = getMappedPin(pinNo)
    else:
        servoPin = pinNo
    servo = PWM(pin(servoPin))
    servo.freq(freq)

    # limit the angle between 1 & 180
    if angle < 0:
        angle = 0
    elif angle > 180:
        angle = 180
    mappedDuty = math.ceil(1 + 0.9277778 * angle - 0.00117284 * angle * angle)
    servo.duty(mappedDuty)
    return servo
示例#13
0
def motrCtrl(motPin, mode):
    p1 = pin(4, pin.OUT)
    p2 = pin(5, pin.OUT)

    p3 = pin(0, pin.OUT)
    p4 = pin(2, pin.OUT)

    e1 = pin(14, pin.OUT)
    e2 = pin(12, pin.OUT)

    #p1 = pin(12, pin.OUT)
    #p2 = pin(14, pin.OUT)

    #p3 = pin(13, pin.OUT)
    #p4 = pin(15, pin.OUT)

    e1.value(1)
    e2.value(1)
    if (motPin == 1):
        if (mode == 0):
            p1.value(0)
            p2.value(0)
        elif (mode > 0):
            p1.value(1)
            p2.value(0)
        elif (mode < 0):
            p1.value(0)
            p2.value(1)
    elif (motPin == 2):
        if (mode == 0):
            p3.value(0)
            p4.value(0)
        elif (mode > 0):
            p3.value(1)
            p4.value(0)
        elif (mode < 0):
            p3.value(0)
            p4.value(1)
示例#14
0
from machine import Pin as pin

p1 = pin(16, pin.OUT)
p2 = pin(14, pin.OUT)
p3 = pin(12, pin.OUT)
p4 = pin(13, pin.OUT)
led = pin(15, pin.OUT)

from time import sleep


def loop_single(t=0.01, pin1=p1, pin2=p3, pin3=p2, pin4=p4):
    '''mind the inversion 1-3-2-4'''
    while True:
        pin1.high()
        pin2.low()
        pin3.low()
        pin4.low()
        sleep(t)
        pin1.low()
        pin2.high()
        pin3.low()
        pin4.low()
        sleep(t)
        pin1.low()
        pin2.low()
        pin3.high()
        pin4.low()
        sleep(t)
        pin1.low()
        pin2.low()
示例#15
0
                        cxn.sendall('Connection Successful!%s'%(sendBack))
                        cxn.close()

createServer()

def intr(pin):
        global EV
        if not EV:
                EV = True
                global led_stat
                led_stat.on()
                main()
                led_stat.off()
                EV = False

led_stat = pin(16, pin.OUT)

def liveMode(enable=True):
        global led_stat
        if (enable):
                btn_flash = pin(0, pin.OUT)
                led_stat.on()
                log('liveMode')
        else:
                btn_flash = pin(0, pin.IN, pin.PULL_UP)
                led_stat.off()
                btn_flash.irq(handler=intr, trigger=pin.IRQ_FALLING)
                log('eventMode')

#liveMode(False)
# Note: this only runs on the WiPy. See chapter text
#       for how to modify this to run on the Pyboard.
#

# Imports for the project
import urtc
import utime
from machine import SPI, I2C, RTC as rtc, Pin as pin
from ssd1306 import SSD1306_SPI as ssd

# Setup SPI and I2C
spi = SPI(0, SPI.MASTER, baudrate=2000000, polarity=0, phase=0)
i2c = I2C(0, I2C.MASTER, baudrate=100000, pins=("P9", "P8"))

# Setup the OLED : D/C, RST, CS
oled_module = ssd(128, 32, spi, pin('P5'), pin('P6'), pin('P7'))

# Setup the RTC
rtc_module = urtc.DS1307(i2c)

#
# NOTE: We only need to set the datetime once. Uncomment these
#       lines only on the first run of a new RTC module or
#       whenever you change the battery.
#       (year, month, day, weekday, hour, minute, second, millisecond)
#start_datetime = (2017,07,20,4,9,0,0,0)
#rtc_module.datetime(start_datetime)


# Return a string to print the day of the week
def get_weekday(day):
示例#17
0
 def __init__(self):
     self._t = 0
     self._p = 0
     self._h = 0
     i2c = machine.I2C(scl=machine.pin(MY_SCK), sda=machine.pin(MY_SDI))
     self.bme = bme280.BME280(address=MY_BME280_ADDR, i2c=i2c)
import ds18x20
import machine
import micropython as mp
import onewire
from boot import AP
import utime
# the wlan variable should carry over from boot.py

TEMP_READ_PIN = 12
PUMP_PIN = 0

mp.const(TEMP_READ_PIN)
mp.const(PUMP_PIN)

dat = machine.Pin(TEMP_READ_PIN, machine.Pin.IN)
pump_pin = machine.pin(PUMP_PIN, machine.Pin.OUT)

# create the onewire object
ds = ds18x20.DS18X20(onewire.OneWire(dat))

# scan for temp devices on the bus
roms = ds.scan()
print('found devices:', roms)

def pump(time=10000, state="off"):
    if state == "on" and pump_pin.value()==0:
        pump_pin.value(1)



def checktemp():
示例#19
0
from machine import Pin as pin
from machine import PWM
import time

db7 = pin(5, pin.OUT)
db6 = pin(4, pin.OUT)
db5 = pin(0, pin.OUT)
db4 = pin(2, pin.OUT)
rs = pin(12, pin.OUT)
e = pin(14, pin.OUT)
contrast = PWM(pin(13))


def write_data(data, prewait, rsval):
    time.sleep(prewait / 1000)
    e.value(1)
    db7.value(int(data[0]))
    db6.value(int(data[1]))
    db5.value(int(data[2]))
    db4.value(int(data[3]))
    rs.value(int(rsval))
    time.sleep(.010)
    e.value(0)
    #print(db7.value(), db6.value(), db5.value(), db4.value(), " - ", rs.value())


def write(data):
    data = bytearray(data, "utf-8")
    for i in range(len(data)):
        sdata = data[i]
        sdata = str(bin(sdata))
示例#20
0
import dht
import machine

d = dht.DHT22(machine.pin(4))

d.measure()

t = d.temperature()

d = d.humidity()

print("temperatura")
print(t)

print("humidade")
print(d)
示例#21
0
#Nellie
import machine


Blue=machine.pin(21,machine.pin.OUT)

Leaf=machine.pin(22.machine.pin.IN)

red=machine.pin(23,machine.pin.OUT)

lead=machine.pin(19,machine.pin.IN)

Leaf.value()
lead.value()

while True:
if leaf() ==1:
 Leaf.OFF()
else:
 Leaf.on()
 if red()==1:
     Blue.off()

   
   #Jed
   
   import machine

blue = machine.Pin(23, machine.Pin.OUT)
green = machine.Pin(21, machine.Pin.OUT)
redbutton = machine.Pin(22, machine.Pin.IN)
示例#22
0
import machine
import common
import app
pin_init = common.pin_init()
pin_init.init()
#ov=machine.ov2640()
#lcd=machine.st7789()
#ov.init()
#lcd.init()
#buf=bytearray(320*240*2)
#test=machine.test()
#test=test.init()
test_gpio_pin_num = 15
fpioa = machine.fpioa()
fpioa.set_function(test_gpio_pin_num, 63)
test_pin = machine.pin(7, 0, 0)
if test_pin.value() == 1:
    print('test')
    machine.test()
    #while(1):
    #    ov.get_image(buf)
    #    lcd.draw_picture_default(buf)
    #    test.gpio()

# run usr init.py file
file_list = os.ls()
for i in range(len(file_list)):
    if file_list[i] == '/init.py':
        import init

# machine.ov2640()
示例#23
0
def resetAllPins():
    for pinNo in range(0, 9):
        pinNo = getMappedPin(pinNo)
        p = pin(pinNo, pin.OUT)
        p.off()
        return p.value()
示例#24
0
import machine 
import time 
D6 = machine.Pin(12,machine.PIN.OUT)
while True:
    d6.value(1)
    time.sleep(1000)
    d6.value(0)
    time.sleep(1000)

import machine 
import time 
pin = machine.pin(4,machine.PIN.OUT)
for i in range(0,10):
    pin.value(1)
    time.sleep(5)
    pin.value(0)
    time.sleep(5)
#it stays on

示例#25
0
import machine
import time
pin = machine.pin(16, machine.PIN.OUT)
while True:
    pin.value(1)
    time.sleep(1)
    pin.value(0)
    time.sleep(1)
示例#26
0
文件: main.py 项目: dakotak/LightShow
import machine
import neopixel
from utime import sleep_ms

from led_controller import Controller

LED_COUNT = 50
NP_PIN = 27
LOOP_SLEEP_MS = 250

np = neopixel.NeoPixel(machine.pin(NP_PIN), LED_COUNT)
controller = Controller(LED_COUNT)


def update_leds():
    for i in range(LED_COUNT):
        np[i] = controller._leds[i].rgb
    np.write()


def run_show():
    while True:
        controller.event_loop()
        update_leds()
        sleep_ms(LOOP_SLEEP_MS)
示例#27
0
import uos
import os
import machine
import platform
import board
board_info = board.board_info()
pin_init = platform.pin_init()
pin_init.init()
test_gpio_pin_num = 18
fpioa = machine.fpioa()
fpioa.set_function(test_gpio_pin_num, 63)
test_pin = machine.pin(7, 2, 0)
lcd = machine.st7789()
lcd.init()
lcd.draw_string(116, 121, "Welcome to MaixPy")
fpioa.set_function(board_info.LED_R, fpioa.GPIO0)
fpioa.set_function(board_info.LED_B, fpioa.GPIO1)
fpioa.set_function(board_info.LED_G, fpioa.GPIO2)
if test_pin.value() == 0:
    print('test')
    machine.test()
#

# Imports for the project
import pyb
import urtc
from machine import SPI, Pin as pin
from pyb import I2C
from ssd1306 import SSD1306_SPI as ssd

# Setup SPI and I2C 
spi = SPI(2, baudrate=8000000, polarity=0, phase=0)
i2c = I2C(1, I2C.MASTER)
i2c.init(I2C.MASTER, baudrate=500000)

# Setup the OLED : D/C, RST, CS
oled_module = ssd(128,32,spi,pin("Y4"),pin("Y3"),pin("Y5"))

# Setup the RTC
rtc_module = urtc.DS1307(i2c)
#
# NOTE: We only need to set the datetime once. Uncomment these
#       lines only on the first run of a new RTC module or
#       whenever you change the battery.
#       (year, month, day, weekday, hour, minute, second, millisecond)
#start_datetime = (2017,07,20,4,9,0,0,0)
#rtc_module.datetime(start_datetime)

# Return a string to print the day of the week
def get_weekday(day):
    if day == 1: return "Sunday"
    elif day == 2: return "Monday"
from machine import Pin as pin, PWM
import utime, rf, os, ubinascii

OFF = 0; ON = 1 
LED_OFF = 1; LED_ON = 0 
FORWARD = 1; BACK = 0
pwmRight = pin(14,pin.OUT)
dirRight = pin(15,pin.OUT)
pwmLeft = pin(12,pin.OUT)
dirLeft = pin(0,pin.OUT)
LED = pin(2,pin.OUT)
LED.value(LED_OFF)

def setRobotId(id):
    f = open("robot_id", 'w')
    f.write(str(id) + chr(10))
    f.close()

def executePacket(msgDict):
    print ("Executing:")
    for k in msgDict.keys():
        print("   ", k, msgDict[k])
    if msgDict["rightMotorDirction"] == "FORWARD":
        dirRight.value(FORWARD)
    else:
        dirRight.value(BACK)
    if msgDict["leftMotorDirction"] == "FORWARD":
        dirLeft.value(FORWARD)
    else:
        dirLeft.value(BACK)
    pwmRight.value(ON);  pwmLeft.value(ON)
示例#30
0
def resetBtnFlash():
    btn_flash = pin(0, pin.OUT)
    btn_flash.off()
    print("starting EventLoop")