精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Ultra96 PYNQ測定織物GSM

使用Ultra96 PYNQ測定織物GSM

2022-11-15 | zip | 0.22 MB | 次下載 | 免費

資料介紹

描述

在織物印花廠的培訓期間,我們注意到由于用于 GSM 測量的傳統(tǒng)方法,大量織物被浪費。GSM(克每平方米)是織物質量的指標,織物行業(yè)使用各種機器和技術在整個制造和印花過程中保持織物的 GSM 一致。

織物 GSM 測量的傳統(tǒng)方法包括切割一塊面積為 0.01 平方厘米的小圓形織物,并使用精密天平測量其重量。這是在拉幅過程中專門完成的,機器的超喂根據(jù)輸入和輸出 GSM 進行控制。

該項目旨在用基于光學的方法取代這種傳統(tǒng)方法。目前,該項目的范圍僅限于單色(白色)平紋斜紋織物。算法也可以應用于具有相當精確度的針織面料)

在 Ultra96 上設置 PYNQ

對于希望以最少的開發(fā)和調試時間實現(xiàn)硬件加速應用程序的任何人,PYNQ是一個不錯的選擇。目前 PYNQ 支持多個板,包括 Ultra96。所以如果你碰巧有一個 Ultra96 或類似的板子,我強烈建議你試試 PYNQ。(根據(jù)我的經(jīng)驗,任何支持 Python 的東西都非常容易使用)

您要做的第一件事是從這里為您的電路板下載 PYNQ 2.3 映像對于 Ultra96,您也可以在 board 的官方網(wǎng)站上找到它

下載后,您可以使用 PYNQ 重新刷新開發(fā)板隨附的 SD 卡。如果您在格式化卡時遇到問題,此視頻展示如何使用 DISKPART for windows 來完成。

安裝后,您應該能夠使用 Ultra96 的 wifi 接入點(pynq_<您的主板的mac地址>)訪問您的 Ultra96。您可以通過從您喜歡的瀏覽器訪問192.168.2.1:9090打開 Jupyter Notebook ,并立即開始開發(fā)。

提示 :

登錄密碼是“xilinx”

獲取 PYNQ 計算機視覺

PYNQ 的計算機視覺庫提供了幾個用于在硬件中加速 OpenCV 功能的覆蓋。目前支持 Filter2D 和擴張操作。(如果你是 Xilinx 的人讀到這篇文章,我希望你們也可以下載可以使用 xfopencv 庫構建的其余疊加層。下載 17gigs 的 SDSoC 來構建疊加層不是我可以用我的第三世界互聯(lián)網(wǎng))

您可以從此處獲取計算機視覺庫。

或者簡單地說,在 Jupyter Notebook 中打開一個終端并輸入,

sudo pip3 install --upgrade git+https://github.com/Xilinx/PYNQ-ComputerVision.git

你就完成了。

?

獲取 PYNQ:BNN 覆蓋

PYNQ 越來越好。Xilinx 的優(yōu)秀人員還提供了一些疊加層,使我們能夠在硬件中運行量化神經(jīng)網(wǎng)絡您可以在他們的GitHub 頁面上閱讀更多相關信息(接下來我們將嘗試訓練我們自己的小型神經(jīng)網(wǎng)絡來識別織物結構,從而使校準更容易。)

sudo pip3 install git+https://github.com/Xilinx/BNN-PYNQ.git (on PYNQ v2.3) 

現(xiàn)在我們已經(jīng)安裝了所有這些花哨的疊加層,讓我們開始做事吧。

機織物的經(jīng)緯紗分離

我們決定使用USB 顯微鏡相機來獲取織物的放大圖像。

盡管它的價格很高,但我們還是能夠獲得令人驚訝的好織物圖像。下圖顯示了機織織物放大后的樣子。

機織織物由沿水平和垂直方向運行的紗線組成。那么有什么比使用可靠的 ol Sobel 過濾器更好的方法來分離它們!Sobel算子用于識別灰度圖像的邊緣(稱為圖像強度函數(shù),其中每個像素僅被賦予一個從最低強度到最高強度的值)。使用這些梯度,可以通過將它們的梯度與相鄰像素的梯度進行比較來找到形成邊緣的像素。我們可以通過將原始圖像與 Sobel X 和 Y 核進行卷積來生成經(jīng)紗和緯紗的子圖像。

?

?
poYBAGNxibSAeZkyAAAUtls_c2c239.jpg
圖 4:Sobel 內核
?

?

Sobel 濾波器 - 使用 Filter2D 覆蓋在 Ultra96 硬件上實現(xiàn)

在我們開始使用硬件加速過濾器 2D 之前,我們需要導入必要的疊加層。讓我們打開一個新的 Notebook 并開始開發(fā)算法。安裝計算機視覺庫時獲得的筆記本中提供了使用疊加層時必須遵循的語法和結構。

提示:自己運行提供的筆記本,看看這些操作與軟件相比有多快!

提示 2 - 如果您在訪問相機時遇到錯誤,請執(zhí)行 Kernel > Restart and Run All。

import cv2 #NOTE: This needs to be loaded first# Load filter2D + dilate overlay
# Load filter2D + dilate overlay
from pynq import Bitstreambs = Bitstream("/usr/local/lib/python3.6/dist-packages/pynq_cv/overlays/xv2Filter2DDilate.bit")bs.download()
import pynq_cv.overlays.xv2Filter2DDilate as xv2
# Load xlnk memory mangager
from pynq import XlnkXlnk.set_allocator_library('/usr/local/lib/python3.6/dist-packages/pynq_cv/overlays/xv2Filter2DDilate.so')mem_manager = Xlnk()

我們還需要從我們的網(wǎng)絡攝像頭捕捉幀。

camera = cv2.VideoCapture(0)
width = 640
height = 480
camera.set(cv2.CAP_PROP_FRAME_WIDTH,width)camera.set(cv2.CAP_PROP_FRAME_HEIGHT,height)

你還需要這個函數(shù)在 Jupyter 中顯示圖像。稍后我們將把這個項目與 Flask 集成,所以我們只需要在初始階段使用它來檢查事情是否正常工作。

import IPython
def imshow(img): 
returnValue, buffer = cv2.imencode('.jpg', img)
IPython.display.display(IPython.display.Image(data=buffer.tobytes()))

讓我們將內核設置為 numpy 數(shù)組。

sobelx = np.ones((480,640),np.uint8)sobely = np.ones((480,640),np.uint8)blur_frame = np.ones((480,640),np.uint8)
#These must be 3x3 since filter2d overlay supports a 3x3 kernel size
kernel_sobelx = np.array([[1.0,0.0,-1.0],[2.0,0.0,-2.0],[1.0,0.0,-1.0]],np.float32)#Sobel Xkernel_sobely = np.array([[1.0,2.0,1.0],[0.0,0.0,0.0],[-1.0,-2.0,-1.0]],np.float32)#Sobel Ykernel_sharp = np.array([[-1.0,-1.0,-1.0],[-1.0,32.0,-1.0],[-1.0,-1.0,-1.0]],np.float32)#sharpkernelb = np.array([[1/16.0,1/8.0,1/16.0],[1/8.0,1/4.0,1/8.0],[1/16.0,1/8.0,1/16.0]],np.float32)#blur
kernelVoid = np.zeros(0)

您將需要這些來運行您的硬件功能。

xFin= mem_manager.cma_array((height,width),np.uint8)
xFbuf= mem_manager.cma_array((height,width),np.uint8)
xFout= mem_manager.cma_array((height,width),np.uint8)
blur = mem_manager.cma_array((height,width),np.uint8)

讓我們開始應用 sobel 過濾器。

# Flush webcam buffers (needed when rerunning notebook)
for _ in range(5):    
    ret, frame_in = camera.read()# Read in a frame
ret, img = camera.read()
if ret:    
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #Convert color image from webcam to grayscale image
    xFin[:]  = gray[:] # load grayscale image to frame in buffer
    xv2.filter2D(xFin, -1, kernelb, xFout, borderType=cv2.BORDER_CONSTANT) #See how easy it is to call the overlay!
    blur_frame[:] = xFout[:]
    imshow(blur_frame) #Display gaussian blurred image
    blur[:] = xFout[:]
    xv2.filter2D(blur, -1, kernel_sobelx, xFbuf, borderType=cv2.BORDER_CONSTANT) #convolve with sobel x filter
    xv2.filter2D(xFbuf, -1, kernelVoid, xFout, borderType=cv2.BORDER_CONSTANT)
    sobelx[:] = xFout[:]
    xv2.filter2D(blur, -1, kernel_sobely, xFbuf, borderType=cv2.BORDER_CONSTANT) #convolve with sobel y filter
    xv2.filter2D(xFbuf, -1, kernelVoid, xFout, borderType=cv2.BORDER_CONSTANT)
    sobely[:] = xFout[:]
    imshow(sobelx)
    imshow(sobely)  
    
else:    
    print("Error reading frame from camera.")

?

輸出

?
pYYBAGNxibaAIx3uAADSPptzv34876.png
圖 5:高斯模糊。
?

由于我們需要強烈的模糊來去除紗線的細線部分,因此通過使用相機的焦距調整,輸入圖像略微失焦。

?

?

?
pYYBAGNxibiAVbEEAADkqNBuMdA300.png
圖 6:索貝爾 X
?

?

?

?
poYBAGNxibuAHzSWAADXeAGXMbM024.png
圖 7:索貝爾 Y
?

?

通過一些額外的形態(tài)變換和閾值處理,我們可以很容易地獲得黑色背景上的白色條紋的經(jīng)紗和緯紗。

由于我們需要獲取經(jīng)紗和緯紗的數(shù)量,因此我們不得不使用一些耗時的軟件功能。(回想一下我們使用上面的代碼獲得的 sobelx 和 sobely 圖像)

warpcount = 0
weftcount = 0
warparea = 0
weftarea = 0
draw_warp = 1
draw_weft = 1
warp_perimeter_thresh = 800
weft_perimeter_thresh = 800
############ This part should come after obtaining sobelx and y images##########
if draw_warp:      
    im2x, contoursx, hierarchyx = cv2.findContours(sobelx,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) 
    for cnt in contoursx:        
        perimeter = cv2.arcLength(cnt,True) 
            if perimeter > warp_perimeter_thresh:          
                cv2.drawContours(img, cnt, -1, (204,50,153), 2)          
                warpcount = warpcount+1          
                warparea = +cv2.contourArea(cnt)
if draw_weft:      
    im2y, contoursy, hierarchyy = cv2.findContours(sobely,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) 
    for cnt in contoursy:        
        perimeter = cv2.arcLength(cnt,True) 
        if perimeter > weft_perimeter_thresh:          
            cv2.drawContours(img, cnt, -1, (0,0,255), 2)          
            weftcount = weftcount+1          
            weftarea = +cv2.contourArea(cnt)
mem = "Warp Yarns : "+str(warpcount)
mem1 = "Warp Pixel Area : "+str(warparea)+ " pixels"
mem2 = "Weft Yarns : "+str(weftcount)mem3 = "Weft Pixel Area : "+str(weftarea)+ " pixels"
areatot = (warparea+weftarea)
mem4 = "Totalized Pixel Area : "+str(areatot)+ " pixels"
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,mem,(5,370), font, 1,(0,255,0),2,cv2.LINE_AA)
cv2.putText(img,mem1,(5,400), font, 1,(255,100,100),2,cv2.LINE_AA)
cv2.putText(img,mem2,(5,430), font, 1,(0,255,0),2,cv2.LINE_AA)
cv2.putText(img,mem3,(5,460), font, 1,(255,100,100),2,cv2.LINE_AA)
cv2.putText(img,mem4,(5,30), font, 1,(255,0,0),2,cv2.LINE_AA)
imshow(img)

這是輸出。這部分有點資源密集,但我們的幀速率已經(jīng)限制在 25FPS(由于它是 USB 攝像頭),所以它不會對我們產(chǎn)生太大影響。

?
pYYBAGNxib6ADbfaAAIVlvtM5vw848.png
圖 8:繪制輪廓
?

至此,我們已經(jīng)得到了經(jīng)紗和緯紗的支數(shù)(我們可以直接用這些來得到紗線密度,也就是單位面積的紗線數(shù)量),以及紗線的總像素數(shù)。由于在不知道給定織物類型的每個像素質量的情況下,無法從像素數(shù)量估計紗線質量,因此我們可以簡單地使用具有已知 GSM 的織物樣本進行校準。

舉個例子。上面顯示的織物樣品是 110GSM。讓我們結合它來校準我們的算法來測量這種織物類型的 GSM。

gsm = (areatot/27747)*110mem5 = "Predicted GSM : "+str(gsm)+ " GSM"
cv2.putText(img,mem5,(5,60), font, 1,(255,0,0),2,cv2.LINE_AA)

讓我們再次運行代碼并提供同一織物不同部分的圖片。

?

?
pYYBAGNxicGAfya4AAIWV5Ld-xY747.png
圖 9:預測的 GSM
?

預測的 GSM 很接近,但可以觀察到一點偏差。校準后,我們??必須確保傳感器和織物之間的距離在移動到不同區(qū)域時不會發(fā)生變化。這促使我們開發(fā)了本文后半部分所示的 XY cartecean 滑塊系統(tǒng)。

針織面料測試

針織物的織物結構更復雜,以便以這種方式捕捉。然而,如下圖所示,我們可以在一側捕獲交織在一起的紗線簇(稱為環(huán))。

?
poYBAGNxicOAQZHzAAFZpQU-WI0519.png
圖 10:嘗試對針織品進行紗線檢測
?

所以我們大概可以在這些紗線簇和質量之間建立關系。為此,我們需要更改我們的算法以僅找到垂直邊緣。

回憶一下 draw_warp 和 draw_weft 控制變量。我們可以將其中一個設置為零。

?

使用 PYNQ 使我們的算法更智能:BNN

如果我們的算法能夠在校準過程中識別出機織織物和針織物,它就可以輕松適應不同的織物結構。讓我們利用 PYNQ BNN 覆蓋來加快推理速度。

(在 Ultra96 上安裝 BNN 后,請務必查看示例筆記本以熟悉自己)

為了在我們的數(shù)據(jù)集上訓練提供的模型,我們需要使用我們相對更強大的計算機一段時間。(我是在 Linux 上完成的)所以將 PYNQ:BNN 存儲庫克隆到你的電腦上。

您需要按照此處的說明安裝 Theano、Lasagne、Pylearn2 和其他一些必需的軟件包由于我們的數(shù)據(jù)集很小,我們現(xiàn)在不需要 CUDA 來進行 GPU 加速,但是如果您的數(shù)據(jù)集變得更大,您可能需要它。

安裝 pylearn2 后,請記住通過輸入為 pylearn2 數(shù)據(jù)集設置路徑變量,

export PYLEARN2_VIEWER_COMMAND="eog --new-instance"
export PYLEARN2_DATA_PATH=/YOURPATHTOHERE/pylearn2/datasets

在您的終端中。

我們現(xiàn)在將嘗試為我們的模型生成一個 MNIST 數(shù)據(jù)集進行訓練。首先,我們需要獲取一些梭織和針織織物結構的照片。

您可以使用末尾附加的phototaker.py代碼從您的網(wǎng)絡攝像頭拍攝多張灰度圖像。

拿到照片后,我們可以使用這個神奇的工具來生成 MNIST 數(shù)據(jù)。

https://github.com/gskielian/JPG-PNG-to-MNIST-NN-Format

將 repo 克隆到您的 PC 中,將圖像復制到培訓和測試目錄。

根據(jù)標簽數(shù)量編輯batches.meta.txt 。

在終端上鍵入./resize-script.sh 將所有圖像調整為 28x28 大小并運行convert-images-to-mnist-format.py以生成數(shù)據(jù)集。

提示:您將獲得 4 個文件。

?

?
poYBAGNxicWAIYseAAAuHEZDiD8815.png
圖 11 - MNIST 測試和訓練數(shù)據(jù)
?

gskielian 的工具將生成訓練圖像集和標簽作為 train-images-idx3-ubyte 和 train-labels-idx1-ubyte,但您必須將 train 重命名為 t10k,因為這是訓練腳本要查找的內容。

然后,您必須轉到 pylearn2/pyearn2/datasets 并編輯mnist.py文件并更改訓練和測試數(shù)據(jù)的大小、時期數(shù)和批量大小以適合您的數(shù)據(jù)集。

一切調整好后,你可以進入你的BNN目錄,運行mnist.py

?
pYYBAGNxicmACGULAAJx_9QUN7I099.png
圖 12:訓練
?

這將生成一個名為 mnist_parameters.npz 的文件。您需要使用 mnist-gen-weights-W1A1 或W1A2.py生成比特流

生成成功后,將生成的文件放在/usr/local/lib/python3.6/dist-packages/bnn/params/newmodel/lfcW1A1/

我們可以使用LFC-BNN_MNIST_Webcam.ipynb筆記本對其進行測試。

import bnn
hw_classifier = bnn.LfcClassifier(bnn.NETWORK_LFCW1A1,"newmodel",bnn.RUNTIME_HW)
import cv2
from PIL import Image as PIL_Image
from PIL import ImageEnhance
from PIL import ImageOps# says we capture an image from a webcam
import numpy as np
import math
from scipy import misc
from array import *
cap = cv2.VideoCapture(0) 
_ , cv2_im = cap.read()
cv2_im = cv2.cvtColor(cv2_im,cv2.COLOR_BGR2RGB)
img = PIL_Image.fromarray(cv2_im).convert("L") 
Image enhancement                
contr = ImageEnhance.Contrast(img)img = contr.enhance(3)                                                    
# The enhancement values (contrast and brightness) 
bright = ImageEnhance.Brightness(img)                                     
# depends on backgroud, external lightsetc
img = bright.enhance(4.0)
#Adding a border for future cropping
img = ImageOps.expand(img,border=80,fill='white') 
inverted = ImageOps.invert(img)  
box = inverted.getbbox()  
img_new = img.crop(box)  
width, height = img_new.size  
ratio = min((28./height), (28./width))  
background = PIL_Image.new('RGB', (28,28), (255,255,255))  
if(height == width):  
   img_new = img_new.resize((28,28))  
elif(height>width):  
   img_new = img_new.resize((int(width*ratio),28))  
   background.paste(img_new, (int((28-img_new.size[0])/2),int((28-img_new.size[1])/2)))  
else:  
   img_new = img_new.resize((28, int(height*ratio)))  
   background.paste(img_new, (int((28-img_new.size[0])/2),int((28-img_new.size[1])/2)))  
background  
img_data=np.asarray(background)  
img_data = img_data[:,:,0]  
misc.imsave('/home/xilinx/img_webcam_mnist.png', img_data)
#Resize the image and invert it (white on black)  
smallimg = ImageOps.invert(img_load)  
smallimg = smallimg.rotate(0)  
data_image = array('B')  
pixel = smallimg.load()  
for x in range(0,28):  
   for y in range(0,28):  
       if(pixel[y,x] == 255):  
           data_image.append(255)  
       else:  
           data_image.append(1)  
# Setting up the header of the MNIST format file - Required as the hardware is designed for MNIST dataset         
hexval = "{0:#0{1}x}".format(1,6)  
header = array('B')  
header.extend([0,0,8,1,0,0])  
header.append(int('0x'+hexval[2:][:2],16))  
header.append(int('0x'+hexval[2:][2:],16))  
header.extend([0,0,0,28,0,0,0,28])  
header[3] = 3 # Changing MSB for image data (0x00000803)  
data_image = header + data_image  
output_file = open('/home/xilinx/img_webcam_mnist_processed', 'wb')  
data_image.tofile(output_file)  
output_file.close() 
class_out = hw_classifier.classify_mnist("/home/xilinx/img_webcam_mnist_processed")
print("Class name: {0}".format(hw_classifier.class_name(class_out)))

?

訓練時放置在類名 1 下的針織面料圖像的輸出。

推理耗時 7.00 微秒分類率:每秒 142857.14 張圖像

班級名稱:1

偉大的。我們的模型能夠成功地確定織物結構,并且它使用硬件進行推理,速度非常快!

制作 XYZ 滑塊

制作這種 XYZ 滑動機構是為了從織物的不同區(qū)域采集多個樣本,而不會在校準后改變相機和傳感器之間的距離。它是 3D 打印部件和金屬制造部件的混合體。附上 3D 打印文件。

使用 EAGLE 設計了一個 PCB,以使用 A4988 步進電機驅動器控制 4 個步進電機。這些驅動程序使用 STM32 F103C8T6 MCU 進行控制。MCU根據(jù)Ultra96板通過Serial發(fā)送的數(shù)據(jù)控制各軸的絕對位置。附上 PCB gerber 文件和 STM32-Arduino 代碼。(轉到頁面末尾!)

您還需要為 Arduino 下載AccelStepper 庫

MCU 期望以 '、' 作為分隔符的絕對位置和 * 表示字符串結束。我們可以輕松地生成一個字符串并使用 pySerial 通過串行方式發(fā)送它。

?

?
poYBAGNxic6Ae83mAABiIT8n_gg954.jpg
圖 14:焊接 PCB
?

?

使用 Flask 創(chuàng)建 Web 界面

現(xiàn)在我們的代碼可以正常工作了,讓我們把所有東西放在一起。您可以使用 Flask 快速為您的圖像處理應用程序生成一個漂亮的 webapp。而且很棒的是,Ultra96 開發(fā)板預裝了 Flask!您可以在 GitHub 上找到如何將 Flask 與 OpenCV 一起使用的一個很好的示例。

https://github.com/log0/video_streaming_with_flask_example

借助一點 Bootstrap 和 Javascript 的魔力,您可以制作一個真正響應式的 Web GUI,如下所示。即:我沒有提供整個 Flask GUI,因為它仍然是一個正在開發(fā)的用于商業(yè)用途的項目,但是如果您對如何制作 GUI 有任何疑問,我們非常樂意為您提供幫助。

?
pYYBAGNxidCAZU1RAADifryZD1o275.jpg
圖 15:界面
?

結果

基于 Sobel 濾波器的紗線檢測是對來自 3 個不同織物樣本的 30 個圖像進行的。下圖顯示了使用的樣本類型。

?
pYYBAGNxidKAR_xVAAB3BoXQN74304.jpg
圖 16:用于準確性測試的織物樣品
?

通過將相機放置在織物的不同部分上,獲得相同織物的不同樣品。紗線檢測算法在每個樣品的 10 張這樣的照片上運行。結果表明,機織織物的準確度 <94%,針織物的垂直毛圈結構準確度為 90%。(根據(jù)要求提供表格結果)

?
poYBAGNxidaAaiW7AANzoabEd7I230.jpg
圖 17:紗線檢測結果
?

?

使用紗線像素區(qū)域的 GSM 測定

50 個不同的織物樣本(每個不同點 4 幀,共 200 張圖像),標稱 GSM 為 107 GSM,用于該測試。全范圍誤差(最大讀數(shù)為 250GSM)被制成表格。下圖描述了讀數(shù)相對于實際值的變化。

?
poYBAGNxidmAWNMYAABvdXX36yM226.jpg
圖 18:測量結果與標稱值的比較
?

可以觀察到相當大的偏差,但這在織物行業(yè)中是可以接受的。然而,這可以通過增強算法進一步最小化。

結論

Ultra96 板對于初學者和專家來說都是一個很棒的板。它與 PYNQ 的兼容性將其提升到了一個全新的水平。如果您對 Xilinx 提供的令人驚嘆的計算機視覺和 BNN 庫不滿意,您可以使用 Vivado 編寫自己的“疊加層”,并在硬件上運行某些部分(甚至整個程序)。

在硬件層中運行卷積(對于 Sobel、Smoothing、Erosion、Blurs)等操作可以大大減少算法的運行時間。然而,在這個應用程序中,幀速率受到資源密集型輪廓檢測和相機的最大幀速率(24fps)的限制。

希望 Avnet 和 Xilinx 為 PYNQ 和 Ultra96 創(chuàng)建越來越多的資源和庫,這使開發(fā)人員能夠快速測試他們的想法,而無需經(jīng)歷從頭開始構建一切的麻煩。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費