2024年1月10日

osep_scratch切換鏡頭

 記錄一下自已改的地方

src/lib/video/camera.js

在const requestStack = [];後面加上

/*add by chen 20221209 end */

在const requestVideoStream = videoDesc => {
    let streamPromise;
後面加上

let video_value ={};
    const webcamId= `${window.now_webcamId}`;
    if (webcamId == "user"){
        video_value = {facingMode: "user"};
    } else if ( webcamId == "environment" ){
        video_value = {facingMode: "environment"};
    } else{
      video_value = {deviceId: webcamId };
    }

修改video: videoDesc為

video: video_value,
        // video: videoDesc ,video:{facingMode: "user"}, {facingMode: "environment"},video:{deviceId: "xxxx" }


2023年11月20日

u8g2繁中字型

 看了一篇文章,覺得不錯,把它實做了一下。

參考網址:https://www.kidsgo.net/u8g2/index.php

 簡繁中常用字型:https://github.com/kaienfr/Font/blob/master/learnfiles/chinese%E7%AE%80%E7%B9%81%E5%B8%B8%E7%94%A8%E5%AD%97%E8%A1%A8.txt

 我轉換好的字型檔:https://drive.google.com/file/d/19Mw1fSSWmxFYSHbvg457jsi362sWJ0L6/view?usp=sharing

 使用方法:

1.把字型檔和ino放在相同目錄

2.在ino中加入語法

#include <U8g2lib.h>

#include "u8g2_font_e58524b32706dda48e7107fc64bfd183.h"

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
u8g2.setFont(u8g2_font_unifont_myfonts);

 

加入的中文字庫在說明文件中:https://docs.google.com/document/d/125J4c5W3LA7Bf7vy8gK1z82v_ekKfAIktCgZy0Krrls/edit?usp=sharing

 

 


2023年11月1日

google日曆連動line

參考網址 :https://happyplayblogs.blogspot.com/2021/09/line-notify-google.html

 建立一個google script內容如下

申請一個line notify 權杖

const NotifyToken = '';   // Line Notify 權杖
//const calendar = CalendarApp.getDefaultCalendar();
//某一個月曆
const calendar =
const calendar = CalendarApp.getCalendarById('日曆ID');

function Notify() {
  Now = new Date();
  Start = new Date(new Date().setHours(0, 0, 0, 0));
  End =  new Date(new Date().setHours(23, 59, 59, 999));
  calendarData = calendar.getEvents(Now, End);
  if (calendarData.length > 0) {
    var NotifyContents = '今日共' + calendarData.length + "筆待執行活動\n";
    calendarData.forEach(item =>{
      if (Now <= item.getStartTime()) {
        var year = item.getStartTime().getFullYear();
        var month = item.getStartTime().getMonth()+1;
        var day =item.getStartTime().getDate();
        var hour = item.getStartTime().getHours();
        var minute = item.getStartTime().getMinutes();
        startTime = year + "/"+ month + "/" + day + " " + hour + ":" + minute
        NotifyContents += "\n標題:" + ((item.getTitle() != "") ? (item.getTitle()) : ("無標題")) + "\n";
        NotifyContents += "開始時間:" + startTime + "\n";
      }
    })
    Logger.log(NotifyContents)
    UrlFetchApp.fetch("https://notify-api.line.me/api/notify", {
      "method"  : "post",
      "payload" : {"message" : NotifyContents},
      "headers" : {"Authorization" : "Bearer " + NotifyToken}
    });
  }
}
 
執行時要允許授權
google script是可以設定觸發條件

 

2023年9月20日

ubuntu 下arduino ide無法寫入microbit磁碟機

 錯誤訊息:

Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-09-12:07)

 

 解決方法:

cd /etc/udev/rules.d
sudo wget https://raw.githubusercontent.com/arduino/OpenOCD/master/contrib/60-openocd.rules
sudo udevadm control --reload-rules
 

 

2023年8月24日

esp32-cam記錄

參考文章: https://shop.mirotek.com.tw/iot/iot-start-2/

1.接線:燒錄時要準備一個jump把IO0和GND接起來。

 

 怎知道有接好否?把usb接上電腦,開啟arduino ide,打開serial monitor,把鮑率設為115200(通常是這鮑率,若無訊號可以改一下鮑率,如果都無訊號就是接錯),如果有看到...或亂碼大概就對了,按下reset鈕,就會看到類似下圖。

2.讓arduino ide認識esp32:在arduino ide(我用的是1.8.14)偏好設定位置填入網址:https://dl.espressif.com/dl/package_esp32_index.json

 

 

工具/開發板/開發板管理員,輸入esp32,把esp32板子安裝起來。

板子使用ESP32 Wrover Module,使用esp32板子要先安裝esptool,請自行安裝。參數設定如下圖()



燒錄範例檔:開啟範例檔CameraWebServer。

要修改的部分如下:

第17行#define CAMERA_MODEL_ESP_EYE // Has PSRAM,註解掉(加//)。

 //#define CAMERA_MODEL_ESP_EYE // Has PSRAM

第24行//#define CAMERA_MODEL_AI_THINKER // Has PSRAM把註解(//)拿掉

#define CAMERA_MODEL_AI_THINKER // Has PSRAM

第38 39 行,改成你要連線AP的SSID和密碼:

const char* ssid = "AP的SSID";
const char* password = "AP的密碼";

編譯檔案有無問題,無問題後燒錄(燒錄前要把jump插入IO0和GND,很重要、很重要、很重要按下燒錄後,要先按著reset鈕,看到Connecting.........後放開reset鈕。


燒錄完成,移除jump,打開serial monitor,按下reset鈕就會看到板子連上ap後的ip,在瀏覽器中輸入ip就可以看到畫面了。




320x240時可以把臉部辨功能打開。


腳位圖