2020年9月3日

修改scratch3預載內容

 預載的內容在:scratch-gui/src/lib/default-project資料夾內。

index.js和project-data.js

把要加入的svg檔案拷貝到資料夾內,並使用 md5sum 檔案,算出編碼後的數字,例如:

md5sum osep.svg
48b6771e8ddcb19a37584bf4ce4df834  osep.svg 

把osep.svg重新命名為48b6771e8ddcb19a37584bf4ce4df834.svg

編輯index.js

在前面import中加入

import osep from '!raw-loader!./48b6771e8ddcb19a37584bf4ce4df834.svg';

在最後面加入

{
        id: '48b6771e8ddcb19a37584bf4ce4df834',
        assetType: 'ImageVector',
        dataFormat: 'SVG',
        data: encoder.encode(osep)
    },

 

編輯project-data.js

新增角色加入

{
                isStage: false,
                name: translator(messages.sprite, {index: 1}),
                variables: {},
                lists: {},
                broadcasts: {},
                blocks: {},
                currentCostume: 0,
                costumes: [
                    {
                        assetId: '48b6771e8ddcb19a37584bf4ce4df834',
                        name: translator(messages.costume, {index: 1}),
                        bitmapResolution: 1,
                        md5ext: '48b6771e8ddcb19a37584bf4ce4df834.svg',
                        dataFormat: 'svg',
                        rotationCenterX: 46,
                        rotationCenterY: 50
                    }
                ],
                sounds: [
                    {
                        assetId: '83c36d806dc92327b9e7049a565c6bff',
                        name: translator(messages.meow),
                        dataFormat: 'wav',
                        format: '',
                        rate: 22050,
                        sampleCount: 18688,
                        md5ext: '83c36d806dc92327b9e7049a565c6bff.wav'
                    }
                ],
                volume: 100,
                visible: true,
                x: 200,//角色座標
                y: -150,
                size: 50,//角色大小%
                direction: 90,
                draggable: false,
                rotationStyle: 'all around'
            }

 存檔,重新編譯程式。

2020年8月19日

ubuntu kernel移除

#查看发布版本号
cat /etc/issue
lsb_release -a

#查看内核版本号
uname -sr
uname -a

 下載

linux-headers-xx_all.deb
linux-headers-xx-generic_xx_amd64.deb
linux-image-xx-generic_xx_amd64.deb


sudo dpkg -i *.deb


#安装完成以后,重新启动系统,验证内核的版本
uname -sr

如何知道已經安裝好的套件有多少?

使用指令
dpkg --get-selections > inistalled_packages.txt

sed -i 's/install/\\/g' inistalled_packages.txt

2020年8月16日

scratch3_knn安裝記錄

 github:https://github.com/CodeLabClub/scratch3_knn

參考文章:https://github.com/CodeLabClub/scratch3_knn_install

cd   scratch-gui/node_modules/scratch-vm/src/exteions

git clone https://github.com/CodeLabClub/scratch3_knn.git

cd scratch3_knn

cp -r knn ../../../../../static

vim mobilenet.js

約1083行

註解//var BASE_PATH = 'http://storage.codelab.club/tfjs-models/tfjs/'

 改成var BASE_PATH = '../static/knn/';

vim index.js

把這三行註解

//import * as tf from '@tensorflow/tfjs';
//import * as mobilenetModule from './mobilenet.js';
//import * as knnClassifier from '@tensorflow-models/knn-classifier';
 加入

const tf = require('@tensorflow/tfjs');
const mobilenetModule = require('./mobilenet.js');
const knnClassifier = require('@tensorflow-models/knn-classifier'); 


 vim ../../extension-support/extension-manager.js

 在const builtinExtensions = {
中的最後面加上,,按下enter,再貼上cxknn:() =>require('../extensions/scratch3_knn')


 

 cd ../../../../../src/lib/libraries/extensions/

mkdir knnAlgorithm

加入圖片knnAlgorithm.png 和 knnAlgorithm-small.svg

 vim index.jsx

在import的最後面加入二行

import knnalgorithmImage from './knnAlgorithm/knnAlgorithm.png';
import knnalgorithmInsetImage from './knnAlgorithm/knnAlgorithm-small.svg';

 在export default [的最後面加入

{
       name: (
           <FormattedMessage
               defaultMessage="knn algorithm"
               description="Name for the 'knn algorithm' extension"
               id="gui.extension.knnalgorithm.name"
           />
       ),
       extensionId: 'cxknn',
       iconURL: knnalgorithmImage,
       insetIconURL: knnalgorithmInsetImage,
       description: (
           <FormattedMessage
               defaultMessage="knn algorithm."
               description="Description for the 'knn algorithm' extension"
               id="gui.extension.knnalgorithm.description"
           />
       ),
       featured: true,
       helpLink: 'https://github.com/CodeLabClub/scratch3_knn'
},

 

查看目前npm 安裝套件的版本

npm -l 套件名稱 

例如:

npm ls @tensorflow-models/knn-classifier
scratch-gui@0.1.0 /home/teacher/音樂/osep_scratch-gui
└── @tensorflow-models/knn-classifier@1.2.2

大致上需要

    "@tensorflow-models/knn-classifier": "^1.2.2",
"@tensorflow/tfjs": "^0.13.5",
"@tensorflow/tfjs-converter": "^1.2.1",
"@tensorflow/tfjs-core": "^1.2.1",
"@tensorflow/tfjs-layers": "^0.8.5",
安裝特定版本

npm install @tensorflow/tfjs@0.10.0 

 npm  install 

@tensorflow-models/knn-classifier @tensorflow/tfjs @tensorflow/tfjs-converter @tensorflow/tfjs-core @tensorflow/tfjs-layers

LASS環境感測積木使用

 LASS積木是取得PM2.5空污、溫度和濕度即時資訊積木。

按下左下角+,找到LASS積木

 拉出積木填入你想偵測的設備ID,執行後就會取得PM2.5的空污即時資料。

 

lass資料網站 :https://pm25.lass-net.org/

 

2020年8月11日

scratch3使用ifttt發佈訊息到line

0.你的line,先把notify加入好友。

 1.先登入ifttt網站(https://ifttt.com/),第一次點選右上角sign up按鈕,可以使用各大網站的openID。

2.按下建立creat,出現如下圖,按下+號。用法是如果什麼事就如何

3.選擇服務,搜尋webhooks


4.替事件取個名字,按下左邊藍色圖框。

5.輸入你要的事件名稱,這裡是"溫度警告",按下Create trigger。

6.再按下下一個+號

7.輸入動作的服務,輸入line。

8.按下send message(送出訊息)

9.選擇透過1對1聊天或是群組,按下create action

10.完成設定。

11.取得webhooks的key。按下右上角人的圖形,My services.

12.點選右上角的setting,複製你的ke(use/後的文字)。




14回到scratch3中,按下ifttt擴充套件。

15.拉出積木,填入key和事件名稱和要送出值(最多三個)。

16.line上收到的訊息: