對于機器人這個名詞,大家應該都有所了解,我在這里就不講太多。我主要來說說機器人是怎樣工作的,單片機又是什么,有什么作用,如何來學習單片機。
單片機是可以用來編程的芯片,它對于機器人來說就相當于人的大腦。一個機器人,它除了有單片機,還應有傳感器用來接收外界的圖像、聲音、溫度等等信息,然后單片機去讀取傳感器接收的信息,就相當于人的感官。機器人可以采集外界信息,也可以對外界做出動作,例如控制電機等執(zhí)行元件,通過機械結構做出行走或行駛動作,就相當于肌肉帶動骨骼動作;又例如機器人也可以通過蜂鳴器或者喇叭發(fā)出聲音、音樂,像人一樣說話,也可以通過液晶屏顯示文字或者圖像信息。機器人與機器人或者電腦之間還可以進行通信來傳遞信息。以上所有功能都是要依靠機器人的大腦——單片機來實現。
單片機的編程,我個人認為可以分為兩部分,第一部分是對寄存器的操作,第二部分就是對寄存器的操作之外的所有運算、邏輯、算法的編程。
寄存器是什么東西?打個比方,我們常用的手機,我們都設置過它的,比如調節(jié)亮度、音量、打開關閉WiFi和移動數據。單片機的寄存器就是這個功能,我們對單片機寄存器進行操作,就是設置單片機各種各樣的功能和工作模式。寄存器實質上是單片機flash中的地址,flash存儲中最小的單位是位(bit),這個位只有兩種狀態(tài),1或者0,就像WiFi功能打開和關閉這兩個狀態(tài)。寄存器有8位的、16位的、32位的。
我們常用的寄存器有三類,數據寄存器、控制寄存器、狀態(tài)寄存器。數據寄存器是用來存儲數據的,通??梢赃M行寫入和讀取操作;控制寄存器是用來設置單片機的工作模式的,通常只能進行寫入操作;狀態(tài)寄存器是用來存儲單片機狀態(tài)信息的,通常只能進行讀取操作。
關于單片機,還有一個電平的概念要和大家介紹一下。電平有兩種,高電平和低電平。簡單地說(這樣說不準確,但是為了方便初學者容易理解),理想狀態(tài)下,5V供電的單片機,高電平就是5V,低電平就是0V,單片機芯片引腳可以向外輸出高低電平,也可以從外界采集高低電平。
下面我來介紹STM8單片機,這款單片機是意法半導體公司推出的8位單片機,和該公司的STM32單片機不同,后者是32位ARM內核的單片機,前者是自家設計的內核。STM8單片機和16位、32位單片機相比,功能和性能相差很大,但在8位單片機中,性價比、功能、性能還是非常優(yōu)秀的。STM8單片機的命名規(guī)則在這個網站上可以了解。
STM8S系列單片機支持3.3V和5V兩種工作電壓。
我們用STM8S105K4這款芯片來做教學。它有32個引腳,其中25個是IO引腳。STM8S105K4有7路10位模擬輸入通道、8路16位PWM(脈沖)輸出通道、4個定時器、1個UART串口、1個SPI、1個I2C,主頻最高16MHz。STM8單片機A、B、C、D、E端口每個引腳都可以使用外部中斷功能,D7有TLI功能(不可屏蔽的最高優(yōu)先級的硬件中斷)。它有16KB的FLASH用于存儲程序和數據,2KB的RAM,1KB的EEPROM。
STM8S105K4芯片引腳圖。
STM8S105K4核心板V1,板上有芯片、晶振電路、復位電路、下載接口。
STM8S105K4核心板V2。
STM8S105K4單片機學習套件,由STM8S105K4核心板(最小系統(tǒng)板)、開發(fā)板、ST-LINK V2下載器和Nokia5110液晶屏組成。
以后我們還有機會用到STM8S207MB芯片。
DAHUME MAX控制器