“用 TypeScript、React 和 AI 工具構建電子產(chǎn)品。”

tscircuit 讓電子開發(fā)如同 Web 開發(fā)般便捷。在您熟悉的 IDE 中編寫代碼,實時觀察代碼改動生成電路設計。完成后,直接導出項目并投入生產(chǎn)!
什么是 tscircuit?
tscircuit 是一個由注冊中心、包管理器、命令行工具和 AI 電子設計套件共同支持的開發(fā)庫,它能輕松實現(xiàn)電子電路的創(chuàng)建、共享、導出與生產(chǎn)制造。該庫通過React Fiber 引擎將電路設計實時渲染為網(wǎng)頁可視化界面。
你可以將 tscircuit 視為"電子領域的 React"—— 它允許開發(fā)者使用 TypeScript 和 React 設計真實世界的電子電路。其開發(fā)范式并非創(chuàng)建 "div" 等網(wǎng)頁元素,而是定義 "芯片"、"電阻" 或 "電容" 等電路元件,最終渲染輸出的也不是網(wǎng)站,而是 3D 的電路(可直接下單生產(chǎn))!
通過 tscircuit,你甚至能設計出具備完整功能的鍵盤電路!完成設計后,可直接將方案導出至合作制造商,訂購真實可用的電路板成品。

樣例
一個 wifi 的測試板??梢渣c擊以下鏈接直接查看:
https://tscircuit.com/seveibar/wifi-test-board-1#files ts 的代碼:
import{Reg5vTo3v3 }from"@tsci/seveibar.reg-5v-to-3v"import{ useESP32_S3_MINI_1_N8 }from"@tsci/seveibar.esp32-s3-mini-1-n8"import{ useUsbC }from"@tsci/seveibar.smd-usb-c"import{ useResistor }from"@tscircuit/core"exportdefault() => {constUsb=useUsbC("USB")constEsp32=useESP32_S3_MINI_1_N8("U1")constR1=useResistor("R1", {resistance:"5.1k",footprint:"0402"})constR2=useResistor("R2", {resistance:"5.1k",footprint:"0402"})
return( )}
對應的原理圖:

對應的 PCB:

渲染的 3D:

如何使用?
可以使用tsci命令行工具完成tscircuit的所有操作。
npminstall -g tscircuittsci dev
打開瀏覽器:http://localhost:3020

從其它EDA工具中導入器件庫
tscircuit 目前支持將立創(chuàng)eda 和 KiCad 的器件庫導入成 tscircuit 的格式:



原理圖/PCB 自動布線
您可以使用schAutoLayoutEnabled和pcbAutoLayoutEnabled兩種工具自動布局原理圖和 PCB。
import{SmdDiode}from"@tsci/seveibar.SmdDiode"import{Key}from"@tsci/seveibar.Key"import{Pico2}from"@tsci/seveibar.pico2"constrowToMicroPin = {0:"GP0",1:"GP1",2:"GP10",}constcolToMicroPin = {0:"GP19",1:"GP17",2:"GP5",}exportdefault() => ( {grid({ sizeX: 3, sizeY: 3, pitch: 19.05, offset: { x: 20, y: 0 } }).map( ({ x, y, row, col }, index) => { const schOffX = 5 + x/6 const schOffY = -y / 8 return ( ) } )} )functiongrid(opts: {sizeX:numbersizeY:numberpitch:numberoffset?: { x:number; y:number}}):Array<{?x:?number;?y:?number;?row:?number;?col:?number?}> {const{ sizeX, sizeY, pitch, offset = {x:0,y:0} } = optsconstpoints:Array<{?x:?number;?y:?number;?row:?number;?col:?number?}> = []conststartX = (-(sizeX -1) * pitch) /2conststartY = (-(sizeY -1) * pitch) /2for(letrow =0; row < sizeY; row++) {??for?(let?col =?0; col < sizeX; col++) {? ? points.push({? ? ??x: startX + col * pitch + offset.x,? ? ??y: startY + row * pitch + offset.y,? ? ? row,? ? ? col,? ? })? }}return?points}



-
KiCAD
+關注
關注
5文章
313瀏覽量
10239 -
電路開發(fā)
+關注
關注
0文章
4瀏覽量
3732
發(fā)布評論請先 登錄
《電子發(fā)燒友電子設計周報》聚焦硬科技領域核心價值 第10期:2025.05.6--2025.05.9
《電子發(fā)燒友電子設計周報》聚焦硬科技領域核心價值 第11期:2025.05.12--2025.05.16
《電子發(fā)燒友電子設計周報》聚焦硬科技領域核心價值 第13期:2025.05.26--2025.05.30
React優(yōu)勢,react學習筆記分享
安信Windows驅動開發(fā)教程:適用于 Windows 的 React Native
使用React Native構建OS X桌面應用
詳談 Vue 和 React 的八大區(qū)別
React Native for Windows使用React構建原生Windows應用
關于“React和Vue該用哪個”
React正在經(jīng)歷Angular.js的時刻嗎?

tscircuit - 電路開發(fā)的 React 范式? 用TypeScript、React和 AI工具構建電子產(chǎn)品
評論