從零開始設計你的智能小車
定 價:¥59
中 教 價:¥47.20 (8.00折)
庫 存 數: 1
叢 書 名:面向新工科的電工電子信息基礎課程系列教材
《從零開始設計你的智能小車》從實戰出發,以STM32F103VET6單片機為對象,以C語言為開發語言,詳細講解如何在CMSIS固件庫基礎上完成嵌入式應用系統的開發。通過本書的學習,讀者能夠初步了解嵌入式系統設計中的硬件設計和軟件設計,掌握硬件和軟件調試技巧,具備設計、規劃和實現一個簡單嵌入式應用系統的能力。 全書以智能小車設計作為主線,內容分為基礎篇、提高篇和實踐篇三個層次。基礎篇介紹嵌入式開發的基本常識、系統架構等。提高篇以小車功能需求為目標來組織各章節內容,每一章實現智能小車的一個功能。實踐篇從應用系統設計規劃的角度出發,通過兩個不同的智能小車系統設計實例,從功能設計規劃開始,經過硬件需求分析與選型、硬件設計與供電設計,到軟件設計、系統測試,詳細講解從設計規劃到開發實現的完整過程。側重分析設計思路、設計方法,以及項目的組織架構,培養作為系統開發工程師而應該具備的全局觀和從系統層面分析、分解系統功能的能力。 本書可作為高等院校自動化、電氣工程等相關專業的教材,也可作為嵌入式開發愛好者的入門書籍。
(1) 體現卓越工程師教育培養計劃的理念,注重培養學生解決復雜工程問題的能力,將嵌入式系統開發能力的培養常態化、課程化。(2) 選用Coretex-M3內核的STM32F103VET6單片機,深入分析CMSIS固件庫,詳細講解基于固件庫的嵌入式系統開發。(3) 專門講解C語言在嵌入式系統開發中的獨到之處,以及固件庫C語言程序的特性。(4) 內容組織由淺入深,基礎篇、提高篇和實踐篇可適應不同層次學習者的需求。(5) 最小系統板 硬件模塊方式搭建硬件平臺,設計靈活,可拓展性強。(6) 從實戰出發,按需學習。針對具體的功能需求,先學習單片機片上硬件模塊的功能、相關寄存器和庫函數,再完成設計實現功能。(7) 針對各章內容,配有豐富的設計實例,分析程序架構,講解調試方法。(8) 提供完整的項目開發設計實例,分解功能需求,分析硬件設計,講解軟件設計,講述完整的項目開發全過程。(9) 配套大量教學視頻,從工具的使用、硬件設計,到分析代碼、調試問題,提供身臨其境的沉浸式教學體驗,可掃描書中二維碼觀看。(10) 新形態教材,配套資源豐富,包括教學大綱、PPT課件、教學視頻、開發實例、開發軟件、芯片手冊等,可掃描前言下方二維碼下載。
2014年,教育學部推動卓越工程師教育培養計劃,重慶大學自動化學院建立了卓越計劃實驗班。為了適應卓越計劃加強培養學生工程素養的要求,2017年,我為實驗班開設了全新的嵌入式技術與應用課程。課程注重實踐,引導學生建立工程師的思維方式,培養設計、規劃、開發嵌入式應用系統的能力。課程選擇主流的32位ARM CortexM3內核STM32F103VET6單片機為對象,以C語言為開發語言,詳細講解如何在CMSIS固件庫基礎上完成嵌入式應用系統的開發。通過幾屆的教學實踐,課程取得了比較滿意的效果,學生們認為課程培養了他們的動手能力,使他們初步掌握了嵌入式開發技術,很多同學將課程所學的知識應用在競賽和SRTP、國創項目,取得了較好的成績。以課程內容為基礎,結合教學中發現的問題以及學生實踐中的反饋,形成了本書的主體內容。本書以智能小車設計作為主線,分為基礎篇、提高篇和實踐篇三個層次。基礎篇介紹嵌入式系統的基本概念、單片機系統架構、CMSIS庫基本結構等,重點講解嵌入式系統開發的基礎知識、常用的片上硬件模塊,包括GPIO模塊、基本定時器以及嵌套向量中斷控制器NVIC等。提高篇以小車功能需求為主線,每章實現小車的一個功能。內容安排由淺入深,按需學習,即針對具體的功能需求,選擇合適的擴展硬件模塊。為了控制拓展的硬件模塊而學習片上硬件的相關功能,了解與該功能相關的寄存器和接口函數,掌握基于庫函數的嵌入式開發技術。每章都有設計實例,詳細分析實例項目的硬件設計和軟件設計。在開發實例的講解上,突出單片機參考手冊數據手冊的作用。從項目開發的角度,分析項目文件的組織結構,接口函數的設計。實踐篇從應用系統設計規劃的角度出發,通過兩個不同的智能小車設計,從功能設計規劃開始,到硬件需求分析與選型、硬件設計與供電設計、軟件設計與測試,詳細講解從設計規劃到開發實現的完整過程。重點分析設計思路、設計方法,以及項目的組織架構,培養作為系統開發工程師應該具備的全局觀和從系統層面分析、分解系統功能的能力。本書面向對嵌入式系統開發有興趣的讀者,只要有C語言的編程經驗即可,無需更多的軟硬件開發經驗。本書以單片機最小系統板 相關硬件小模塊的方式搭建硬件平臺,而不是直接購買一塊昂貴的開發板,書中用到的所有硬件模塊都很容易在網絡平臺上購買到,并且有很多可互相替換的硬件模塊可供選擇。新手做硬件設計難免會出錯,在教學過程中,每一屆都有學生因失誤而燒毀硬件,最小系統板、8段LED、L298N等都損壞過,甚至小車都撞壞過,這很正常。學習游泳怎能不嗆水,但是如果損壞的硬件價格昂貴,這就很痛了。集成了所有外擴硬件的開發板成本太高,一旦損壞就會給學習者帶來高昂的成本損失,也會對其造成很大的心理壓力,使其在學習和使用的過程中畏首畏尾。本書選擇最小系統板 硬件模塊的方式,每一個硬件模塊的價格都不高,減輕學習者的經濟壓力和心理負擔,使其更能勇于嘗試。這種方式能鍛煉學習者動手做硬件設計的能力,硬件設計對嵌入式系統設計來說是非常重要的部分。本書的配套資料中給出了開發軟件、單片機手冊、芯片數據手冊、硬件模塊資料等,還有教學大綱、教學課件、講解視頻、參考例程等,尤其是每個參考例程都配有視頻講解,說明所需要的硬件如何連接,分析程序結構,演示實驗現象。學習了相關章節內容后,按照視頻講解,逐步操作,就能復現實驗現象。在吃透參考例程的基礎上,邊學習邊實踐,最終一定能夠設計并實現自己的智能小車,這時就能真正體會到開發嵌入式系統的樂趣。胡青2022年2月于重慶大學
教學大綱 教學課件
參考例程
開發軟件 單片機手冊
硬件模塊資料
胡青,工學博士,現為重慶大學自動化學院副教授。作為主研人員,參與重慶市精品課程計算機硬件技術基礎系列課程的建設。參與多項市級、校級教改項目,獲得重慶市高等教育教學成果三等獎一項。在《計算機教育》《實驗室研究與探索》等期刊上發表教改文章10余篇。參編教材4部,其中《單片機原理及應用》為普通高等教育十一五國家級規劃教材。在嵌入式開發方面積累了豐富的工程經驗以及教學經驗。
第1章嵌入式系統概述
1.1單片機概述
1.1.1單片機的定義
1.1.2單片機與PC的對比
1.2嵌入式系統
1.3ARM是什么
1.3.1ARM公司簡介
1.3.2ARM架構、ARM內核與ARM單片機
1.3.3ARM CortexM3內核概述
第2章STM32F103單片機概述
2.1單片機的手冊
2.2STM32F103單片機體系結構概述
2.2.1ARM CortexM3內核
2.2.2STM32F103單片機系統架構
2.3什么是CMSIS
2.4STM32固件庫
基礎篇
第3章嵌入式程序設計中的C語言
3.1整型
3.1.1整型的位寬
3.1.2訪問硬件模塊的寄存器
3.2volatile關鍵字
3.2.1C語言編譯器的優化功能
3.2.2用volatile關鍵字避免優化
3.3結構體數據類型
3.3.1struct關鍵字
3.3.2訪問單片機片上外設寄存器
3.4枚舉數據類型
3.5static關鍵字
3.5.1靜態全局變量
3.5.2靜態局部變量
3.5.3靜態函數
3.6宏定義
3.7條件編譯與頭文件
3.7.1條件編譯指令
3.7.2頭文件
3.8變量在哪里
3.8.1堆、棧和靜態區
3.8.2單片機中變量的存儲空間分配
第4章第一個STM32 項目
4.1開發環境與所需硬件
4.1.1搭建開發環境
4.1.2所需硬件
4.1.3所需工具
4.2創建第一個項目
4.3下載與調試程序
4.3.1安裝仿真器驅動
4.3.2在Keil軟件中配置仿真器
4.3.3編譯下載程序
4.3.4Debug調試程序
第5章深入了解項目模板
5.1啟動文件的作用
5.1.1定義棧和堆
5.1.2定義中斷向量表
5.1.3定義復位中斷子程序
5.2單片機的時鐘初始化
5.3stm32f10x.h頭文件的作用
5.4項目中的文件管理
5.4.1CMSIS固件庫文件
5.4.2項目中的系統文件
5.4.3項目中的用戶文件
第6章按鍵與小燈的控制GPIO模塊
6.1GPIO的輸入/輸出模式
6.1.1小燈與GPIO輸出模式
6.1.2按鍵與GPIO輸入模式
6.2GPIO的編程操作
6.2.1GPIO寄存器
6.2.2GPIO庫函數
6.2.3GPIO的按位操作位帶別名區
6.3應用實例8段LED顯示控制
6.3.1一位8段LED顯示控制
6.3.2多位8段LED顯示控制
6.4IO引腳的電氣特性
6.4.1TTL電平
6.4.2CMOS電平
6.4.3IO引腳的電氣特性
6.4.4IO引腳控制外設
6.5IO引腳的復用功能AFIO
6.5.1IO引腳的復用功能
6.5.2AFIO重映射功能的編程操作
6.5.3調試端口的重映射功能
第7章秒表的實現基本定時器
7.1定時器原理概述
7.2基本定時器的工作原理
7.2.1基本定時器的結構
7.2.2基本定時器的時鐘源
7.2.3基本定時器的計數模式
7.2.4定時時間的計算
7.2.5ARR寄存器的預裝載功能
7.3基本定時器的編程操作
7.3.1TIM6、TIM7的相關寄存器
7.3.2基本定時器的相關庫函數
7.4秒表的設計與實現
7.4.1秒表功能分析
7.4.2硬件選型
7.4.3硬件設計
7.4.4軟件設計
第8章中斷及中斷管理器NVIC
8.1中斷基本概念
8.1.1中斷的定義
8.1.2中斷向量表
8.1.3中斷優先級與中斷嵌套
8.2STM32單片機的中斷管理
8.2.1中斷源與中斷向量表
8.2.2內核中開放/禁止中斷
8.2.3中斷控制器NVIC
8.3中斷處理過程及相關接口庫
8.3.1片上硬件中斷處理過程
8.3.2中斷處理庫函數總結
8.4應用實例中斷方式實現秒表計時
8.4.1定時器的更新中斷
8.4.2中斷機制實現計時
第9章按鍵觸發中斷EXTI模塊
9.1外部中斷/事件模塊EXTI
9.1.1EXTI功能
9.1.2EXTI寄存器
9.1.3EXTI的相關庫函數
9.1.4EXTI初始化步驟及中斷響應過程
9.2設計實例中斷方式處理秒表按鍵
9.2.1分段計時功能
9.2.2硬件設計
9.2.3軟件設計
提高篇
第10章讓小車跑起來PWM調速
10.1通用定時器的基本定時功能
10.1.1通用定時器概述
10.1.2通用定時器的時鐘源
10.1.3通用定時器的計數模式
10.1.4通用定時器的從模式
10.1.5相關寄存器
10.1.6相關庫函數
10.1.7設計實例檢測信號頻率
10.2通用定時器的PWM輸出模式
10.2.1PWM信號
10.2.2捕獲比較通道
10.2.3PWM輸出模式
10.2.4相關寄存器
10.2.5相關庫函數
10.3電動機驅動芯片L298N
10.3.1直流電動機驅動模塊L298N
10.3.2單片機控制L298N
10.4應用實例小車設計
10.4.1小車的硬件設計
10.4.2小車的軟件設計
實踐篇
第11章避障小車超聲波測距
11.1超聲波測距原理
11.1.1基本原理
11.1.2HCSRF05測距模塊
11.1.3單片機控制超聲波測距模塊
11.2通用定時器的輸入捕獲功能
11.2.1輸入捕獲的基本原理
11.2.2相關寄存器
11.2.3相關庫函數
11.2.4應用實例捕獲方式實現測距
11.3嘀嗒定時器實現定時測距
11.3.1嘀嗒定時器
11.3.2嘀嗒定時器的寄存器
11.3.3相關庫函數
11.3.4嘀嗒定時器實現定時測距
第12章遙控小車藍牙遙控
12.1藍牙技術
12.1.1發展歷史
12.1.2基本特性
12.2HC05藍牙模塊
12.2.1功能概述
12.2.2工作原理
12.2.3AT命令
12.2.4PC串口配置藍牙模塊
12.3UART串口通信
12.3.1串口通信基本概念
12.3.2UART模塊概述
12.3.3相關寄存器
12.3.4相關庫函數
12.4應用實例
12.4.1單片機與PC之間的串口通信
12.4.2單片機與手機之間的藍牙通信
第13章智能小車設計方案分析
13.1避障小車設計方案
13.1.1小車功能規劃
13.1.2硬件選型
13.1.3硬件設計分析
13.1.4軟件設計分析
13.2遙控小車設計方案
13.2.1小車功能規劃
13.2.2硬件需求分析
13.2.3硬件設計分析
13.2.4軟件設計分析
習題
參考文獻