def camera_setup(): lcd.direction(lcd.YX_LRUD) sensor.reset() sensor.set_framesize(sensor.QQVGA) sensor.set_pixformat(sensor.GRAYSCALE) sensor.run(1) sensor.skip_frames(time=2000)
# ################################################## # import ################################################## import lcd import image import time ################################################## # initialize ################################################## # LCDを初期化 lcd.init() # LCDの方向を設定 lcd.direction(lcd.YX_LRUD) ################################################## # main ################################################## # LDCをクリア(色を指定) lcd.clear(lcd.BLUE) # 2秒待機 time.sleep(2) # LCDに対して文字を描画 lcd.draw_string(100, 100, "hello maixpy", lcd.WHITE, lcd.BLACK) # 2秒待機 time.sleep(2)
## Copyright (c) 2019 aNoken import sensor, image, lcd lcd.init() lcd.direction(lcd.YX_RLUD) fname = "test.jpg" img_read = image.Image(fname) lcd.display(img_read)
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)
import lcd, time import image bg = (236,36,36) lcd.init(freq=15000000) lcd.direction(lcd.YX_RLDU) lcd.clear(lcd.RED) time.sleep(1) lcd.draw_string(80, 120, "hello maixpy", lcd.WHITE, lcd.RED) time.sleep(2) img = image.Image() img.draw_string(30, 100, "hello maixpy", scale=2) img.draw_rectangle((120,120,30,30)) lcd.display(img)
''' import sensor import image import lcd #camera config sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_hmirror(0) #default mirrored sensor.run(1) #lcd config lcd.init() lcd.direction(lcd.YX_LRUD) #default rotated chsd = False if (len(os.listdir("/")) > 1): #easy-check /flash and /sd exist chsd = True else: print("SD card not found.") lcd.draw_string(10, 20, "SD card error.", lcd.RED) chsd = False try: if (chsd): os.mkdir("/sd/image") except: print("forlder exists.coninue.")
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())
# Save two image: Raw image and image with annotation # Default annotation -> 'None (0.0 %)' at (10,10) def save_image(src_img, path, annotation='None', x=10, y=10): src_img.save(path + '_001.bmp') print('Saved raw image to: ' + path + '_001.bmp') src_img.draw_string(x, y, annotation, color=(255, 0, 0), scale=1) src_img.save(path + '_002.bmp') print('Saved annotated image to: ' + path + '_002.bmp') # ===== Inits ===== # Init LCD lcd.init() lcd.direction(0x60) lcd.clear() lcd.draw_string(10, 10, 'Abfall Klassifizierung') lcd.draw_string(10, 30, 'Lade Modell ' + kmodel_path + ' ...') # Init camers sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing((224, 224)) #sensor.set_vflip(1) sensor.run(1) # Init button (A, front) fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1) btn_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)
def main(): servo_freq = 50 # Hz servo_vert = Servo(pin=10, freq=servo_freq, min_duty=7, max_duty=11.5, timer=Timer.TIMER0, channel=Timer.CHANNEL0, initial_pos=0.5) servo_hor = Servo(pin=11, freq=servo_freq, min_duty=2.8, max_duty=11.5, timer=Timer.TIMER0, channel=Timer.CHANNEL1) lcd.init(freq=15000000) lcd.direction(lcd.YX_LRDU) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_vflip(1) # 20 class yolo classes = [ 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor' ] # target_class = 14 # person # target_class = 7 # cat target_class = 4 # bottle # target_class = 19 # monitor task = kpu.load(0x500000) anchor = (1.08, 1.19, 3.42, 4.41, 6.63, 11.38, 9.42, 5.11, 16.62, 10.52) # For face detector yolo # task = kpu.load(0x300000) # anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) # target_class = 0 a = kpu.init_yolo2(task, 0.1, 0.3, 5, anchor) sensor.run(1) while (True): img = sensor.snapshot() code = kpu.run_yolo2(task, img) target_boxes = [] if code: target_boxes = [d for d in code if d.classid() == target_class] if target_boxes: # change turret position target = max(target_boxes, key=lambda d: d.value()) a = img.draw_rectangle(target.rect()) a = lcd.display(img) for i in code: lcd.draw_string(target.x(), target.y() + 12, '%f1.3' % target.value(), lcd.RED, lcd.WHITE) target_center_x = target.x() + target.w() // 2 target_center_y = target.y() + target.h() // 2 servo_hor.pos += 0.00015 * (sensor.width() // 2 - target_center_x) servo_vert.pos -= 0.0005 * (sensor.height() // 2 - target_center_y) # print('hor', servo_hor.pos) # print('vert', servo_vert.pos) else: a = lcd.display(img) kpu.deinit(task)
import sensor import image import lcd import KPU as kpu lcd.init() lcd.direction(lcd.YX_LRDU) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.run(1) task = kpu.load(0x300000) anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) a = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor) while (True): img = sensor.snapshot() code = kpu.run_yolo2(task, img) if code: for i in code: print(i) a = img.draw_rectangle(i.rect()) a = lcd.display(img) a = kpu.deinit(task)