作者 主题:适用于8位计算机的FPGA VGA控制器 (Read 91492 times)

0位成员和4位客人正在查看此主题。

离线 Nockieboy

  • 超级贡献者
  • ***
  • 帖子:1239
  • 国家: 英国
适用于8位计算机的FPGA VGA控制器
« on: 十月16,2019,01:42:20下午»
大家好,

大学教师'不知道是否有人注意到了,但格兰特·塞尔(Grant Searle)'s website (http://searle.hostei.com/grant/z80/)似乎已经不存在了。

和以前一样,这对我来说是一个问题'请为他的FPGA Multicomp设计下载代码或相关材料。  I'我现在想通过为自己的DIY计算机创建VGA驱动程序来考虑首次涉足FPGA,但这似乎是一个很大的尝试'leg up'现在已经从互连网上消失了。  | O

有人有Multicomp的代码吗? 我希望筛选一下,要么适应,要么向格兰特学习'VHDL中图形驱动程序的实现。

为了清楚起见,我'我希望使用Altera Cyclone II EP2C5来制作VGA控制器,该控制器具有足够的板载RAM(或分立SRAM存储器芯片),用于128 KB左右的帧缓冲器,以实现(最高)640x480(具有两种颜色),或低至160x120(具有256种颜色和双缓冲)。

I'自从我还订购了Xilinx Spartan 6以来,认为这样做可能会更加强大。  ; D

I'在一些设计中,控制器通过电阻器将RGB信号直接输出到VGA连接器,其他控制器将数据从帧缓冲器传递到视频DAC。  Bearing in mind I'm使用8位数据(因此,最多256种颜色,除非我开始将帧缓冲区中的每像素字节加倍),'我看过似乎期望他们的输入更多...

I'我也想知道如何最好地连接到Z80计算机。 最好通过IO调用将数据发送到VGA控制器,然后让VGA控制器处理帧缓冲区吗?  I'我不是限制Z80的粉丝'VGA控制器从Z80中的帧缓冲区读取数据时,可以在其运行时间的75%内访问内存'的存储空间,双端口RAM对于我的需求来说太贵了。

任何想法,评论等表示赞赏!  I'我在过去两年中通过构建基于DIY Z80的计算机学习电子学的知识不是很丰富。

 :-+

编辑:

对于任何有兴趣的人,这个话题都可以使用Altera的EP4CE10 FPGA演变为全面开发的视频卡。 此项目的github在这里: //github.com/nockieboy/gpu
« 最后编辑:2020年4月27日,下午12:27:42 »
 

离线 硅向导

  • 超级贡献者
  • ***
  • 帖子:5934
  • 国家: fr
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#1: 十月16,2019,01:54:57下午»
这是否包含您所需要的? //github.com/wsoltys/multicomp
 
以下用户感谢这篇文章: Nockieboy

离线 Nockieboy

  • 超级贡献者
  • ***
  • 帖子:1239
  • 国家: 英国
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#2: 十月16,2019,02:55:18下午»
这是否包含您所需要的? //github.com/wsoltys/multicomp

是的,谢谢SiliconWizard!  :-+ 我认为,这为我提供了一个公平的起点。  As I'我只会建立视频驱动器电路,希望我'就能利用更多的RAM空间。 我将不得不开始一些VHDL / FPGA教程'我从头开始。
 

离线 异议

  • 定期贡献者
  • *
  • 职位:137
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#3: 十月16,2019,05:43:02下午»
只是一些想法/想法。

梯形电阻dacs很受欢迎,并且大多数情况下都可以正常工作。但是我在自己的工作中遇到了它们的局限性。一世'一直在使用256色VGA,但调色板系统不是24位色。由于电阻阶梯中的位数有限,我经常看到明显的颜色差异。如果您可以忍受,那么它们会很好用并且很简单。听起来好像是在不使用调色板的情况下执行256位颜色,所以应该没问题,但是如果将其扩展,则会遇到限制。

为了将两者接口,需要帧缓冲区级别的访问吗?例如,原始的gameduino输出VGA,但采用不同的绘图命令(通过SPI)。这样你就不是'已经通过慢速总线读取并传输了整个帧缓冲区。

 

离线 北方人

  • 超级贡献者
  • ***
  • 帖子:2238
  • 国家: 钙
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#4: 十月16,2019,08:10:33下午»
为什么要VGA?走向数字化将更加自然。
 

离线 可调

  • 常客
  • **
  • 帖子:295
  • 国家: 我们
  • 盐'n' pepper beard
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#5: 十月16,2019,08:27:06下午»
为什么要VGA?走向数字化将更加自然。
为此有一个餐巾纸设计吗?
"在Arduino中,天堂和大地中的事物比您的哲学梦想中的要多。"
 

离线 kizmit99

  • 定期贡献者
  • *
  • 帖子:104
  • 国家: 我们
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#6: 十月16,2019,09:14:56下午»
为什么要VGA?走向数字化将更加自然。
为此有一个餐巾纸设计吗?

提到的CylconeII OP支持3.3V LVDS输出,可以(非常容易)将其用于驱动HDMI监视器。 提到的分辨率OP的像素时钟低于HDMI最小值,因此需要像素复制才能进入支持的速率。  但是我怀疑一些快速数学运算会找到可接受的东西,而不会超出FPGA的输出速度限制。

这两个都是有用的示例:
http://hamsterworks.co.nz/mediawiki/index.php/Minimal_HDMI
//www.fpga4fun.com/HDMI.html
 
以下用户感谢这篇文章: Nockieboy

离线 Canis Dirus Leidy

  • 定期贡献者
  • *
  • 帖子:168
  • 国家: RU
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#7: 十月16,2019,11:00:09下午»
为什么要VGA?走向数字化将更加自然。
为此有一个餐巾纸设计吗?
那里 were several examples at marsohod.org (in Russian):
通过并行RGB接口将MAXII(EPM240)连接到LCD面板
用MAXII驱动LVDS接口 (肮脏的破解,由于EPM240中缺少PLL,但可行)。
DIY帧缓冲区(来自旧的SDRAM)用于DIY相框
具有MAX10的HDMI接口

附言也找"VHDL的电路设计与仿真"。特别是第16章"DVI视频接口的VHDL设计" and 17 "FPD-Link视频接口的VHDL设计".
 
以下用户感谢这篇文章: ebclr, Nockieboy

离线 可调

  • 常客
  • **
  • 帖子:295
  • 国家: 我们
  • 盐'n' pepper beard
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#8: 十月16,2019,11:35:23下午»
出色地。我今天学到了一些东西!我更喜欢VGA的想法,因为它's more "tangible"并在出现错误时提供易于阅读的反馈,但如果有的话's 这么容易,异议撤回。 :-+
"在Arduino中,天堂和大地中的事物比您的哲学梦想中的要多。"
 

离线 法典

  • 贡献者
  • 帖子:10
  • 国家: au
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#9: 十月17,2019,03:59:37上午»
« 最后编辑:食典委于2020年10月2日上午03:19:29 »
 
以下用户感谢这篇文章: Nockieboy

离线 杰伊

  • 超级贡献者
  • ***
  • 帖子:3770
  • 国家: b
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#10: 十月17,2019,05:22:24上午»
大家好,

大学教师'不知道是否有人注意到了,但格兰特·塞尔(Grant Searle)'s website (http://searle.hostei.com/grant/z80/)似乎已经不存在了。


臭虫

希望我'd现在将其全部存档。
 

在线的 仓鼠

  • 超级贡献者
  • ***
  • 帖子:2395
  • 国家: nz
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#11: 十月17,2019,06:21:39上午»
出色地。我今天学到了一些东西!我更喜欢VGA的想法,因为它's more "tangible"并在出现错误时提供易于阅读的反馈,但如果有的话's 这么容易,异议撤回。 :-+

DVI-D是用比特流直接替代VGA信号。从FPGA设计人员的角度来看,它只是固定在视频流水线的一端,而不是DAC。

唯一的把戏(如果可以这样称呼)我'd从FPGA到连接器的高速数字信号,但对于标准640x480'太严格了,您就可以摆脱很多罪过。原始位速率为每个通道250Mb / s,因此位在电线上大约一米长(忽略速度因子等),并且该协议旨在抵抗错误。

与1080p速率相比,几毫米的长度失配或阻抗凸起的问题要小得多。

不要凝视深渊,以免您被公认为深渊领域专家,他们希望您继续凝视那该死的东西。
 

离线 Nockieboy

  • 超级贡献者
  • ***
  • 帖子:1239
  • 国家: 英国
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#12: 十月17,2019,01:03:29下午»
臭虫

希望我'd现在将其全部存档。

大学教师'恐慌CJay-Codex已链接到一些出色的镜像,我可以亲自为z80.netai.net担保一个,'s all there.  :-+

Web存档有副本 :)
//web.archive.org/web/20181123194029/http://searle.hostei.com/grant/index.html

他在这里有一面镜子。
http://zx80.netai.net/grant/index.html

推特的更新和指向镜像的链接 :)
//twitter.com/zx80nut?lang=en
 

离线 Nockieboy

  • 超级贡献者
  • ***
  • 帖子:1239
  • 国家: 英国
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#13: 十月17,2019,01:32:29下午»
只是一些想法/想法。

梯形电阻dacs很受欢迎,并且大多数情况下都可以正常工作。但是我在自己的工作中遇到了它们的局限性。一世'一直在使用256色VGA,但调色板系统不是24位色。由于电阻阶梯中的位数有限,我经常看到明显的颜色差异。如果您可以忍受,那么它们会很好用并且很简单。听起来好像是在不使用调色板的情况下执行256位颜色,所以应该没问题,但是如果将其扩展,则会遇到限制。

我猜电阻梯是获得色彩输出的最简单方法,但似乎有点...不精确...并且取决于电阻容差和所选值,因此当我看到使用视频DAC的示例时,我以为'd可能想尝试一下。

I'我不确定我是否正确理解了颜色编码/生成方式,因此如果我进行纠正,将不胜感激'是错的,但是前几天在考虑帧缓冲区设计时,我考虑了如何将数据存储在帧缓冲区中。 使用一个或多个位来存储R,G和B通道的离散值似乎有点浪费。 例如,如果要64种颜色,则可以在每个通道中使用2位,每个像素使用6位RGB,或者在帧缓冲区中使用每个像素一个字节(备用几个位)。 问题是,如果我想每个通道达到3位或更多,我'm查看每个像素两个字节,并将单个帧的内存需求增加一倍。

因此,我想到了使用查找表查找颜色的想法。  Is that the 'palette system' you're referring to?  Basically, I'd帧缓冲器中每个像素有一个字节。 每个字节的值应介于0到255之间,因此当'pixel'从帧缓冲区读取后,该值将用于在LUT中查找RGB值,该值可能是24位以下的任何值,这些值将传递给DAC ...

……行得通吗? 另一件事是,我不'真的不了解FPGA-我给他们留下了印象'速度很快,因此应将LUT用于RGB值'降低FPGA的速度以至于无法'跟不上时钟? 

我目前拥有的FPGA是'真正满足我的需求-它'■Altera Cyclone II EP2C5T144,所以'除了直文本显示外,我还需要RAM用于帧缓冲区。  I'我想知道是否使用外部SRAM芯片会成为帧缓冲器的方法? 有访问时间的东西<例如15ns足够快吗?  Alternatively, I'我在等待Xilinx Spartan 6,我'我可能会继续发展。它的板上有一个32MB SDRAM,如果Spartan中的RAM不存在,我可能会尝试将其用于帧缓冲区'还不够(尽管我认为我可以将内部RAM设为双端口,这对于帧缓冲区非常有用吗?)

为了将两者接口,需要帧缓冲区级别的访问吗?例如,原始的gameduino输出VGA,但采用不同的绘图命令(通过SPI)。这样你就不是'已经通过慢速总线读取并传输了整个帧缓冲区。

I'm打算将VGA控制器与以8 MHz运行的基于Z80的计算机接口。   I'我根本没有挂断Z80的直接帧缓冲区访问-实际上,我'd宁可不要弄乱Z80'如果另一种接口方法足够快,则根本没有存储空间。 除非这里有人告诉我,否则我'沿Z80向FPGA发送命令的路线,它将解释和修改帧缓冲区'的内容相应。 我还记得Z80是怎么做到的'还没有决定,但是我可以使用Z80的串行连接'的SIO,我可以使用Z80'的硬件I2C端口,或者使用OUT命令和数据总线的更直接的连接,'我认为这将是三者中最快的。 SPI接口不是'当前是一个选项,但如果我为系统完成硬件SPI接口,则可能会稍后。

 

离线 异议

  • 定期贡献者
  • *
  • 职位:137
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#14: 十月17,2019,01:40:32下午»
引用
因此,我想到了使用查找表查找颜色的想法。  Is that the 'palette system' you're referring to?  Basically, I'd帧缓冲器中每个像素有一个字节。 每个字节的值应介于0到255之间,因此当'pixel'从帧缓冲区读取后,该值将用于在LUT中查找RGB值,该值可能是24位以下的任何值,这些值将传递给DAC ...

是的,完全正确。调色板是一个LUT。 256字节LUT可以很容易地装入FPGA中,因此查找速度可以非常快。用于旧的DOS VGA游戏的一种常用技术是修改调色板以制作简单的动画。这称为调色板移动。因此,虽然调色板可能会受到限制,因为您一次只能拥有256种颜色,但它也很方便。
 

离线 Nockieboy

  • 超级贡献者
  • ***
  • 帖子:1239
  • 国家: 英国
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#15: 十月17,2019,01:52:55下午»
为什么要VGA?走向数字化将更加自然。

错误,确实有两个原因-我'我对电子学的知识不是很了解(经验丰富的论坛用户会记得我的DIY Z80计算机帖子)!  ;)),因此我想另一个原因是我没有'甚至不知道这是一个选择!  :o

我想VGA的概念对我来说比较容易掌握,但是如果我能做HDMI,那我一定会的!


提到的CylconeII OP支持3.3V LVDS输出,可以(非常容易)将其用于驱动HDMI监视器。 提到的分辨率OP的像素时钟低于HDMI最小值,因此需要像素复制才能进入支持的速率。  但是我怀疑一些快速数学运算会找到可接受的东西,而不会超出FPGA的输出速度限制。

这两个都是有用的示例:
http://hamsterworks.co.nz/mediawiki/index.php/Minimal_HDMI
//www.fpga4fun.com/HDMI.html

谢谢kizmit-第二个链接肯定很有趣,并且激起了我的兴趣。
 

离线 Nockieboy

  • 超级贡献者
  • ***
  • 帖子:1239
  • 国家: 英国
回复:用于8位计算机的FPGA VGA控制器
« 在以下回复#16: 十月17,2019,01:59:57下午»
引用
因此,我想到了使用查找表查找颜色的想法。  Is that the 'palette system' you're referring to?  Basically, I'd帧缓冲器中每个像素有一个字节。 每个字节的值应介于0到255之间,因此当'pixel'从帧缓冲区读取后,该值将用于在LUT中查找RGB值,该值可能是24位以下的任何值,这些值将传递给DAC ...

是的,完全正确。调色板是一个LUT。 256字节LUT可以很容易地装入FPGA中,因此查找速度可以非常快。用于旧的DOS VGA游戏的一种常用技术是修改调色板以制作简单的动画。这称为调色板移动。因此,虽然调色板可能会受到限制,因为您一次只能拥有256种颜色,但它也很方便。

我的目标是制造一台与我曾经拥有过的第一台计算机一样好(甚至不比第一台计算机更好)的计算机(80年代's). 我要达到或超过的唯一挑战是图形显示,因此一次可能需要256色'limiting', but it'将我的旧Amstrad吹出水面(它有27个调色板)!

但是,我对FPGA的无知限制了我的理解。 如何修改调色板'on the fly' in an FPGA?  Oh, unless it'我想将其存储在Block RAM中吗?
 

在线的 伯尼

  • 超级贡献者
  • ***
  • 帖子:3315
  • 国家: si
回复:用于8位计算机的FPGA VGA控制器
« 在以下回复#17: 十月17,2019,02:40:49下午»
事实是,仅由便宜的标准容差电阻构成的R2R DAC确实足以让您可靠地获得大约4位分辨率。过去,电阻容差开始成为信号的重要部分,因此步阶的非线性会弄乱最低有效位。因此,构建一款8位R2R梯形DAC确实不值得,因为它的性能赢得了't be all that great.

如果您想要合适的24位彩色,最好购买合适的DAC芯片,该芯片可以为每个通道提供8位。这可以是专用的VGA DAC,也可以是每种颜色只有3个单独的通用8位DAC。当您拥有所有这些时,您基本上将拥有一个24位RGB总线(也称为DPI总线)为它供电,这是一条简单的标准视频总线,这意味着您可以用LCD面板替换您的24位VGA DAC芯片,也可以将其替换为RGB转LVDS或RGB转HDMI转换器,以驱动更大的串行LCD面板或在现代电视上显示。这种转换也可以在FPGA内部完成,但确实需要专门的Serdes功能才能足够快地获得更大的分辨率。

一旦有了24位颜色,您就可以很好地将256种颜色上色,因为每个托盘条目都可以从您现在能够显示的16百万种可用颜色中进行选择。 调色板只是将数据量保持在图形子系统内部的一种方法,它不是克服视频输出硬件限制的一种方法,因为它仍必须能够再现调色板想要的所有颜色因为,这只是一种解决方法,即图形硬件功能不足以告诉视频输出硬件确切所需的颜色,因此只需从256种颜色中进行选择就可以简化其工作。
 

离线 硅向导

  • 超级贡献者
  • ***
  • 帖子:5934
  • 国家: fr
回复:用于8位计算机的FPGA VGA控制器
« 在以下方面回复#18: 十月17,2019,02:56:25下午»
I'我也想知道如何最好地连接到Z80计算机。 最好通过IO调用将数据发送到VGA控制器,然后让VGA控制器处理帧缓冲区吗?  I'我不是限制Z80的粉丝'VGA控制器从Z80中的帧缓冲区读取数据时,可以在其运行时间的75%内访问内存'的存储空间,双端口RAM对于我的需求来说太贵了。

理想情况下,您可以考虑使用专用的帧缓冲区(专用RAM芯片)进行显示。

例如,CPU可以通过某种内存映射方案对其进行访问(写入或从中读取),例如可能以块("windows")的大小为8KB,以及银行选择机制。比使用I / O访问IIRC更有效。当然,当CPU访问帧缓冲区时,只能在'不会被显示控制器读取,但是当CPU不访问帧缓冲区时,它可以使用自己的RAM来处理自己的事务而不会受到任何损失。

 

离线 Nockieboy

  • 超级贡献者
  • ***
  • 帖子:1239
  • 国家: 英国
回复:用于8位计算机的FPGA VGA控制器
« 在以下问题上回复#19: 十月17,2019,03:14:03下午»
理想情况下,您可以考虑使用专用的帧缓冲区(专用RAM芯片)进行显示。

例如,CPU可以通过某种内存映射方案对其进行访问(写入或从中读取),例如可能以块("windows")的大小为8KB,以及银行选择机制。比使用I / O访问IIRC更有效。当然,当CPU访问帧缓冲区时,只能在'不会被显示控制器读取,但是当CPU不访问帧缓冲区时,它可以使用自己的RAM来处理自己的事务而不会受到任何损失。

我之前考虑过-我的系统's MMU将内存分解为16KB的存储区,总共有4 MB的物理存储空间。 我想,我可以将八个512 KB芯片插槽中的一个(或多个)断开,专门用作帧缓冲区。 唯一的问题是我'd需要组合一些开关逻辑以将其数据和地址总线与Z80隔离's whilst the Z80 isn't访问帧缓冲区,并采取某种方式使Z80等待帧缓冲区释放后才允许对其进行访问(我想我可以读取FPGA上的IO端口,当显示器位于前廊时该端口会变低, 例如。)

我猜我是否'd想走这条路,但创建'shared RAM'接口和控制逻辑,将取决于我在Spartan 6上使用板载帧缓冲区可以节省多少里程,或者一次仅发送一个命令和数据是否会成为瓶颈。

编辑:

啊,用一个快速的Google回答了我的问题-Spartan 6拥有多达18 KB的RAM。 减去2 KB的符号/字符集存储(除非ROM是RAM之外的单独实体?),我'我努力在大于160x120的分辨率上进行很多处理。 看起来帧缓冲区将必须进入SDRAM,而我'我需要一种方法来缓冲来自Z80的命令/数据,同时控制器等待'porch window'用帧缓冲区做它需要做的事情。
« 最后编辑:十月17,2019,03:19:58下午通过nockieboy »
 

离线 遗产

  • 超级贡献者
  • ***
  • !
  • 帖子:4415
  • 国家: ch
回复:用于8位计算机的FPGA VGA控制器
« 回复#20: 十月17,2019,03:37:49下午»
采用DIP封装的共享ram芯片约为2 KB。
替代方法是强制Z80释放总线。
 

离线 杰伊

  • 超级贡献者
  • ***
  • 帖子:3770
  • 国家: b
回复:用于8位计算机的FPGA VGA控制器
« 在以下回复#21: 十月17,2019,03:39:37下午»
臭虫

希望我'd现在将其全部存档。

大学教师'恐慌CJay-Codex已链接到一些出色的镜像,我可以亲自为z80.netai.net担保一个,'s all there.  :-+

Web存档有副本 :)
//web.archive.org/web/20181123194029/http://searle.hostei.com/grant/index.html

他在这里有一面镜子。
http://zx80.netai.net/grant/index.html

推特的更新和指向镜像的链接 :)
//twitter.com/zx80nut?lang=en

是的,找到他们,他们're safe now :)
 

离线 硅向导

  • 超级贡献者
  • ***
  • 帖子:5934
  • 国家: fr
回复:用于8位计算机的FPGA VGA控制器
« 在以下回复#22: 十月17,2019,04:24:43下午»
您还可以设计MMU,以便交错访问CPU和视频。我不知道您的CPU要运行多快,但是如果'几兆赫兹(就像过去一样)应该没有问题。

任何Spartan 6肯定具有超过18KB的嵌入式RAM。 LX4(最小)具有216Kbits(27KBytes),LX45(价格仍然合理)具有2088Kbits(261KBytes!)
你感到困惑"18Kb"Spartan 6的(千位)数字是RAM块的单个大小,当然不是总可用的!
 

离线 马里什

  • 超级贡献者
  • ***
  • 帖子:4013
  • 国家: RO
  • .
回复:用于8位计算机的FPGA VGA控制器
« 在以下回复#23: 十月17,2019,08:42:20下午»
可以的任何理由'使用微控制器生成VGA信号?
那里'如果您不愿意购买价格超过200 Mhz的廉价微控制器(价格低于10美元),则快速DAC也很便宜'不想使用电阻器。
 

离线 可调

  • 常客
  • **
  • 帖子:295
  • 国家: 我们
  • 盐'n' pepper beard
回复:用于8位计算机的FPGA VGA控制器
« 在以下回复#24: 十月17,2019,11:49:55下午»
您还可以设计MMU,以便交错访问CPU和视频。我不知道您的CPU要运行多快,但是如果'几兆赫兹(就像过去一样)应该没有问题。
是的,就像1980年代的几乎所有家用计算机一样。但这需要在视频硬件和系统的其余部分之间建立紧密的耦合,他说他想避免这种耦合。由于CPU和640 * 480 * 8bpp之间的内存带宽需求存在巨大差异,我可以理解这一点。

我个人'd在FPGA上放置了Z80软核和SDRAM控制器,并称80%完成 :D

可以的任何理由'使用微控制器生成VGA信号?
那里'如果您不愿意购买价格超过200 Mhz的廉价微控制器(价格低于10美元),则快速DAC也很便宜'不想使用电阻器。
您有任何理由 来点爆炸视频,除了 炫耀演示?
« 上次编辑:2019年10月17日,11:54:32 pm by jhpadjustable »
"在Arduino中,天堂和大地中的事物比您的哲学梦想中的要多。"
 


分享我

掘客  Facebook  SlashDot  可口的  Technorati  推特  谷歌  雅虎
中频