時間:2018-08-15 10:52:39來æºï¼šç¶²(wÇŽng)絡(luò)轉(zhuÇŽn)載
æ¥(yè)界èª(rèn)為,物è¯(lián)ç¶²(wÇŽng)(IoT)å°ç·Šæ¹Šåž‹ç„¡é 微控制器æ¿çš„快速增長起到了é‡è¦ä½œç”¨ï¼ŒæŽ§åˆ¶å™¨æ¿å°ˆç‚ºå‚³æ„Ÿå™¨å’Œè‡´å‹•器ç‰å¤šç¨®é‚Šç•Œç¯€(jié)點è¨(shè)備而è¨(shè)計。憑借其無線微控制器ã€å°‘é‡I/Oå’Œæ¥µä½Žèƒ½è€—ï¼Œæ¤æ¤é¡žé–‹ç™¼(fÄ)æ¿å’Œæ¨¡å¡Šå°‡æˆç‚ºçœ¾å¤šå°‡æ•¸(shù)據(jù)饋é€è‡³äº‘åˆ†æžæœå‹™(wù)çš„è¨(shè)備。許多應(yÄ«ng)ç”¨éƒ½è¦æ±‚更多計算資æºã€æ“作員接å£å’Œé€£æŽ¥é¸é …。
ä¸è«–是執(zhÃ)行網(wÇŽng)é—œ(guÄn)功能ã€èšåˆè¨±å¤šå‚³æ„Ÿå™¨çš„æ•¸(shù)據(jù),還是啟動本地控制或多種功能,都需è¦å…·æœ‰æ›´å¤šåŠŸèƒ½å’Œè³‡æºçš„å–®æ¿è¨ˆç®—æ©Ÿã€‚åˆ¶é€ å•†å€‘åœ¨è¨(shè)æ³•æ‰“é€ å¯æ»¿è¶³æ¯ä»¶è¨(shè)備所有ä¸åŒéœ€è¦çš„嵌入å¼å™¨ä»¶ï¼Œä»–們多數(shù)æœƒé¸æ“‡ä¸€ç¨®å¹³è‡ºæ–¹æ³•——使用一塊嵌入å¼ä¸»æ¿å¹¶æŒ‰éœ€æ·»åР外è¨(shè)。å°äºŽä¸å°æ‰¹é‡ï¼Œåœ¨å¸‚å ´ä¸Šå¤§é‡è¶Šä¾†è¶Šæµè¡Œçš„é–‹æºå–®æ¿è¨ˆç®—機(SBC)ä¸é¸æ“‡ä¸€è‡ºçš„優(yÅu)å‹¢æ›´åŠ é¡¯è‘—ã€‚é€™ä¸åƒ…å¯ä»¥çœå޻大é‡NREæˆæœ¬ã€ç„¡ç·šç›£(jiÄn)管èª(rèn)è‰å’Œè»Ÿä»¶å•Ÿå‹•,還讓開發(fÄ)團(tuán)隊å¯ä»¥åœ¨è¨(shè)計的應(yÄ«ng)ç”¨ç¨‹åºæ–¹é¢å¿«é€Ÿä¸Šæ‰‹ï¼Œè€Œä¸å¿…å°å¯èƒ½éœ€è¦é›†æˆçš„å„種器件進(jìn)行評估ã€è¨(shè)計和原型開發(fÄ)。
å°äºŽè¨±å¤šå·¥ç¨‹åœ˜(tuán)隊,IoTçš„ä¸€å€‹é¡¯è‘—å½±éŸ¿æ˜¯ï¼Œè™•ç†æ–°é …ç›®çš„æ–¹å¼æœƒæœ‰æ ¹æœ¬æ€§è½‰(zhuÇŽn)變。團(tuán)隊å¯èƒ½å®Œå…¨æœ‰èƒ½åŠ›å¾žé›¶é–‹å§‹è¨(shè)è¨ˆåµŒå…¥å¼æ¿ï¼Œä½†åœ¨å¾ˆç·Šæ¹Šçš„æœŸé™å…§(nèi)交付工作è¨(shè)è¨ˆæ‰æ˜¯æœ€çµ‚目標(biÄo)。å°äºŽåœ¨å‰µ(chuà ng)建自己的開發(fÄ)æ¿å‰ä½¿ç”¨SBC平臺快速評估è¨(shè)è¨ˆçš„äººä¾†èªªï¼Œè¨ªå•æ‰€æœ‰æ©Ÿæ¢°æ–‡ä»¶ã€å¸ƒå±€å’ŒBOM都很有必è¦ã€‚
圖1:UDOONeo
開發(fÄ)人員å¯èƒ½è€ƒæ…®ä½¿ç”¨çš„SBC的一個代表是UDOONeo。UDOONeoåˆ†ç‚ºåŸºæœ¬ç‰ˆã€æ“´å±•æ¿å’Œå®Œæ•´ç‰ˆï¼Œæ˜¯ä¸€å€‹å…¨é¢çš„ä½Žæˆæœ¬ç³»çµ±(tÇ’ng),且å‡åŸºäºŽé©åˆAndroidå’ŒLinuxçš„Freescalei.MX6SoloX應(yÄ«ng)用處ç†å™¨æ§‹(gòu)å»ºã€‚æœ¬æ–‡å°‡è‘—é‡æŽ¢è¨ŽNeo完整版。æ¤Freescale器件在單一芯片上嵌入一個é‹è¡Œé »çŽ‡ç‚º1GHzçš„å¼·å¤§å–®æ ¸ARM?Cortex?-A9處ç†å™¨ï¼Œä»¥åŠä¸€å€‹é‹è¡Œé »çŽ‡é«˜é”(dá)200MHzçš„ARMCortex-M4I/O實時å”(xié)處ç†å™¨ã€‚這些器件通éŽé«˜é€ŸAXI總線連接在一起,能共享和使用大é‡ç¡¬ä»¶å¯¦æ–½çš„功能,例如GPIOã€UARTã€I2Cç‰ã€‚開發(fÄ)人員通éŽå°å¯ç·¨è¼¯é€²(jìn)行復(fù)用,å¯ä»¥åˆ†é…外è¨(shè)功能的é…置由哪個內(nèi)æ ¸ä½¿ç”¨ã€‚
UDOONeo完整版具有1GBé–ƒå˜ï¼Œè±å¯Œçš„GPIOã€ä¸²è¡ŒæŽ¥å£ã€å®Œæ•´çš„Wi-Fi802.11b/g/nå’ŒBLEé€£æŽ¥ã€‚æ¤æ¿é…備有嵌入å¼9軸é‹å‹•傳感器ã€3è»¸åŠ é€Ÿåº¦è¨ˆã€ç£åŠ›å„€å’Œé™€èžºå„€ã€LVDSã€HDMIã€ç›¸æ©Ÿå’ŒéŸ³é »æŽ¥å£ï¼Œé©åˆè¨±å¤šå·¥æ¥(yè)è¨(shè)計。
從æ“作系統(tÇ’ng)的角度看,Cortex-A9å…§(nèi)æ ¸å¯ä»¥é‹è¡ŒAndroidLollipop或UDOObuntu(14.04LTS)。Cortex-M4æ“æœ‰å®Œæ•´å †æ£§Arduinoç’°(huán)å¢ƒçš„è¨ªå•æ¬Š(quán)é™ï¼ŒåŒ…括完整的Arduinoæ“´å±•æ¿æŽ’é‡ï¼Œé€²(jìn)一æ¥ä½¿å…¶æˆç‚ºä¸€å€‹éžå¸¸éˆæ´»çš„平臺。
圖2:UDOONeo完整版æ¿çš„主è¦ç‰¹æ€§
圖2ä¸é¡¯ç¤ºç‚ºç´…色的外部引腳,在GPIO模å¼ä¸‹é»˜èª(rèn)分é…給Cortex-A9ã€‚å› æ¤ï¼Œé€™äº›å¼•è…³å¯ç›´æŽ¥å¾žæ–‡ä»¶ç³»çµ±(tÇ’ng)(Linuxã€Androidï¼‰æŽ§åˆ¶ã€‚é¡¯ç¤ºç‚ºç¶ è‰²çš„å…§(nèi)部引腳由尺寸與ArduinoUNO引腳輸出相åŒçš„Cortex-M4來分é…和控制。
æ¤æ¿ç”±å–®ä¸€6–15VDCé›»æºä¾›é›»ï¼Œæ‰€æœ‰çš„GPIO為3.3VDC。圖3çš„ç¤ºæ„æ¡†åœ–強調(dià o)了基于i.MX應(yÄ«ng)用處ç†å™¨çš„主è¦çµ„æˆéƒ¨åˆ†å’ŒæŽ¥å£ã€‚
Neoé©åˆç”¨ä½œç„¡é è¨ˆç®—å¹³è‡ºï¼›æˆ–é€šéŽæ·»åŠ LVDSè§¸æ‘¸é¢æ¿æˆ–HDMIè¨(shè)備,用作é©åˆç”¨æˆ¶æŽ§åˆ¶çš„平臺。如果您的é (yù)期應(yÄ«ng)用ä¸éœ€è¦é‹å‹•å‚³æ„Ÿå™¨æˆ–åŒæ¨£å¤šçš„å…§(nèi)å˜ï¼Œå‰‡å¯ä»¥é¸æ“‡Neo的基本或擴展版本,以節(jié)çœæ¿çš„æˆæœ¬ã€‚å°äºŽè¨±å¤šé (yuÇŽn)程應(yÄ«ng)用,無é é…置是å¯å–的,通éŽSSHé (yuÇŽn)ç¨‹ç«¯åæˆ–類似端å與之通信。
圖3:UDOONeo的i.MX6框圖
UDOONeo入門å†ç°¡å–®ä¸éŽäº†ã€‚讓開發(fÄ)æ¿é‹è¡Œçš„æ‰€æœ‰å¿…è¦ä¿¡æ¯åŠæ›´å…¨é¢çš„é…置和代碼示例å¯åœ¨Wiki-styleç¶²(wÇŽng)站上找到。如果您需è¦ï¼Œæ¤ç¶²(wÇŽng)站還æä¾›å…¨é¢çš„æ©Ÿæ¢°å¸ƒå±€æ–‡ä»¶å’ŒBOM清單。
æ¤æ¿åœ¨ä¾›è²¨æ™‚未安è£ä»»ä½•æ“作系統(tÇ’ng)。ä¸è«–æ‚¨é¸æ“‡Linux還是Android,都需è¦å®¹é‡ç‚º8GB或以上的microSDå¡ã€‚從Neo的文檔網(wÇŽng)ç«™å°‡æ‚¨é¸æ“‡çš„æ“ä½œç³»çµ±(tÇ’ng)下載到PC或ç†è¨˜æœ¬é›»è…¦ï¼Œç„¶åŽåŸ·(zhÃ)行解壓縮。您還需è¦å°‡microSD塿’入塿’槽或USBé©é…器。訪å•計算機的命令行,完整詳情見æ¤è™•,并éµå¾ªæŒ‡ç¤ºä¾†å¸è¼‰å¡åŠæ‰€æœ‰åˆ†å€(qÅ«),然åŽå†å‚³è¼¸æ“作系統(tÇ’ng)æ˜ åƒã€‚完æˆåŽï¼Œè«‹è¨˜å¾—,您需è¦åŒæ¥æˆ–彈出å¡ä»¥æ£ç¢ºé—œ(guÄn)é–‰æ˜ åƒå¯«å…¥ã€‚
ç¾(xià n)在,將microSD塿’å…¥Neoï¼Œé€£æŽ¥é¼ æ¨™(biÄo)å’Œéµç›¤ï¼ˆé€šå¸¸ç‚ºUSB)ã€HDMIé¡¯ç¤ºå™¨ï¼ˆå»ºè°æœ€åˆå°±ä½¿ç”¨ï¼Œä»¥æŸ¥çœ‹ä¸€åˆ‡æ˜¯å¦æ£å¸¸é‹è¡Œï¼‰ï¼Œç„¶åŽå†é€šé›»ã€‚很快,開發(fÄ)æ¿ä¸Šç¶ 色和黃色LEDé–ƒçˆï¼Œå‡è¨(shè)鏿“‡äº†Linux,進(jìn)å…¥UDOOUbuntu桌é¢å‰å±å¹•上會顯示Linuxä¼éµTux標(biÄo)志。您å¯ä»¥é€šéŽé€™ä¸€ç†Ÿæ‚‰çš„æ¡Œé¢ä½¿ç”¨Linux的所有普通功能åŠå¯¦ç”¨å·¥å…·ã€‚é‡å°Neoé…置的ArduinoIDE也會在Linux平臺ä¸é (yù)åŠ è¼‰ï¼Œå¹¶é€šéŽæ¡Œé¢ç¾(xià n)æˆå¯ç”¨ã€‚ä¸‹ä¸€æ¥æ˜¯é€£æŽ¥Neoçš„WebæŽ§åˆ¶é¢æ¿ã€‚執(zhÃ)è¡Œæ¤æ“作有多種方å¼ï¼Œå¯ä»¥é€šéŽè®“Neoçš„ç€è¦½å™¨æŒ‡å‘å…¶udooneo.localWebæœå‹™(wù)å™¨ï¼Œæˆ–æŒ‡å‘æ¿è‡ªèº«çš„IP地å€ï¼ˆå¦‚果您知é“)。請見圖4。
圖4:UDOONeoWebæŽ§åˆ¶é¢æ¿
å¯é€šéŽè©²æŽ§åˆ¶é¢æ¿å……分了解Neoå…§(nèi)部發(fÄ)生的情æ³ã€‚除了æä¾›æœ‰é—œ(guÄn)有線和無線連接狀態(tà i)的信æ¯ä»¥åŠå‚³æ„Ÿå™¨å’Œæ¿æ‘˜è¦ä¿¡æ¯å¤–,還æä¾›é…ç½®é¸é …,用于è¨(shè)置并連接到無線接入點ã€å®Œæˆåœ°å€(qÅ«)è¨(shè)置和更改顯示輸出。還æä¾›ä¾†è‡ªåŠ é€Ÿåº¦è¨ˆã€é™€èžºå„€å’Œç£åŠ›å„€çš„è»¸èˆ‡æ¨¡æ•¸(shù)數(shù)據(jù),您å¯ä»¥é€šéŽè¼•輕地四周移動開發(fÄ)æ¿ä¾†æ¸¬è©¦å…¶æ“作。
WebæŽ§åˆ¶é¢æ¿ä¸Šé‚„æä¾›æ¸¬è©¦Arduino代碼è‰ç¨¿ç¤ºä¾‹å’Œå¯«å…¥ä¸€äº›ç°¡å–®çš„代碼的功能,請見圖5。熟悉ArduinoUNOç‰é–‹ç™¼(fÄ)æ¿çš„人,從圖5(打開引腳13)的應(yÄ«ng)用示例ä¸å¯ä»¥çœ‹å‡ºæ˜¯å€‹ç°¡å–®çš„‘“â€é–ƒçˆâ€œâ€ç¤ºä¾‹ã€‚Neo的紅色LED已連接至æ¤å¼•è…³ï¼Œå› æ¤ä¸Šå‚³æ¤ä»£ç¢¼è‰ç¨¿æœƒå°Ž(dÇŽo)致其閃çˆã€‚請注æ„,編程應(yÄ«ng)用程åºä¸çš„Ardublocky應(yÄ«ng)用程åºå…許以圖形ã€äº’è¯(lián)é‚輯塊的方å¼å‰µ(chuà ng)建Arduino代碼è‰ç¨¿ã€‚
圖5:ArduinoWebIDE和代碼è‰ç¨¿æ¨£æœ¬
æ£å¦‚剿–‡æ‰€è¿°ï¼ŒNeoé…備有兩組GPIO。å¯å¾žArduino代碼è‰ç¨¿è¨ªå•çš„GPIO稱作內(nèi)部排é‡ï¼Œæœ€å…§(nèi)å´(cè)的排é‡çµ„和從Linuxå…§(nèi)訪å•çš„GPIO則稱為外部排é‡ã€‚默èª(rèn)情æ³ä¸‹ï¼Œæ‰€æœ‰GPIO都é…置為輸入,但å¯é…ç½®ç‚ºè¼¸å…¥æˆ–è¼¸å‡ºï¼Œä¸”åœ¨éœ€è¦æ™‚å¯ç”¢(chÇŽn)生內(nèi)æ ¸ä¸æ–·ã€‚引腳復(fù)用å…許MPUå‘å¤–éƒ¨å¼•è…³åˆ†é…æ›´å°ˆé–€çš„任務(wù)。
圖6:å¯å¾žLinuxå…§(nèi)訪å•çš„GPIO。單擊æ¤è™•查看全尺寸圖åƒã€‚
å¯ä»¥åœ¨å‘½ä»¤è¡Œä½¿ç”¨ä»¥ä¸‹ç°¡å–®å‘½ä»¤æŽ§åˆ¶GPIO引腳:
echoout>/gpio/pin19/direction–將引腳è¨(shè)置為輸出引腳,或
echoin>/gpio/pin19/direction–將引腳è¨(shè)置為輸入引腳
指定為輸出的引腳,å¯ä½¿ç”¨echo0>/gpio/pin19/valueè¨(shè)置為低,零ä¼ï¼›
或使用echo1>/gpio/pin19/valueè¨(shè)置為高,+3.3VDC
輸入引腳值å¯ä½¿ç”¨cat/gpio/pin19/value來讀å–
除了從/sys/class/gpio目錄創(chuà ng)å»ºéˆæŽ¥å¤–ï¼ŒUDOObuntuLinuxä¸é (yù)安è£çš„udoo-gpio-exportè»Ÿä»¶åŒ…é‚„è² (fù)責(zé)å°Ž(dÇŽo)出所有GPIO作為輸入。有關(guÄn)é€™é¡žé«˜ç´šè¦æ±‚的更多信æ¯ï¼Œè«‹è¦‹UDOO文檔。
Cortex-A9å’ŒCortex-M4å…§(nèi)æ ¸ä¹‹é–“é€šéŽé›™å‘虛擬化串行引腳進(jìn)行通信,使用共享內(nèi)å˜äº¤æ›æ•¸(shù)據(jù)。å¯ä»¥åœ¨Linuxä¸é€šéŽä½¿ç”¨/dev/ttyMMC來讀å–,例如minicom–D/ttyMCC;或使用Serial0å°è±¡åœ¨Arduino代碼è‰ç¨¿å…§(nèi)讀å–。
UDOONeoå®Œæ•´ç‰ˆæ¿æ“有三個é‹å‹•傳感器。14ä½åŠ é€Ÿåº¦è¨ˆå’Œ16ä½ç£åЛ儀ä½äºŽç›¸åŒå°è£ï¼ˆä¸€ç¨®FreescaleFXOS8700CQ器件內(nèi)ã€‚åŠ é€Ÿåº¦è¨ˆæ“æœ‰ä¸‰å€‹å¯å‹•æ…‹(tà i)鏿“‡çš„æ»¿é‡ç¨‹èŒƒåœï¼š+/-2gã€+/-4g或+/-8g。
3軸陀螺儀是FreescaleFXAS21002C。
它們被連接至I2C總線,請見圖7,并å¯é€šéŽä»»ä¸€å…§(nèi)æ ¸è¨ªå•。
圖7:顯示傳感器和器件é…置的I2C總線
在命令行,它們å¯ä»¥ä½¿ç”¨
echo1>/sensors/accelerometer/enable或echo1>/sensors/gyroscope/enable來啟用,并å¯ä½¿ç”¨cat/sensors/magnetometer/dataç‰å‘½ä»¤ä¾†è®€å–一次性的值。
åµŒå…¥å¼æ‡‰(yÄ«ng)用當(dÄng)ç„¶å¯ä»¥é€šéŽç›¸é—œ(guÄn)I2C寄å˜å™¨ç›´æŽ¥å¾žå®ƒå€‘讀å–ã€‚åŠ é€Ÿè¨ˆå’Œç£åŠ›å„€ä½¿ç”¨åœ°å€0x1E,陀螺儀使用0x20。
也å¯ä»¥é€šéŽæ›´é«˜ç´šçš„語言(例如Python)來訪å•傳感器。在使用任何新開發(fÄ)æ¿çš„æ—©æœŸï¼Œæ‚¨éƒ½æœƒå¸Œæœ›é–‹ç™¼(fÄ)æ¿è¨(shè)計具備開æºèˆ‡ç¤¾å€(qÅ«)性質(zhì)。關(guÄn)于這方é¢çš„ä¸€å€‹å¾ˆå¥½ä¾‹åæ˜¯GitHub上的Neo.GPIOPython庫,該庫æä¾›åœ¨Cortex-A9上é‹è¡Œçš„Python應(yÄ«ng)用程åºçš„傳感器接å£ä»£ç¢¼ã€‚Python已包å«åœ¨UDOObuntu發(fÄ)行版ä¸ï¼Œå› æ¤ï¼Œä½¿å…¶æˆç‚ºåœ¨Neo上進(jìn)行開發(fÄ)çš„å¿…ç„¶é¸æ“‡ã€‚使用å‰ï¼Œæ‚¨éœ€è¦å¾žGitHub下載.ZIP文件,然åŽå°‡å…¶è§£å£“縮到將è¦å‰µ(chuà ng)建Python應(yÄ«ng)ç”¨ç¨‹åºæ‰€åœ¨çš„目錄。在.ZIP文件ä¸é‚„包括了多個代碼示例,圖8ä¸é¡¯ç¤ºäº†å…¶ç°¡åŒ–版本。
圖8:讀å–é™€èžºå„€å¹¶é¡¯ç¤ºå…¶ä¸æ•¸(shù)據(jù)çš„Python程åº
è¦åœ¨å‘½ä»¤è¡Œé‹è¡Œåœ–8ä¸é¡¯ç¤ºçš„Pythonä»£ç¢¼ï¼Œæ‚¨å¿…é ˆä»¥root的身份é‹è¡Œã€‚如果您使用的是如上所述的UDOONeo,您的用戶帳戶為udooerï¼Œé‚£ä¹ˆæ‚¨éœ€è¦æŒ‰ä»¥ä¸‹æ–¹å¼ä½¿ç”¨GyroExample.py程åºã€‚請見圖9。
echoudooer|sudo–Ssu–c‘pythonGyroExample.py’
圖9:GyroExample.py代碼é‹è¡Œçš„æˆªå±
UDOONeo是全é¢ä¸”強大的SBC,å¯ä»¥ç”¨ä½œå·¥æ¥(yè)IoT應(yÄ«ng)ç”¨çš„ç†æƒ³é–‹ç™¼(fÄ)平臺。通éŽä½¿ç”¨Neoï¼Œæ‚¨å¯æ¥µå¿«é‹è¡Œåˆå§‹æ‡‰(yÄ«ng)ç”¨ï¼Œå¹¶ä»¥æœ€å…·æ™‚é–“å’Œæˆæœ¬æ•ˆç›Šçš„æ–¹å¼è®“產(chÇŽn)å“上市。
標(biÄo)簽:
上一篇:無ä½ç½®å‚³æ„Ÿå™¨æŽ§åˆ¶æ–¹æ³•ï¼Œä½ æŽŒ...
下一篇:伺æœé‹å‹•控制方é¢ï¼Œå“ªäº›é‹å‹•...
ä¸åœ‹å‚³å‹•ç¶²(wÇŽng)版權(quán)與å…責(zé)è²æ˜Žï¼šå‡¡æœ¬ç¶²(wÇŽng)注明[來æºï¼šä¸åœ‹å‚³å‹•ç¶²(wÇŽng)]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Š(quán)å‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(wÇŽng)(www.hysjfh.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉(zhuÇŽn)載請與0755-82949061è¯(lián)系。任何媒體ã€ç¶²(wÇŽng)站或個人轉(zhuÇŽn)è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²(wÇŽng)â€ï¼Œé•å者本網(wÇŽng)將追究其法律責(zé)任。
本網(wÇŽng)轉(zhuÇŽn)載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯(lián)ç¶²(wÇŽng)或æ¥(yè)å…§(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuÇŽn)載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² (fù)版權(quán)法律責(zé)任。
相關(guÄn)資訊