裝配式建筑是建造方式的重大變革,有利于節(jié)約資源能源、減少施工污染、提升勞動(dòng)生產(chǎn)效率和質(zhì)量安全水平,但目前裝配式建筑設(shè)計(jì)缺乏正向設(shè)計(jì)、效率高、數(shù)據(jù)共享的軟件。”今天,遠(yuǎn)大住宅工業(yè)集團(tuán)股份有限公司(以下簡稱遠(yuǎn)大住工)攜手中國建筑科學(xué)研究院(以下簡稱中國建研院),在長沙正式發(fā)布裝配式建筑智能設(shè)計(jì)軟件PCMakerⅠ,以硬科技解鎖建筑智造。
據(jù)了解,PCMakerⅠ軟件以遠(yuǎn)大住工20年逾千例的工業(yè)化建筑項(xiàng)目實(shí)踐經(jīng)驗(yàn)為基礎(chǔ),結(jié)合中國建研院的課題研究理念和軟件技術(shù),著力解決裝配式建筑以設(shè)計(jì)技術(shù)標(biāo)準(zhǔn)為牽引的全流程建設(shè),為裝配式建筑行業(yè)帶來全生命周期的BIM正向設(shè)計(jì)應(yīng)用。
當(dāng)前,建筑工業(yè)化已上升為國家戰(zhàn)略、頂層設(shè)計(jì)。與國外建筑工業(yè)化是小批量定制生產(chǎn)的情況不同,中國的建筑工業(yè)化既有西方國家的品質(zhì)需求,又有遠(yuǎn)超于其的規(guī)模需求,是大規(guī)模定制生產(chǎn)的實(shí)際情況。
“但中國建筑業(yè)沒有經(jīng)歷
工業(yè)化的進(jìn)程,有建筑標(biāo)準(zhǔn)而無工業(yè)標(biāo)準(zhǔn),在大規(guī)模生產(chǎn)的過程中經(jīng)常存在產(chǎn)品不確定、一個(gè)工廠對(duì)接多個(gè)工地以致交期不確定等問題,屬于高度離散型的制造業(yè)。”遠(yuǎn)大住工總裁唐芬認(rèn)為,中國的建筑工業(yè)化迫切需要一個(gè)橋梁,搭建起建筑業(yè)和工業(yè)之間的通道,實(shí)現(xiàn)由手工、離散的傳統(tǒng)建筑業(yè)向高效、集約的現(xiàn)代制造業(yè)的轉(zhuǎn)變。
對(duì)此,PCMakerⅠ軟件孕育而生,它是基于“一個(gè)正向模型”、“一套統(tǒng)一標(biāo)準(zhǔn)”、“一套完整數(shù)據(jù)”的設(shè)計(jì)思路研發(fā),已取得軟件著作權(quán),并通過專家委員會(huì)科技項(xiàng)目成果鑒定,是裝配式建筑領(lǐng)域首款基于BIM平臺(tái)的正向設(shè)計(jì)軟件,可以解決眾多企業(yè)在裝配式建筑實(shí)施、BIM應(yīng)用實(shí)踐中遇到困難。
該軟件將國家標(biāo)準(zhǔn)和裝配式建筑應(yīng)用設(shè)計(jì)標(biāo)準(zhǔn)內(nèi)置并統(tǒng)一,實(shí)現(xiàn)模型創(chuàng)建、構(gòu)件拆分、構(gòu)件設(shè)計(jì)、結(jié)構(gòu)計(jì)算、裝配式檢查、數(shù)據(jù)統(tǒng)計(jì)、深化自動(dòng)成圖;一套BIM模型打通前后端數(shù)據(jù),一鍵生成裝配式建筑的結(jié)構(gòu)施工圖、工藝深化圖,并為生產(chǎn)提供完整的BOM清單和數(shù)據(jù),指導(dǎo)市場預(yù)算,實(shí)現(xiàn)裝配式建筑多專業(yè)協(xié)同的工作模式;通過簡化裝配式建筑設(shè)計(jì)流程,取消人工翻圖,減少誤差并提高設(shè)計(jì)精度,縮減設(shè)計(jì)周期,設(shè)計(jì)效能提升十倍以上。
遠(yuǎn)大住工為何會(huì)跨界打造一款智能設(shè)計(jì)軟件呢?唐芬表示,當(dāng)產(chǎn)業(yè)做大之后,下一步思考的是如何做強(qiáng)。遠(yuǎn)大住工與中國建研院都想立足源頭解決行業(yè)痛點(diǎn)、實(shí)現(xiàn)“把技術(shù)變成工具、把分散集成統(tǒng)一、由傳統(tǒng)向智能轉(zhuǎn)型”的成果輸出。PCMakerⅠ是遠(yuǎn)大住工進(jìn)入建筑工業(yè)4.0的起點(diǎn),也是遠(yuǎn)大住工踐行智能設(shè)計(jì)、智能制造、智慧工地的入口,未來它將持續(xù)升級(jí),不斷迭代,可以期待PCMakerⅡ、Ⅲ……的出現(xiàn)。
發(fā)布會(huì)最后遠(yuǎn)大住工集團(tuán)產(chǎn)品設(shè)計(jì)研究院院長王雅明現(xiàn)場為大家介紹PCMakerⅠ的數(shù)據(jù)模型。PCMakerⅠ的模型得到構(gòu)件圖紙之后,導(dǎo)入到工廠,有個(gè)標(biāo)準(zhǔn)的模具庫。再把圖紙導(dǎo)到模具庫,和模具庫進(jìn)行對(duì)比,有的模具只需要自動(dòng)選取模具,有新的模具可以通過軟件來自動(dòng)軟件這個(gè)加工圖紙,最后形成一物一模,形成一套模具本來現(xiàn)場是五六天的周期,我們工廠是一天可以生產(chǎn)一層。
倆天我在瀏覽購物網(wǎng)站的時(shí)候,被一個(gè)購物清單吸引住了,
5個(gè)ATtiny13單片機(jī)售價(jià)1.5美元。
你敢相信,一個(gè)可編程的微控制器,只要0.3美元!于是我打算撿個(gè)便宜,買幾個(gè)回來玩玩。
為了讓買回來的ATtiny13不落在角落里吃灰,我上網(wǎng)搜索了 "ATtiny13 Arduino"的關(guān)鍵詞,發(fā)現(xiàn)Arduino支持ATtiny13,所以我準(zhǔn)備拿他搞些事情。
ATtiny13對(duì)庫的支持有限,所以除了讓它點(diǎn)亮幾個(gè)LED之外,我暫時(shí)沒有想到其他玩法。
正當(dāng)我苦苦思索還能做什么時(shí),突然想到了一個(gè)很久以前的項(xiàng)目。
那是一個(gè)使用ATtiny85的PoV顯示器。
PoV顯示器基本上是一堆閃爍的LED,并有一些精心安排的延遲。而我發(fā)現(xiàn)ATtiny13和ATtiny85都有相同的引腳布局。
那么…… 嘿嘿,我也來做一個(gè)!
什么是PoV顯示器,它們是如何工作的?
人眼在觀察景物時(shí),光信號(hào)傳入大腦神經(jīng),需經(jīng)過一段短暫的時(shí)間(1/16秒),光的作用結(jié)束后,視覺形象并不立即消失,這種殘留的視覺稱“后像”,視覺的這一現(xiàn)象則被稱為“視覺暫留”。
比如你看一個(gè)正常的顯示器,像素是以矩陣方式排列的,但在PoV顯示器中,像素或者LED則是排列成一個(gè)陣列的。就像是你快速翻動(dòng)小人書那邊,由于視覺暫留效應(yīng),小人書的人會(huì)動(dòng)起來,這邊我們看到的,也不會(huì)是一排LED,而是一串字母或者是一幅圖像。
你可能正盯著ATtiny13,想知道 "我到底該怎樣為這個(gè)東西編程,它又沒有像Arduino那樣的USB接口"。
好吧,要為這個(gè)微控制器編程,你需要另一個(gè)Arduino,Arduino Nano或Arduino Uno都可以。
下載并安裝Arduino IDE。
用USB線將你的Arduino Nano / Uno連接到電腦上。
打開 工具->開發(fā)板,選擇你的主控板(注意選Uno/Nano而不是ATtiny13)。
現(xiàn)在我們需要將我們的Arduino轉(zhuǎn)換成一個(gè)編程器。
在Arduino IDE中,打開文件 -> 示例 -> 11.ArduinoISP -> ArduinoISP
并點(diǎn)擊上傳按鈕。
如果上傳成功,就可以用我們的Arduino為其他微控制器編程了。
現(xiàn)在我們還需要在Arduino IDE上安裝ATtiny13的硬件包,因?yàn)镮DE默認(rèn)不支持ATtiny13。
打開文件 -> 首選項(xiàng) -> 附加開發(fā)版管理器網(wǎng)址
然后粘貼上下面的鏈接:
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
然后打開工具 -> 開發(fā)板 -> 開發(fā)板管理器。
從列表中找到MicroCore并點(diǎn)擊安裝。
ok,現(xiàn)在你就可以從Arduino IDE中選擇到ATtiny13了。
選擇工具 -> 開發(fā)板 -> MicroCore -> ATtiny13
我們需要在Arduino IDE中再改變一些選項(xiàng),
打開工具,并設(shè)置以下值:
OptionValueBoardATtiny13BOD2.7vClock9.6Mhz internal Osc.Timing"Micors Disabled"PortSelect Serial Port in which your Arduino is connectedProgrammerArduino as ISP (MicroCore)
現(xiàn)在可以把ATtiny連接到我們的Arduino了。
把ATtiny連接到Arduino,如下所示(在ATtiny中,針腳1將用一個(gè)點(diǎn). 標(biāo)記。)
ATtiny13 PinArduino Pin11051161271385v4Ground (GND)
這是一個(gè)一次性的設(shè)置,不用在每次上傳代碼到ATtiny時(shí)都重復(fù)這個(gè)設(shè)置。
點(diǎn)擊 工具->燒錄引導(dǎo)程序。
這將把引導(dǎo)程序燒到ATtiny上,現(xiàn)在我們就可以用Arduino IDE把程序上傳到ATtiny了。
在Arduino中新建一個(gè)程序。
復(fù)制代碼并將其粘貼到新創(chuàng)建的程序中。
// https://github.com/B45i/Tiny-PoV
// App to calculate array values: https://pov-display-calc.vercel.app/
// Preact app source: https://github.com/B45i/pov-display-calc
#include <avr/pgmspace.h>
#define DELAY_TIME 1
#define CHAR_BREAK 2
uint8_t leds[]={ 0, 1, 2, 3, 4 };
uint8_t keys[]={ 1, 2, 4, 8, 16 };
void setup() {
for (uint8_t i=0; i < 5; i++) {
pinMode(leds[i], OUTPUT);
}
}
const PROGMEM uint8_t alphabets[][5]={
{ 0, 0, 0, 0, 0 }, // Space
{ 30, 5, 5, 30, 0 }, // A
{ 31, 21, 21, 10, 0 }, // B
{ 14, 17, 17, 10, 0 }, // C
{ 31, 17, 17, 14, 0 }, // D
{ 31, 21, 21, 17, 0 }, // E
{ 31, 20, 20, 16, 0 }, // F
{ 14, 17, 19, 10, 0 }, // G
{ 31, 4, 4, 4, 31 }, // H
{ 0, 17, 31, 17, 0 }, // I
{ 0, 17, 30, 16, 0 }, // J
{ 31, 4, 10, 17, 0 }, // K
{ 31, 1, 1, 1, 0 }, // L
{ 31, 12, 3, 12, 31 }, // M
{ 31, 12, 3, 31, 0 }, // N
{ 14, 17, 17, 14, 0 }, // O
{ 31, 20, 20, 8, 0 }, // P
{ 14, 17, 19, 14, 2 }, // Q
{ 31, 20, 22, 9, 0 }, // R
{ 8, 21, 21, 2, 0 }, // S
{ 16, 16, 31, 16, 16 }, // T
{ 30, 1, 1, 30, 0 }, // U
{ 24, 6, 1, 6, 24 }, // V
{ 28, 3, 12, 3, 28 }, // W
{ 17, 10, 4, 10, 17 }, // X
{ 17, 10, 4, 8, 16 }, // Y
{ 19, 21, 21, 25, 0 }, // Z
{ 31, 17, 31, 0, 0 }, // 0
{ 18, 31, 16, 0, 0 }, // 1
{ 29, 21, 23, 0, 0 }, // 2
{ 21, 21, 31, 0, 0 }, // 3
{ 7, 4, 31, 4, 0 }, // 4
{ 23, 21, 29, 0, 0 }, // 5
{ 31, 21, 29, 0, 0 }, // 6
{ 1, 1, 31, 0, 0 }, // 7
{ 31, 21, 31, 0, 0 }, // 8
{ 23, 21, 31, 0, 0 }, // 9
};
void displayLine(uint8_t line) {
for (uint8_t i=0; i < 5; i++) {
digitalWrite(leds[i], (line & keys[i])==keys[i]);
}
}
void displayLetter(uint8_t n) {
for (uint8_t i=0; i < 5; i++) {
displayLine(pgm_read_word_near(alphabets[n] + i));
delay(DELAY_TIME);
}
displayLine(0);
}
void displayString(char *s) {
for (uint8_t i=0; i < strlen(s); i++) {
uint8_t index;
if (s[i]==' ') {
index=0;
} else if (isalpha(s[i])) {
index=(uint8_t)toupper(s[i]) - 64;
} else if (isdigit(s[i])) {
index=(uint8_t)(s[i]) - 21;
}
displayLetter(index);
delay(CHAR_BREAK);
}
}
void loop() {
displayString("HELLO 123 ");
}
如果你想改變顯示的文本,可以修改最后一行。
displayString("HELLO 123 "); // 替換成你想要顯示的文本
根據(jù)你要使用的電機(jī)的速度,你可能還需要調(diào)整代碼,更新變量DELAY_TIME和CHAR_BREAK。
你可能會(huì)盯著這段代碼思考,一些隨機(jī)數(shù)怎么樣能代表一個(gè)字符,我們?nèi)绾斡盟鼈儊碚_地閃爍LED?
我們可能對(duì)使用數(shù)組來表示字符和圖像比較熟悉,像類似這樣:
int a[][5]={
{0, 1, 1, 0, 0},
{1, 0, 0, 1, 0},
{1, 1, 1, 1, 0},
{1, 0, 0, 1, 0},
{1, 0, 0, 1, 0},
};
for (int i=0; i < 5; i++) {
for (int j=0; j < 5; j++) {
digitalWrite(LEDs[j], a[j][i]);
}
}
但是,這種方法會(huì)占用大量的內(nèi)存,而且我們還必須使用多個(gè)循環(huán)來迭代它們。
現(xiàn)在,對(duì)于沒有多少處理能力的ATtiny13來說,這并不是一個(gè)好方法。
我們不使用矩陣來表示一個(gè)字符,而是使用一個(gè)數(shù)組來表示它。
PoV顯示器有5行和5列,所以我們可以使用一個(gè)長度為5的數(shù)組。
該數(shù)組中的每個(gè)元素將告訴我們是否需要打開某個(gè)特定的LED。
我們給每個(gè)LED分配一個(gè)數(shù)字(枚舉),這些數(shù)字都是2的冪級(jí)數(shù)。
LEDEnumLED 12^0=1LED 22^1=2LED 32^2=4LED 42^3=8LED 52^4=16
這些數(shù)字有一個(gè)特點(diǎn),用他們組合,所產(chǎn)生的每一個(gè)數(shù)字的方式是唯一的。
比如:如果我們把2、4和8相加,就會(huì)得到14,而這些數(shù)字的其他組合不會(huì)產(chǎn)生14。
如果一個(gè)LED是關(guān)閉的,我們用0來表示它。
讓我們來看看我們?nèi)绾伪硎咀帜?"A"。
在第一列中,我們必須關(guān)閉LED1并打開所有其他的LED。因此,我們可以用0(LED1關(guān)閉)+2+4+8+16=30表示。
數(shù)組中的其他元素將是:
列值第1列0 + 2 + 4 + 8 + 16=30第2列1 + 0 + 4 + 0 + 0=5第3列1 + 0 + 4 + 0 + 0=5第4列0 + 2 + 4 + 8 + 16=30第5列0 + 0 + 0 + 0 + 0=0 (所有LED全不亮)
我們?nèi)绾胃鶕?jù)這些數(shù)字來開啟和關(guān)閉LED?
很簡單,你對(duì)數(shù)字和LED的枚舉進(jìn)行按位與運(yùn)算(只有對(duì)應(yīng)的兩個(gè)二進(jìn)位都為1時(shí),結(jié)果位才為1),如果結(jié)果是枚舉,我們就需要打開相應(yīng)的LED。
拿數(shù)字30來舉個(gè)例子:
運(yùn)算結(jié)果LED狀態(tài)30 & 1==1false關(guān)閉LED130 & 2==2true點(diǎn)亮LED230 & 4==4true點(diǎn)亮LED330 & 4==8true點(diǎn)亮LED430 & 16==16true點(diǎn)亮LED5
30二進(jìn)制是11110
這個(gè)概念通常被稱為標(biāo)記的枚舉。
你可以添加更多的字母和數(shù)字。
手動(dòng)生成這些數(shù)組是很難的,所以我做了兩個(gè)應(yīng)用程序方便大家更好更快地生成數(shù)組。
第一個(gè)是用Preact編寫的,它是專門為這個(gè)項(xiàng)目制作的,最多支持5個(gè)LED。
地址:https://pov-display-calc.vercel.app/
第二個(gè)是用Angular編寫的,它可以支持n個(gè)LED。
地址:https://po-v-display-calculator.vercel.app/
你也可以用這倆個(gè)網(wǎng)頁來為其他PoV項(xiàng)目生成代碼。
只要使用這些應(yīng)用程序生成數(shù)組,并將代碼添加到程序中的數(shù)組即可。
PoV顯示電路是相當(dāng)簡單的,可以用下面的電路圖來連接電路。
你可以使用原型電路板來焊接電路。
我已經(jīng)為這個(gè)電路設(shè)計(jì)了一塊PCB。如果你使用的是PCB,那么你就不用做任何布線,只需焊接元件就好了。
PCB文件可以在社區(qū)下載:7塊錢可以做什么?用ATtiny13做一個(gè)非常酷的PoV顯示器! - DF創(chuàng)客社區(qū) - 分享創(chuàng)造的喜悅
焊接好所有部件,加入電池,打開開關(guān),把它連接到可以旋轉(zhuǎn)的東西上,比如一個(gè)微型電機(jī)甚至風(fēng)扇(別忘了根據(jù)角速度調(diào)整代碼中的延遲,這一塊兒可能需要一些試驗(yàn))。
好了,現(xiàn)在你就有一個(gè)元件總成本不到1美元的PoV顯示器了,試試效果怎么樣吧!
祝你玩得開心!
原文鏈接:https://www.hackster.io/B45i/make-a-pov-display-with-attiny13-for-1-e94b25
項(xiàng)目作者: Amal Shajan
中文譯文首發(fā)于DF創(chuàng)客社區(qū)
轉(zhuǎn)載請(qǐng)務(wù)必注明項(xiàng)目出處與原作者信息
新社天津7月24日電 (記者 張道正)中國長城(天津)基地自主安全電腦暨天津網(wǎng)信事業(yè)配套保障產(chǎn)品下線儀式24日在天津高新區(qū)海洋科技園舉行。一座全新的中國國產(chǎn)自主安全電腦智造生產(chǎn)基地至此在天津?yàn)I海高新區(qū)扎根。
中國長城天津基地于2020年6月簽約落戶濱海高新區(qū)海洋科技園,7月開建,僅用近20天時(shí)間,就完成了項(xiàng)目建設(shè)、投產(chǎn)工作,創(chuàng)造了中國長城生產(chǎn)基地建設(shè)史上的“最快紀(jì)錄”。
中國長城(天津)基地網(wǎng)信事業(yè)配套保障體系項(xiàng)目由中國長城旗下天津長城計(jì)算機(jī)系統(tǒng)有限公司承載運(yùn)營。該項(xiàng)目主要服務(wù)華北地區(qū),生產(chǎn)以PKS體系為核心架構(gòu)的國產(chǎn)化自主安全電腦,建設(shè)國產(chǎn)化自主安全數(shù)據(jù)中心,滿足全社會(huì)、多領(lǐng)域、全行業(yè)的自主安全信息化產(chǎn)品需求。項(xiàng)目一期計(jì)劃投資1億元,年產(chǎn)自主安全電腦30萬臺(tái),預(yù)計(jì)年產(chǎn)值18億元人民幣。
作為國家自主創(chuàng)新示范區(qū),天津?yàn)I海高新區(qū)近年來引育了中環(huán)、曙光、360、騰訊、飛騰、麒麟、長城、紫光云、南大通用、神舟通用、金山軟件等一批信創(chuàng)產(chǎn)業(yè)龍頭企業(yè),信創(chuàng)產(chǎn)業(yè)總體營收規(guī)模接近400億元人民幣,形成了國產(chǎn)化特色凸顯,涵蓋“芯片-整機(jī)終端-操作系統(tǒng)-應(yīng)用軟件-信息安全服務(wù)-整體解決方案”的全產(chǎn)業(yè)體系。
天津?yàn)I海高新區(qū)管委會(huì)主任單澤峰表示,中國長城天津基地產(chǎn)品下線,將構(gòu)建起基于“飛騰+麒麟+長城電腦”的全產(chǎn)業(yè)鏈條,進(jìn)一步增強(qiáng)高新區(qū)信創(chuàng)產(chǎn)業(yè)在全國的領(lǐng)先優(yōu)勢。未來,濱海高新區(qū)將為中國電子提供更專業(yè)、高效的貼心服務(wù),助力中國電子發(fā)展更廣泛的布局大產(chǎn)業(yè)、大項(xiàng)目。(完)
聲明:轉(zhuǎn)載此文是出于傳遞更多信息之目的。若有來源標(biāo)注錯(cuò)誤或侵犯了您的合法權(quán)益,請(qǐng)作者持權(quán)屬證明與本網(wǎng)聯(lián)系,我們將及時(shí)更正、刪除,謝謝。