剛剛參加活動的時候,看到活動的標題“物聯(lián)網(wǎng)低功耗藍牙控制器”,以為是某一款藍牙的IC在做活動。原諒我語文一般,忽略了定語的作用,這里的重點是控制器,并不是藍牙。藍牙功能并不需要在咱們是編程,只要使用串口發(fā)送AT指令就能進行控制。后面的使用主要還是使用Arduino IDE對ATMEGA328P處理器(單片機)進行操作。 1、開箱硬件 現(xiàn)在簡單來開箱看看開發(fā)包的硬件:開發(fā)包里面包含一塊開發(fā)板和4片插針。 插針的質(zhì)量是真的好,以前使用的一般插針是偏扁形的,但是這里附帶的插針仔細一看是成四方柱形,嗨,借用這么多形容詞也沒說清楚,簡單一句就是:插針夠粗,夠直。后面在自己的設計中可以采用這種質(zhì)感的插針。
板子的工藝也是比較好的那種,拿在手里很厚實。因為也沒有仔細辨識過軍工和醫(yī)療板子的品質(zhì),但是就這個板子來看,和普通消費類的0.8的板子不一樣。這都是個人感覺,可能不準,但是任咱們誰拿到手里都不會嫌棄的,這點還是能夠肯定。另外一點就是,打開靜電密封袋的時候沒有刺鼻的氣味。 板子的正面很清晰,一個基于Dialog的藍牙模塊上有很清晰的 DFROBOT 標志,再一個就是ATMEGA328P 單片機了。這點我有點疑惑,上面沒有串口轉(zhuǎn)USB的芯片,沒有CH340也沒有PLxxx。但是根據(jù)手冊可以直接接到PC,通過串口監(jiān)控日志。這點暫時擱置,后面弄清楚了再分享給大家。
板子的背面也就是幾個LOGO,沒有其他的IC。通過上面的絲印,我們能夠知道這個上面的雙PIN插座是用來接電池的。送的插針剛好能夠穿過所有的過孔,但是暫時還沒搭建開發(fā)環(huán)境,就不焊接了??吹竭@個藍牙模塊,讓我想到了以前接觸的一個模塊,安信可做的樂鑫ESP8266的模塊。
2、開發(fā)套件的參數(shù)以及操作 1、從開發(fā)套件的示意圖框圖能夠知道=== 數(shù)字IO口:14
- 模擬IO輸入:6 - SPI接口:1 - I2C接口:1 - UART接口:1 - LED_BUILTIN:D13 但是有個硬件框圖的這些資料,還不能進行設計。咱們總的需要知道這個板子怎么燒寫程序吧,畢竟也是第一次嘗試,還是要循序漸進。以前接觸過寫字機的Arduino,但是也是直接使用的官方的固件,沒有深入去了解過?,F(xiàn)在這塊板子可以試試按部就班的學習一下Arduino下的編程,也是一個不錯的機會。下面來簡單了解一下Arduino下的編程。 將硬件插上PC后,讀取開發(fā)板的信息,可能和文檔有點區(qū)別。我的顯示的是:Genuino Uno。沒關系接著在開發(fā)板管理器下選擇Arduino Pro or Pro Mini 。
具體的操作也可以參考如下步驟:
然后根據(jù)相關的頁面的地址找到一段example程序,復制過來,在項目--》驗證/編譯操作之后,顯示沒有問題,然后進行下載驗證一下。
#include <avr/sleep.h> void wakeup(){ sleep_disable(); delay(2000); } void lowpower(){ ADCSRA &= ~(1<<ADEN);/*關掉ADC*/ TWCR &= ~(1<<TWEN);/*關掉TWI*/ delay(10); set_sleep_mode(SLEEP_MODE_PWR_DOWN);/*設置睡眠模式為掉電模式*/ sleep_enable();/*啟用睡眠模式*/ MCUCR |= (1<<BODS|1<<BODSE); MCUCR = MCUCR & (~(1<<BODSE)) | (1<<BODS); sleep_cpu();/*進入睡眠模式*/ } void setup() { attachInterrupt(0, wakeup, CHANGE); /*設置觸發(fā)D2口的中斷方式為電平變化,回調(diào)函數(shù)為wakeup(),即執(zhí)行喚醒328p芯片的功能*/ lowpower(); } void loop() { lowpower(); delay(2000); }
得到的結果:項目使用了 946 字節(jié),占用了 (3%) 程序存儲空間。最大為 30720 字節(jié)。板子上的現(xiàn)象是CHG這個LED在閃爍,頻率大概是1秒1次。也就是說,單片機這個時候啥也不干。
- CHG:電池充電指示燈,在沒有接鋰電池時,CHG閃爍;充電狀態(tài)下,CHG燈常亮;充電完畢,CHG常滅
2、查看了模塊的示意圖以及分析了上面的程序,這里的AT指令是通過USB口進行控制,也就是說可能UART并不能配置這個藍牙模塊??吹竭@里,那就有個問題:模塊的參數(shù)會保存嗎,還是每次開機都要通過串口進行配置?這個問題也擱置,后面熟悉套件自然就能夠得到解答。
但是不管怎樣,根據(jù)這里的信息,點亮OLED12864應該是沒有問題的,下期有機會了再和大家探討怎樣點亮這OLED12864。
最后的話: 后會有期,江湖再見。
|