コード例 #1
0
 def __init__(self, mode):
     self.i2c = pyb.I2C(1, pyb.I2C.MASTER)
     self.addr = pyb.I2C.scan(self.i2c)
     if self.i2c.is_ready(addr):
         self.i2c.mem_write(mode, addr, op_reg)
コード例 #2
0
pot = ADC(Pin('X11'))
mic = ADC(Pin('Y11'))
r_LED = LED(1)
g_LED = LED(2)
y_LED = LED(3)
b_LED = LED(4)

g_pitch = 0

#  Configure X2:4, X7 as setting input pin - pull_up to receive switch settings
s0 = Pin('Y3', pyb.Pin.IN, pyb.Pin.PULL_UP)
s1 = Pin('X6', pyb.Pin.IN, pyb.Pin.PULL_UP)

# I2C connected to Y9, Y10 (I2C bus 2) and Y11 is reset low active
try:
    i2c_2 = pyb.I2C(2, pyb.I2C.MASTER)
    dev_list = i2c_2.scan()
    oled = OLED_938(pinout={
        'sda': 'Y10',
        'scl': 'Y9',
        'res': 'Y8'
    },
                    height=64,
                    external_vcc=False,
                    i2c_devid=dev_list[0])
    oled.poweron()
    oled.init_display()
    oled_ok = True
except:
    print("\n*** OLED Display missing ***\n")
コード例 #3
0
#
# This example shows the power of the OpenMV Cam to detect QR Codes
# using lens correction (see the qrcodes_with_lens_corr.py script for higher performance).

import sensor, image, time, pyb, ustruct

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)
sensor.set_auto_gain(False)  # must turn this off to prevent image washout...
clock = time.clock()

text = "Hello World!\n"
data = ustruct.pack("<%ds" % len(text), text)
bus = pyb.I2C(2, pyb.I2C.SLAVE, addr=0x12)
bus.deinit()
bus = pyb.I2C(2, pyb.I2C.SLAVE, addr=0x12)
print("Waiting for Arduino...")

while (True):
    clock.tick()
    img = sensor.snapshot()
    img.lens_corr(1.8)  # strength of 1.8 is good for the 2.8mm lens.
    for code in img.find_qrcodes():
        img.draw_rectangle(code.rect(), color=(255, 0, 0))
        #print(code)
        lcode = code.payload()
        print(code.payload())
        if 'forward' in lcode.lower():
            data = "forward\n"
コード例 #4
0
# test of pyb stub file
import pyb

x = pyb.ADC

pyb.stop()

pyb.hard_reset()

i2c = pyb.I2C()
i2c.init('x')

c = pyb.CAN()
c.init()

import sys
sys.path.insert(1, "C:\\develop\\MyPython\\Stubber\\stubs\\esp32_LoBo_3_2_24")

sys.path
コード例 #5
0
ファイル: main.py プロジェクト: tobbad/micropython_lib
import pyb
from board import sys_config
#from hts221 import HTS221
from ism43362 import ISM43362

if 1 == 0:
    i2c = pyb.I2C(sys_config['hts221']['i2c_bus'],
                  pyb.I2C.MASTER,
                  baudrate=100000)
    hts221 = HTS221(i2c, sys_config['hts221']['i2c_addr'])
    hts221.print_calib()
    print("Humidity    = %4.1f %%" % hts221.humidity())
    print("Temperature =  %2.1f C" % hts221.temperature())
if 1 == 0:
    mag = LIS3MDL(i2c, sys_config['lis3mdl']['i2c_addr'])
    x, y, z = mag.xyz()
    print("Magnetic field = (%.3e, %.3e, %.3e) %s" % (x, y, z, mag.unit()))

    #p = LPS25H(i2c, sys_config['lps25h']['i2c_addr'])
    print("Pressure %5.3e %s, Height %.1f m, Temperature = %.1f C" %
          (p.value(), p.unit(), p.height(), p.temperature()))

    #dist = VL6180X(i2c, sys_config['vl6180x']['i2c_addr'])
    val = dist.dev_id()
    print("Distance sensor:")
    print("\n".join(["  %s: %s" % (k, v) for k, v in val.items()]))
    print("Distance      %.1f %s" % (dist.value(), dist.unit()))

wifi_com = pyb.SPI(sys_config['ism43362']['spi_bus'],
                   pyb.SPI.MASTER,
                   baudrate=1000000,
コード例 #6
0
ファイル: htu21d.py プロジェクト: skylin008/pyboard
 def __init__(self):
     self.i2c = pyb.I2C(1, pyb.I2C.MASTER)
コード例 #7
0
import pyb

# Touch keypad
import mpr121
keybd = mpr121.MPR121(pyb.I2C(1, pyb.I2C.MASTER))
keybd.debounce(3, 3)
for electr in range(4):
    keybd.threshold(electr, 50, 30)

# LCD
lcd = pyb.LCD('X')
lcd.light(True)

# Test program
from math import cos, sin, pi, sqrt, atan2, asin, acos
d2r = pi / 180


def circle_intersection(circle1, circle2):
    '''
    @summary: calculates intersection points of two circles
    @param circle1: tuple(x,y,radius)
    @param circle2: tuple(x,y,radius)
    @result: tuple of intersection points (which are (x,y) tuple)
    '''
    # return self.circle_intersection_sympy(circle1,circle2)
    x1, y1, r1 = circle1
    x2, y2, r2 = circle2
    # http://stackoverflow.com/a/3349134/798588
    dx, dy = x2 - x1, y2 - y1
    d = sqrt(dx * dx + dy * dy)
コード例 #8
0
 def __init__(self, slave_addr=0x12, rate=100000): # private
     self.__addr = slave_addr
     self.__freq = rate
     self.__i2c = pyb.I2C(2)
     rpc_master.__init__(self)
     self._stream_writer_queue_depth_max = 1
コード例 #9
0
 def __init__(self, slave_addr=0x12): # private
     self.__addr = slave_addr
     self.__i2c = pyb.I2C(2)
     rpc_slave.__init__(self)
     self._stream_writer_queue_depth_max = 1
コード例 #10
0
#!/usr/bin/env python
#
# Main file for STM32F4DISCOVERY
#
import os
import sys

import pyb
from board import sys_config
from lps22hb import LPS22HB

i2c = pyb.I2C(sys_config['pmod']['p7']['i2c_bus'],
              pyb.I2C.MASTER,
              baudrate=100000)

sen = LPS22HB(i2c, 0x5C)
コード例 #11
0
ファイル: bmp180.py プロジェクト: pymagic-org/pymagic_driver
 def __init__(self, bus=1, address=BMP180_I2CADDR, mode=BMP180_STANDARD):
     self._mode = mode
     self._address = address
     self._bus = pyb.I2C(bus, pyb.I2C.MASTER)
     # Load calibration values
     self._load_calibration()
コード例 #12
0
from pyb import I2C
import micropython
import ustruct
import utime
import bno055

#i2c = pyb.I2C(1, I2C.MASTER, baudrate = 115200)

#==============================================================================
# i2c.mem_write(0x0C, 0x28, 0x3D)
# utime.sleep_ms(10)
#
# status = i2c.mem_read(1,0x28,0x39)
# print(ustruct.unpack('b',status))
#
# error = i2c.mem_read(1,0x28,0x3A)
# print(ustruct.unpack('b',error))
#==============================================================================

imu = bno055.bno055(pyb.I2C(1, I2C.MASTER, baudrate=100000), 0x28)

while True:
    #    pitch = i2c.mem_read(2, 0x28, 0x1A)
    #    print(ustruct.unpack('<h',pitch))
    #    print(str(pitch) + '\n')
    pitch = imu.get_euler_pitch()
    roll = imu.get_euler_roll()
    yaw = imu.get_euler_yaw()
    print(str(pitch) + ',' + str(roll) + ',' + str(yaw) + '\n')
    utime.sleep_ms(10)
コード例 #13
0
 def __init__(self):
     self.bus = pyb.I2C(2, pyb.I2C.SLAVE, addr=0x12)
     self.bus.deinit()
     self.bus = pyb.I2C(2, pyb.I2C.SLAVE, addr=0x12)
コード例 #14
0
ファイル: main.py プロジェクト: tobbad/micropython_lib
import pyb
from board import config
from conf import conf
from time import sleep


rp = pyb.Pin('PE3', pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE)
rp.high()

i2c = pyb.I2C(1, pyb.I2C.MASTER, baudrate=100000)

spi = pyb.SPI(2, pyb.SPI.MASTER, baudrate=600000, polarity=1, phase=1)


if conf==0:
    from l3gd20 import L3GD20
    from lsm303c import LSM303C
    from mfx import MFX
    cs_gyro = pyb.Pin('PD7', pyb.Pin.OUT_PP)
    gyro = L3GD20(spi, cs_gyro)
    # gyro.DEBUG = False
    print("Gyro = (%7.2f %7.2f, %7.2f)" % gyro.xyz())
    print("Temperature = %.1f C" % gyro.temperature())
    cs_accel = pyb.Pin('PE0', pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE)
    cs_mag = pyb.Pin('PC0', pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE)
    mems = LSM303C(spi, cs_mag, cs_accel)
    mems.bidi_mode()
    mems.exists()
    print("Accel = (%6.4f, %6.4f, %6.4f)" % mems.accel.xyz())
    print("Mag   = (%6.4f, %6.4f, %6.4f)" % (mems.mag.xyz()))
コード例 #15
0
ファイル: apds2.py プロジェクト: woo10e/MicroPython-3
 def __init__(self, aLoc):
     self.i2c = pyb.I2C(aLoc, pyb.I2C.MASTER)
     self._b1 = bytearray(1)
     self.init()
コード例 #16
0
#hardware platform: Brainpad
#Testing the onboard Oled
import pyb
import ssd1306

i2c=pyb.I2C(1,pyb.I2C.MASTER,baudrate=100000)
lcd=ssd1306.SSD1306_I2C(128,64,i2c)
lcd.text("The BrainPad",0,0)
lcd.text("From ",0,16)
lcd.text("GHI Electronics",0,32)
lcd.show()
コード例 #17
0
def s0_pan_position(value):
    s0_pan.pulse_width(
        round(s0_lower_limit +
              (max(min(value, 1000), 0) * s0_pan_conversion_factor)))


def s1_tilt_position(value):
    s1_tilt.pulse_width(
        round(s1_lower_limit +
              (max(min(value, 1000), 0) * s1_tilt_conversion_factor)))


# Link Setup

bus = pyb.I2C(2, pyb.I2C.SLAVE, addr=i2c_address)


def write(data):
    # Prepare the data to transmit first so we can do it quickly.
    out_data = []
    for i in range(0, len(data), 2):
        out_data.append(data[i:i + 2])
    # Disable interrupts so we can send all packets without gaps.
    state = pyb.disable_irq()
    for i in range(len(out_data)):
        max_exceptions = 10
        loop = True
        while (loop):
            try:
                bus.send(out_data[i], timeout=1)
コード例 #18
0
 def __init__(self, bus):  # Check existence and wake it
     self._i2c = pyb.I2C(bus, pyb.I2C.MASTER)
     devices = self._i2c.scan()
     if not LM75_ADDR in devices:
         raise OSError("No LM75 device detected")
     self.wake()
コード例 #19
0
# main.py -- put your code here!
from pyb import LCD, SPI, I2C
import math
import os
import sys
import random
import pyb
SPI(5, SPI.MASTER, 6000000)
lcd = LCD(0)
lcd.line(0x1c, 1, 1, 1)
led = pyb.LED(1)

i2c = pyb.I2C(3, pyb.I2C.MASTER)

t_pressed = 0


def mandelbrot():
    # returns True if c, complex, is in the Mandelbrot set
    #@micropython.native
    def in_set(c):
        z = 0
        for i in range(40):
            z = z * z + c
            if abs(z) > 60:
                return False
        return True

    lcd.line(0xffff, 1, 1, 1)
    for u in range(230):
        for v in range(310):
コード例 #20
0
import pyb
pot = pyb.ADC('Y12')
hpctl = pyb.Pin('Y11')
hpctl.init(hpctl.OUT_PP)
hpctl.high()
i2c = pyb.I2C(2)
i2c.init(i2c.MASTER)
# Might do a 'try' here to make sure both i2c devices are working:
i2c.scan()
#> [26, 96]

# Set Headphone Amp chip registers:
i2c.mem_write(0xc0, 96, 1) # control register: enable both amplifier channels, activate stereo mode
i2c.mem_write(0x35, 96, 2) # volume register; unmute both channels, set gain to ~0dB
i2c.mem_write(0x00, 96, 3) # output tri-state register; set both channels to output mode

# Set codec registers:
# THe SSM2604 uses a register addressing scheme that does not map directly to the uPy
# mem_read / mem_write methods.
# There are a total of 11 9-bit registers (R0-R9 and R15) which are selected using a
# 7-bit address. Register writes are constructed using the 'send' method:
# i2c.send('0b<7-bit register address><9-bit register data>', 26)
# Register reads can use 'mem_read' but the register address must be multiplied by 2
# (or shifted 1 bit left, so the 7-bit address is left justified)
# The read should be for two bytes, and the 'bytes' object that is returned will be
# two bytes long with the LSB first

# Set up Codec for Pass-Through
i2c.send(b'\x00\x17', 26) # LEFT ADC INPUT GAIN, ADDRESS 0x00: unmute left ADC, input gain=0dB
i2c.send(b'\x02\x17', 26) # RIGHT ADC INPUT GAIN, ADDRESS 0x01: unmute right ADC, input gain=0dB
# R2 and R3 are reserved
コード例 #21
0
ファイル: boot.py プロジェクト: jonathancross/specter-diy
# boot.py -- run on boot-up
# can run arbitrary Python, but best to keep it minimal
import pyb, os, micropython, time

# power hold
pwr = pyb.Pin("B15", pyb.Pin.OUT)
pwr.on()

# v1.5.3-rc99 - use odd rc for main firmware and even for debug
# so it's possible to upgrade from debug to main firmware.
# (rc99 is final version for production)
version = "<version:tag10>0100500399</version:tag10>"

# get i2c
i2c = pyb.I2C(1)
i2c.init()
# start measurements
if 112 in i2c.scan():
    i2c.mem_write(0b00010000, 112, 0)

leds = [pyb.LED(i) for i in range(1, 5)]


# poweroff on button press
def pwrcb(e):
    micropython.schedule(poweroff, 0)


# callback scheduled from the interrupt
def poweroff(_):
    # make sure it disables power no matter what
コード例 #22
0
    def __init__(self, i2c_num, address=0x76):
        # I2C 1 : SCL = X9, SDA = X10
        # I2C 2 : SCL = Y9, SDA = Y10
        self.i2c = pyb.I2C(i2c_num, pyb.I2C.MASTER)
        self.addr = address
        if not self.i2c.is_ready(self.addr):
            raise ValueError('No I2C device on I2C bus ' + str(i2c_num) +
                             ' at address ' + str(self.addr))

        self.id = BME280.int_from_bytes(
            self.i2c.mem_read(1, self.addr, self.ID_REG))

        buf = bytearray(2)

        # Read the compensation parameters
        self.i2c.mem_read(buf, self.addr, BME280.DIG_T1)
        self.dig_T1 = BME280.int_from_bytes(buf, "little")
        self.i2c.mem_read(buf, self.addr, BME280.DIG_T2)
        self.dig_T2 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_T3)
        self.dig_T3 = BME280.int_from_bytes(buf, "little", signed=True)

        self.i2c.mem_read(buf, self.addr, BME280.DIG_P1)
        self.dig_P1 = BME280.int_from_bytes(buf, "little")
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P2)
        self.dig_P2 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P3)
        self.dig_P3 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P4)
        self.dig_P4 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P5)
        self.dig_P5 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P6)
        self.dig_P6 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P7)
        self.dig_P7 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P8)
        self.dig_P8 = BME280.int_from_bytes(buf, "little", signed=True)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_P9)
        self.dig_P9 = BME280.int_from_bytes(buf, "little", signed=True)

        self.dig_H1 = BME280.int_from_bytes(
            self.i2c.mem_read(1, self.addr, BME280.DIG_H1), "little")
        self.i2c.mem_read(buf, self.addr, BME280.DIG_H2)
        self.dig_H2 = BME280.int_from_bytes(buf, "little", signed=True)
        self.dig_H3 = BME280.int_from_bytes(
            self.i2c.mem_read(1, self.addr, BME280.DIG_H3), "little")
        self.i2c.mem_read(buf, self.addr, BME280.DIG_H4)
        self.dig_H4 = (buf[0] << 4) | (buf[1] & 0b1111)
        self.i2c.mem_read(buf, self.addr, BME280.DIG_H5)
        self.dig_H5 = (buf[1] << 4) | ((buf[0] >> 4) & 0b1111)
        self.dig_H6 = BME280.int_from_bytes(self.i2c.mem_read(
            1, self.addr, BME280.DIG_H6),
                                            "little",
                                            signed=True)

        # Set humidity measurements with no oversampling
        self.i2c.mem_write(BME280.OVRSAMP_1, self.addr, BME280.HUM_CTRL_REG)
        # Set temperature and pressure measurements with no oversampling
        buf = bytearray(1)
        self.i2c.mem_read(buf, self.addr, BME280.MEAS_REG)
        buf[0] &= ~(BME280.TEMP_MASK | BME280.PRESS_MASK)
        buf[0] |= (BME280.OVRSAMP_1 << BME280.TEMP_CTRL) \
                | (BME280.OVRSAMP_1 << BME280.PRESS_CTRL)
        self.i2c.mem_write(buf, self.addr, BME280.MEAS_REG)
コード例 #23
0
    ## physical connections (pyb - LSM9DS0):
    ## Y12     - CSG
    ## Y11     - CSXM
    ## MOSI(1) - SDA
    ## MISO(1) - SDOG and SDOXM
    ## SCK(1)  - SCL
    #spi = pyb.SPI(1, mode=pyb.SPI.MASTER, baudrate=328125)
    #spi_g = pyb.Pin('Y12', pyb.Pin.OUT_PP)
    #spi_xm = pyb.Pin('Y11', pyb.Pin.OUT_PP)
    #lsm9ds0 = LSM9DS0(spi=spi, g_addr=spi_g, xm_addr=spi_xm, g_sens=500, a_sens=4, m_sens=12)

    # I2C mode:
    # physical connections (pyb - LSM9DS0):
    # SDA(2) - SDA
    # SCL(2) - SCL
    i2c = pyb.I2C(2, mode=pyb.I2C.MASTER, baudrate=100000)
    lsm9ds0 = LSM9DS0(i2c=i2c, g_sens=500, a_sens=4, m_sens=12)

    g_id, xm_id = lsm9ds0.who_am_i()
    print((g_id, xm_id))  # (b'\xd4', b'I')

    pyb.delay(1000)

    lsm9ds0.accel.set_sens(16)

    while True:
        print(lsm9ds0.accel.all())
        mag_x = lsm9ds0.mag.x()
        gyro_z = lsm9ds0.gyro.z()
        pyb.delay(100)
コード例 #24
0
# test pyb module on F405 MCUs

import os, pyb

if not "STM32F405" in os.uname().machine:
    print("SKIP")
    raise SystemExit

print(pyb.freq())
print(type(pyb.rng()))

# test HAL error specific to F405
i2c = pyb.I2C(2, pyb.I2C.CONTROLLER)
try:
    i2c.recv(1, 1)
except OSError as e:
    print(repr(e))
コード例 #25
0
#init
import pyb, gc

# 1.0 open, 0.0 closed
w_status = 1
#0 early, 1 late, 2 night, 3 manual
w_mode = 3

w_times = [[(19, 0), (8, 0)], [(19, 0), (10, 0)], [(7, 0), (14, 30)]]
#hardware
i2c = pyb.I2C(2, pyb.I2C.MASTER)
i2c.mem_write(4, 90, 0x5e)
touch = i2c.mem_read(1, 90, 0)[0]

s_up = pyb.Servo(1)
s_down = pyb.Servo(2)

lcd = pyb.LCD('Y')

rtc = pyb.RTC()

led_b = pyb.LED(1)
led_2 = pyb.LED(2)
#calibration
s_up.angle(-12)


def use_btn_w_servo(servo, duration=18000, inverse=False):
    if inverse:
        end_pos = -30
    else:
コード例 #26
0
ファイル: main.py プロジェクト: clmendez/ME-405---MiniProject
def task_motor():
    ''' Function which runs for Task 1, and controls how the motors will rotate.  '''

    control = controller.Controller(20, 50, .1, BALANCE_SET_POINT)

    motor1 = motor.MotorDriver(pyb.Pin.board.PB4, pyb.Pin.board.PB5,
                               pyb.Pin.board.PA10, pyb.Timer(3))
    encoder1 = encoder.Encoder(pyb.Pin.board.PB7, pyb.Pin.board.PB6,
                               pyb.Timer(4))

    motor2 = motor.MotorDriver(pyb.Pin.board.PA1, pyb.Pin.board.PA0,
                               pyb.Pin.board.PC1, pyb.Timer(2))
    encoder2 = encoder.Encoder(pyb.Pin.board.PC7, pyb.Pin.board.PC6,
                               pyb.Timer(8))

    aye = pyb.I2C(1, pyb.I2C.MASTER)
    accelo = acc.Acc(aye, 107)
    filter0 = filter1.Filter(accelo)

    state = BALANCE

    while True:
        x_theta = (filter0.updated_x() + THETA_OFFSET)
        pwm = control.calculate(x_theta)
        clear()

        if state == BALANCE:
            '''Include what will make this robot balance, accelo info and filters, motor duty cycle'''
            control.set_setpoint(BALANCE_SET_POINT)
            motor1.set_duty_cycle(pwm)
            motor2.set_duty_cycle(pwm)

            if (BACK_SENSOR == 1 or BLUETOOTH == "Forward"):
                ''' go forward'''
                state = FORWARD
            elif (FRONT_SENSOR == 1 or BLUETOOTH == "Backward"):
                ''' go backwards'''

                state = BACKWARD
            elif (RIGHT_SENSOR == 1 or BLUETOOTH == "TurnLeft"):
                ''' turn left'''

                state = TURNLEFT
            elif (LEFT_SENSOR == 1 or BLUETOOTH == "TurnRight"):
                ''' Turn right'''
                state = TURNRIGHT

        elif state == FORWARD:
            ''' Include what will make this robot move forward'''
            control.set_setpoint(FRONT_SET_POINT)
            motor1.set_duty_cycle(pwm)
            motor2.set_duty_cycle(pwm)

            if (FRONT_SENSOR == 1 or BLUETOOTH == "Backward"):
                ''' go backwards'''
                state = BACKWARD

            elif (RIGHT_SENSOR == 1 or BLUETOOTH == "TurnLeft"):
                ''' turn left'''
                state = TURNLEFT

            elif (LEFT_SENSOR == 1 or BLUETOOTH == "TurnRight"):
                ''' Turn right'''
                state = TURNRIGHT

            elif (BACK_SENSOR == 0):
                state = BALANCE

        elif state == BACKWARD:
            ''' Include what will make this robot move backwards'''
            control.set_setpoint(FRONT_SET_POINT)
            motor1.set_duty_cycle(pwm)
            motor2.set_duty_cycle(pwm)

            if (BACK_SENSOR == 1 or BLUETOOTH == "Forward"):
                ''' go forward'''
                state = FORWARD

            elif (RIGHT_SENSOR == 1 or BLUETOOTH == "TurnLeft"):
                ''' turn left'''
                state = TURNLEFT

            elif (LEFT_SENSOR == 1 or BLUETOOTH == "TurnRight"):
                ''' Turn right'''
                state = TURNRIGHT

            elif (FRONT_SENSOR == 0):
                state = BALANCE

        elif state == TURNLEFT:
            ''' Include what will make this robot turn left'''
            control.set_setpoint(FRONT_SET_POINT)
            motor1.set_duty_cycle(pwm)
            motor2.set_duty_cycle(pwm)

            if (BACK_SENSOR == 1 or BLUETOOTH == "Forward"):
                ''' go forward'''
                state = FORWARD

            elif (FRONT_SENSOR == 1 or BLUETOOTH == "Backward"):
                ''' go backwards'''
                state = BACKWARD

            elif (LEFT_SENSOR == 1 or BLUETOOTH == "TurnRight"):
                ''' Turn right'''
                state = TURNRIGHT

            elif (RIGHT_SENSOR == 0):
                state = BALANCE

        elif state == TURNRIGHT:
            ''' Include what will make this robot turn right'''
            control.set_setpoint(FRONT_SET_POINT)
            motor1.set_duty_cycle(pwm)
            motor2.set_duty_cycle(pwm)

            if (BACK_SENSOR == 1 or BLUETOOTH == "Forward"):
                ''' go forward'''
                state = FORWARD

            elif (FRONT_SENSOR == 1 or BLUETOOTH == "Backward"):
                ''' go backwards'''
                state = BACKWARD

            elif (RIGHT_SENSOR == 1 or BLUETOOTH == "TurnLeft"):
                ''' turn left'''
                state = TURNLEFT

            elif (LEFT_SENSOR == 0):
                state = BALANCE

        yield (state)
コード例 #27
0
	def __init__(self,id):
		self.accel_addr = 35
		self.i2c = pyb.I2C(id)
		self.i2c.init(pyb.I2C.MASTER, baudrate=400000)
		print(self.i2c.scan())
コード例 #28
0
ファイル: at24c0x.py プロジェクト: xiaobin620/TPYBoard_lib
 def __init__(self, spi):
     self.accel_addr = 80
     self.i2c = pyb.I2C(spi)
     self.i2c.init(pyb.I2C.MASTER, baudrate=400000)
     print(self.i2c.scan())
コード例 #29
0
-------------------------------------------------------
User's Program - put your code here
'''

import pyb
import gc
from pyb import Pin, Timer, LED
from oled_938 import OLED_938
from struct import unpack

# Constants
BLANK_LINE = "                   "

# Initialise OLED display
try:
    oled_port = pyb.I2C('Y', pyb.I2C.MASTER)
    if (not oled_port.scan()):
        oled = None
    else:
        oled = OLED_938(pinout={
            'sda': 'Y10',
            'scl': 'Y9',
            'res': 'Y8'
        },
                        height=64,
                        external_vcc=False,
                        i2c_devid=61)
        oled.poweron()
        oled.init_display()
        oled.draw_text(0, 0, "-- User's Program --")
        oled.draw_text(0, 40, "--  Edit user.py  --")
コード例 #30
0
    '''  
    def eulerAngles(self):   
    def angularVelocities(self): 
    '''


if __name__ == '__main__':

    i = 0
    '''
     i2c = I2C(1, I2C.MASTER)
     imu = IMU(i2c) 
     imu.mode(_NDOF_MODE)
    '''
    i2c = pyb.I2C(1, pyb.I2C.MASTER)
    imu = IMU(i2c)
    imu.setMode(_CONFIG_MODE)
    imu.currentMode()
    imu.setMode(_NDOF_MODE)
    imu.read(1, _POWER_MODE)
    imu.write(0x03, 0x76, 0xF4)
    while i < 100:
        print(imu.readTemp(1, _MSB_TEMP_REG))
        print(imu.readTemp(1, _LSB_TEMP_REG))
        print(imu.readTemp(1, _STAT_TEMP_REG))
        i += 1
    '''imu.calib()'''
'''
    data = imu.read(1, 0x35)
    acc_cal = int((data[0] >> 2) & 0b11)