新聞中心
每家初創(chuàng)企業(yè)都在談?wù)撊绾胃淖兪澜?,但其中大部分根本不會討論世界本身或者說存在于其中的物理事物。很多企業(yè)只是單純打算交換數(shù)據(jù)庫中的數(shù)據(jù)包與位置——雖然這一切也很重要,但字節(jié)本身并沒有意義。畢竟這個世界是由原子組成。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比臨城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式臨城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋臨城地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
[[163022]]
字節(jié)與原子之間的障礙正在逐漸消失,歸功于物聯(lián)網(wǎng)的迅猛發(fā)展,如今程序員已經(jīng)不再被局限于虛擬世界當(dāng)中。如今,我們能夠超越向磁盤寫入1與0的傳統(tǒng)作法:我們可以切實通過編寫代碼告訴設(shè)備如何掠奪、剪切、扭曲或者變更原子形態(tài)?,F(xiàn)在,我們的軟件能夠開啟燈光、變更室內(nèi)外觀、駕駛汽車以及移動墻壁等等。
時至今日,大量新的市場空間與機遇允許開發(fā)人員立足于真實世界??焖侔l(fā)展的相關(guān)領(lǐng)域包括自動駕駛汽車、智能家居、智能辦公環(huán)境等等,而大規(guī)模定制化方案要求程序員們熟悉如何對數(shù)據(jù)結(jié)構(gòu)做出調(diào)整,從而在對象之內(nèi)實現(xiàn)變化。如果“面向?qū)ο缶幊獭闭婺苊鋵崳敲撮_發(fā)人員的黃金時代可以算是真正來臨了。
這些任務(wù)需要由新型語言——或者尚未正式誕生的新型語言——以及能夠與陳舊語言相對接的新型協(xié)議來實現(xiàn)。改變世界意味著學(xué)習(xí)這些語言與協(xié)議的工作方式以及部署需求。如果大家希望真正改變世界,那么今天的這份語言與協(xié)議清單將成為各位必須掌握的先決性專業(yè)知識。而一旦大家開始直接改變世界,那么將永遠無法重新滿足于鼓搗什么數(shù)據(jù)庫。
Basic
作為經(jīng)典編程語言之一,Basic以部分簡單硬件控制器為基礎(chǔ)直接推動了早期微型計算機革命。那些制作出ESP8266控制器主板的技術(shù)人員使用的正是Basic語言,因為正如他們所言,這是“一款簡單但卻非常強大的語言,允許大家在無需計算機科學(xué)學(xué)位的前提下實現(xiàn)令人驚嘆的成果。”
其中包含所有經(jīng)典結(jié)構(gòu),包括一些古董級成果:goto。不過其中也包含一部分用于提取網(wǎng)絡(luò)頁面或者發(fā)送電子郵件的新命令。但必須承認,在使用Basic時我們的大部分時間都將被用于調(diào)整接口以收集需要被發(fā)送至互聯(lián)網(wǎng)的數(shù)據(jù)。
要獲取更多相關(guān)信息,大家可以參閱ESP8266社區(qū)或者該語言的專門網(wǎng)站。
X10
X10是首款允許程序員擺脫虛擬世界并觸及真實世界的工具。X10從來不是一種復(fù)雜或者難于理解的協(xié)議,這可能是因為其誕生時間為1975年——比沃茲尼亞茨與喬布斯推出Apple I還早一年。盡管已經(jīng)相當(dāng)老邁,但X10仍然具備極高人氣,因為目前還有著大量低成本設(shè)備對其提供支持。
該協(xié)議只提供一部分主要消息收發(fā)功能。大家可以向開關(guān)發(fā)送幾個字節(jié),并借此實現(xiàn)開關(guān)開、閉以及亮度調(diào)節(jié)。就這么多。除此之外,大家可以利用其它一些選項輪詢遠程開關(guān)并嵌入更多數(shù)據(jù),但其大部分功能似乎仍是打開與關(guān)閉之類的簡單操作。這些數(shù)據(jù)包可上行至家庭環(huán)境下的120伏供電線路,且必須通過由X10制造的FireCracker等獨立設(shè)備來生成。
包括Flipit與Bottle Rocket在內(nèi)的多種軟件項目致力于簡化與FireCracker的協(xié)作流程。當(dāng)然,大家也可以直接選擇最為原始的解決方案——X10,該公司自1978年就一直在推出家庭功能控件。
Insteon
2005年,Insteon公司發(fā)布了一項協(xié)議以提供體積更大的消息收發(fā)與更好的傳輸能力,并希望借此取代X10協(xié)議。眾多報道指出,X10信號往往會在大型家居環(huán)境或者線路復(fù)雜的場景下發(fā)生丟失。也有不少人抱怨稱,其信號會受到噪音的影響。因此,Insteon添加了一項機制以確保每個節(jié)點或者開關(guān)同時作為中繼器運作,從而使得信號能夠傳遞得更遠并順利抵達電路體系中最為幽深的角落。這是一種值得稱道的睿智設(shè)計,也確實帶來了理想的信號廣播效果。
除此之外,該協(xié)議也更加豐富、復(fù)雜且具備冗余特性。相較于僅由兩比特構(gòu)成的簡單命令,Insteon數(shù)據(jù)包能夠承載“高達”十個字節(jié)的信息以構(gòu)成兩條完整命令。其主要命令仍然致力于實現(xiàn)開關(guān)的開啟與關(guān)閉,但其同時也提供其它選項,旨在輪詢傳感器或者創(chuàng)建智能恒溫機制。
Insteon公司的協(xié)議被廣泛應(yīng)用于各類智能hub以及家庭自動化工具當(dāng)中,包括Amazon的Echo以及羅技的Harmony產(chǎn)品。以Linux Home Automation項目與OpenRemote為代表的多款開源工具也將通過發(fā)送數(shù)據(jù)包的方式集成這款供電線路控制器。
Zigbee、Z-Wave以及更多
X10與Insteon所觸及的還僅僅是表面。另有多種解決方案能夠?qū)⑿盘柊l(fā)送至設(shè)備——一部分通過供電線路,也有一部分以無線形式傳輸。Zigbee與Z-Wave都屬于設(shè)備間的低功耗無線通信標(biāo)準(zhǔn),尤其適用于需要在企業(yè)或者家庭環(huán)境中相互通信的低功耗嵌入式傳感器及處理器。
舉例來說,Zigbee最近剛剛發(fā)布公告,宣稱開始在超市中實驗溫度傳感器以實現(xiàn)農(nóng)產(chǎn)品監(jiān)測,從而確保部分水果與蔬菜處于最佳保存環(huán)境。Z-Wave則在其官方網(wǎng)站中介紹了一款能夠通過無線按鈕幫助年老或者體弱用戶遭遇困境時進行呼救的“家庭尊嚴”設(shè)備。目前這類應(yīng)用方案已有數(shù)百種,其每次執(zhí)行只需發(fā)送數(shù)比特數(shù)據(jù)即可完成任務(wù)。
Zigbee與Z-Wave并非惟一的執(zhí)行標(biāo)準(zhǔn)。這份日漸龐大的名單中還包括Panstamp、AMX、KNX、Lutron以及更多。其中一部分屬于利基型方案:以AMX為例,其專注于音響設(shè)備以強化會議室效果。Panstamp則面向遍布于世界每個角落的小型無線控制器。它們都擁有自己的格式,但卻可以通過編程方式實現(xiàn)交互。標(biāo)準(zhǔn)間的競爭可能令程序員們感到困惑,不過這畢竟要比不存在標(biāo)準(zhǔn)好得多。
XBMC、Freebox以及更多
如果說有人能夠坐在沙發(fā)上邊看著白癡電視節(jié)目邊改變世界確實有些夸張,但可以肯定的是,數(shù)字化圖像、視頻以及音頻確實打破了傳統(tǒng)娛樂方式的束縛。以XBMC、Freebox以及VLC為代表的各類協(xié)議與框架原本被設(shè)計將填鴨式視頻提供給躲在沙發(fā)中的無聊人士,但其如今也能夠為整棟房屋乃至建筑物做出貢獻。
這些視聽設(shè)備從表面上看似乎與改變世界沒有任何關(guān)系,因為它們在很大程度上只是在處理數(shù)字化內(nèi)容文件——不過必須強調(diào)的是,隨著平板顯示器的普及程度越來越高,它們的作用也在逐步凸顯。舉例來說,時代廣場周邊的建筑物就能夠根據(jù)屏幕上的顯示內(nèi)容不斷變更外觀。更多屏幕意味著數(shù)字化內(nèi)容絕僅僅是大家手機上的顯示素材,這同時也是一種轉(zhuǎn)變建筑物或者室內(nèi)效果的有效途徑。
PostScript
很多人并不理解在PDF文件內(nèi)存儲數(shù)據(jù)或者將文本頁面內(nèi)容發(fā)送至打印機時所使用的數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性水平。事實上,PostScript文件中的數(shù)據(jù)并非簡單的數(shù)字排列,而是一整套由字母、線條、數(shù)字以及圖形構(gòu)建而成的頁面勾勒體系。該語言能夠沿直線或者貝塞爾曲線移動筆劃,而后對生成的圖形進行填充。各種字體也不單純屬于位圖,而是復(fù)雜曲線的集合,從而輕松以亞像素精度進行縮放或者位移。
該語言本身屬于上世紀七十年代的神器,其基于堆棧的語法能夠顯著降低括號的使用頻率。任何曾經(jīng)使用過惠普計算器的朋友都會在PostScript中找到熟悉的感覺。該語言由圖靈設(shè)計完成,而人們則通過編寫PostScript代碼進行復(fù)雜的分形計算及其它古怪的任務(wù)——哦,當(dāng)然還有開發(fā)病毒。
時至今日,該語言的人氣往往略遜于SVG,這是因為此種XML變體能夠在Web之上得到廣泛支持。不過二者的底層結(jié)構(gòu)非常相似,而且代碼轉(zhuǎn)換也非常簡單。這兩款語言都能夠通過PSToEdit等多種軟件包被轉(zhuǎn)換為其它代碼格式,從而驅(qū)動激光切割機以及銑床設(shè)備。
OBD-II
多年以來,汽車只不過是由油箱、活塞、齒輪組外加后輪曲軸共同構(gòu)成的簡單機械。然而如今的汽車已經(jīng)成為大量計算機制構(gòu)建而成的復(fù)雜網(wǎng)絡(luò),只不過恰好還是配備四條輪胎。ODB-II標(biāo)準(zhǔn)是人類與汽車進行互動,并借此了解當(dāng)前車輛運轉(zhuǎn)狀況的重要接口。
大部分游走于計算機與汽車之間的代碼都屬于純粹的信息。舉例來說,我們可以向傳動輪端口發(fā)送部分字節(jié),從而由其返回當(dāng)前時速信息。類似的代碼還可以實現(xiàn)RPM、引擎效率乃至數(shù)十種其它指標(biāo)的查詢。像Torque這樣的多數(shù)基礎(chǔ)應(yīng)用都需要通過OBD-II端口對車輛進行追蹤。
這類應(yīng)用在業(yè)余賽車手以及汽車愛好者群體中極具人氣,但它們也完全能夠服務(wù)于普通民眾。ArduinoOBD庫就是一種很好的選項,可以幫助大家將自己的計算機與車輛相對接。
G
計算機數(shù)字控制,簡稱CNC,最初于上世紀五十年代出現(xiàn)在銑機設(shè)備之上,而工程師們隨后很快開發(fā)出G語言——專門用于操控切割工具的移動方式。整個流程在初次接觸時可能有點反直覺的意味,因為從代碼控制角度出發(fā),其實現(xiàn)的是從當(dāng)前材料上切掉某些部分而非添加某些部分。不過一旦我們習(xí)慣了立足于最終結(jié)果逆向?qū)徱曉O(shè)計思路,大家就可以想象出如何移動切割刀并去除不需要的部分。
大部分編碼工作涉及選定坐標(biāo)系,同時安排切割刀移動到特定位置。這些設(shè)備往往能夠“插補”并計算直線或者圓的中位點,從而簡化簡單形狀的創(chuàng)建方式。不過對于復(fù)雜的形狀,我們?nèi)匀恍枰扇∫恍┨囟ㄒ?guī)劃。
隨著多年以來各家制造商向其中添加強化元素,G語言的性質(zhì)也出現(xiàn)了顯著變化。很多目前被廣泛使用的現(xiàn)代化宏以及面向?qū)ο髮佣紩?jīng)過編譯為原始G代碼并發(fā)送至設(shè)備當(dāng)中。
目前,G語言的一類變體將用于驅(qū)動多種3D打印機。雖然變體與本體所使用的具體代碼有所區(qū)別,但其核心語言卻從未發(fā)生改變。
STL
這種用于描述3D對象的標(biāo)準(zhǔn)格式已經(jīng)成為3D打印領(lǐng)域的通用語言。在線商店通過交付STL文件出售虛擬對象,大家可以對其進行編輯或者直接發(fā)送至3D打印機。
這種語言本身可以說相當(dāng)基礎(chǔ)。文件的大部分內(nèi)容為用于覆蓋物體表面的刻面三角形角部三維坐標(biāo)。雖然該格式似乎能夠支持更為復(fù)雜的多邊形,但文件本身傾向于使用傳統(tǒng)三角形。另外,盡管與構(gòu)建3D對象的基本要求有所沖突,但這種文件格式本身并不強制要求三角形完全覆蓋對象或者定義所述表面的每個部分。
STL文件能夠容納點或者二進制版本的ASCII表達內(nèi)容,不過大多數(shù)文件都選擇使用二進制版本——因為其更為緊湊。
Slicer
STL文件并不能容納充足的信息以驅(qū)動3D打印機,因此其中包含的三角形需要被轉(zhuǎn)換成一份指令列表,從而移動3D打印機噴頭并控制擠壓機開關(guān)。打印機本身通常使用GCode,也就是Slicer,其在本質(zhì)上相當(dāng)于將GCode交付至CNC銑機設(shè)備。二者之間最大的不同在于Slicer代碼屬于添加型描述,即以從無到有的方式進行對象構(gòu)建——相比之下,數(shù)控機床為消減型描述,將多余部分去除以雕刻對象輪廓。二者用于驅(qū)動打印噴頭位置的指令大多相同,但Slicer新增了用于控制素材擠壓的指令。
目前市面上存在著相當(dāng)數(shù)量的Slicer程序,一部分為開源、一部分屬于專有性質(zhì)。其中一些擁有復(fù)雜的IDE,用于在打印之前對對象進行編輯。舉例來說,KISSlicer就提供一套免費版本,其能夠與單頭打印機對接; 而其Pro版本則支持更為復(fù)雜的多頭打印機。
Python
Python語言在生物實驗室、社交科學(xué)中始終牢牢占據(jù)人氣榜首,甚至在Raspberry Pi社區(qū)中被稱為“官方語言”。后面這種說法有點夸張,因為Raspberry Pi單片機通常直接引導(dǎo)Linux,而大多數(shù)Linux代碼庫也都能夠運行在該單片之上,不過需要直接面向ARM(v6或者7)架構(gòu)進行編譯。
不過,Python仍然擁有諸多既有優(yōu)勢。它作為一種高級語言擁有簡潔的語法與相當(dāng)寬松的數(shù)據(jù)傳遞規(guī)則。程序員們并不需要深陷抽象的泥潭,例如面對復(fù)雜的指針規(guī)則。相反,他們只需要編寫一套指令集以處理數(shù)字,并利用這些值以指示Raspberry Pi進行哪些操作。
Raspberry Pi社區(qū)提供豐富的說明文檔以幫助大家從零開始學(xué)習(xí)Python。
Processing
機器人與真實世界當(dāng)中充滿了使用Arduino語言——屬于C與C++子集——的單片機。不過很多程序員希望事件能夠更為簡單,這也是該語言Processing這一名稱的由來。這是一套經(jīng)過簡化的Java子集,保留了相當(dāng)一部分較為粗放的類細節(jié)規(guī)則,同時添加了部分標(biāo)準(zhǔn)方法以幫助獲取結(jié)果及切換開關(guān)。Java程序員們可能會對Processing在陳舊AWT Applet以及Frame上的表現(xiàn)非常滿意,不過大多數(shù)人只是單純希望編寫幾個循環(huán)并變更代碼。
Processing代碼通常運行在主機計算機之上,并由其向Arduino發(fā)送指令——Arduino則運行Firmata等本地解釋器。開發(fā)工作立足于主機設(shè)備,不過具體任務(wù)則在Arduino之上完成。
Processing亦在移動應(yīng)用開發(fā)場景中發(fā)揮著巨大作用,并憑借著利用JavaScript編寫而成的Processing衍生版本而在Web應(yīng)用開發(fā)領(lǐng)域站穩(wěn)了腳跟。卡恩學(xué)院目前正使用其進行計算機編程授課。
文章題目:以編程方式看待世界:12項值得了解的技術(shù)成果
網(wǎng)站鏈接:http://www.5511xx.com/article/dpgoido.html


咨詢
建站咨詢
