Posted on

基于Web的电路设计工具

1、Multisim.com
Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。
工程师们可以使用Multisim交互式地搭建电路原理图,并对电路进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。

2、Easyeda.com / Lceda.cn
 EasyEDA是一个完全免费的、无需安装的、基于浏览器和云的设计工具,和诸多云应用一样,无论是windows、mac还是linux都可以通过浏览器直接使用。提供了丰富且自增长的设计素材库和资料库,只要你愿意,可以在享受各种资源的同时,与大家分享你的作品,系统同时适用于团队的协同设计开发。立创商城正式宣布并购在线电子设计软件EasyEDA,在国内推出立创EDA。

Posted on

Arduino驱动ULN2003(28BYJ48步进电机)

int p1 = 11;
int p2 = 12;
int p3 = 18;
int p4 = 31;
void setup() {
  pinMode(p1,OUTPUT);
  pinMode(p2,OUTPUT);
  pinMode(p3,OUTPUT);
  pinMode(p4,OUTPUT);
}
int steps=0;
void loop() {
  step(steps);
  steps++;
  if(steps>7){
    steps=0;
  }
  delayMicroseconds(1200);
}
void step(int t){
  switch(t){
    case 0:{
      digitalWrite(p1,HIGH);
      digitalWrite(p2,LOW);
      digitalWrite(p3,LOW);
      digitalWrite(p4,LOW);
    }
    break;
    case 1:{
      digitalWrite(p1,HIGH);
      digitalWrite(p2,HIGH);
      digitalWrite(p3,LOW);
      digitalWrite(p4,LOW);
    }
    break;
    case 2:{
      digitalWrite(p1,LOW);
      digitalWrite(p2,HIGH);
      digitalWrite(p3,LOW);
      digitalWrite(p4,LOW);
    }
    break;
    case 3:{
      digitalWrite(p1,LOW);
      digitalWrite(p2,HIGH);
      digitalWrite(p3,HIGH);
      digitalWrite(p4,LOW);
    }
    break;
    case 4:{
      digitalWrite(p1,LOW);
      digitalWrite(p2,LOW);
      digitalWrite(p3,HIGH);
      digitalWrite(p4,LOW);
    }
    break;
    case 5:{
      digitalWrite(p1,LOW);
      digitalWrite(p2,LOW);
      digitalWrite(p3,HIGH);
      digitalWrite(p4,HIGH);
    }
    break;
    case 6:{
      digitalWrite(p1,LOW);
      digitalWrite(p2,LOW);
      digitalWrite(p3,LOW);
      digitalWrite(p4,HIGH);
    }
    break;
    case 7:{
      digitalWrite(p1,HIGH);
      digitalWrite(p2,LOW);
      digitalWrite(p3,LOW);
      digitalWrite(p4,HIGH);
    }
    break;
  }
}

Posted on

SVG中curve相对坐标转绝对坐标

相对坐标是相对前一个元素的x,y,M和L都只有x,y,看上去就是直接累加。C包括(x1,y1 x2,y2 x,y),所以CurveTo的转换如下

M x0,y0 c dx11,dy11 dx12,dy12 dx1,dy1 dx21,dy21 dx22,dy22 dx2,dy2
M x0,y0 C dx11+x0,dy11+y0 dx12+x0,dy12+y0 dx1+x0,dy1+y0 dx21+dx1+x0,dy21+dy1+y0 dx22+dx1+x0,dy22+dy1+y0 dx2+dx1+x0,dy2+dy1+y0
Posted on

platform-io常用Arduino板型设置

在VSCode里使用platform-io开发arduino程序

[env:uno]
platform = atmelavr
board = uno
framework = arduino
upload_port = COM7

[env:pro16MHzatmega328]
platform = atmelavr
board = pro16MHzatmega328
framework = arduino

[env:megaatmega2560]
platform = atmelavr
board = megaatmega2560
framework = arduino

[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino

[env:leonardo]
platform = atmelavr
board = leonardo
framework = arduino

[env:esp01_1m]
platform = espressif8266_stage
board = esp01_1m
framework = arduino