s40723210 cd2020

  • Home
    • Site Map
    • reveal
    • blog
  • Weeks
    • Week1-5
      • OBS Streaming
    • Week6-9
      • Article impression
    • Week10-14
      • SSH setting
    • Week15-18
    • Weeks Meeting
  • 期末報告
  • Notes
    • Linux 指令
    • vi 與 vim 的指令整理
    • Q&A
  • Assignments
    • assignment1
      • Random grouping
      • Portable system
      • Four wheel car
    • assignment2
      • DigitalProductCollaboration
      • EngineeringProductDesign
      • MechanicalDesignProcess
      • Keyboard control car
    • assignment3
      • MSModelingAndTFApproaches
      • MechatronicDesignCases
      • MechaFutureAndChallenges
      • MechaEducFutureNeed
    • Final project
      • Car gripper Implement
  • CoppeliaSim
    • BubbleRob tutorial
    • Line following BubbleRob
    • External controller tutorial
    • Simulation
    • Simulation dialog
  • Webots Tutorial
    • User Interface
    • Scene Tree
Weeks << Previous Next >> OBS Streaming

Week1-5

建立個人cd2020倉儲

1.下載2019Fall可攜套件.7z,完成後開啟start。
2.先登入自己的github帳號,創建一個新的倉儲cd2020。
3.進入要存放該資料的資料夾tmp。

4.git clone https://github.com/s40723210/cd2020 。
5.git submodule add https://github.com/mdecourse/cmsimde.git。

6.再進入cmsimde,將up_dir的所有項目複製到cd2020。

7.完成後,python wsgi.py 開始編輯倉儲。
8.login密碼為admin,gitconfig要有帳號密碼。
9.處理完,git status > git add . > git commit -m "標題" > git push。

10.開啟github倉儲設定,點選要推送的branch即可。

我的教學影片:https://youtu.be/jBFzju1F43s


Updated Python 3.8.2

1.從Python官方網站,下載3.8.2版本的安裝檔。

2.完成後開啟,點選Customize installation(定制安裝)。

3.將第二個選項的pip取消勾選,其他都可以勾選起來。

4.使用預設勾選,將路徑改為y槽的py382資料夾(自己創建)。

5.用編輯器來開啟start_mdecourse.bat檔案。

6.將檔中的py373全部都改成py382後,重新啟動。

7.直接在y槽中執行,python get-pip.py 來安裝pip軟件。

8.完成之後,來安裝軟件包,輸入python pip install Flask 依此類推。

9.安裝的有Flask、Markdown、lxml、bs4、flask_cors、pelican、leo。

我的教學影片:https://youtu.be/Im6e8ZD1-Xo


分配工作和問題討論

40623115 亂數分組程式
40623251 可攜系統
40723204 可攜系統
42723210 四輪車 可攜系統 亂數分組程式
40723212 四輪車
40723225 四輪車
40723232 亂數分組程式
40723234 可攜系統
40723238 四輪車
40723245 亂數分組程式
40723250 亂數分組程式

負責各主題的人,主要以課堂上的進度,來更新個人的倉儲,每次更新進度時要做一下紀錄。所有的主題必須要在2020年3月26日之前完成,提交3-5頁的兩欄pdf報告,並在youtube上保存3-5分鐘的影片,將pdf文件放在個人倉儲 downloads / assignment1.pdf。最後整合的作業以assignment1放在自己的網站連結加/ assignment1內。有問題可以在我的 gitter 以及 老師的 gitter 上面發問,會的人也可以幫忙回答。

直播影片:https://www.youtube.com/watch?v=r0AABAp474U


Fork分組倉儲

1.先登入github,在搜尋自己組的倉儲,點進去。

2.點選右上角的Fork,選擇自己的github。

3.git clone --recurse-submodules (倉儲網址)。

4.git push完成,點選New pull request,等組長同意。

5.有衝突的話,進行git pull (分組網址) 。

6.整合完成之後即可git push,等待組長同意。

我的教學影片(有字幕):https://youtu.be/1bZ16BgmF8c


New pull request

1.先登入github,點進去想要fork的倉儲。

2.點選右上角的Fork,再選擇自己的github。

3.git clone --recurse-submodules (倉儲網址)。

4.更新git push完成,點選New pull request,等組長同意。

5.組員要進行更新時,要記得先git pull (分組網址) 檢查版本。

6.有衝突的話,組長要處理和整合分支並且解決衝突。

我的教學影片:https://youtu.be/1bZ16BgmF8c


Random grouping

測試程式可以到:Random grouping

抽查的python程式

如果要使用python來進行亂數分組抽查的話,可以導入random來從列表中隨機抽出所需要的n個不同元素,如下面的程式執行之後,就可以亂數抽出4位。

1
2
3
4
5
6
import random
 
group = [4, 10, 12, 25, 32, 34, 38, 45, 50]
 
team = random.sample(group, 4)
print (team)

再來是要讀取網頁資料的話,就要導入requests,使用get請求即可直接下載,例如member = requests.get("網址"),再用print(member.text)就可以印出來了如下。

1
2
3
4
5
6
7
import requests
 
web = "https://mdecourse.github.io/cd2020/downloads/2b_group_list.txt"
 
member = requests.get(web)
 
print(member.text)

如果使用讀取出的資料,還是無法使用的,因為member.text的性質是str字串,所以我就要將它變回原本的list列表,才可以進行亂數分組,改這個非常的簡單如下。

1
x = eval(member.text)

最後我整理出來的程式,雖然沒有老師這麼精美,但是也是可以進行亂數分組的抽查的,如果要改抽查人數,改y = random.sample(i,2)的數字即可。

最終程式碼

程式碼連結:抽查程式.py

1
2
3
4
5
6
7
8
9
10
11
12
import requests
import random
   
web = "https://mdecourse.github.io/cd2020/downloads/2b_group_list.txt"
member = requests.get(web)
#print(memder.text)
x=0
for i in eval(member.text):
    y = random.sample(i,2)
    x+=1
    print("group"+ str(x))
    print(y)

亂數分組的的python程式

一開始先從網頁上抓人員,這次跟上面的不太一樣,抓出來的本來就是str字串,所以必須把每個學號轉變為list列表,直接將f.text加上 .split() 來轉換,完成之後就可以使用,random.shuffle()來將整個順序打亂,再來設定一共要分幾組,再使用while迴圈來判斷每一組要有幾個人,使用if判斷是來中斷迴圈,len()是指一共有幾個數量的意思,要加組別的話就要再多寫一列,接著使用for 迴圈來從,剛剛算好的每組人數,例如:13、12、12、12,再使用一個for迴圈,來一個一個配置組人員,這時候直接使用迭代iter()的next(),來抓人員這樣子就不會重複了,最後再加上一些說明、分格、標題,就可以開始進行亂數分組了。

最終程式碼

程式碼連結:亂數分組.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import requests
import random
 
web = "http://s1.mde.nfu.edu.tw:8000/?semester=1082&courseno=0780"
f = requests.get(web)
#print(type(f.text))
x = f.text.split()
#print(len(x))
#print(x)
random.shuffle(x)
 
group1,group2,group3,group4 = 0,0,0,0
while 1==1:
    group1 += 1
    if (group1+group2+group3+group4) == len(x):
        break
    group2 += 1
    if (group1+group2+group3+group4) == len(x):
        break
    group3 += 1
    if (group1+group2+group3+group4) == len(x):
        break
    group4 += 1
    if (group1+group2+group3+group4) == len(x):
        break
#print(group1,group2,group3,group4)
 
print("全班人數有"+str(len(x))+"人")
print("="*20)
grp_num = group1,group2,group3,group4
a = iter(x)
team = 0
for i in grp_num:
    team += 1
    print("group"+str(team)+" 共 "+str(i)+" 人")
    for g in range(i):
        print(next(a))
    print("-" * 20)


Portable  System 範例:

PortableGit: https://git-scm.com/download/win

MSYS2: https://www.msys2.org/

Python 3.8.1: https://www.python.org/downloads/

CMSiMDE: https://github.com/mdecourse/cmsimde

Flask: https://github.com/pallets/flask

lxml: https://github.com/lxml/lxml

bs4: https://pypi.org/project/beautifulsoup4/

markdown: https://github.com/Python-Markdown/markdown

flask-cors: https://github.com/corydolphin/flask-cors

Pelican: https://github.com/getpelican/pelican

Reveal.js: https://github.com/hakimel/reveal.js/

Leo Editor: https://github.com/leo-editor/leo-editor

SciTE: https://www.scintilla.org/SciTEDownload.html

Tiny C Compiler: https://github.com/TinyCC/tinycc

Fossil SCM: https://www.fossil-scm.org/

Jupyterlab: https://github.com/jupyterlab/jupyterlab

Flutter: https://github.com/flutter/flutter

Visual Studio Code: https://github.com/microsoft/vscode


V-rep可動四輪車

使用內建功能來創建模型,並且模擬最基本的直線移動。

影片連結:https://youtu.be/y8DJ1sjuAqM


Weeks << Previous Next >> OBS Streaming

Copyright © All rights reserved | This template is made with by Colorlib