第1講機器人大腦:從bs2微控制器到c51單片機 (1)單片機和微控制器 (1)學習單片機的意義 (2)c51系列單片機 (2)機器人與c51單片機 (4)任務1 獲得軟件 (4)任務2 安裝軟件 (5)安裝keil ?vision2 (5)任務3 硬件連接 (5)串口的連接 (6)usbasp下載器的連接 (6)電源的連接 (6)給教學板和單片機進行通電檢查 (6)任務4 **個程序 (7)創建與編輯你的**個程序 (7)例程:hellorobot.c (9)程序調試 (11)下載可執行文件到單片機 (12)用串口調試軟件查看單片機輸出信息 (13)hellorobot.c是如何工作的 (14)printf函數 (14)hellorobotyourturn.c是如何工作的 (16)任務5 做完實驗關斷電源 (19)第2講c51接口與伺服電機控制 (20)c51單片機的輸入/輸出接口 (20)任務1 單燈閃爍控制 (21)led電路元件 (21)led電路搭建 (21)例程:highlowled.c (22)highlowled.c是如何工作的 (22)任務2 機器人伺服電機控制信號 (26)例程:bothservoclockwise.c (28)任務3 計數并控制循環次數 (29)例程:controlservoruntimes.c (31)例程:bothservosthreeseconds.c (32)任務4 用計算機來控制機器人的運動 (33)例程:controlservowithcomputer.c (34)controlservowithcomputer.c是如何工作的 (35)第3講c語言函數與機器人巡航控制 (37)任務1 基本巡航動作 (37)例程:robotforwardthreeseconds.c (38)robotforwardthreeseconds.c是如何工作的 (38)向后走,原地轉彎和繞軸旋轉 (39)例程:forwardleftrightbackward.c (40)任務2 勻加速/減速運動 (43)編寫勻加速運動程序 (43)例程:startandstopwithramping.c (44)任務3 用函數調用簡化運動程序 (46)例程:movementswithfunctions.c (49)例程:movementswithonefuntion.c (51)任務4 高級主題——用數組建立復雜運動 (52)字符型數據 (53)數組 (54)例程:navigationwithswitch.c (56)navigationwithswitch.c是如何工作的 (58)例程:navigationwithvalues.c (59)第4講c51接口與觸覺導航 (62)觸覺導航與單片機輸入接口 (62)任務1 安裝并測試機器人“胡須” (63)安裝“胡須” (63)測試“胡須” (64)例程:testwhiskers.c (64)位操作符 (65)if語句 (66)?操作符 (66)任務2 通過“胡須”導航 (69)編程使機器人基于“胡須”導航 (69)關系與邏輯運算符 (70)例程:roamingwithwhiskers.c (71)“胡須”導航機器人怎樣行走 (74)任務3 機器人進入死區后的人工智能決策 (75)編程逃離墻角死區 (75)例程:escapingcorners.c (76)escapingcorners.c是如何工作的 (79)第5講c51接口與紅外線導航 (81)使用紅外線發射和接收器件探測道路 (81)紅外前燈 (81)任務1 搭建并測試ir發射和探測器對 (82)元件清單 (82)搭建紅外線前燈 (82)這里為何要使用三極管9013 (84)測試紅外發射探測器 (84)例程:testleftirpair.c (85)排錯 (86)函數延時的不精確性 (87)任務2 探測和避開障礙物 (87)改變“胡須”程序,使其適用于ir檢測和躲避 (88)例程:roamingwithir.c (89)任務3 高性能的ir導航 (92)在每個脈沖之間采樣以避免碰撞 (93)例程:fastirroaming.c (93)fastirroaming.c是如何工作的 (95)任務4 俯視的探測器 (97)推薦材料 (97)用絕緣帶模擬桌子的邊沿 (97)邊沿探測編程 (98)例程:avoidtableedge.c (99)avoidtableedge.c是如何工作的 (101)第6講c51定時器與機器人的距離檢測 (104)用同樣的ir led/探測電路檢測距離 (104)推薦工具和原料 (104)任務1 定時/計數器的運用 (104)定時/計數器的控制 (105)工作模式 (106)定時/計數器初值的計算 (106)例程:timeapplication.c (106)timeapplication.c是如何工作的 (107)中斷 (108)中斷優先級 (109)任務2 測試掃描頻率 (110)紅外線探測器頻率探測 (110)用頻率掃描進行編程做距離探測 (110)例程:testleftfrequencysweep.c (111)testleftfrequencysweep.c是如何工作的 (112)例程:displaybothdistances.c (114)任務3 尾隨小車 (114)對尾隨車編程 (116)例程:followingrobot.c (117)followingrobot.c是如何工作的 (120)任務4 跟蹤條紋帶 (121)搭建和測試路線 (121)需要的材料 (121)測試條紋帶 (122)絕緣帶路徑排錯 (123)編程跟蹤條紋帶 (124)例程:stripefollowingrobot.c (124)第7講c51的uart與機器人串口通信 (126)串口控制寄存器scon (127)什么是波特率 (127)波特率的計算 (127)rs232電平與ttl電平轉換 (128)任務1 編寫串口通信程序 (129)例程:uart.h (129)uart.h是如何工作的 (132)存儲器結構 (132)串口工作流程 (133)例程:hellorobot.c——printf("hello,this is a message from your robot\n") (134)例程:controlservowithcomputer.c——scanf("%d",&pulseduration) (134)第8講 c51顯示接口編程與機器人應用 (136)led數碼管的介紹 (136)任務1 數碼管顯示 (136)任務目的 (138)任務要求 (138)元件清單 (138)電路設計 (138)陰極數碼管顯示的源程序 (140)電路實物 (141)lcd顯示器的介紹 (142)任務2 認識lcd顯示器 (142)lcd顯示器與c51單片機的連接 (142)lcd控制器接口說明 (143)任務3 編寫lcd模塊驅動程序 (145)元件清單 (146)線路連接 (146)例程:lcddisplay.c (146)lcddisplay.c是如何工作的 (150)指針 (151)任務4 用lcd顯示機器人運動狀態 (152)c語言的編譯預處理 (152)例程:movewithlcddisplay.c (156)movewithlcddisplay.c是如何工作的 (158)第9講多傳感器智能機器人 (160)任務1 多傳感器信息與c語言結構體的使用和編程 (160)結構體 (160)例程:irroamingwithwithstructlcddisplay.c (164)irroamingwithwithstructlcddisplay.c是如何工作的 (165)任務2 智能機器人的行為控制策略和編程 (169)例程:navigationwithsensors.c (171)navigationwithsensors.c是如何工作的 (173)第10講機器人循線競賽 (175)競賽任務 (175)任務1 qti傳感器及其通信接口 (176)任務2 安裝qti傳感器到機器人前端 (177)任務3 編寫qti傳感器的測試程序 (178)test4qti.c是如何工作的 (180)任務4 設計算法實現機器人無接觸傳感器游中國 (182)robottourchina.c是如何工作的 (186)執行調試 (187)任務5 修改算法實現機器人游中國 (188)任務6 用數組實現機器人游中國比賽 (193)任務7 改進運動執行程序提升執行的可靠性 (199)函數 (203)附錄a c語言概要歸納 (208)c語言概述 (208)數據類型、運算符與表達式 (208)分支結構程序 (210)循環控制 (212)數組 (214)函數 (215)預處理命令 (215)指針 (217)結構體 (218)位運算 (219)附錄b 微控制器原理歸納 (221)引言 (221)一些概念 (221)中央處理器(cpu) (222)ram和rom (223)地址總線、數據總線和控制總線 (223)微處理器和微控制器 (224)附錄c 無焊錫面包板 (225)附錄d lcd模塊