資料介紹
描述
之前...
2017 年,我做了一個名為“人工生命”的項目,該項目使用 8x8 獨角獸矩陣來顯示人工生命形式的網(wǎng)格,這些生命形式會相互繁殖和戰(zhàn)斗。
2022 年,我將項目更新為Artificial Life HD——它使用了 16x16 Unicorn 矩陣以及增強代碼、錯誤修復(fù)和一些額外功能。
因此,我們將在 2023 年與 64x32 LED 面板兼容,并通過人工生命 2 進行大量額外的錯誤修復(fù)、增強/添加功能和優(yōu)化!
讓我們開始吧。
安裝
這可以與Unicorn HAT 、Unicorn HAT HD或大型 LED 面板一起使用。
它還內(nèi)置了一個Unicorn HAT 模擬器,因此它可以在沒有 LED 硬件的情況下運行。
從我的 GitHub克隆 repo 代碼:
git clone https://github.com/LordofBone/Artificial_Life --recurse-submodules
然后運行:
pip install -r requirements.txt
然后到這里安裝 Unicorn HAT 。
對于此處的Unicorn HAT HD 安裝。
最后,這里是 LED 面板安裝。
通過我在 RPi OS Bullseye 64 位上找到的 LED 面板安裝,我發(fā)現(xiàn)我還必須安裝 Pillow 并更改 python 的調(diào)度權(quán)限:
pip install Pillow
sudo setcap 'cap_sys_nice=eip' /usr/bin/python3.9
然后可以運行模擬:
python artifical_life.py
默認情況下,這應(yīng)該會啟動一個 16x16 的模擬獨角獸帽子。這與模擬的其他參數(shù)一起可以配置。
您可以通過設(shè)置來設(shè)置模擬 HAT 的自定義大小:
hat_model = "CUSTOM"
unicorn_simulator = True
hat_simulator_or_panel_size = x, y
盡管應(yīng)該注意模擬器中存在一個錯誤,該錯誤不允許 x 和 y 值彼此不同。
如果您安裝了 Unicorn HAT,您可以更改參數(shù):
hat_model = "HD"
對于 Unicorn HD:
hat_model = "HD"
獨角獸帽子迷你:
hat_model = "MINI"
LED面板:
hat_model = "PANEL"
Unicorn HAT 很可能需要以超級用戶身份運行模擬:
sudo python artificial_life.py
這些也都可以通過 args 傳遞——查看所有可用的 args(下面也提供完整的 args 列表):
python artificial_life.py -h
增強/優(yōu)化
保持像素沉著:
我完全重新設(shè)計了將生命體寫入屏幕/面板/獨角獸 HAT 的方式——之前的工作方式是:
- 邏輯循環(huán)運行
- 每個循環(huán)在顯示器上寫入一個實體位置以及 RGB 值
- 在循環(huán)結(jié)束時,顯示器立即寫出并顯示所有寫入的位置和 RGB 值
當事情運行順利時,它工作得很好;但是循環(huán)開始運行緩慢的運動,即任何低于每秒 10 幀的運動,顯示將變得難以看到每個單獨實體的實際情況,因為整個屏幕會立即改變。
現(xiàn)在有一個完全不同的子模塊與主程序一起檢出:Pixel Composer 。
注意:使用 Pixel Composer 更改值時請小心,它可能會導(dǎo)致閃光,尤其是在非常明亮的 LED 面板上。
這由現(xiàn)在被寫入包含它們的位置和顏色的“世界空間”字典的實體起作用(現(xiàn)在保存為 R、G、B 的浮點值而不是 0-255),然后將其復(fù)制到“渲染平面”中' 在 Pixel Composer 中,然后異步運行以將渲染平面中當前的內(nèi)容顯示到幀緩沖區(qū),然后將其寫出到屏幕。
從本質(zhì)上講,這意味著不必等待整個過程循環(huán)完成才顯示出來,每個生命形式的位置將在顯示上同時移動,同時它們在所有生命形式的循環(huán)中移動——即使整個循環(huán)需要 10 秒來處理所有事情,您仍然能夠清楚地看到生命形式的每一個動作,而不是每一個都同時移動。
最重要的是,這還允許一些很酷的額外效果,例如運動模糊、照明和背景著色器,例如雨效果和其他類似的時髦東西。
還有全屏著色器——我無意中發(fā)現(xiàn)它允許通過傳遞一個數(shù)字來顯示各種很酷的圖案:
class FullScreenPatternShader(ConfigurableShaderSuper):
def __init__(self, count_number=0, count_number_max=32, count_number_step_up=1, count_number_step_down=1,
addition_shader=True, invert_count=True, shader_colour=(0.5, 0.5, 0.5)):
super().__init__(count_number, count_number_max, count_number_step_up, count_number_step_down, addition_shader,
invert_count, shader_colour)
# found this accidentally; I am not entirely sure how this works, but changing the max number that can be stepped
# to will result in various cool effects as well as plus/minus stepping and whether the stepping will reset
# when maxed or count back the other way
def run_shader(self, pixel):
if self.addition_shader:
self.number_count_step_plus()
else:
self.number_count_step_minus()
pixel_alpha = (self.count_number / self.count_number_max) * self.max_float
shaded_colour = self.blend_colour_alpha(pixel, self.shader_colour, pixel_alpha)
return shaded_colour
通過更改count_number_max變量和 shader_colour,可以從看起來像惡魔城游戲背景的靜止列中制作出各種很酷的圖案,或者可以產(chǎn)生看起來像雨等的移動圖案。
還有支柱:
還如前所述 - 它現(xiàn)在使用浮點數(shù)來表示顏色,這基本上允許進行 HDR 渲染;例如光照著色器;僅限于計算 0-255 范圍內(nèi)的照明效果效果不佳。在此處和此處詳細了解為什么會發(fā)生這種情況。我想我的實現(xiàn)與正確的實現(xiàn)相比有很大的缺陷和簡單,但它至少允許更好的顏色/照明模型。
這些浮點值被色調(diào)映射到 0-1 范圍內(nèi),并最終從浮點變?yōu)?RGB,以最終輸出到屏幕/LED。這給了它一些非常漂亮的顏色,并允許單獨設(shè)置亮度 - 總的來說它看起來更漂亮。
所有這些設(shè)置都可以修改并添加到 artificial_life.py 代碼本身,覆蓋 rasterizer.py 文件中的類
現(xiàn)在可以按下 Shift + F 來暫停和取消暫停渲染,而邏輯在后臺繼續(xù)進行。
Shift + G 還將在模擬期間啟用/禁用重力。
Thanos 捕捉現(xiàn)在通過 Shift + T 激活,這是一種隨機移除棋盤上 50% 生命形式的快速方法。
未來的迭代將添加更多命令。
它是作為一個單獨的子模塊制作的,因為我認為這對其他項目很有幫助,所以我可能會在某個時候為此單獨寫一篇文章,進一步詳細說明和修改,以使其更容易集成到其他項目中。
有一種方法可以繞過 Pixel Composer,通過將 -ff 參數(shù)傳遞到 artificial_life.py 主代碼或進入配置/參數(shù)并設(shè)置:
fixed_function = True
這將運行得更快,但看起來不那么漂亮。一旦它們被處理,它將立即保持生命形式的運動——然而,不必等待所有生命形式循環(huán)處理。
現(xiàn)在還可以通過按 Shift + S 顯示當前統(tǒng)計數(shù)據(jù),這也將顯示當前模擬的開始時間。
即使在 8x8 Unicorn HAT 上,原始 AL 代碼也可能變得非常緩慢和滯后,通過一系列優(yōu)化,我能夠添加功能并使其即使在 16x16 板上運行也更加流暢。現(xiàn)在已經(jīng)進行了進一步的優(yōu)化,以允許在 64x32 板上更快地運行并具有新功能。
一個主要的優(yōu)化是改變碰撞/生成代碼的工作方式,以前這是通過以下方式工作的:
- 檢測到與另一個生命形式/顯示器邊緣的碰撞
- 隨機選擇的新方向
- 檢查這個新的碰撞方向
- 重復(fù)直到找到新的無碰撞方向或嘗試所有方向
這行得通,但它意味著處理可能會在一個生命形式上保留相當長的一段時間,因為所有主要方向都被搜索以尋找一個可以移動到的自由位置。當生命體聚集在一個角落里都在尋找周圍的無碰撞區(qū)域時,這會導(dǎo)致一些延遲。這也類似于尋找新的位置來產(chǎn)生新的生命體。
所以我改變了它,以便將碰撞重新檢查推送到循環(huán)的下一次迭代。這樣一來,無論生命形式如何聚集,它都不必在每個循環(huán)中檢查它周圍的所有方向,這會導(dǎo)致速度減慢,因為每個生命形式都會在屏幕上的所有生命形式的循環(huán)中占用處理時間。
所以現(xiàn)在它像這樣工作:
- 基于當前運動的碰撞檢查
- 如果空閑位置,移動到那個位置
- 如果不是空閑位置,選擇一個新的方向,下次循環(huán)到達這個生命體時將處理,并繼續(xù)處理隊列中的下一個生命體
這意味著循環(huán)將繼續(xù)并且其他生命形式將被處理,從而很好地加快速度并導(dǎo)致更平滑的運動,同時還保持生命形式碰撞和彈開屏幕/其他物體邊緣的能力。反彈功能在功能上是相同的,而且運行速度更快。涼爽的。
此外,我還使 DNA 混沌代碼更加高效,以便在繁殖另一種生命形式時,來自任何一種生命形式的 DNA 仍然是父生命形式的混合體,但希望運行速度更快的代碼,從而減少非常繁忙區(qū)域的滯后。
我還嘗試將盡可能多的代碼移動到一個函數(shù)“進程”中,以嘗試避免函數(shù)調(diào)用的時間損失——我相信函數(shù)調(diào)用可以加起來,并且在這樣的程序中,任何時候都可以進行生命形式處理越快越好——雖然我對這件事可能是錯的,但到目前為止,連同其他優(yōu)化,這讓事情運行得更好;特別是對于 64x32 板,它可以完全填充 2048 種生命形式,所有這些都需要處理。
我還刪除了允許生命形式相互堆疊的設(shè)置(因此每個像素有多個生命形式),因為這既昂貴又緩慢,但如果我能找到更優(yōu)化的方法,我可能會返回此功能。
Minecraft 模式也已被刪除,因為 MC 似乎不再與 Raspberry Pi OS 打包在一起,即便如此,該功能仍需要大量工作和改進,這是未來將要研究的內(nèi)容。
我還添加了:
- 可開采資源,在棋盤上被視為紅色方塊,包含大量可以開采的“資源”,從中開采的生命體可以保留資源并用它們建造城墻
- 可以由生命形式建造的墻將保持靜止,除非足夠強大的生命形式將它們擊倒并獲得資源,這些墻也需要資源來建造;這樣生命形式就可以推倒墻壁并從收集到的資源中建造新的墻壁。如果它們不夠堅固,它們會從墻上彈開
- 添加了額外的動量和彈跳力,因此當重力打開并且生命形式從某物上反彈時,動量將被考慮在內(nèi),動量也會從一種生命形式轉(zhuǎn)移到另一種
- 此外,我還對生命形式在嘗試改變方向之前可以移動多遠進行了一些更改,以確保它們可以在棋盤空間內(nèi)移動,而不是僅僅不斷地從墻上彈開,因為它們移動變量的時間設(shè)置得太高了
- 輻射,影響生命形式的生存時間以及繁殖時隨機 DNA 變化的機會
- 生命形式繁殖的能力,然后等待它們周圍的自由空間,所以你可以讓一個人在沒有空間的情況下產(chǎn)生新的生命形式,但是當有自由空間時,產(chǎn)生后代;這也適用于墻體建筑
- 現(xiàn)在有一個 BaseEntity 類,生命形式、資源和墻壁用作超類;這意味著將來當我向模擬中添加更多東西時,我可以使用這個超類并在子類中必要時覆蓋它
- 如上所述,添加了鍵盤命令,例如能夠引起 Thanos Snap 和隨機擦除棋盤上 50% 的生命形式(由于 Pixel Composer,還具有很酷的淡入淡出效果)。還有能力提??高/降低輻射、啟用/禁用重力、凍結(jié)渲染和顯示當前統(tǒng)計數(shù)據(jù)
- 有一個重試功能,以便當所有生命形式都過期時模擬重新啟動 - 我現(xiàn)在添加了一個會話開始日期時間戳,可以在統(tǒng)計數(shù)據(jù)中看到。因此,您可以將模擬打開一段時間然后再回來,查看當前會話持續(xù)了多長時間以及它是否仍然是您開始的原始會話
- 在我嘗試保存/加載模擬的當前狀態(tài)的那一刻,代碼中有一些 WIP 的東西,但事實證明這很耗時才能正常工作;這很可能會添加到下一個版本中,但請隨時查看現(xiàn)有代碼
- 一種記憶系統(tǒng),生命形式將在其中繁殖/挖掘/贏得戰(zhàn)斗并記住發(fā)生的位置并嘗試返回到該點。如果在該位置發(fā)生另一個事件,它將在該點的記憶數(shù)量上加 1,如果沒有發(fā)生,它將在該點的記憶數(shù)量上減 1。他們總會回到記憶最積極的那個點。這是為了給生命體一些更有趣的運動行為。記憶也會傳遞給下一代生命體,除非他們‘叛逆’,然后他們從一個干凈的記憶開始;這與“健忘”一起由生命形式的 DNA 決定
- 還有一個'bad memories' dict 變量,目前未使用,但未來會有一個系統(tǒng),生命形式將嘗試避開發(fā)生過不好事情的區(qū)域
- 將 HAT 控制器和 LED 面板控制器代碼從屏幕輸出代碼分離到單獨的模塊中——這是為了允許更多的模塊化添加額外的屏幕/LED 顯示器,而無需更改主代碼/Pixel Composer 中的任何內(nèi)容,并且只有一個在屏幕控制器中實例化不同類的小改動
新的輻射系統(tǒng)在模擬中增加了另一層,輻射設(shè)置可以通過 args 或通過 parameters.py 文件設(shè)置:
initial_dna_chaos_chance = 10
initial_radiation = 0
max_radiation = 90
change_of_base_radiation_chance = 0.001
radiation_dmg_multiplier = 1000
radiation_change = True
DNA 混沌變量設(shè)置在傳遞給生命形式后代時存在的 3 個 DNA 片段中隨機創(chuàng)建新 DNA 的幾率百分比。這現(xiàn)在也受到新輻射水平的影響,輻射越高,隨機 DNA 傳遞的機會就越高——基于這個初始數(shù)字和輻射水平的函數(shù)。
可以設(shè)置最大和初始輻射 - 如果輻射變化處于活動狀態(tài),數(shù)字將在這兩個設(shè)置之間隨機選擇。在模擬過程中,可以分別使用 Shift+R 和 R 增加和減少最大輻射。
如果隨機更改輻射設(shè)置未打開,則這些鍵將調(diào)整當前輻射而不是最大值 - 在這兩種設(shè)置下,當前輻射將在曲線內(nèi)上下移動,根據(jù)當前水平給出一點點變化。
更改設(shè)置受更改機會變量的影響,在處理所有生命形式的每個循環(huán)中,輻射都會發(fā)生變化(保持在最大輻射變量設(shè)置范圍內(nèi))的可能性百分比。
傷害倍數(shù)設(shè)置會影響輻射對生命形式造成的傷害程度;每次處理生命形式時,都會進行一次計算 - 沒有輻射,生命形式的生命有 1 次起飛。但是,對于輻射,可以進行以下計算:
self.time_to_live_count -= percentage(current_session.radiation * args.radiation_dmg_multi, 1)
其中當前輻射乘以輻射傷害乘數(shù)并用作正常 1 傷害的百分比。例如:100 * 1000 的輻射導(dǎo)致百分比為 100000,默認百分比為 1000 - 導(dǎo)致生命形式受到的傷害。
使用以下參數(shù),可以在首次運行時在隨機位置生成許多墻和資源,以及可供生命形式開采的資源——為它們四處導(dǎo)航添加更多有趣的環(huán)境。
在這里你可以看到“采礦設(shè)施”,那里的生命形式群體記得采礦事件發(fā)生的地點,并試圖回到那個地方;所以你會看到他們成群結(jié)隊地坐在采礦資源周圍,看到其他一些人在建造圍墻周圍飛來飛去。
還有一個設(shè)置可以讓生命形式建造自己的墻以及一個倍增器——設(shè)置越高,生命形式建造墻的頻率就越高。
walls = 0
resources = 0
entities_build_walls = True
wall_chance_multiplier = 512
An
模擬開始時生成的一些墻的示例:
還有一整套參數(shù),可以編輯以更改模擬中的各種內(nèi)容,這些參數(shù)位于 config/parameters.py 下:
max_trait_number = 1000000
initial_lifeforms_count = 10
population_limit = 50
max_enemy_factor = 8
logging_level = 'INFO'
initial_dna_chaos_chance = 10
initial_radiation = 0
max_radiation = 90
change_of_base_radiation_chance = 0.001
radiation_dmg_multiplier = 1000
retries_on = False
led_brightness = 0.3
hat_model = "HD"
hat_simulator_or_panel_size = 8, 8
hat_buffer_refresh_rate = 60
refresh_logic_link = True
fixed_function = False
unicorn_simulator = False
radiation_change = True
gravity_on = False
trails_on = False
combine_mode = True
walls = 0
resources = 0
entities_build_walls = True
wall_chance_multiplier = 512
所有這些也可以通過將 args 傳遞給程序來設(shè)置:
-m MAX_NUM, --max-num MAX_NUM
Maximum number possible for any entity traits
-ilc LIFE_FORM_TOTAL, --initial-lifeforms-count LIFE_FORM_TOTAL
Number of lifeforms to start with
-s LOOP_SPEED, --refresh-rate LOOP_SPEED
The refresh rate for the buffer processing, also sets
a maximum speed for the main loop processing, if sync
is enabled (this is to prevent the display falling
behind the logic loop)
-p POP_LIMIT, --population-limit POP_LIMIT
Limit of the population at any one time
-me MAX_ENEMY_FACTOR, --max-enemy-factor MAX_ENEMY_FACTOR
Factor that calculates into the maximum breed
threshold of an entity
-dc DNA_CHAOS_CHANCE, --dna-chaos DNA_CHAOS_CHANCE
Percentage chance of random DNA upon breeding of
entities
-shs CUSTOM_SIZE_SIMULATOR [CUSTOM_SIZE_SIMULATOR ...], --simulator-hat-size CUSTOM_SIZE_SIMULATOR [CUSTOM_SIZE_SIMULATOR ...]
Size of the simulator HAT in pixels; to use pass in
'-shs 16 16' for 16x16 pixels (x and y)
-c, --combine-mode Enables life forms to combine into bigger ones
-tr, --trails Stops the HAT from being cleared, resulting in trails
of entities
-g, --gravity Gravity enabled, still entities will fall to the floor
-rc, --radiation-change
Whether to adjust radiation levels across the
simulation or not
-w WALL_NUMBER, --walls WALL_NUMBER
Number of walls to randomly spawn that will block
entities
-rs RESOURCES_NUMBER, --resources RESOURCES_NUMBER
Number of resources to begin with that entities can
mine
-r RADIATION, --radiation RADIATION
Radiation enabled, will increase random mutation
chance and damage entities
-mr MAX_RADIATION, --max-radiation MAX_RADIATION
Maximum radiation level possible
-rm RADIATION_DMG_MULTI, --radiation-multi RADIATION_DMG_MULTI
Maximum radiation level possible
-rbc RADIATION_BASE_CHANGE_CHANCE, --radiation-base-change RADIATION_BASE_CHANGE_CHANCE
The percentage chance that the base radiation level
will change randomly.
-be, --building-entities
Whether lifeforms can build static blocks on the board
-wc WALL_CHANCE_MULTIPLIER, --wall-chance WALL_CHANCE_MULTIPLIER
Whether lifeforms can build static blocks on the board
-rt, --retry Whether the loop will automatically restart upon the
expiry of all entities
-sim, --unicorn-hat-sim
Whether to use the Unicorn HAT simulator or not
-hm {SD,HD,MINI,PANEL,CUSTOM}, --hat-model {SD,HD,MINI,PANEL,CUSTOM}
What type of HAT the program is using. CUSTOM only
works with Unicorn HAT Simulator
-l {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}, --log-level {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}
Logging level
-sl, --sync-logic Whether to sync the logic loop to the refresh rate of
the screen
-ff, --fixed-function
Whether to bypass pixel composer and use fixed
function for drawing (faster, less pretty)
允許完全自定義體驗和更輕松地分發(fā)代碼,而無需傳遞任何參數(shù),同時還允許在必要時通過 args 快速命令行級別調(diào)整。
更有趣的運動
隨著新的記憶系統(tǒng)的到位導(dǎo)致生命形式返回“獎勵區(qū)域”,運動變得更加多樣化,而不僅僅是最終變成半可預(yù)測的結(jié)束狀態(tài)的隨機模式,生命形式現(xiàn)在移動并以真正出乎意料的方式重新安排自己方法。
撞墻
當開始模擬有墻的地方時,它可以真正改變生命形式的移動位置,并可以形成單獨的區(qū)域,在那里它們被隔離或必須在結(jié)構(gòu)周圍導(dǎo)航。
輻射 23
輻射系統(tǒng)為生命形式提供了另一個可選級別,因此現(xiàn)在隨著輻射影響 DNA 的傳遞以及每種生命形式的壽命,模擬比以前更難預(yù)測。
?
- 使用8x8 LED矩陣制作Magic Eyes
- 如何將字節(jié)發(fā)送到8x8 LED矩陣
- Arduino趕上節(jié)拍8x8 LED矩陣
- 8X8矩陣LED蛇游戲(HTML5 Web Socket)
- 帶有74HC138芯片的五個矩陣(8x8)鍵盤
- 使用8x8紅/綠LED矩陣構(gòu)建的蛇游戲
- 使用8x8 紅/綠LED矩陣構(gòu)建的突圍游戲
- 8片菊花鏈式WS2812B 8x8 RGB LED矩陣開源
- 行列掃描DIY 8x8 LED矩陣
- 數(shù)碼管順序顯示和8x8點陣及矩陣鍵盤的數(shù)據(jù)庫資料免費下載 6次下載
- 如何使用51單片機實現(xiàn)8x8點陣顯示的程序免費下載
- 8X8矩陣燈的介紹和C語言源代碼的詳細資料免費下載 24次下載
- 8X8點陣LED顯示屏字模提取軟件(測試版) 0次下載
- 獨角獸FPV穿越機架說明書 0次下載
- TEC6122共陰極8X8段LED數(shù)碼管(8X8 點陣)顯示
- LED數(shù)碼管顯示原理詳解 5423次閱讀
- led點陣8×8滾動顯示原理_led點陣屏編程 2.2w次閱讀
- 使用單片機實現(xiàn)8X8點陣LED顯示技術(shù)的資料說明 6307次閱讀
- 使用8X8點陣LED顯示數(shù)字0到9的設(shè)計說明 2.4w次閱讀
- 單片機點陣式LED簡單圖形顯示技術(shù)的實驗資料概述 3595次閱讀
- dfrobot8x8 RGB LED Matrix 點陣模塊簡介 4093次閱讀
- 微雪電子4x4矩陣式按鍵模塊小鍵盤簡介 2777次閱讀
- 基于MAX7219芯片的LED數(shù)碼顯示電路設(shè)計 3197次閱讀
- 制作一個8X8X8光立方的詳細資料和程序概述 2.2w次閱讀
- 2019年中國人工智能產(chǎn)業(yè)準獨角獸行業(yè)排行榜 1764次閱讀
- AT89S51單片機對8X8點陣LED的控制設(shè)計 4498次閱讀
- 利用Arduino制作8×10 LED矩陣 8489次閱讀
- 一種用 74hc138 和 74hc595 驅(qū)動 8x8 點陣顯示技術(shù) 1w次閱讀
- 2017獨角獸名單第一竟是它_2017獨角獸企業(yè)排名預(yù)覽 1.2w次閱讀
- 單片機8x8矩陣鍵盤原理說明 2.5w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多