ROS機器人

 

Linux & C語言硬體控制

課程簡介 學習菜單 課程預覽 課程諮詢 加入會員 合作專區

 

el newyear 728x90
為什麼要學?

Linux是一套作業系統,且Linux的源碼和架構都是開放的。發展迄今,整個設計體系已經相當穩定,並化繁為簡,開發彈性大,因此從網站到物聯網系統開發,Linux無所不在,如果你自認自己是科技知識份子,那麼選擇Linux應該是理所當然。 而C語言是計算機程式的共同基礎,具備熟稔的C語言能力,在硬/韌體的相關開發,才會有更好的效率。

若您有志朝嵌入式系統軟底層MCU韌體IC驅動程式開發物聯網應用開發等以Linux、C語言為主軸的專業來發展,那麼本課程將是幫助您快速學會工程師必需具備的Linux與C語言能力,並教您運用C語言來進行Raspberry Pi3的基本操作,並搭配艾鍗獨家設計I/O子板,擴充原Pi3板的功能,並對其中所有軟硬體控制原理進行透徹解說,讓你可以在實作中驗證自己的學習成效,讓你可以成為創客 (Maker) 來實作各種有趣點子,也可以為踏入進階工程領域(像是嵌入式Linux開發MCU韌體開發等)前建立紮實基礎。

學習目標

ü學會Linux入門操作(系統安裝、遠端連線、系統結構、常用指令…) 

ü學會工程師必懂的Linux技術(編輯器vi使用、檔案系統與系統結構、硬碟分割與掛載、核心編譯…)

ü學會工程師必懂的服務器安裝(APACHE、VSFTP、NFS、Samba、MySQL、LAMP…)

ü清楚掌握C語言的基本及進階觀念,尤其是針對pointer、Struct與位元處理等主題

ü認識前處理器、指標、特殊宣告等嵌入式系統常用的技巧

ü了解程式設計架構的可維護性、模組化

ü學會何利用C程式在Raspberry Pi 讀取感測器與與控制I/O裝置

ü學會基礎I/O控制:GPIO (LED、Push Button、Switch)、Relay 控制110V家電控制

ü學會感測器介面技術 - 數位(I2C, SPI)、類比 (ADC)

ü學會PWM控制-伺服馬達控制

 

down 728x90

 

課程講師介紹
teache_joseph

Joseph 學經歷 

▪ 台灣大學電機工程系博士研究 ▪ 網通科技公司/資深工程師

▪ 嵌入式Linux系統 ▪ ARM Boot Loader ▪ 資料結構及演算法 ▪ M2M通訊協定

▪ MCU 韌體設計 ▪ Linux 驅動程式 ▪ Linux系統程式 ▪ 無線通訊

 
teacher_hank

Hank 學經歷 

▪ MIS資訊部經理

▪ Linux 系統管理 ▪ Embedded linux 開發 ▪ Linux網路伺服器管理

▪ Linux防火牆/iptables 管理 ▪ PHP網頁程式設計



embeddedlinux

 

學習菜單

• 課程總時數 : 29小時
• 觀看天數:60天
• 課程所附教材 : 精編講義、範例程式碼

※點選課程可展開看更多

➤Linux職能精修

    • 什麼是Linux

    • Linux系統安裝

      • Hyper-V

      • VMwarePlayer

      • Virtualbox

    • 如何連線遠端Linux

      • RemoteConnectLinux - 讓你清楚的明白,什麼是遠端連線

    • 檔案系統與系統結構

      • 系統結構

      • 檔案系統 (ext2、ext3、ext4、xfs)

      • 檔案類型與權限 (chown、chmod) 單元5 套件安裝與常用指令

    • 套件安裝與常用指令

      • 關閉IPV6 & 變更Source.lst

      • 如何安裝需要的套件 (apt-get、dpkg)

      • 常用指令

      • 編輯器的使用 vi

    • 必懂的Linux操作

      • 核心升級 (apt-get、dirt-upgrade)

      • 網路設定 (ifconfig、route)

      • 時區設定及校時 (ntpdate)

      • 硬碟分割與掛載 (fdisk、mkfs、mkfs.ext2、 mkfs.ext3、mount)

      • 使用者帳號管理 (useradd、adduser、deluser、userdel)

      • 檔案壓縮與備份 tar

    • Ubuntu核心編譯

    • APACHE服務的安裝與設定

    • 務器安裝 Vsftpd + windows應用

    • NFS服務的安裝與設定

    • SAMBA 服務的安裝與設定 + windows應用

    • PHP

    • 服務器安裝 Mysql

    • LAMP整合安裝 (tasksel install lamp-server)

➤精通C語言

    • 程式語言導論

      • C語言開發流程&規範

      • 整合式開發環境

    • C程式介紹

      • 程式架構

      • 基本輸出與輸入函數

    • 運算式

    • 流程控制

      • 資料流程與架構

    • 函式與巨集

      • 函數定義

      • 遞迴呼叫

      • 巨集

    • 陣列與指標

      • 陣列

      • 多維陣列與指標

      • 泡沫排序法

      • 使用C語言開發驅動程式

    • 字串處理

    • 變數範圍

      • 全域變數&區域變數

    • 檔案管理

      • C語言檔案處理

    •  NEW data Type

      • typedef型態定義

➤C語言控制Raspberry Pi I/O

    • Raspberry Pi 使用

      • Raspberry Pi 3 簡介

      • Raspberry Pi 使用 (包含Linux系統檔案系統與常用指令說明)

    • 數位介面

      • 感測器介面與Pi子卡介紹

      • 數位感測器讀取

      • GPIO

      • 使用BCM2835 Peripheral Library

      • LED, Button, PIR, Relay

      • I2C 工作原理

      • I2C OLED (SSD1306Z)

      • I2C G-Sensor (LIS3DH)

      • SPI 工作原理

      • PWM (SG90伺服馬達控制)

    • 類比界面

 

Raspberry Pi I/O Shield 開發板介紹

【用心教學 值得您的肯定,專業技術 值得您的信賴】

有實際硬體,學驅動程式才真正有感!為了傳達正確的嵌入式Linux學習觀念與學習重點,艾鍗獨家設計I/O子板,以擴充原Pi3板的功能,並對其中所有軟硬體控制原理進行透徹解說,使你可以透過主題式Lab,實踐嵌入式Linux核心技術與架構。

ü內建ADC晶片,可讓Raspberry Pi3連接類比感測器。

ü具硬體PWM訊號腳及驅動電路,使Raspberry Pi3可以直接連接DC馬達與伺服馬達。

ü內建PL2303晶片,可直接連接PC的USB當作Debug Console。

ü內建IR紅外線發送器及接收器,讓Raspberry Pi3當作多媒體的應用平台或IR遙控器。

ü可連接OLED顯示狀態資訊。

ü可連接光敏電阻進行光度感測。

ü可連接2.4GHz無線網路模組進行無線通訊。

ü內建G-Sensor可感測Raspberry Pi3在X, Y, Z軸方向的移動狀態。

 

實作結果
 

 DEMO: Raspberry Pi 顯示OLED狀態 (使用C語言)

 

 

講義與教學影片預覽
 
Raspberry Pi讀取G-Sensor (STMicro LIS3DH)
 
 
Raspberry Pi 3 I/O 讀取ADC
 
 
 Raspberry Pi 3 (BCM283x 晶片) I/O程式控制說明
 
全新數位學習平台

 

學習本課程的學員對這些課程有興趣
 

課程諮詢

明天過得好不好,取決於你今天怎麼過。加入艾鍗的學習行列,助你成功圓夢。若您希望對本課程有更多了解,歡迎留下您的資料,或撥服務專線(02)2316-7736,艾鍗學院將竭誠為您服務喔!

 

e call

Q&A

※點選問題可展開

Q1.什麼是Linux ? 

  • Linux是一套作業系統。Linux的源碼和架構都是開放的,你可以從中學到很多作業系統原理。Linux的整個哲學體系繼承自UNIX,發展的年頭要比Windows長很多時間,整個設計體系已經相當穩定,並化繁為簡,開發彈性大。 Linux的穩定性很好。在PC上,Linux要比Windows穩定的多。由於Linux與Windows的存儲方式不同,所以Linux可以長時間的持續運轉,也不需要對磁碟進行碎片整理。Linux下的各種工具基本上都是免費的。更方便的,使用package manager下載編譯好的版本。
    Linux永遠提供一個機會,讓你可以深究作業系統與開源碼程式的內部,如果你自認自己是科技知識份子,那麼喜歡選擇Linux應該是理所當然。

Q2.不同的linux版本會影響學習嗎? 

  • 艾鍗課程的教學著重在使用方法與思維,版本的不同不會影響到。只有在未來的中階高階應用,版本才有影響性。

Q3.為什麼課程內容不以Linux桌面系統來教呢?

  • 為什麼課程內容不以Linux桌面系統來教呢? 因為職場上不會用。Linux桌面系統會吃大量的記憶體,影響效能。所以在業界上,用Linux桌面系統的工程師,不是真正的Linux工程師。

Q4. Visual C, Borland C, GNU C 到底差在那裡?

  • 這些都是由廠商或社群團體各自所開發出來的工具(編譯器)而已,每家會強調它們對程式碼編譯最佳化的能力。但...就學習一個程式語言本身,工具不是重點,畢竟這不是強調工具教學。艾鍗的C語言注重的是,C語言特性與debug能力,並能學習建立好的程式架構以產出一個具可維護性、模組化的軟體程式

Q5.上了課就一定會寫程式嗎?

  • 我們教學方法,都是從實際生活中應用拿來作為實際案例撰寫, 你上課跟著做,你將突然發現原來幾百行程式在課堂中就這麼輕鬆完成。當然程式除了理解外,時常練習是一定要的(基本語法也才記得住嘛!) 

Q6.Embedded C 和 C 有何差異?

  • 一樣是在學C語言, 只是課程內容上, 會有一些篇幅在描述 C語言對硬體暫存器讀寫的作法 (其實就是C語言的位元操作), 程式設計優化的問題,如程式code size及 Run time 佔記憶體空間大小的問題, Multi-Byte Ordering , Alignment等問題。而這些都是在一般嵌入式系統或單晶片開發上要特別"注意"的地方,畢竟一般高階應用程式並不會特別注意到這個部份,不過本質上還是C語言,因此程式設計的邏輯與架構才是根本,對那些要注意的地方,課程上老師都會提出來說明。

Q7.須要學資料結構嗎?