fbpx

P 728x90 113

 

Linux & C語言硬體控制

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

★ 數位學習優惠中 ★ 歡迎電洽02-2316-7736,或填表預約專業諮詢服務

為什麼從事軟/硬/韌體開發的人都學了這門課?

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

若您有志朝嵌入式系統軟底層MCU韌體IC驅動程式開發物聯網應用開發等以Linux、C語言為主軸的專業來發展,本課程將幫助您快速學會工程師必備的Linux與C語言能力,並教您運用C語言來進行Raspberry Pi 的基本操作,並搭配艾鍗獨家設計I/O子板,擴充了原Raspberry Pi 板的功能,並對其中所有軟硬體控制原理進行透徹解說,讓你可以在實作中驗證自己的學習成效,讓你可以成為創客 (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天
• 課程所附教材 : 精編講義、範例程式碼

※ 課程單元可依需求選擇,歡迎填表免費預約諮詢

 

Part1-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)

Part2-精通C語言

  • 程式語言導論(點選展開)
    • C語言開發流程&規範
    • 整合式開發環境
  • C程式介紹(點選展開)
    • 程式架構
    • 基本輸出與輸入函數
  • 運算式
  • 流程控制(點選展開)
    • 資料流程與架構
  • 函式巨與集(點選展開)
    • 函數定義
    • 遞迴呼叫
    • 巨集
  • 陣列與指標(點選展開)
    • 陣列
    • 多維陣列與指標
    • 泡沫排序法
    • 使用C語言開發驅動程式
  • 字串處理
  • 變數範圍(點選展開)
    • 全域變數&區域變數
  • 檔案管理(點選展開)
    • C語言檔案處理
  • NEW data Type(點選展開)
    • typedef型態定義

Part3-C語言控制Raspberry Pi I/O

  • Raspberry Pi 使用(點選展開)
    • Raspberry Pi 簡介
    • Raspberry Pi 使用 (包含Linux系統檔案系統與常用指令說明)
  • 數位介面(點選展開)
    • 感測器介面與Pi子卡介紹
    • 數位感測器讀取
    • GPIO
    • 使用BCM2835 Peripheral Library
    • LED, Button, PIR, Relay
    • PWM (SG90伺服馬達控制)
    • I2C 工作原理
    • I2C OLED (SSD1306Z)
    • I2C G-Sensor (LIS3DH)
    • SPI 工作原理
    • UART Interface - PM2.5
    • Modbus over RS485
  • 類比界面

 

Raspberry Pi I/O Shield 開發板介紹

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

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

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

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

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

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

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

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

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

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

 

實作結果
 

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

 

 

講義與教學影片預覽
 

Raspberry Pi讀取G-Sensor (STMicro LIS3DH)

 

Raspberry Pi  I/O 讀取ADC

 

 Raspberry Pi  (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.我需要學資料結構嗎?