示例#1
0
def main():
    connection = SerialManager(sleep_after_connect=2)
    connection.open()
    print(connection.device)
    a = ArduinoTree(connection=connection)
    master = I2C_Master(a.wire)
    master.send(I2C_ADDRESS, [0b00001000])
示例#2
0
def checkspeed(n):
    connection = SerialManager(device='/dev/ttyACM0')
    connection.open()
    a = ArduinoTree(connection=connection)

    print('performance test for ArduinoTree()')
    print('n=%s' % n)
    print('')

    measure(a, n, 'api.digitalRead(0)')
    measure(a, n, 'api.digitalWrite(0,0)')
    measure(a, n, 'api.analogRead(0)')
    measure(a, n, 'api.analogWrite(0,0)')
    measure(a, n, 'api.pinMode(0,0)')
    measure(a, n, 'api.millis()')
    measure(a, n, 'api.shiftOut(0, 1, 0, 15)')
    measure(a, n, 'api.pulseIn(0, 0)')

    print('')
    print('performance test for AD9850()')
    print('')

    ad9850 = AD9850([0, 1, 2, 3])
    measure(ad9850, n, 'setup()', root='ad9850')
    measure(ad9850, n, 'write_frequency(400)', root='ad9850')
示例#3
0
def main():
    connection = SerialManager(sleep_after_connect=2)
    connection.open()
    print(connection.device)
    a = ArduinoTree(connection=connection)
    master = I2C_Master(a.wire)
    print(['0x%02x' % x for x in master.scan()])
示例#4
0
    def _connect_fired(self):
            try:
                connection = SerialManager(device=self.serial_device,
                                           baudrate=self.baudrate,
                                           sleep_after_connect=self.sleep_after_connect,
                                           timeout=self.timeout)
                connection.open()
                print ArduinoApi(connection=connection).millis()
            except Exception as e:
                traceback.print_exc()
                message(traceback.format_exc(), buttons=['OK'])
                return

            a = self.tree = ArduinoTree(connection=connection)

            d = a.define.as_dict
            s = [GuiDefine(name=k, value=str(v)) for k, v in d.items()]
            s.sort(key=lambda x: x.name)
            self.defines = s
            self.digital_pins = [PinWrapper(pin=a.pin.get(x))
                                 for x in a.pin.names_digital]
            self.analog_pins = [PinWrapper(pin=a.pin.get(x))
                                for x in a.pin.names_analog]
            self.pins = self.digital_pins + self.analog_pins

            fw = a.firmware_info
            self.arduino_version = fw.get('arduino_version')
            self.firmware_build_time = str(fw.get('compile_datetime'))
            self.avr_name = fw.get('avr_name')
            self.gcc_version = fw.get('gcc_version')
            self.libc_version = fw.get('libc_version')
            self.libc_date = str(fw.get('libc_date'))
            self.connected = True
示例#5
0
def main():
    connection = SerialManager(sleep_after_connect=2)
    connection.open()
    print connection.device
    a = ArduinoTree(connection=connection)
    master = I2C_Master(a.wire)
    master.send(0x27, [0b00001000])
示例#6
0
def main():
    connection = SerialManager(sleep_after_connect=2)
    connection.connect()
    print connection.device
    a = ArduinoTree(connection=connection)
    master = I2C_Master(a.wire)
    print ['0x%02x' % x for x in master.scan()]
示例#7
0
def main():
    connection = SerialManager(sleep_after_connect=2)
    connection.open()
    a = ArduinoTree(connection=connection)
    bmp = Bmp180(a.wire)
    p, t = bmp.read()
    print 'pressure: %s kPa' % (p / 1000)
    print 'temperature: %s C' % t
示例#8
0
def main():
    connection = SerialManager(sleep_after_connect=2)
    connection.open()
    a = ArduinoTree(connection=connection)
    bmp = Bmp180(a.wire)
    p, t = bmp.read()
    print('pressure: %s kPa' % (p / 1000))
    print('temperature: %s C' % t)
示例#9
0
def main():
    connection = SerialManager(sleep_after_connect=2)
    connection.open()
    a = ArduinoTree(connection=connection)
    bme = BME280(a.wire)
    t, h, p = bme.read()
    print('pressure: %d kPa' % (p / 1000))
    print('temperature: %d C' % t)
    print('humidity: %d %' % h)
示例#10
0
def reset_demo():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    print_millis(a)
    print ('soft reset')
    a.soft_reset()
    print_millis(a)
示例#11
0
def boot_time():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    a.watchdog.enable(a.watchdog.WDTO_500MS)
    time.sleep(1)
    a.connection.flush_input()
    x = a.api.millis()
    return 1000 - 500 - x
示例#12
0
def dumpall():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)

    print((FORMAT + ' V') % ('read_vcc', a.vcc.read()))
    print((FORMAT + ' sec') % ('millis', a.api.millis() / 1000.0))

    print('')
    print('================================')
    print('firmware classes:')
    print('================================')
    print('status:')
    pprint(a.connection.classinfo.firmware_class_status)
    print('unknown ids:')
    pprint(a.connection.classinfo.unknown_firmware_ids)

    print('')
    print('================================')
    print('pins:')
    print('================================')

    print(FORMAT % ('total_pin_count', a.pin.count))
    print(FORMAT % ('digital_names', a.pin.names_digital))
    print(FORMAT % ('analog_names', a.pin.names_analog))

    for pin_number in range(a.pin.count):
        print('---------- pin_number=%s ---------------' % pin_number)
        pin = a.pin.get(pin_number)
        dump(
            pin,
            'name pin_number pin_number_analog is_digital is_analog avr_pin mode digital_value analog_value programming_function'.split())
        if pin.pwm.available:
            print('--- pwm ---')
            dump(pin.pwm, '''frequency frequencies_available base_divisor divisor divisors_available
                                timer_mode
                                timer_register_name_a
                                timer_register_name_b
                                wgm
            '''.split())

    print('')
    print('================================')
    print('defines:')
    print('================================')
    dump_dict(a.define.as_dict)

    print('')
    print('================================')
    print('registers:')
    print('================================')
    for x in a.register.names:
        r = a.register.get(x)
        if r.size == 2:
            v = '0x%04X' % (r.value)
        else:
            v = '  0x%02X' % (r.value)

        print('%-20s = %s @0x%2X (size:%s)' % (r.name, v, r.address, r.size))
示例#13
0
def checkspeed(n):
    connection = SerialManager()
    connection.connect()
    a = ArduinoTree(connection=connection)

    print ('performance test for ArduinoTree()')
    print ('n=%s' % n)
    print('')

    a.avr_name  # init cache
    measure(a, n, 'avr_name')

    measure(a, n, 'api.digitalRead(0)')
    measure(a, n, 'api.digitalWrite(0,0)')
    measure(a, n, 'api.analogRead(0)')
    measure(a, n, 'api.analogWrite(0,0)')
    measure(a, n, 'api.pinMode(0,0)')
    measure(a, n, 'api.millis()')
    measure(a, n, 'api.shiftOut(0, 1, 0, 15)')

    a.define.get('__TIME__')  # init cache
    measure(a, n, 'define.get("__TIME__")')

    a.register.get('DDRB')  # init cache
    measure(a, n, 'register.get("DDRB").read_value()')
    measure(a, n, 'register.get("DDRB").address')
    measure(a, n, 'register.get("DDRB").size')

    a.vcc.read()  # init cache
    measure(a, n, 'vcc.read()')

    measure(a, n, 'pin.get(0).read_digital_value()')
    measure(a, n, 'pin.get(0).read_mode()')

    a.eeprom.size  # init cache
    measure(a, n, 'eeprom.size')
    measure(a, n, 'eeprom.read(0)')

    print('')
    print ('performance test for AD9850()')
    print('')

    ad9850 = AD9850([0, 1, 2, 3])
    measure(ad9850, n, 'setup()', root='ad9850')
    measure(ad9850, n, 'write_frequency(400)', root='ad9850')
示例#14
0
def fw_check():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)

    print('Firmware classes enabled in cfg.h:')
    print('  ' + '\n  '.join(a.connection.classinfo.firmware_name_list))

    d = a.define.as_dict
    print('\nYour firmware was built on:\n  %s %s' %
          (d.get('__DATE__'), d.get('__TIME__')))
示例#15
0
def highfreqpwm():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    pin9 = a.pin.get(9)
    pin9.mode = 1
    pin9.write_digital_value(1)
    pwm = pin9.pwm
    print('set  frequency=%s Hz' % FREQ)
    pwm.set_high_freq_around(FREQ)
    print('real frequency=%s Hz' % pwm.read_frequency())
示例#16
0
def checkspeed(n):
    connection = SerialManager()
    connection.open()
    a = ArduinoTree(connection=connection)

    print('performance test for ArduinoTree()')
    print('n=%s' % n)
    print('')

    measure(a, n, 'api.digitalRead(0)')
    measure(a, n, 'api.digitalWrite(0,0)')
    measure(a, n, 'api.analogRead(0)')
    measure(a, n, 'api.analogWrite(0,0)')
    measure(a, n, 'api.pinMode(0,0)')
    measure(a, n, 'api.millis()')
    measure(a, n, 'api.shiftOut(0, 1, 0, 15)')

    a.define.get('__TIME__')  # init cache
    measure(a, n, 'define.get("__TIME__")')

    a.register.get('DDRB')  # init cache
    measure(a, n, 'register.get("DDRB").read_value()')
    measure(a, n, 'register.get("DDRB").address')
    measure(a, n, 'register.get("DDRB").size')

    a.vcc.read()  # init cache
    measure(a, n, 'vcc.read()')

    measure(a, n, 'pin.get(0).read_digital_value()')
    measure(a, n, 'pin.get(0).read_mode()')

    a.eeprom.size  # init cache
    measure(a, n, 'eeprom.size')
    measure(a, n, 'eeprom.read(0)')

    print('')
    print('performance test for AD9850()')
    print('')

    ad9850 = AD9850([0, 1, 2, 3])
    measure(ad9850, n, 'setup()', root='ad9850')
    measure(ad9850, n, 'write_frequency(400)', root='ad9850')
示例#17
0
def pwm_demo():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    p = a.pin.get(PIN)
    print('PWM frequencies_available: %s' % p.pwm.frequencies_available)
    p.write_mode(OUTPUT)
    p.pwm.write_value(VALUE)

    # set frequency here
    p.pwm.frequency = 61

    print('PWM frequency: %s' % p.pwm.frequency)
    print('PWM duty cycle: %s %% ' % (DUTY_CYCLE * 100))
示例#18
0
def ramdump():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    size = a.ram.size
    free = a.ram.free()
    print('Reading RAM (%s bytes, %s bytes free)...' % (size, free))

    data_list = []
    for i in range(0, size):
        s = a.ram.read(i)
        data_list.append(s)

    display(data_list, size)
示例#19
0
def main():
    print('PCF8574 demo')
    print('address: 0x%X' % I2C_ADDRESS)
    connection = SerialManager(sleep_after_connect=2)
    connection.open()
    a = ArduinoTree(connection=connection)
    pcf = PCF8574(a.wire, I2C_ADDRESS)

    def write(d):
        print('write: %s' % bin(d))
        pcf.write8(d)

    def read():
        d = pcf.read8()
        print('read:  %s' % bin(d))

    read()

    d = pcf.readPin(0)
    print('read  pin 0: %s' % d)
    print('write pin 0: %s' % 1)
    pcf.writePin(0, 1)
    d = pcf.readPin(0)
    print('read  pin 0: %s' % d)

    read()

    write(0b11111111)
    read()

    write(0b10101010)
    read()

    write(0b01010101)
    read()

    write(0b00000000)
    read()
示例#20
0
def counterdemo():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    p = a.pin.get(5)
    a.soft_reset()
    print('PWM frequencies_available: %s' % p.pwm.frequencies_available)
    p.write_mode(1)
    p.pwm.write_value(128)
    p.pwm.frequency = F
    print('frequency set: %s' % p.pwm.frequency)
    t1 = time.time()
    fread = a.counter.read_frequency(GATE_TIME)
    t2 = time.time()
    print('frequency read: %s' % fread)
    print('gate time: %s sec' % (GATE_TIME))
    print('time elapsed: %s sec' % (t2 - t1))
示例#21
0
文件: tmp007.py 项目: d1vanloon/nanpy
#!/usr/bin/env python
"""Tests the TMP007 sensor"""

import time
import logging
from nanpy import TMP007
from nanpy.serialmanager import SerialManager

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("TMP007")

connection = SerialManager(sleep_after_connect=2)
connection.open()

sensor = TMP007(connection=connection)

try:
    while True:
        object_temp = sensor.get_object_temperature()
        die_temp = sensor.get_die_temperature()
        logger.info("Object temperature: %.2f", object_temp)
        logger.info("Die temperature: %.2f", die_temp)
        time.sleep(4)
except KeyboardInterrupt:
    pass
示例#22
0
文件: power.py 项目: zoloft/nanpy
def power_demo():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    Vcc = a.vcc.read()
    msg = 'Power supply= %0.2f V' % Vcc
    print(msg)
示例#23
0
文件: dump.py 项目: mudpi/mudpi-core
def dumpall():
    connection = SerialManager()
    a = ArduinoTree(connection=connection)

    if a.vcc:
        myprint(FORMAT + ' V', 'read_vcc', lambda : a.vcc.read())
    myprint(FORMAT + ' sec', 'uptime', lambda : a.api.millis() / 1000.0)

    print('')
    print('================================')
    print('firmware classes:')
    print('================================')
    pprint(a.connection.classinfo.firmware_name_list)

    print('')
    print('================================')
    print('defines:')
    print('================================')
    dump_dict(a.define.as_dict)

    if a.esp:
        print('')
        print('================================')
        print('ESP:')
        print('================================')
        myprint(FORMAT , 'getVcc', lambda :a.esp.getVcc())
        myprint(FORMAT , 'getFreeHeap', lambda :a.esp.getFreeHeap())
        myprint(FORMAT , 'getChipId', lambda :a.esp.getChipId())
        myprint(FORMAT , 'getSdkVersion', lambda :a.esp.getSdkVersion())
        myprint(FORMAT , 'getBootVersion', lambda :a.esp.getBootVersion())
        myprint(FORMAT , 'getBootMode', lambda :a.esp.getBootMode())
        myprint(FORMAT , 'getCpuFreqMHz', lambda :a.esp.getCpuFreqMHz())
        myprint(FORMAT , 'getFlashChipId', lambda :a.esp.getFlashChipId())
        myprint(FORMAT , 'getFlashChipRealSize', lambda :a.esp.getFlashChipRealSize())
        myprint(FORMAT , 'getFlashChipSize', lambda :a.esp.getFlashChipSize())
        myprint(FORMAT , 'getFlashChipSpeed', lambda :a.esp.getFlashChipSpeed())
        myprint(FORMAT , 'getFlashChipMode', lambda :a.esp.getFlashChipMode())
        myprint(FORMAT , 'getFlashChipSizeByChipId', lambda :a.esp.getFlashChipSizeByChipId())
        myprint(FORMAT , 'getResetReason', lambda :a.esp.getResetReason())
        myprint(FORMAT , 'getResetInfo', lambda :a.esp.getResetInfo())
        myprint(FORMAT , 'getSketchSize', lambda :a.esp.getSketchSize())
        myprint(FORMAT , 'getFreeSketchSpace', lambda :a.esp.getFreeSketchSpace())

    print('')
    print('================================')
    print('pins:')
    print('================================')

    myprint(FORMAT , 'total_pin_count', lambda :a.pin.count)
    myprint(FORMAT , 'digital_names', lambda :a.pin.names_digital)
    myprint(FORMAT , 'analog_names', lambda :a.pin.names_analog)

    for pin_number in range(a.pin.count):
        print('---------- pin_number=%s ---------------' % pin_number)
        pin = a.pin.get(pin_number)
        dump(
            pin,
            'name pin_number pin_number_analog is_digital is_analog avr_pin mode digital_value analog_value programming_function'.split())
        if pin.pwm.available:
            print('--- pwm ---')
            dump(pin.pwm, '''frequency frequencies_available base_divisor divisor divisors_available
                                timer_mode
                                timer_register_name_a
                                timer_register_name_b
                                wgm
            '''.split())


    if a.register:
        print('')
        print('================================')
        print('registers:')
        print('================================')
        for x in a.register.names:
            r = a.register.get(x)
            if r.size == 2:
                v = '0x%04X' % r.value
            else:
                v = '  0x%02X' % r.value
    
            print('%-20s = %s @0x%2X (size:%s)' % (r.name, v, r.address, r.size))
示例#24
0
#!/usr/bin/env python2

from nanpy.arduinotree import ArduinoTree
from nanpy.serialmanager import SerialManager

from nanpy.bh1750fvi import Bh1750Fvi
from time import sleep

connection = SerialManager(device='/dev/rfcomm0')

## Devices Address
#Device address when address pin LOW : 0x23
#Device address when address pin HIGH : 0x5C

aTree = ArduinoTree(connection=connection)
aApi = ArduinoApi(connection=connection)

bh = Bh1750Fvi(aTree.wire)
aApi.pinMode(13, aApi.OUTPUT)

# Device 1
#aApi.digitalWrite(9, HIGH)
#bh.SetAddress(0x5C)

# Device 2
aApi.digitalWrite(9, LOW)
bh.SetAddress(0x23)

## Light intensity modes
#Continuous_H_resolution_Mode : 0x10
#Continuous_H_resolution_Mode2 : 0x11
示例#25
0
__author__ = 'gcdeh_000'

from nanpy.arduinotree import ArduinoTree
from nanpy import onewire
from nanpy import dallastemperature

__author__ = 'gcdeh_000'

from nanpy.pwm import ArduinoPwmPin
from nanpy.serialmanager import SerialManager
import time

if __name__ == '__main__':
    connection = SerialManager()
    a = ArduinoTree(connection=connection)
    tempPin = a.pin.get(4)
    TempSensor = dallastemperature.DallasTemperature(tempPin,
                                                     connection=connection)

    print "Start reading temp sensor"
    time.sleep(0.010)
    temp = TempSensor.getTempC
    print temp
示例#26
0
def dds():
    connection = SerialManager()
    dds = AD9850([W_CLK, FQ_UD, DATA, RESET], connection=connection)

    dds.setup()
    dds.write_frequency(F)