Ejemplo n.º 1
0
def ConnectSDcardFile():
    global spi, sdfile, sd
    spi = SPI(sck=Pin(5), mosi=Pin(22), miso=Pin(27))  
    
    try:
        sd = sdcard.SDCard(spi, Pin(23))
        os.mount(sd, '/sd')
    except OSError as e:
        return ("SD card", str(e.args[0]))
    
    if not sum((f[0]=="LOG")  for f in os.ilistdir("sd")):
        os.mkdir("sd/LOG")
    fnum = 1+max((int(f[0][:3])  for f in os.ilistdir("sd/LOG")  if f[3]>10), default=0)
    fname = "sd/LOG/{:03d}.TXT".format(fnum)
    print("Opening file", fname)
    sdfile = open(fname, "w")
    sdfile.write("Logfile: {}\n".format(fname))
    sdfile.write("Device number: 3\n")
    sdfile.write("Rt[ms]d\"[isodate]\"e[latdE]n[latdN]f[lngdE]o[lngdN] GPS cooeffs\n") 
    sdfile.write("Qt[ms]u[ms midnight]y[lat600000]x[lng600000]a[alt] GPS\n") 
    sdfile.write("Vt[ms]v[kph100]d[deg100] GPS velocity\n") 
    sdfile.write("Ft[ms]p[milibars] bluefly pressure\n") 
    sdfile.write("Gt[ms]r[rawhumid]a[rawtemp] si7021Humidity meter\n") 
    sdfile.write("Nt[ms]r[rawadc]s[resistance] nickel wire sensor\n") 
    sdfile.write("Zt[ms]xyz[linacc]abc[gravacc]wxyz[quat]s[calibstat] orient\n"); 
    sdfile.write("Yt[ms]s\"calibconsts\" orient calib\n"); 
    sdfile.write("\n")
    sdfile.flush()
    return (["SDfile", fname[:6], fname[6:]])
Ejemplo n.º 2
0
def esp8266_mount():
    from machine import Pin, SPI
    import sdcard
    import uos
    spi = SPI(-1, miso=Pin(7), mosi=Pin(8), sck=Pin(6))
    sd = sdcard.SDCard(spi, Pin(11))
    return uos.VfsFat(sd, "")
Ejemplo n.º 3
0
 def __init__(self,
              spi,
              reset,
              dreq,
              xdcs,
              xcs,
              sdcs=None,
              mp=None,
              cancb=lambda: False):
     self._reset = reset
     self._dreq = dreq  # Data request
     self._xdcs = xdcs  # Data CS
     self._xcs = xcs  # Register CS
     self._mp = mp
     self._spi = spi
     self._cbuf = bytearray(4)  # Command buffer
     self._cancb = cancb  # Cancellation callback
     self._slow_spi = True  # Start on low baudrate
     self._overrun = 0  # Recording
     self.reset()
     if ((sdcs is not None) and (mp is not None)):
         import sdcard
         import os
         sd = sdcard.SDCard(spi, sdcs)
         vfs = os.VfsFat(sd)
         os.mount(vfs, mp)
     self._spi.init(baudrate=_DATA_BAUDRATE)
Ejemplo n.º 4
0
def mountsd():
    try:
        spisd = SPI(-1, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
        sd = sdcard.SDCard(spisd, machine.Pin(15))
        os.mount(sd, '/sd')
        return 1
    except:
        return 0
Ejemplo n.º 5
0
def sdtest2():
    spi = machine.SPI(1)
    spi.init()  # Ensure right baudrate
    sd = sdcard.SDCard(spi, machine.Pin(15))  # Compatible with PCB
    # vfs = os.VfsLfs2(sd)
    vfs = os.VfsFat(sd)
    os.mount(vfs, "/fc")
    print("Filesystem check")
    print(os.listdir("/fc"))

    line = "abcdefghijklmnopqrstuvwxyz\n"
    lines = line * 200  # 5400 chars
    short = "1234567890\n"

    fn = "/fc/rats.txt"
    print()
    print("Multiple block read/write")
    with open(fn, "w") as f:
        n = f.write(lines)
        print(n, "bytes written")
        n = f.write(short)
        print(n, "bytes written")
        n = f.write(lines)
        print(n, "bytes written")

    with open(fn, "r") as f:
        result1 = f.read()
        print(len(result1), "bytes read")

    fn = "/fc/rats1.txt"
    print()
    print("Single block read/write")
    with open(fn, "w") as f:
        n = f.write(short)  # one block
        print(n, "bytes written")

    with open(fn, "r") as f:
        result2 = f.read()
        print(len(result2), "bytes read")

    os.umount("/fc")

    print()
    print("Verifying data read back")
    success = True
    if result1 == "".join((lines, short, lines)):
        print("Large file Pass")
    else:
        print("Large file Fail")
        success = False
    if result2 == short:
        print("Small file Pass")
    else:
        print("Small file Fail")
        success = False
    print()
    print("Tests", "passed" if success else "failed")
Ejemplo n.º 6
0
def init_SD():
    spi = SPI(2, baudrate = 10000000, polarity = 0, phase = 0, bits = 8, firstbit = SPI.MSB,
        sck = Pin(18, Pin.OUT, Pin.PULL_DOWN),
        mosi = Pin(23, Pin.OUT, Pin.PULL_UP),
        miso = Pin(19, Pin.IN, Pin.PULL_UP))

    spi.init()  # Ensure right baudrate
    sd = sdcard.SDCard(spi, Pin(22))  # Compatible with PCB
    return sd
Ejemplo n.º 7
0
def init_sd_card():

    # First we would like to bount the SD card
    try:
        spibus = SPI(1, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
        sd = sdcard.SDCard(spibus, Pin(4))  # <- chipselect 4 on WEMOS D32 Pro
        os.mount(sd, SD_ROOT)
    except:
        failure()
Ejemplo n.º 8
0
def get_predict(filename,th,ts,tp):
    ts=ts+th
    tp=tp+ts
    #SD card setup
    #MOSI(IO23) MISO(19) SCK(18)
    spisd=SPI(-1,sck=Pin(18),mosi=Pin(23),miso=Pin(19))
    #CS(5)
    sd=sdcard.SDCard(spisd,Pin(5))
    uos.mount(sd,'/sd')

    #WiFi setup
    WIFI_SSID = 'OPPOA5s'
    WIFI_PASSWORD = '******'
    ap_if = network.WLAN(network.AP_IF)
    wifi = network.WLAN(network.STA_IF)

    ap_if.active(False)

    # connect the device to the WiFi network
    wifi.active(True)
    wifi.connect(WIFI_SSID, WIFI_PASSWORD)
    time.sleep(5)

    #Read data from csv file
    Data=[]
    label=[]
    no_Rows=0
    filename="/sd/{}".format(filename)
    with open(filename,'r') as file:
        for line in file:
            if no_Rows <= ts & no_Rows > 0:
                line=line.rstrip('\n')
                line=line.rstrip('\r')
                Data.append(line.split(','))
                no_Rows+=1
            elif no_Rows == 0:
                line=line.rstrip('\n')
                line=line.rstrip('\r')
                label.append(line.split(','))
                no_Rows+=1
            else:
                no_Rows+=1
    column = label[0]
    #Convert data into json format
    js = {"columns":column, "data":Data}
    jsd = json.dumps(js)
    dfj = json.loads(jsd)
    #url to cloud system
    url = 'https://test-torc.herokuapp.com/torc-extract/?th={}'.format(ts)
    result = urequests.post(url,data=jsd)
    print(result)
    print(result.text)
    #Unmount SD card and deactivate WiFi
    uos.umount('/sd')
    wifi.active(False)
    ap_if.active(True)
    return result.text[-3]
Ejemplo n.º 9
0
def sdtest():
    spi = machine.SPI(1)
    spi.init()  # Ensure right baudrate
    sd = sdcard.SDCard(spi, machine.Pin.board.X21) # Compatible with PCB
    vfs = os.VfsFat(sd)
    os.mount(vfs, '/fc')
    print('Filesystem check')
    print(os.listdir('/fc'))

    line = 'abcdefghijklmnopqrstuvwxyz\n'
    lines = line * 200 # 5400 chars
    short = '1234567890\n'

    fn = '/fc/rats.txt'
    print()
    print('Multiple block read/write')
    with open(fn,'w') as f:
        n = f.write(lines)
        print(n, 'bytes written')
        n = f.write(short)
        print(n, 'bytes written')
        n = f.write(lines)
        print(n, 'bytes written')

    with open(fn,'r') as f:
        result1 = f.read()
        print(len(result1), 'bytes read')

    fn = '/fc/rats1.txt'
    print()
    print('Single block read/write')
    with open(fn,'w') as f:
        n = f.write(short) # one block
        print(n, 'bytes written')

    with open(fn,'r') as f:
        result2 = f.read()
        print(len(result2), 'bytes read')

    os.umount('/fc')

    print()
    print('Verifying data read back')
    success = True
    if result1 == ''.join((lines, short, lines)):
        print('Large file Pass')
    else:
        print('Large file Fail')
        success = False
    if result2 == short:
        print('Small file Pass')
    else:
        print('Small file Fail')
        success = False
    print()
    print('Tests', 'passed' if success else 'failed')
def mount_sd():
    logger.info("mounting sd...")
    try:
        sd = sdcard.SDCard(machine.SPI(1), machine.Pin(15))
        os.mount(sd, "/sd")
    except Exception as e:
        logger.exc(e, "sd could not be mounted.")
        failed_mounts_count = increment_counter("failed_mounts")
        if failed_mounts_count == 1:
            print_error_msg("SD-Karte konnte nicht gelesen werden! Sag besser mal Fabian bescheid!")
    else:
        reset_counter("failed_mounts")
Ejemplo n.º 11
0
def sdtest():
    sd = sdcard.SDCard(pyb.SPI(1), pyb.Pin.board.X21)  # Compatible with PCB
    pyb.mount(sd, '/fc')
    print('Filesystem check')
    print(os.listdir('/fc'))

    line = 'abcdefghijklmnopqrstuvwxyz\n'
    lines = line * 200  # 5400 chars
    short = '1234567890\n'

    fn = '/fc/rats.txt'
    print()
    print('Multiple block read/write')
    with open(fn, 'w') as f:
        n = f.write(lines)
        print(n, 'bytes written')
        n = f.write(short)
        print(n, 'bytes written')
        n = f.write(lines)
        print(n, 'bytes written')

    with open(fn, 'r') as f:
        result1 = f.read()
        print(len(result1), 'bytes read')

    fn = '/fc/rats1.txt'
    print()
    print('Single block read/write')
    with open(fn, 'w') as f:
        n = f.write(short)  # one block
        print(n, 'bytes written')

    with open(fn, 'r') as f:
        result2 = f.read()
        print(len(result2), 'bytes read')

    pyb.mount(None, '/fc')

    print()
    print('Verifying data read back')
    success = True
    if result1 == ''.join((lines, short, lines)):
        print('Large file Pass')
    else:
        print('Large file Fail')
        success = False
    if result2 == short:
        print('Small file Pass')
    else:
        print('Small file Fail')
        success = False
    print()
Ejemplo n.º 12
0
def test_format_sd():
    sd_mnt_point = "/sd"
    spi = machine.SPI(1,
                      sck=machine.Pin(10),
                      mosi=machine.Pin(11),
                      miso=machine.Pin(12),
                      baudrate=10000)
    cs = machine.Pin(15)
    sd = sdcard.SDCard(spi, cs)
    os.VfsFat.mkfs(sd)
    sd_vfs_fat = os.VfsFat(sd)

    os.mount(sd_vfs_fat, sd_mnt_point)
    print("SD mounted")
    os.umount(sd_mnt_point)
    print("SD unmounted")
Ejemplo n.º 13
0
 def sdcard(self):
     if not self._sdcard:
         _logger.debug("Initializing SD card")
         import pycom_util
         import sdcard
         self._spi = pycom_util.SpiWrapper()
         self._spi.init(SPI.MASTER)
         try:
             self._sdcard = sdcard.SDCard(self._spi,
                                          machine.Pin(self._sd_cs_pin_name))
         except OSError as e:
             if "no sd card" in str(e).lower():
                 raise NoSdCardError(e)
             else:
                 raise
     return self._sdcard
Ejemplo n.º 14
0
 def __init__(self, spi, reset, dreq, xdcs, xcs, sdcs=None, mp=None):
     self._reset = reset
     self._dreq = dreq  # Data request
     self._xdcs = xdcs  # Data CS
     self._xcs = xcs  # Register CS
     self._spi = spi
     self._cbuf = bytearray(4)  # Command buffer
     self.reset()
     if ((sdcs is not None) and (mp is not None)):
         import sdcard
         import os
         sd = sdcard.SDCard(spi, sdcs)
         vfs = os.VfsFat(sd)
         os.mount(vfs, mp)
     self._cancnt = 0  # If >0 cancellation in progress
     self._playing = False
     self._spi.init(baudrate=_DATA_BAUDRATE)
     self._swriter = asyncio.StreamWriter(self, {})
Ejemplo n.º 15
0
def Sampling(th,ts,tp):
    thi = th
    tsi = ts+th
    tpi = tp+ts
    spisd=SPI(-1,sck=Pin(18),mosi=Pin(23),miso=Pin(19))
    sd=sdcard.SDCard(spisd,Pin(5))
    uos.mount(sd,'/sd')
    filename = time.localtime()
    filename = "Sampling_{}-{}-{}_{}-{}-{}.csv".format(filename[3],filename[4],filename[5],filename[2],filename[1],filename[0])
    f = open("/sd/{}".format(filename),"a")
    f.write("time(s),TGS 2600,TGS 2602,TGS 2611,TGS 2620,TGS 813,TGS 816,TGS 821,TGS 822,TGS 826,TGS 832,Temp,Humid\n")
    t = 0
    ti = 0
    data = Sensor_Read(th)
    while t<thi:
        print("Heating_t:{}".format(t))
        S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12 = data[ti]
        f.write("{},{},{},{},{},{},{},{},{},{},{},{},{}\n".format(t,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12))
        print("{},{},{},{},{},{},{},{},{},{},{},{},{}\n".format(t,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12))
        ti+=1
        t+=1
    pump("Sampling")
    data = Sensor_Read(ts)
    ti=0
    while t>=thi and t<tsi:
        print("Sampling_t:{}".format(t))
        S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12 = data[ti]
        f.write("{},{},{},{},{},{},{},{},{},{},{},{},{}\n".format(t,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12))
        print("{},{},{},{},{},{},{},{},{},{},{},{},{}\n".format(t,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12))
        ti+=1
        t+=1
    pump("Purging")
    data = Sensor_Read(tp)
    ti=0
    while t>=tsi and t<tpi:
        print("Purging_t:{}".format(t))
        S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12 = data[ti]
        f.write("{},{},{},{},{},{},{},{},{},{},{},{},{}\n".format(t,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12))
        print("{},{},{},{},{},{},{},{},{},{},{},{},{}\n".format(t,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12))
        ti+=1
        t+=1
    f.close()
    uos.umount('/sd')
    return filename
Ejemplo n.º 16
0
def fs_use_sd(mnt_root_point="/sd"):
    # spi = machine.SPI(1)
    global sd_vfs_fat
    global sd_mnt_point
    if sd_vfs_fat != None:
        print("SD already used")
        return

    sd_mnt_point = mnt_root_point
    spi = machine.SPI(1,
                      sck=machine.Pin(10),
                      mosi=machine.Pin(11),
                      miso=machine.Pin(12))
    # spi = machine.SPI(1)
    cs = machine.Pin(15)
    sd = sdcard.SDCard(spi, cs)
    sd_vfs_fat = os.VfsFat(sd)
    os.mount(sd_vfs_fat, sd_mnt_point)
    print("SD mounted at " + sd_mnt_point)
Ejemplo n.º 17
0
def sdtest1():
    spi = machine.SPI(1, sck=machine.Pin(10), mosi=machine.Pin(11), miso=machine.Pin(12))
    spi = machine.SPI(1)
    cs = machine.Pin(15)
    

    sd = sdcard.SDCard(spi, cs)
    
    vfs = os.VfsFat(sd)
    os.mount(vfs, '/sd')
    os.mkdir('/sd/sd2')
    os.chdir('/sd/sd2')
        
    with open("pico2.txt", "a") as file:
        for i in range(10):
            file.write(str(i)+"2. Hello, world!\r\n")
    
    os.chdir('/')
    os.umount("/sd")
Ejemplo n.º 18
0
 def __init__(self, mode):
     self.displayMode = mode
     try:
         os.mount(
             sdcard.SDCard(
                 machine.SPI(
                     1,
                     baudrate=80000000,
                     polarity=0,
                     phase=0,
                     bits=8,
                     firstbit=0,
                     sck=Pin(14),
                     mosi=Pin(13),
                     miso=Pin(12),
                 ),
                 machine.Pin(15),
             ),
             "/sd",
         )
     except:
         pass
Ejemplo n.º 19
0
def toggle_led_sd(x,
                  butpress=sd_detect,
                  light=led,
                  sd_spi=spi,
                  sd_cs=cs,
                  getinfo=pd_txtfiles):
    global irq_busy_sd, sd_out, sd
    if irq_busy_sd:
        return
    else:
        irq_busy_sd = True
        if butpress.value() == 1:  # reverse op == 0
            if sd_out is True:
                print('SD card detected')
                for i in range(4):
                    led.value(not led.value())
                    time.sleep_ms(250)
                butpress.init(Pin.OUT)
                sd = sdcard.SDCard(sd_spi, sd_cs)
                time.sleep_ms(1000)
                os.mount(sd, '/sd')
                print(os.listdir('/'))
                # butpress.value(0)  # reverse op == 1
                butpress.init(Pin.IN)
                getinfo("/sd")
                sd_out = False
        # butpress.init(Pin.IN, Pin.PULL_UP)
        elif butpress.value() == 0:
            if sd_out is False:
                print('SD card removed')
                for i in range(4):
                    led.value(not led.value())
                    time.sleep_ms(250)
                time.sleep_ms(1000)
                butpress.init(Pin.OUT)
                os.umount('/sd')
                time.sleep_ms(1000)
                sd_out = True
        irq_busy_sd = False
Ejemplo n.º 20
0
def main():

    try:
        # Turn display power
        axp = axp202c.PMU(address=0x34)
        axp.enablePower(axp202c.AXP192_LDO2)
        # Set backlight voltage
        axp.setDC3Voltage(3000)

        spi = SPI(2,
                  baudrate=20000000,
                  sck=Pin(18),
                  miso=Pin(38),
                  mosi=Pin(23))

        # initialize and mount the sdcard
        sd_device = sdcard.SDCard(spi, cs=Pin(4), baudrate=20000000)
        uos.mount(sd_device, '/sd')

        # initialize display

        tft = ili9342c.ILI9342C(spi,
                                320,
                                240,
                                cs=Pin(5, Pin.OUT),
                                dc=Pin(15, Pin.OUT),
                                rotation=0,
                                buffer_size=38400)

        tft.init()

        for i in range(1, 2387):
            frame = "/sd/160x120/{:04d}.jpg".format(i)
            tft.jpg(frame, 80, 60, ili9342c.FAST)

    finally:
        # shutdown spi
        if 'spi' in locals():
            spi.deinit()
Ejemplo n.º 21
0
          raise

        utime.sleep(DEFAULT_SLEEP)


###プログラムはここから動くよ

#SDカードやディスプレイが接続されるシリアルバスの初期化
spi = SPI(1, baudrate=26000000, polarity=1, phase=1, sck=Pin(18), mosi=Pin(17), miso=Pin(19))

#ディスプレイの初期化
display = ssd1331.SSD1331(spi, dc=Pin(12), cs=Pin(15), rst=Pin(16))

#SDカードを準備
try:
  sd = sdcard.SDCard(spi, Pin(5))
  uos.mount(sd, SD_MOUNT_PATH)
  uos.chdir(SD_MOUNT_PATH)
except:
  #SDカードの準備に失敗したら、エラー画面出すよ
  send_image(SD_ERROR)
  raise

#画像定義ファイルステータスが
try:
  uos.stat(CONFIG_FILE)
  #所得できたら定義ファイルから画像を表示するメソッドを実行
  read_from_config_file()
except:
  #取得できなかったらSDカードに存在する画像を表示するメソッドを実行
  read_from_file_list()
Ejemplo n.º 22
0
# boot.py -- run on boot-up
# can run arbitrary Python, but best to keep it minimal
import sys
import machine
import pyb
import os
import time
import sdcard
from machine import I2C, UART, SPI, Pin

pyb.country('ES')  # ISO 3166-1 Alpha-2 code, eg US, GB, DE, AU
#pyb.main('main.py') # main script to run after this one
#pyb.usb_mode('VCP+MSC') # act as a serial and a storage device
#pyb.usb_mode('VCP+HID') # act as a serial device and a mouse

#Acces facil als Pins
pin = Pin.board

#Montar la SD

sd = sdcard.SDCard(SPI(1), pin.PB0)
try:
    os.mount(sd, '/sd')
    #donar acces a l'import per la sd
    sys.path.append('/sd')
except:
    print("Hi ha hagut un problema muntant la SD, verificar")
### Per a veure el directori fer:
### os.listdir('/sd')
Ejemplo n.º 23
0
                print('SD card removed')
                for i in range(4):
                    led.value(not led.value())
                    time.sleep_ms(250)
                time.sleep_ms(1000)
                butpress.init(Pin.OUT)
                os.umount('/sd')
                time.sleep_ms(1000)
                sd_out = True
        irq_busy_sd = False


sd_detect.irq(trigger=3, handler=toggle_led_sd)

if sd_detect.value() == 1:
    print('SD card detected')
    for i in range(4):
        led.value(not led.value())
        time.sleep_ms(250)
    sd_detect.init(Pin.OUT)
    sd = sdcard.SDCard(spi, cs)
    time.sleep_ms(1000)
    os.mount(sd, '/sd')
    print(os.listdir('/'))
    # butpress.value(0)  # reverse op == 1
    sd_detect.init(Pin.IN)
    pd_txtfiles("/sd")
    sd_out = False
else:
    print('SD card not detected')
Ejemplo n.º 24
0
rst = Pin(16, Pin.OUT)
rst.value(1)
scl = Pin(15, Pin.OUT, Pin.PULL_UP)
sda = Pin(4, Pin.OUT, Pin.PULL_UP)
#i2c = I2C(scl=scl, sda=sda, freq=450000)
i2c = I2C(scl=scl, sda=sda, freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3c)

oled.fill(0)
oled.text('Iniciando', 0, 0)
oled.show()

# inicializacion modulo SD
Pin(18, Pin.OUT, value=1)  #para desactivar LoRa
spi = SPI(sck=Pin(23), miso=Pin(12), mosi=Pin(13))
sd = sdcard.SDCard(spi, Pin(2, Pin.OUT))

oled.text('Modulo SD listo', 0, 10)
oled.show()

# inicializacion modulo GPS
gps = UART(2, 115200)
gps.init(9600, bits=8, parity=None, stop=1, tx=17, rx=5)
oled.text('Gps...OK', 0, 20)
oled.show()

os.mount(sd, '/fc')
gps_data = 'hola123'
filename = '/fc/gps_data.txt'

with open(filename, 'w') as f:
Ejemplo n.º 25
0
i2c = I2C(-1, Pin(SCL), Pin(SDA))

p = ms5837.MS5837(model='MODEL_30BA', i2c=i2c)
t = tsys01.TSYS01(i2c)

p.init()

temp_acc = t.getTemp()
temp, pressure, depth = p.get_measurement()

print(temp_acc)
print(temp, pressure, depth)

sck = Pin(5)
mosi = Pin(18)
miso = Pin(19)
cs = Pin(14, Pin.OUT)
spi2 = SPI(2, baudrate=5000000, sck=sck, mosi=mosi, miso=miso)

sd = sdcard.SDCard(spi2, cs)
os.mount(sd, '/sd')
output = os.listdir('/sd')
print(output)

f = open('/sd/data.txt', 'a')
data_str = "%.3f %3.f\n" % (temp_acc, temp)
f.write(data_str)
f.close()

spi2.deinit()
Ejemplo n.º 26
0
# Mount the SD card
# Peter hinch 30th Jan 2016
# adapted to the WeMos D1 mini (ESP8266 or ESP32) by Uli Raich
import sys, os, sdcard, machine

if sys.platform == 'esp8266':
    print('SD card on ESP8266')
    SPI_CS = 15
    spi = machine.SPI(1)

elif sys.platform == 'esp32':
    print('SD card on ESP32')
    sck = machine.Pin(18)
    miso = machine.Pin(19)
    mosi = machine.Pin(23)
    SPI_CS = 5
    spi = machine.SPI(2, baudrate=32000000, sck=sck, mosi=mosi, miso=miso)

spi.init()  # Ensure right baudrate
sd = sdcard.SDCard(spi, machine.Pin(SPI_CS))  # ESP8266 version
print("Sd card created")

try:
    os.mount(sd, '/sd')
except:
    print("Cannot mount file system on sd card, already mounted?")
#    sys.exit()
print('Filesystem check')
print(os.listdir('/sd'))
Ejemplo n.º 27
0
 def __init__(self):
     self.spi = machine.SPI(1)
     spi.init()
     sd = sdcard.SDCard(spi, machine(SPI_CS))
def sdtest():
    print("1")

    #hardware spi

    spi = SPI(2,
              baudrate=10000000,
              polarity=0,
              phase=0,
              bits=8,
              firstbit=SPI.MSB,
              sck=Pin(18, Pin.OUT, Pin.PULL_DOWN),
              mosi=Pin(23, Pin.OUT, Pin.PULL_UP),
              miso=Pin(19, Pin.IN, Pin.PULL_UP))

    spi.init()  # Ensure right baudrate
    sd = sdcard.SDCard(spi, Pin(22))  # Compatible with PCB
    vfs = os.VfsFat(sd)
    os.mount(vfs, "/fc")
    print("Filesystem check")
    print(os.listdir("/fc"))

    print("1")

    line = "abcdefghijklmnopqrstuvwxyz\n"
    lines = line * 200  # 5400 chars
    short = "1234567890\n"

    print("1")

    fn = "/fc/rats.txt"
    print()
    print("Multiple block read/write")
    with open(fn, "w") as f:
        n = f.write(lines)
        print(n, "bytes written")
        n = f.write(short)
        print(n, "bytes written")
        n = f.write(lines)
        print(n, "bytes written")

    with open(fn, "r") as f:
        result1 = f.read()
        print(len(result1), "bytes read")

    fn = "/fc/rats1.txt"
    print()
    print("Single block read/write")
    with open(fn, "w") as f:
        n = f.write(short)  # one block
        print(n, "bytes written")

    with open(fn, "r") as f:
        result2 = f.read()
        print(len(result2), "bytes read")

    os.umount("/fc")

    print()
    print("Verifying data read back")
    success = True
    if result1 == "".join((lines, short, lines)):
        print("Large file Pass")
    else:
        print("Large file Fail")
        success = False
    if result2 == short:
        print("Small file Pass")
    else:
        print("Small file Fail")
        success = False
    print()
    print("Tests", "passed" if success else "failed")
sdin_pin = Pin(12)

audio_out = I2S(I2S.NUM0,
                bck=bck_pin,
                ws=ws_pin,
                sdin=sdin_pin,
                standard=I2S.PHILIPS,
                mode=I2S.MASTER_RX,
                dataformat=I2S.B32,
                channelformat=I2S.RIGHT_LEFT,
                samplerate=SAMPLES_PER_SECOND,
                dmacount=8,
                dmalen=256)

spi = SPI(1, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
sd = sdcard.SDCard(spi, Pin(4))
uos.mount(sd, "/sd")
s = open('/sd/mic_recording.wav', 'wb')
s.write(wav_header)

mic_samples = bytearray(SAMPLE_BLOCK_SIZE)
sd_samples = bytearray(SDCARD_SECTOR_SIZE)
numread = 0
numwrite = 0

for _ in range(WAV_DATA_SIZE // SDCARD_SECTOR_SIZE):
    try:
        numread = audio_out.readinto(mic_samples)
        prune(mic_samples, sd_samples)
        numwrite = s.write(sd_samples)
    except KeyboardInterrupt:
Ejemplo n.º 30
0
audio_in = I2S(
    I2S.NUM0,
    bck=bck_pin,
    ws=ws_pin,
    sdin=sdin_pin,
    standard=I2S.PHILIPS,
    mode=I2S.MASTER_RX,
    dataformat=I2S.B32,  # Each sample will only take up 4bytes in DMA memory
    # NOTE: ONLY_RIGHT actually samples left channel.
    channelformat=I2S.ONLY_RIGHT,  # Only sample single left channel (mono mic)
    samplerate=SAMPLES_PER_SECOND,
    dmacount=32,
    dmalen=DMA_LEN)

spi = SPI(sck=Pin(23), mosi=Pin(12), miso=Pin(14))
sd = sdcard.SDCard(spi, Pin(2))
uos.mount(sd, "/sd")
s = open('/sd/mic_recording_32bits.wav', 'wb')
s.write(wav_header)

mic_samples = bytearray(SAMPLE_BLOCK_SIZE)

TOTAL_BYTES = RECORD_TIME_IN_SECONDS * SAMPLES_PER_SECOND * BYTES_PER_SAMPLE
bytes_written = 0

# Keep recording until enough samples are written
while bytes_written < TOTAL_BYTES:
    try:
        numread = 0
        numwrite = 0
        numread = audio_in.readinto(mic_samples, timeout=5)