自制8*8*8 LED点阵 by chr (2)

转载自这里(3DLED点阵)
续上

第11步 购买电源

  如果你没有材料做一个5V电源,那么你可以买一个.
  买这些东西eBay是个好去处.
  搜索”5V电源”,然后限制条件”商业与工业”,你就会找到很多合适的电源.大概15美元你就能买个不错的电源.

电源1 电源2

第12步 搭建一个电源模块

  几年前,我们做了一个LED立方块,我们用老的SCSI驱动自己做了个很棒的实验电源.我们一直用它给我们的LED供电.
  台式电脑电源很好,因为大电流的12V和5V档.
  你可以使用普通的AT或ATX电源,或者旧的外置硬盘驱动器.

  如果你要用ATX电源,必须将绿线连接到主板的连接器的接地线(黑).这样就有电了.
外置硬盘驱动器特别合适做电源.它们已有一个方便的外壳了.我们要做到只是再加上接线端子.

  电源有很多线,最简单的方法就是通过莫仕(molex)连接器连接电源.就是硬盘驱动器上的那种(S-ATA硬盘前面的).
黑线是地线(GND),黄色+12V,红色+5V.

  下面是我们实验电源的图片.有12V输出,有电流表的5V输出和没有电流表的5V输出.我们用第二个5V输出是给我们80mm电脑风扇供电的,当我们焊接元件时用它来吸/吹走焊烟.

  我们不深入谈论怎么用这个电源的更多细节了.我想你可以在别的Instructable项目中找到如何使用.

老式SCSI磁盘接口 白色的就是莫仕接头 台式机电源

继续阅读

快速将VB内数据导入到Excel

  来源于工作实际碰到的一个问题.客户需要将数据导出生成报表,起先我们是用Word生成.doc文档.后来发现大量的数据在doc文档中显示及其不人性化,且几乎没有意义.所以改成将数据另外单独生成Excel文档.所以就有了”将数据导入Excel文档”这个问题.

  由于数据较多,每条数据大概包括14个单精度的数字,需要导入至少2万条.一个单元格一个单元格填充和一条一条填充经测试,在我电脑上约进行了15分钟的样子,期间程序假死.这肯定是不行的,所以找到如下方法.将数据放入二维数组x(m, n)中.仅一条语句就将此数组的数据全部导入相应的Excel表中.耗时约10秒. 嘿嘿

  当然必须先引用excel对象,看看效果是这样的(基本上可以做到像在哪里添加数据就在哪里添加)

sheet1这样子 sheet2 这样子

代码:

[codesyntax lang=”vb” lines=”fancy”]

Option Explicit 

Dim x(0 To 4, 0 To 7) As String 

Private Sub Command1_Click() 

    Dim ex      As Object
    Dim exwbook As Object
    Dim exsheet As Object
    Dim i, j
    Dim m As Byte, n As Long 

    Set ex = CreateObject("Excel.Application")
    Set exwbook = Nothing
    Set exsheet = Nothing
    Set exwbook = ex.Workbooks().Add
    Set exsheet = exwbook.Worksheets(2) '选择sheet2测试
    i = "4"
    j = "7"
    ex.Visible = True '看得见直观点 

    '// 这里随便添加点数据 模拟软件运行生成的数据
    For m = 0 To 4
        For n = 0 To 7
            x(m, n) = m & "   " & n
        Next
    Next 

    '//sheet2中这样导入 方法一 (10,1):(13,7) 方块区域填充.
    exsheet.Range(exsheet.Cells(10, 1), exsheet.Cells(13, 7)).Value = x()
    '// sheet1中这样导入 方法二
     ex.Range("C" & i & ":" & "I" & j).Value = x() '在 C4:I7 方块区域填充数据
    '//其他的简单 单元格填充
    ex.Range("c3").Value = "表 格"
    ex.Range("d3").Value = " 数据1  "
    ex.Range("e3").Value = " 数据2 "
    ex.Range("f3").Value = " 数据3 "
    ex.Range("g3").Value = " 数据4 "
    ex.Range("h3").Value = " 数据5 "
    ex.Range("i3").Value = " 数据6 "
    '保存输入到abc.xls
    exwbook.SaveAs "c:\abc.xls"
    '退出excel
    ex.Quit
End Sub 

Private Sub Form_Load()
    Me.Show
End Sub 

[/codesyntax]

PS:
  利用 a(0 To 5) As String 这样的一维数组可以轻松添加成行的表头.
  VBA中基底是1(VB中是0),即所有表格,单元格等都是从1开始计数的,千万注意.
  Excel一个Sheet最多容纳数据:65536行,256列.数据再多的话必须考虑分组或者其他解决方法.

自制8*8*8 LED点阵 by chr (1)

转载自这里(3DLED点阵)

简介 LED-8*8*8点阵

制作自己的8*8*8 LED 3D 点阵 显示器
  这项目是在Intertubes发布的 最全面的 且 手把手指导下制作的一个8x8x8 LED点阵.它会教你一切:从操作,如何建立多维数据集理论,以软件的内部工作方式.我们会一步一步通过软件(无论低级别的驱动程序/程序的)指引你,以及如何创建令人激动的动画.

  大概在进行一半的时候,你就会真正的拥有一个功能齐全的LED立方体.剩下的步骤我们会教你如何编写软件.

  话不多说,来个视频形象点.下面的这个视频告诉你接下来做的这个东西看起来大致如此:

  我和我的朋友Chiller一起完成了这个立方块.从构建模型到完成大概用来我们4天时间.接下来的数小时我们又调试了某些错误的晶体管debug.

  和软件结合起来用来4-5天.

继续阅读

Excel按行数据修改颜色

  前几天一朋友的问题:Excel中,若一行中有数据小于0,则把这这一行颜色换成红色(显得醒目).
我果断想到宏,这个与VB如此相同的东西.话不多说,开始吧,just for fun :)

  打开一个Excel表格.工具-宏-宏-输入一个名称例如Test-创建
进入到一个编辑页面.按如下代码:
[codesyntax lang=”vb” lines=”fancy”]

Sub Test()
For i = 1 To Sheet1.Rows.Count - 1'遍历所有行

    For j = 1 To Sheet1.Columns.Count - 1'遍历所有列

        If Sheet1.Cells(i, j) = "" Then GoTo NextRow'对于没有数据的单元格

        If Sheet1.Cells(i, j) < 0 Then'判断数据小于0 ,则
            Sheet1.Rows(i).Font.Color = vbRed '设置该行的颜色=红色
        GoTo NextRow'只要有一个数据符合要求就不再判断该行其他数据.

        End If
    Next
NextRow:
Next

End Sub

[/codesyntax]

  保存-关闭,回到Excel表格的界面,运行这个宏就ok了.

  vb和office系列同属微软的产品,接口很友好.

  当然还可以举一反三进行其他的一些您想得到的或想不到的操作.