2019年6月3日 星期一

樣區法計算-大成國中操場有多少草+google map計算距離面積

關於課本樣區法運用黑白棋計算,總是覺得離現實生物太遠,那麼我們可以運用什麼方式去計算會更好呢?其實校園內很有可能有一大片的草地,或是選舉造勢晚會常常有人數分析,這些都是很好的思考標的,往年一直都會去計算出校園內一片草地的草的個體數,今年因為探究教學與圖形化的自我訓練下,關於製作講義的功力自覺大幅提升,於是分享一下這次邏輯較完整的計算草地方式,作為參考

課前準備:
學校要有一大片草
4人一組
4隻竹筷/組
4公尺長紅色塑膠繩,並於每1公尺處畫上黑色記號

授課時間:
1節計算草的數量,回家作業+0.5節討論or1節統整學習單問題
帶學生到操場附近陰涼處
Q1請問學校草地這麼大片,要如何計算草的個體數?
Q2:如果要全部都算的優點是什麼?缺點是什麼?
Q3:如果採樣區法,要取幾個要區比較好?為什麼?
Q4:如果樣區多的優缺點是?樣區少的優缺點是?

帶學生到草地上 請每個學生都拔起"一棵草"
Q5:請問什麼是一棵草,一個草的個體?
Q6:請問如果有匍匐莖該如何計算一棵草? 

示範圍地+釘樁(竹筷)
Q7:請問1平方公尺這麼大,那麼操場大概幾平方公尺?我們有沒有辦法精確計算出來?

示範從角落開始計算草的數量方式


學生開始算草20分鐘






word檔案下載
https://drive.google.com/open?id=11oQAxJpEmtzdADhW1xmaOBdVFwsbrXK4

數字計算的部分我是幫忙學生按計算機,面積算出來雖然是5400平方公尺,但是我讓他們用5500平方公尺計算,另外五個樣區取平均也是用手機幫忙計算,僅有3個樣區平均讓他們自己處理,但是會要求一定要寫完整算式。


google map計算距離面積-參考-[重灌狂人]如何在 Google Maps 中測量距離、計算總面積?
1.開啟google map
 2.按衛星地圖

3.在要測量的起點按滑鼠右鍵

4.在要測量的端點按滑鼠左鍵圈出範圍

4.在要測量的端點按滑鼠左鍵圈出範圍

5.包圍出一個封閉圖形就會有面積了

6.包圍完可以拖拉[線]或是[端點]調整範圍



2019年6月2日 星期日

如何學-從課文閱讀、重點製作與考卷訂正之Rubric評量指標開始

突然自己花了很多精神做的超棒教材,從雲端硬碟挖出來,為什麼忘記有這件事情,可能是因為之前實施後覺得太麻煩而沒有持續下去吧

新課綱開始,我想說稍微整理一下未來還可以用的教材,哪些部分必須移到補充課程或是周六課程,重新盤點一下現有資源。

結果就發現這個看起來很厲害的東西,應該是2015年跟惠如學姐討論Rubric做出來的,不過懶惰的自己很難照這個框架執行,好像只施行了一屆後就束之高閣,未來也可以考慮做成講義的前段,讓學生抓一下讀書的感覺,畢竟這些能力還是很想讓學生學會,而且是有用且帶的走的技能。

word版下載
https://drive.google.com/open?id=1ZX6VmixfLUdhLgMcbphX9wFwEzwV4i1I

參考文章:阿簡生物筆記-圖形組織因子

2019年1月8日 星期二

探究教學四格教案

上次聽完龍山國中鄭志鵬老師跟線西國中林莞如老師的探究教學說明後,把四格教案整理成這樣,然後結合一點自己的想法,覺得這樣可以隨便給我一個素材,我就可以套公式變成探究式教學了
最近也的確是用這個邏輯重新安排了幾個課程,覺得棒棒的,方便好用
簡單來說就是先給學生看到一個多種變因、混亂的兩組現象,試圖讓學生分析裡面的差異(變因),讓學生選定一個關鍵變因設計實驗並操作,統計完實驗結果後分析
每次實驗可以把重點放在其中一件事情就好,一整年下來就能培養到探究教學的不同面向,讓學生往正確的科學素養邁進
 

永續漁業模擬遊戲-pa分析發現pc討論傳達

4人一組,一開始先文本閱讀(5分鐘),給學生一篇烏魚一篇黑鮪魚文章,讀完其中一篇後跟組員討論:教師說明4個提問,請學生從兩篇文章中回答這四個提問
1.人做了什麼事情?
2.魚發生了什麼事情?
3.你覺得之後你應該做什麼事情?
4.圖表內的數據發生了什麼事情?

討論完後進入捕魚活動

開始捕魚活動,我隨便買了7包糖果,也剛好分成7組。每組桌面有14顆,另外12個放隔壁桌子等補充
每次目標 能夠抓4輪,活動計算5次數據,剩下魚每4隻生一隻魚,四捨五入 所以餘數2、3、4都可以生新的魚
有糖果學生會很躁動,要隨時停頓控場 只要停下來等就好了,這也是生活教育的一部分
事先說明離開前每個人可以分到6顆糖果,最後我會點大概數量,請不要佔為己有(但是我們知道學生有些是貪婪的)
第一局一開始決定好要抓幾隻魚,之後不能更改抓魚數
討論結果
第二局每一次抓魚都可以考慮抓魚數
第三局派一個人當科學家,控制整場魚群數量,漁夫不知道魚的量有多少

希望這樣可以讓他們體驗賽局、永續漁業,而不只是打嘴泡說保育而已。

參考資料:
阿簡生物筆記
http://a-chien.blogspot.com/2012/10/blog-post_2144.html
烏魚文章
https://www.coa.gov.tw/ws.php?id=2502215&print=Y
烏魚數據圖
http://www.tfrin.gov.tw/friweb/frienews/enews0083/p2.html
黑鮪魚文章與數據圖
http://www.kuroshio.org.tw/newsite/article_02.php?info_id=333



第二次執行記錄
意外發現三次遊戲的說明層次很重要
看完文章後跟學生亂哈拉,然後說其實你當漁夫就知道,人都是貪婪的,然後開始說明活動規則
第一次只說明數量可以隨便拿,漁夫要捕多少魚都可以,但是每一次抓的數量要一樣多,抓完後剩下的魚會繁殖25% 也就是每4隻生一隻,從場外拿新的魚進來。然後漁夫不能交談告知對方你想抓多少魚,畢竟商場就是戰場,你不會希望你的好漁點被發現。
我希望可以玩10輪
然後今天玩剛好出現佛系漁夫第6組,整組都不抓魚;還有貪婪漁夫,有人一次就掃台了,其他大概都是設定抓一隻。成果的數據很好討論,所以一開始設定少,讓學生自由發揮是重要的。
有幾組結局沒魚可以抓了。

然後討論一下第一輪的結果,統計個人漁獲量、小組總漁獲量、漁場總共出現多少魚,停頓讓學生思考一下,提示學生雖然有人一次掃台,但是神奇的是他竟然不是總漁獲量最大的,請他們思考一下這是為什麼,如果是你要怎麼改變策略
然後請他們思考哪個漁場最符合永續漁業。
提示下一次我要統計幾種冠軍:個人最多漁獲、小組最多漁獲、漁場出現總魚數量最大這三個冠軍。
第二輪改變一個規則,每次你捕魚的數量可以改變,還有至少捕魚總數要超過四隻,不然你全家會餓死。
這次你就會看到策略出來了,剛好有一組神奇的在第三輪停漁,他們變成漁獲大,而且可能可以撐久一點的狀態,學生就會多思考一些事情。這次數據也很漂亮,有很多種狀態去分析。而且有人第四輪捕魚全抓,然後他還不是個人最大漁獲量,就有很多故事可以說了。我請停漁的組別分析他們每個人每一局的捕魚數量
最後第三輪就是科學家活動,每組剩3個漁夫,桌上沒有魚(糖果),漁夫自己記錄每次的捕魚數量,只有科學家知道魚群數量,然後我分配出3種起始數量不同的漁場,科學家每回合要統計殘留魚數量,只能跟我回報下一局的魚總數。
然後第四輪捕魚結束前,因為他們都太保險抓魚了,所以我偷偷告知大家魚還很多盡量抓,可以看到漁獲量明顯上升,然後下課前一樣分析永續漁場是哪個,這樣就完成2節課了

呼出氣體檢測課程-pe(實驗設計與執行)

實驗一、石灰水檢測二氧化碳
破題:我們可以用石灰水來檢測二氧化碳,如何檢測請自己看課本。
提問實驗
一-1呼出氣體與空氣比較
給兩個寶特瓶+30cc石灰水,請學生設計實驗證明呼出氣體二氧化碳大於空氣二氧化碳
學生一開始會直接往寶特瓶吹氣到變色,我會請他說明設計原因,並說這樣很好,可是可以更精密一點
於是就有其他組別想出吹氣,蓋蓋子,搖一搖,比較兩瓶差異(另一個班很神奇的就直接會蓋蓋子搖,這樣的話就直接完成,可以進到下一題,這次的實驗不用每一組做出來,只要有比較快的完成,老師過去請學生發表他們的設計理念即可換到下段課程)
在限制材料的狀況下(只能有空氣、人體呼氣、兩個寶特瓶、限量石灰水),就比較有機會設計出實驗並自己說明流程,因為這樣的組合很單純,要讓學生體驗:控制變因只能有一個也比較容易。
一-2空氣中的二氧呼化碳
請問怎麼用這個器材證明空氣中也有二氧化碳
(放著讓學生試,這個很難,而且就算一直搖也要超久才有機會)
(第二個班發現開關瓶子大約5次即可讓15cc石灰水混濁到可明顯觀察)
一-3延伸題:如何證明運動前後二氧化碳含量不同
再給30cc石灰水,請學生證明運動前後二氧化碳含量差異
這裡可以明顯知道學生是否會操作 同一個人運動前後氣體差異、固定呼氣數量、固定石灰水數量等因素了。
一-4集合詢問講解
石灰水用來測定_____
關瓶子的好處是只有____個變因
一個瓶子裡面裝的是___,另一個裝的是___
一-5示範實驗
葉子寶特瓶(10片馬櫻丹葉子+吹10口氣,一個放外面找強烈太陽15分鐘,一個放暗處,20cc石灰水)即使只有大概經過15分鐘,二氧化碳的含量就有差別了,混濁程度也有差別(第二個班經過2節課,差異十分明顯),我還加了一組沒吹氣但至於黑暗空間,做出來顏色也會不同。搖晃後比較混濁程度,並請學生說明為什麼混濁程度不一樣
(有照光有光合作用消耗二氧化碳)
(沒照光反而產生更多二氧化碳)

實驗二、氯化亞鈷試紙測水
給每組4個半張的試紙,石蕊紅、石蕊藍、氯化亞鈷紅、氯化亞鈷藍
請學生靜置觀察變化,找出變色的,說明他是___為什麼變色?
將試紙標示數字,石蕊藍1、石蕊紅2、氯化亞鈷3(此時兩張都變粉紅色了)
將2張氯化亞鈷試紙烘乾
二-1請設計實驗證明呼出氣體水分大於空氣中的水
學生立刻就解出來了
二-2集合示範實驗
將整份氯化亞鈷試紙烘乾,問學生為什麼吹風機會讓他變藍色?
示範整卷氯化亞鈷在鼻子前的變色
結尾三、問題統整,複習概念
請問什麼實驗可以檢測什麼氣體
什麼實驗可以檢測什麼
呼氣中吐出什麼
這樣就可以一節課完成呼吸檢測教學,並讓學生體驗pe的實驗設計與執行

2018年8月23日 星期四

arduino+DS3231時鐘+0.96OLED or I2C_LCD模組


參考文章
【自造學堂】如何用Arduino x RTC完成LCD時間顯示?
*0*RTC(即時時鐘)模組*0* 如何更新 DS3231 RTC 模組的時間與大型數字時鐘製作

需要安裝資料庫
for DS3231
(下載後解壓縮安裝)  DS3231_TEST

for 0.96OLED
(資料庫搜尋安裝)      Adafruit_GFX
(資料庫搜尋安裝)      Adafruit_SSD1306

for I2C LCD
(資料庫搜尋安裝)      LiquidCrystal_I2C

額外經驗
如何把1變成01(補0)
C語言Printf 自動補0
Topic: Leading zeros for seconds coding

之後要研究的
按鈕改時間設定
https://github.com/tehniq3/oled_096_128x64_i2c_RTC_animated-clock
http://ruten-proteus.blogspot.com/2017/08/ds3231-rtc-iiclcd-clock.html



程式碼-DS3231時鐘+0.96OLED
#include <DS3231.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

//時鐘設定
DS3231 Clock;
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits;
bool ADy, A12h, Apm;
byte year, month, date, DoW, hour, minute, second;

//OLED設定
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

//螢幕設定,定義顯示高度跟寬度
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH  16

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

char buffer [16];
char time [16];

void setup() {
  // Start the I2C interface
  Wire.begin();
  //第一次使用要設定以下時間,之後就可以不用設定了
  //Clock.setSecond(00);//Set the second
  //Clock.setMinute(25);//Set the minute
  //Clock.setHour(16); //Set the hour
  //Clock.setDoW(4); //Set the day of the week
  //Clock.setDate(23); //Set the date of the month
  //Clock.setMonth(8); //Set the month of the year
  //Clock.setYear(17); //Set the year (Last two digits of the year)
  // Start the serial interface
  Serial.begin(9600);

  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
  display.clearDisplay();
}

void loop() {
  int sec,minute,hour,date,month,year,temperature;
  sec=Clock.getSecond();
  minute=Clock.getMinute();
  hour=Clock.getHour(h12, PM);
  date=Clock.getDate();
  month=Clock.getMonth(Century);
  year=Clock.getYear();

  temperature=Clock.getTemperature();

  sprintf(time,"20%02u-%02u-%02u",year,month,date); //設定印出01,02,而非1,2
  sprintf(buffer,"%02u:%02u:%02u",hour,minute,sec); //設定印出01,02,而非1,2

  Serial.print("20");
  Serial.print(year,DEC);
  Serial.print(time);
  Serial.print(' ');
  Serial.print(buffer);
  Serial.print('\n');
  Serial.print("Temperature=");
  Serial.print(temperature);
  Serial.print('\n');

  //英文字符显示
  display.setTextColor(WHITE);        //设置字体颜色白色
  display.setCursor(0,0);             //设置字体的起始位置
  display.setTextSize(1);             //设置字体大小
  display.print(time);
  display.setCursor(86,0);
  display.print(temperature);
  display.println("oC");
  display.setTextSize(2);             //设置字体大小
  display.print(buffer);
  delay(1000);
  display.display(); 
  display.clearDisplay();
}


程式碼-DS3231時鐘+I2C_LCD
#include <DS3231.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

DS3231 Clock;
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits;
bool ADy, A12h, Apm;
byte year, month, date, DoW, hour, minute, second;

//LED_Fundino紅色板子用
//LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//LED_MH黑色板子用
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

//建立O型
byte OC[8] = {
  B01100,
  B10010,
  B01100,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};

//設定暫存
char buffer [16];
char time [16];

void setup() {
// Start the I2C interface
  Wire.begin();
  //第一次使用要設定以下時間,之後就可以不用設定了
  //Clock.setSecond(00);//Set the second
  //Clock.setMinute(25);//Set the minute
  //Clock.setHour(16); //Set the hour
  //Clock.setDoW(4); //Set the day of the week
  //Clock.setDate(23); //Set the date of the month
  //Clock.setMonth(8); //Set the month of the year
  //Clock.setYear(17); //Set the year (Last two digits of the year)
  // Start the serial interface
  Serial.begin(115200);

  // 初始化 LCD,一行 16 的字元,共 2 行,預設開啟背光
  lcd.begin(16, 2);

  //建立OC型
  lcd.createChar (1, OC);  // load OC to memory 1

  // 閃爍2次
  for(int i = 0; i < 1; i++) {
    lcd.backlight(); // 開啟背光
    delay(50);
    lcd.noBacklight(); // 關閉背光
    delay(50);
  }
  lcd.backlight();

  // 輸出初始化文字
  lcd.setCursor(0, 0); // 設定游標位置在第一行行首
  lcd.print("DCJH-Maker");
  delay(500);
  lcd.setCursor(0, 1); // 設定游標位置在第二行行首
  lcd.print("Hello,MAKER!");
  delay(1000);
  lcd.clear();
}

void loop() {
  int second,minute,hour,date,month,year,temperature;
  second=Clock.getSecond();
  minute=Clock.getMinute();
  hour=Clock.getHour(h12, PM);
  date=Clock.getDate();
  month=Clock.getMonth(Century);
  year=Clock.getYear();

  temperature=Clock.getTemperature();

  sprintf(time,"20%02u-%02u-%02u",year,month,date); //設定印出01,02,而非1,2
  sprintf(buffer,"%02u:%02u:%02u",hour,minute,second); //設定印出01,02,而非1,2

  Serial.print(time);
  Serial.print(' ');
  Serial.print(buffer);
  Serial.print('\n');
  Serial.print("Temperature=");
  Serial.print(temperature);
  Serial.print('\n');

  lcd.setCursor(0, 0); // 設定游標位置在第一行行首
  lcd.print(time);
  lcd.setCursor(12, 0);
  lcd.print(temperature);
  lcd.print(char(1));
  lcd.print("C");
  lcd.setCursor(0, 1); // 設定游標位置在第二行行首
  lcd.print(buffer);

  delay(1000);
}