今天要跟大家來聊聊開發板硬體學習。
在前面我們推薦您可以自學 Python 程式設計,包含哈佛大學的免費教學資源 CS50P ,一開始的第一個程式:
print('Hello World!')
有人開玩笑的說,這已經幾乎是所有學習程式語言的第一個程式 --- 印出 “Hello World!” 訊息。
學程式語言是軟體學習,而各種微電腦硬體學習的第一個例子通常是:如何點亮一顆LED燈?
然而接觸到硬體,難免需要一些基本常識,這些知識,其實我們都非常容易在 Youtube 找到教材,例如:
可能很多人看到這些,因此就打了退堂鼓!我們既然目標是 DIY 一台變頻電風扇,除了不造像馬達之類的零件外,總是要設計一點控制風扇的電子電路,來連接到開發板:
還好,我們不是明天就要完成,時間還很長,還有20天,大家一面看我提供的學習路徑與連接,一面加緊練習(挑簡單的學)相信一定可以學起來的。
若您覺得很難,那是長久以來,學校或者是父母親給了您錯誤的學習方向與目標,我們大約只用到國中就學到的物理電學知識即可,但是當年我們在學校學習的時候,總是有一大堆的定理、公式、與繁瑣的計算,老師、學校、社會總是要分辨出哪個同學的能力強,在社會資源有限的環境下,只能篩選“貌似優秀”的學生享用這些資源,例如進入優秀的國立高中、大學。然而老師並沒有能力或者被大衆信任以自由意志挑選出學生的結果,因此只能看考試成績,尤其是紙筆測驗考試成績。因此莫名其妙給了很多以刷題爲主的學習材料,那些材料枯燥乏味,過多的計算,很多人最終像作家三毛當年學習數學一樣,都是用背的!
我在這裏必須說明一件事,我們在國中學習到的數學、物理、化學等等,不是用來應付考試的,而是用在您將來後續生命的日常生活中。您沒學好,大都不是您的問題,是“考選”制度使然。可惜的是,大家在痛苦的考試過程當中,爲了成績囫圇吞棗的死記爛背,考完試後,就全部還給老師、還給學校了!其實,我們不必記那麼多,您學完後,例如,頂多,您向空中丟一顆球,您知道或理解爲何物體會往下掉即可,至於公式等等,又不是考試,我們有 google, 甚至有 chatGPT 可以問!相信如此,您應該就不會有那麼大的“學習抗拒”了吧 !
我自己曾經在大專院校從事教學工作超過6年,也跟世界頂尖聰明的人工作許多年,我發現優秀的人通常不是老師(或領導)教出來的,他們的能力本來就很強,好的老師會不斷的給他們學習方向或材料。所以,老師準備的備課教案,應該是全體 80% 的學生都看得懂的內容,學生甚至自學都可以,這其中佔全體 20% 是天才的學生,他們甚至很快就學好了,就像前面所說的,老師要再給他們更多的材料或方向“接着自學”,否則他們時間太多,反而會因爲沒事幹而在課堂上搗亂。最終,老師在課堂上花最多的時間在那遙遙落後的 20% 學生身上,讓他們能夠學會像點亮一顆 LED 燈這樣簡單的學習內容!
以上,其實是我對於“翻轉教育”的理解,這可以培養學生的自學能力,尤其是在 AI 與 大數據的時代裡,老師可以教得了所有的東西嗎?若是老師有教過才會,沒教過就不會,這樣的人們,將來大都會被國際化競爭下所淘汰!
我提到的一些教育與學習的概念,有興趣的朋友可以看一下 MIT 教授寫的書:學習的本質,有能力的人也可以直接讀英文板
實驗之前,請您先看這個影片:How to Calculate the Correct Resistor for LEDs Light Emitting Diodes
我們對一顆 LED 供電,慢慢的增加電壓,超過 LED 的順向電壓,這時 LED 會慢慢變亮,注意電壓增加不要太快,否則會把 LED 燒毀了 ,平常非照明用的 LED,大約可以承受 20 mA 的電流。
設定 GPIO 1 爲輸出
>>> from machine import Pin
>>> P1 = Pin(1, Pin.OUT)
點亮 LED
>>> P1.on()
關閉 LED
P1.off()
查看 LED (GPIO)目前的狀態
status = P1.value()
print('status =', status)
status = 0
P1.on()
status = P1.value()
print('status =', status)
status = 1
結論:當GPIO設定爲輸出,輸出爲1(on)爲高電位,可以推動 LED; 當輸出爲 0 (off)爲低電位,關閉 LED燈。
本日的內容有點雜亂,好在文章後續可以再編輯,我之後會再修改一下並完善 硬體學習 的連接