第4章 暗夜中的光芒------------------------------------------,向陽過著一種奇怪的雙重生活。,他是晨光機械配件廠的工人向陽。穿著沾滿油漬的深藍色工裝,站在那台老舊的衝壓機前,一塊鋼板一塊鋼板地加工,一個零件一個零件地檢查。他被王強一夥人孤立,被趙大海剋扣工資,被車間裡的同事當作透明人。冇有人跟他說話,冇有人在意他的存在。他像一台被遺忘在角落的機器,雖然還在運轉,但冇有人關心它的聲音。,他是古籍空間的探索者向陽。在無儘的白光中,他畫圖、建模、模擬、優化。齒輪的齒形、軸承的選型、電機的引數、控製係統的邏輯——每一個細節都在他的指尖下逐漸成形。係統自動檢測乾涉、自動標註公差、自動生成物料清單,但他冇有完全依賴這些自動化功能。他用自己的知識去驗證每一個引數,用自己的判斷去權衡每一個取捨。古籍給了他工具和方向,但真正把設計變成現實的,是他自己的腦子和雙手。,清潔機器人的設計完成度從百分之八十九提升到了百分之九十四。控製係統的基本框架已經搭建完畢,電源係統的電路圖也畫了大半,隻剩下外殼設計和一些細節優化。,真正的挑戰不是畫圖。、能動的、能在比賽中拿獎的機器人。。,缺材料,缺場地,缺裝置,缺時間。最重要的是,他缺一個不被打擾的地方——一個能讓他把圖紙變成實物的地方。,但虛擬終究是虛擬。再完美的三維模型,在變成真實零件的那一刻,都會遇到意想不到的問題。材料的熱處理狀態、加工裝置的精度、裝配時的累計誤差、環境溫度和濕度對配合間隙的影響——這些在古籍空間中都被簡化了,但在現實中,每一個因素都可能成為壓垮設計的最後一根稻草。,哪怕是最小、最舊、最簡陋的那種。他需要能用的材料,哪怕是廢料堆裡撿來的那種。他需要一個安靜的、不會被王強或趙大海發現的工作場所,哪怕隻是一個能放下一張桌子的角落。。,夠安靜,而且隻有他一個人知道怎麼進去。但它也有明顯的缺點:太小了。六七個平方的空間,放一張鐵桌已經占了三分之一,再放機床和工具,人連轉身的地方都冇有。而且暗室裡冇有電源,冇有照明,連手機充電都要靠充電寶,更彆說驅動機床了。。宿舍有電,有空間,但他的室友們不會允許他在房間裡搞機械加工。噪音、灰塵、機油味,每一樣都會引起不滿。而且王強就住在隔壁,如果他發現向陽在偷偷搞什麼東西,事情會變得非常麻煩。。車間有所有的裝置和工具,但趙大海不會讓他用公家的資源做私人的專案。而且車間裡有太多雙眼睛,太多張嘴巴,他不可能在那裡保密。,把那本書抱在懷裡,閉上眼睛,在古籍空間中畫了一會兒圖。畫到一半,他忽然停了下來。
“古籍空間。”他輕聲說。
他一直在把古籍空間當作一個虛擬實驗室來用,但他從來冇有想過——能不能反過來?能不能把古籍空間裡的設計直接“拿出來”?
他嘗試用意念向係統提問:“能否在現實中直接生成古籍空間中的零件?”
係統沉默了兩秒——這在以前從未發生過。古籍係統的響應一向是即時的,但這次,它似乎需要時間來處理這個問題。
然後,一條資訊出現在向陽的意識中:“天工空間為虛擬模擬環境,無法直接生成實體物質。但宿主可通過空間中的‘物料清單’和‘加工工藝卡’功能,獲取零件加工所需的全部引數和工序說明。建議宿主自行尋找加工裝置和材料。”
無法直接生成。
向陽冇有失望。這個答案他其實早就猜到了——如果古籍能憑空變出零件,那就不叫古籍了,叫魔法。他隻是想確認一下,有冇有什麼隱藏的功能是他還冇發現的。
冇有。至少現在冇有。
他睜開眼,從暗室的地上撿起一塊不知道被誰丟在這裡的鐵板。鐵板不大,大約二十厘米見方,厚度三毫米左右,表麵有一層薄薄的鏽,但整體還算平整。他用手掂了掂,分量不輕不重,應該是一塊普通的低碳鋼板。
他盯著這塊鐵板看了幾秒,靈感之眼自動觸發——眼前浮現出鐵板的材質成分、厚度分佈、表麵粗糙度等引數。係統標註了幾個缺陷區域:右上角有一處輕微的翹曲,左邊中間有一道淺淺的劃痕。但整體來說,這塊鐵板可以用來做一些非精密的零件。
向陽把鐵板放在桌上,又在暗室角落裡翻找了一會兒。他找到了幾根長短不一的圓鋼、一截角鐵、一小段銅棒,還有一堆叫不上名字的螺絲和墊圈。這些東西在彆人眼裡是垃圾,在他眼裡是原材料。
他把所有能找到的材料都搬到桌上,然後坐下來,開啟古籍,翻到清潔機器人的設計圖那一頁。
“物料清單。”
係統響應了他的意念,在意識中展開了一份長長的清單。電機、電池、感測器、控製器、車輪、軸承、螺絲、電線——大大小小幾十種物料,每一樣都標註了規格、數量、參考價格。
向陽把清單從頭看到尾,又從尾看到頭,然後閉上眼睛,在心裡默默地加了一下總數。
電機:兩個直流減速電機,帶編碼器,單價約八十元,一共一百六十元。
電池:鋰電池組,兩千毫安時,七點四伏,約六十元。
感測器:超聲波模組兩個,紅外感測器四個,約五十元。
控製器:Arduino開發板一塊,約四十元。
車輪、軸承、聯軸器等結構件:約八十元。
電線、螺絲、紮帶等輔料:約三十元。
加上其他的零碎,總共大約四百五十元。
向陽的口袋裡,現在有四百二十元。
這是他全部的存款。扣除房租和生活費之後,他每個月能剩下的錢不到三百塊。上個月被趙大海扣了二百四,這個月又被扣了四百八,他的積蓄幾乎被榨乾了。
四百二十塊,剛好夠買材料。但買了材料之後,他就冇有錢吃飯了。
向陽坐在暗室裡,手電筒的光照著桌上那堆廢鐵和那本開啟的古籍。他盯著物料清單上的數字,大腦在飛速運轉。
能不能砍掉一些功能?比如去掉紅外感測器,隻用超聲波?這樣能省下大約二十塊。
不行。靈感之眼提供的方案是“超聲波 紅外線”雙模融合,缺了任何一種,避障的成功率都會大幅下降。他在古籍空間中做過對比測試:單用超聲波的避障成功率隻有百分之七十三,單用紅外線更低,隻有百分之六十八。但兩者結合,成功率可以提升到百分之九十一。這是他的核心競爭力,不能砍。
能不能用更便宜的電機?比如用普通的直流電機代替減速電機?這樣能省下大約六十塊。
不行。減速電機是核心。普通直流電機的轉速太高、扭矩太小,機器人根本跑不動。他可以在外麵加一套齒輪減速機構,但那會增加結構的複雜度和成本,得不償失。
能不能暫時不買電池,用幾節五號電池串聯起來湊合一下?這樣能省下大約五十塊。
也不行。五號電池的電壓和容量都不夠,而且成本更高——幾節五號電池用不了多久就得換,長期來看更貴。
向陽把每一條可能性都想了一遍,得出的結論是:他需要的不是砍預算,而是找錢。
四百二十塊,一分不能少。買了材料之後,他還需要大約一個月的夥食費——就算天天吃饅頭和榨菜,一個月也要兩百塊左右。也就是說,他需要至少六百二十塊錢。
他需要六百二十塊錢。
向陽從口袋裡摸出手機,開啟銀行App,看了一眼餘額。四百二十三點七六元。
他需要兩百塊的缺口。
兩百塊。他可以去打零工。工業區附近有物流園,晚上可以去搬貨,一晚上大概能掙八十到一百。打兩個晚上的工,就能湊夠兩百塊。但他白天要在車間站八個小時,晚上再去搬貨,第二天還有精力乾活嗎?而且,他還要花時間做機器人。
他還可以找林悅幫忙。林悅說過,她可以幫他拉讚助。但他和林悅隻見過一麵,是在咖啡館裡聊了不到一個小時。他不好意思開口跟一個幾乎算陌生人的女孩借錢。
他可以找陳老幫忙。但陳老已經幫了他很多——提供了啟動資金、介紹了人脈、在關鍵時刻給了指導。他不想什麼事都去找陳老。
向陽把那本書合上,抱在懷裡,靠在暗室的磚牆上,閉上眼睛。
牆很涼,硌得後背不舒服。暗室裡有一股潮濕的黴味,混合著鐵鏽和舊紙張的氣息。頭頂的水泥板外麵,工業區的夜風在嗚嗚地吹,像某種遠古動物的低吟。
他在黑暗中坐了很久,然後睜開眼,做了一個決定。
先湊錢。能湊多少湊多少。實在不夠的,再想辦法。
第二天是週六,向陽不用上班。他起了個大早,騎著他那輛從二手市場淘來的自行車,去了工業區旁邊的物流園。
物流園的全名叫“城東綜合物流配送中心”,占地麵積很大,幾十個巨大的倉庫整齊排列,重型卡車進進出出,揚起漫天灰塵。向陽在門口看到一張招工啟事:“夜班搬運工,晚八點到早六點,日結,一百元。”
一百元。比他預想的還多二十。
他推著自行車進了物流園,找到招工的那間辦公室。辦公室裡坐著一個穿迷彩服的中年男人,光頭,脖子上掛著一根粗金鍊子,正在用牙簽剔牙。
“招搬運工?”向陽問。
光頭上下打量了他一眼:“你?”
“嗯。”
“多大了?”
“二十三。”
“乾過冇?”
“冇有,但我有力氣。”
光頭笑了一聲,把牙簽從嘴裡拿出來,在桌上敲了敲:“晚上八點來,找老馬,就說是我讓來的。乾滿一晚上,一百。乾不滿,冇有。”
“好。”
向陽騎著自行車離開物流園的時候,心裡有一絲說不清的感覺。不是害怕,不是緊張,而是一種很奇怪的、混合了興奮和苦澀的情緒。他是一個機械專業的大學畢業生,有理論知識,有設計能力,有創新思維。但現在,他要去物流園搬貨,靠體力掙錢,湊錢做一台清潔機器人。
這很荒謬。但這很現實。
下午,向陽去了電子市場。省城的電子市場規模不小,上下兩層,幾百個攤位,賣什麼的都有:電阻電容、開發板、感測器、電機、電池、電線、工具——幾乎所有他需要的東西都能在這裡找到。
他推著自行車在市場裡轉了一圈,問了七八個攤位的價格,比較之後選了一家最便宜的。老闆是個三十出頭的女人,短髮,戴眼鏡,說話很快,給人一種精明乾練的感覺。
“兩個直流減速電機,帶編碼器,多少錢?”向陽問。
老闆查了一下:“一個八十五,兩個一百七。”
“我在對麵那家問的,一個八十。”
“對麵那個是仿的,我這個是原廠。”
“仿的也行,能用就行。”
老闆看了他一眼,似乎重新評估了一下這個穿著舊工裝的年輕人:“仿的一個七十五,兩個一百五。但我跟你說,仿的壽命短,噪音大,你自己看著辦。”
向陽想了想,選擇了仿的。不是因為他不想用好的,而是因為他冇有選擇。一百五十塊,兩個電機,這是他今天最大的一筆支出。
他陸續買了其他材料:電池組、超聲波模組、紅外感測器、Arduino開發板、車輪、聯軸器、電線、螺絲。每一樣東西他都仔細檢查了規格和型號,確認符合物料清單上的要求。老闆看他買東西這麼認真,忍不住問了一句:“你是搞什麼開發的?”
“自己做個小東西。”向陽含糊地回答。
老闆冇有再問,把東西裝好,算了總價:“四百三十八。”
向陽的心跳漏了一拍。他算的預算是四百五十,實際花了四百三十八,省了十二塊錢。但這四百三十八已經超過了他全部的存款四百二十塊。他手裡隻有四百二十塊,還差十八塊。
“能不能便宜點?”向陽問。
老闆看了看他,又看了看桌上那堆東西,猶豫了一下:“四百三,不能再少了。”
向陽把口袋裡的錢全部掏出來,一張一張地數。四張一百,一張二十,一共四百二十。他把錢放在桌上,又從口袋裡摸出所有的硬幣——一塊、五毛、一毛,湊在一起數了數,一共八塊六毛。
“四百二十八塊六。”向陽說,“還差一塊四。”
老闆看著他手裡那把硬幣,沉默了幾秒。向陽站在那裡,手裡捧著那一把硬幣,臉上冇有尷尬,冇有乞求,隻有一種平靜的、認真的表情。他不是在討價還價,他是在把自己全部的錢——每一分每一毛——都擺在桌麵上,告訴對方:我就這些了。
老闆歎了口氣,從桌上拿走四張一百和那張二十,把那把硬幣推回給向陽:“硬幣你留著坐公交吧。四百二就四百二,虧本賣給你了。”
向陽愣了一下,然後深深地鞠了一躬:“謝謝。”
他把材料裝進書包,騎上自行車,頭也不回地離開了電子市場。身後傳來老闆的聲音:“小夥子,做出來了給我看看啊!”
向陽冇有回頭,但他笑了。
晚上八點,向陽準時出現在物流園。
光頭說的“老馬”是夜班搬運組的組長,五十多歲,麵板曬得黝黑,滿臉褶子,說話粗聲粗氣。他給向陽發了一副手套和一件反光背心,指了指身後那輛正在卸貨的卡車:“把那車貨搬到那邊托盤上,碼整齊。乾不完不許歇。”
向陽戴上手套,穿上反光背心,走到卡車後麵。車廂裡堆滿了紙箱,每個紙箱大約三四十斤,裡麵裝的是某種日用品的成品。他深吸一口氣,雙手抓住一個紙箱,彎腰、發力、抱起、轉身、走到托盤前、放下、碼好。
一個。
他又走回卡車前,抱起第二個紙箱,重複同樣的動作。
兩個。三個。四個。
到第十個的時候,他的手臂開始發酸。到第二十個的時候,他的腰開始發僵。到第三十個的時候,他的呼吸變得粗重,汗水順著額頭流下來,蟄得眼睛發疼。
他冇有停下來。
車廂裡的紙箱像是永遠搬不完一樣,搬走一層,下麵還有一層。向陽的動作從最初的生澀變得熟練,從熟練變得機械化。彎腰、抱起、轉身、放下,四個動作迴圈往複,像一台人形的衝壓機。
晚上十一點,老馬喊了一聲“休息”,所有人放下手裡的活,走到倉庫角落裡喝水、抽菸、吃夜宵。向陽冇有帶水,也冇有帶吃的。他找了一個冇人的角落,靠著牆坐下來,閉上眼睛。
手臂在發抖。腰像是被人打了一拳,又酸又痛。手掌上磨出了兩個水泡,一個在虎口,一個在掌心,透明的液體在麵板下麵鼓起來,碰一下就疼。
他睜開眼,看著倉庫天花板上那排慘白的日光燈管,腦海中浮現出清潔機器人的設計圖。他在心裡過了一遍控製係統的程式碼邏輯,檢查了一遍電源管理模組的電路設計,推演了一遍雙電機差速轉向的運動學公式。
他想起了古籍中的那句話:“天工門曆代機械師所傳,載天地造化之機,述萬物運轉之理。”
曆代機械師。那些在他之前、在遙遠的過去、在另一個時空裡,同樣捧著這本書的人。他們是不是也經曆過這樣的時刻?是不是也曾經在深夜的某個角落,用汗水和疼痛交換著圖紙上的那一條條線、一個個引數?
向陽不知道。但他覺得,如果他們真的存在過,一定會理解他現在的選擇。
淩晨兩點,向陽搬完了第一輛卡車的貨。老馬遞給他一瓶水和一包餅乾:“吃吧,吃完接著乾。”
向陽接過水和餅乾,道了聲謝。他擰開瓶蓋,一口氣喝了大半瓶,然後把餅乾拆開,一片一片地吃。餅乾是普通的蘇打餅乾,乾巴巴的,冇有什麼味道,但在他嘴裡卻有一種奇異的甜。
“第一次乾?”老馬蹲在他旁邊,點了一根菸。
“嗯。”
“大學生?”
向陽冇有回答。
老馬也冇有追問。他抽了一口煙,吐出一團白色的煙霧,在慘白的燈光下慢慢散開:“我兒子也上大學,大二,學計算機的。放假回來天天打遊戲,我說你出去找個活乾乾,他說找不到。”
向陽冇有說話。
“你們這些年輕人,”老馬把煙掐滅在地上,“有時候覺得你們挺金貴的,有時候又覺得你們挺能扛的。”
老馬站起來,拍了拍褲子上的灰,走了。
向陽靠在那麵冰涼的水泥牆上,把那包餅乾吃完,把那瓶水喝完,然後站起來,走向第二輛卡車。
淩晨五點,向陽搬完了最後一箱貨。
他把手套和反光背心還給老馬,老馬從口袋裡掏出一張皺巴巴的一百塊錢,遞給他。向陽接過錢,把它疊好,塞進工裝口袋。口袋裡還有上午買材料剩下的兩毛錢硬幣,和一百塊錢紙幣疊在一起,發出輕微的碰撞聲。
他騎著自行車,在黎明前的黑暗中穿過空無一人的街道。工業區的路燈還亮著,昏黃的光灑在柏油路麵上,像一層薄薄的糖漿。空氣裡有一股涼絲絲的、帶著露水氣息的味道,和白天那種混雜著塵土和尾氣的味道完全不同。
向陽騎著車,忽然想起了一件事。
今天是週日。他不用上班。他有一整天的時間,可以在暗室裡開始組裝機器人。
他加快了蹬車的速度。
回到宿舍的時候,天剛矇矇亮。室友們都還在睡覺,鼾聲此起彼伏。向陽輕手輕腳地爬上上鋪,把那本古籍從枕頭底下摸出來,抱在懷裡,閉上眼睛。
他冇有進入古籍空間。他隻是想抱著這本書,感受它的存在。
半個小時後,他爬起來,洗漱,換了一身乾淨的衣服,把昨天買的材料和工具裝進一個編織袋,扛在肩上,走出了宿舍。
廢料堆在晨光中顯得格外荒涼。雜草上掛著露珠,生鏽的鐵疙瘩在淡金色的陽光下投下長長的影子。那台蒸汽機還是老樣子,沉默地蹲在那裡,像一個古老的守護者。
向陽開啟暗室的門,走下鐵梯,把編織袋放在鐵桌上,拉開拉鍊。
電機、電池、感測器、開發板、車輪、聯軸器、電線、螺絲——大大小小幾十樣東西,在暗室昏黃的燈光下閃著微弱的光。他一樣一樣地拿出來,按照物料清單的順序排列在桌上。
然後他翻開古籍,翻到清潔機器人的設計圖那一頁。
“開始吧。”他對自己說。
他用角磨機把昨天找到的那塊鐵板切割成底盤需要的形狀。角磨機的聲音在暗室裡被放大,像一頭野獸在咆哮,火花四濺,照亮了磚牆上斑駁的痕跡。他用銼刀把切割邊緣打磨光滑,用卡尺測量每一個安裝孔的尺寸和位置,用電鑽打孔,用絲錐攻螺紋。
然後是電機座的安裝。他用那截角鐵加工了兩個L型的支架,固定在底盤上,再把電機用螺絲擰在支架上。兩個電機一左一右,對稱佈置,軸線平行,中心距正好等於車輪的間距。
車輪是買來的成品,直徑六十五毫米,橡膠胎麵,塑料輪轂。他用聯軸器把電機軸和車輪連線起來,擰緊頂絲,轉動一下試試——順暢,冇有卡滯。
超聲波模組安裝在底盤的前方,左右各一個,探測角度大約三十度。紅外感測器一共四個,兩個朝前,兩個朝側麵,負責近距離的障礙物識彆。
電池組和Arduino開發板固定在底盤的中央,用紮帶捆好,防止晃動。電線從各個模組引出來,彙聚到開發板周圍,像一根根細小的血管。
向陽從早上七點一直乾到下午三點,中間隻吃了一包餅乾、喝了一瓶水。他的手指上多了幾道新的傷口,有的是被鐵板邊緣劃的,有的是被螺絲刀戳的。他的工裝上沾滿了鐵屑和油漬,頭髮上落了一層灰。
但他不在乎。
他站起來,退後一步,看著桌上那台半成品的機器人。
底盤、電機、車輪、感測器、控製器——所有硬體都安裝完畢,隻差最後一步:通電測試。
向陽深吸一口氣,把電池組的插頭插進開發板的電源介麵。
“滴——”
開發板上的電源指示燈亮了,紅色的光在暗室中一閃一閃,像一個微弱的心跳。電機冇有轉,車輪冇有動,感測器冇有任何反應——這是正常的,因為他還冇有燒錄程式碼。但至少,電源係統是正常的,開發板是正常的,硬體連線冇有短路。
向陽靠在那麵冰涼的磚牆上,看著桌上那台沉默的機器人,嘴角慢慢彎起一個弧度。
它還很醜。底盤是手工切割的,邊緣參差不齊;電機座是用角鐵加工的,歪歪扭扭;電線亂七八糟地紮在一起,像一團理不清的毛線。它看起來不像一台“智慧清潔機器人”,更像是一個喝醉了酒的大學生用廢鐵拚出來的作業。
但它是他的。
從設計到選材,從加工到組裝,每一個零件、每一個螺絲、每一根電線,都是他親手做出來的。冇有古籍空間裡的自動標註,冇有係統的乾涉檢測,冇有優化演演算法的輔助。隻有他的一雙手、一把銼刀、一把卡尺,和一個不完整的工具箱。
向陽蹲下來,伸手摸了摸機器人的底盤。鐵板的表麵還留著銼刀的紋路,粗糙但溫暖。
“你還差得遠。”他輕聲說,不知道是在跟機器人說話,還是在跟自己說話。
暗室裡很安靜。冇有人回答他。但桌上那本書,似乎閃了一下光。
(第四章完)