def m5stickv_init(uniV_use): if uniV_use==0: lcd.init() lcd.rotation(2) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing((224, 224)) sensor.run(1) if uniV_use==0: pmu = axp192() pmu.setScreenBrightness(9)
from pmu import axp192 from fpioa_manager import fm, board_info from machine import UART fm.register(35, fm.fpioa.UART2_TX, force=True) fm.register(34, fm.fpioa.UART2_RX, force=True) uart_Port = UART(UART.UART2, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096) def u_send(d): data_packet = bytearray([0xFF, 0xAA]) data_packet.append(d % 256) uart_Port.write(data_packet) print("send " + str(d)) pmu = axp192() pmu.enablePMICSleepMode(True) lcd.init() lcd.rotation(2) #Rotate the lcd 180deg try: img = image.Image("/flash/startup.jpg") lcd.display(img) except: lcd.draw_string(lcd.width() // 2 - 100, lcd.height() // 2 - 4, "Error: Cannot find start.jpg", lcd.WHITE, lcd.RED) from Maix import I2S, GPIO import audio
import pmu import time eval_commands = [ "getUSBVoltage()", "getUSBInputCurrent()", # "getConnextVoltage()", # "getConnextInputCurrent()", "getVbatVoltage()", "getBatteryChargeCurrent()", "getBatteryDischargeCurrent()", # "getBatteryInstantWatts()", "getTemperature()" ] lcd.init() lcd.rotation(2) #Rotate the lcd 180deg axp = pmu.axp192() axp.enableADCs(True) n = min(len(eval_commands), 8) while 1: for i in range(n): cmd = eval_commands[i] ret = eval("axp." + cmd) s = str(ret) + " #" + cmd lcd.draw_string(0, i * 16, s, lcd.GREEN, lcd.BLACK) time.sleep(1)
def setup(self): lcd.init(freq=40000000) #lcd.direction(lcd.YX_LRUD) lcd.direction(lcd.YX_RLDU) fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1) self.button_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2) self.button_b = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP) self.counter = 0 self.last_sec = 0 self._axp192 = pmu.axp192() self._axp192.enableADCs(True) self._axp192.enableCoulombCounter(False) self.printRegs() # LCDの明るさ self._axp192.__writeReg(0x91, 0xA0) # 上位4bit 7から15 # self._axp192.setScreenBrightness(7) # <- 0x28じゃなくて0x91が正しい https://github.com/sipeed/MaixPy/pull/153 # バッテリ充電ON/OFF https://twitter.com/michan06/status/1168104180445106180 reg0x33 = self._axp192.__readReg(0x33) reg0x33 |= (1 << 7) # ON #reg0x33 &= ~(1<<7) # OFF self._axp192.__writeReg(0x33, reg0x33) # REG 33H:充電制御1 # デフォルト:C8H # # bit7 充電機能により、内部および外部チャネルを含む制御ビットが可能 0:オフ、1:オン # bit6:5 充電目標電圧設定 # 00:4.1V; # 01:4.15V; # 10:4.2V; # 11:4.36V # bit4 充電終了電流設定 # 0:充電電流が設定値の10%未満になったら充電を終了 # 1:充電電流が設定値の15%未満になったら充電を終了します # bit3-0 内部パス充電電流設定 default=1000(780mA) # 0000: 100 mA; 0001: 190 mA; 0010: 280 mA; 0011: 360 mA; # 0100: 450 mA; 0101: 550 mA; 0110: 630 mA; 0111: 700 mA; # 1000: 780 mA; 1001: 880 mA; 1010: 960 mA; 1011:1000 mA; # 1100:1080 mA; 1101:1160 mA; 1110:1240 mA; 1111:1320 mA; # 0xC0(0b11000000) なら「充電オン、充電目標電圧=4.2V、充電終了電流=10%、充電電流=100mA」 reg0x33 = self._axp192.__readReg(0x33) reg0x33 = (reg0x33 & 0xF0) | 0x01 # 190mA self._axp192.__writeReg(0x33, reg0x33) # REG 34H:充電制御2 # デフォルト:41H # 7 プリチャージタイムアウト設定Bit1 # 00:30分; 01:40分; # 10:50分; 11:60分 # 6 プリチャージタイムアウト設定Bit0 # 5-3 外部パス充電電流設定範囲300-1000mA、100mA /ステップ、デフォルト300mA # 2 充電中の外部パスイネーブル設定0:オフ; 1:オープン # 1 定電流モードでのタイムアウト設定Bit1 00:7時間; 01:8時間; 10:9時間; 11:10時間RW0 # 0 定電流モードでのタイムアウト設定Bit0 # REG 01H:電源装置の動作モードと充電状態の表示 # 0x70なら「温度超過なし、充電中、バッテリーあり、バッテリーアクティベーションモードに入っていない、実際の充電電流は予想電流と等しい、モードA」 # # bit7 AXP192が過熱しているかどうかを示します 0:温度超過なし; 1:温度超過 # bit6 充電表示 0:充電していない、または充電が完了している、 1:充電中 # bit5 バッテリーの存在表示 0:バッテリーはAXP192に接続されていません; 1:バッテリーはAXP192に接続されていま # bit4 予約済み、変更不可 # bit3 バッテリーがアクティブモードかどうかを示します 0:バッテリーアクティベーションモードに入っていない; 1:バッテリーアクティベーションモードに入っている # bit2 充電電流が目的の電流よりも小さいかどうかを示します 0:実際の充電電流は予想電流と等しい; 1:実際の充電電流は予想電流よりも小さい # bit1 AXP192スイッチモード表示 0:モードA; 1:モードB # bit0 予約済み、変更不可 self._axp192.setK210Vcore(0.8)
def setup(self): print(kpu.memtest()) self._rec = None self._record_count = 0 self._loop_counter = 0 self._last_100ms_cnt = 0 self._next_loop_cmd_ms = 0 self._last_active_ms = 0 self._lcd_brightness = None self._charge_mode = None self._timestamp = None self._ramdisk_mount_point = "/ramdisk" self._task = None #self._mode = "rec" self._mode = "auto" self._flag_send_img_to_C = False self._axp192 = pmu.axp192() self._axp192.enableADCs(True) self._axp192.enableCoulombCounter(False) self.set_lcd_brightness(9) fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1) self.button_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2) self.button_b = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP) fm.register(35, fm.fpioa.UART2_TX, force=True) fm.register(34, fm.fpioa.UART2_RX, force=True) baud = 115200 # 115200 1500000 3000000 4500000 self.uart = UART(UART.UART2, baud, 8, 0, 0, timeout=1000, read_buf_len=4096) sensor.reset() sensor.set_pixformat(sensor.RGB565) #sensor.set_pixformat(sensor.GRAYSCALE) #sensor.set_framesize(sensor.QVGA) sensor.set_framesize(sensor.QQVGA) #sensor.set_vflip(1) #sensor.set_hmirror(1) # if set 1, storange color!!! #sensor.set_windowing((224, 224)) sensor.run(1) try: stat = uos.stat(self._ramdisk_mount_point) uos.umount(self._ramdisk_mount_point) # print("mount_point=", mount_point, " stat=", stat) except OSError as e: pass blkdev = RAMFlashDev() vfs = uos.VfsSpiffs(blkdev) vfs.mkfs(vfs) uos.mount(vfs, self._ramdisk_mount_point) lcd.init(freq=40000000) lcd.direction(lcd.YX_RLDU) lcd.clear(lcd.BLACK) lcd.draw_string(10, 10, "BeetleC_AutoDrive_V", lcd.CYAN, lcd.BLACK) if self._mode == "auto": #self._twoWheelSteeringThrottle = TwoWheelSteeringThrottle() print(kpu.memtest()) self._task = kpu.load("/sd/model.kmodel") print(kpu.memtest())