这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » 赤色要塞组的进程

共14条 1/2 1 2 跳转至

赤色要塞组的进程

助工
2012-11-30 19:35:08     打赏
一:何为arduino

组长:ddllxxrr
组员:liuxinran,ddjyz


试用总记录:

1 何为arduino           1楼 2012.11.30
2 收到板子并点亮      4楼 2012.11,30
3 呼息灯效果              7楼  2012.12.1
 4  串口通讯                 9楼  2012.12.2
 5  SD卡的操作          11楼  2012.12.4
 6  GR-SAKURA开发板的原理图     15楼  2012.12.5
 7 用按键控制LED                             16楼   2012.12.5
 8  对GR-SAKURA开发板的网络接口的疑问    17楼  2012.12.10
 9  随机函数发生器                             18楼  2012.12.12
 10  板子运行多长时间啦????     22楼  2012.12.14
 11  一段音乐          26楼      2012.12.26
     
     
     
     
     
     
     
     
     



大家知道Sakura是基于arduino的,那么什么是arduino呢?

Arduino的历史

Arduino是什么?Arduino是一块基于开放源代码的USB接口Simple I/O接口板(包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC 输入通道),并且具有使用类似Java,C语言的IDE集成开发环境。让您可以快速使用Arduino语言与Flash或Processing…等软件,作出互动作品。

Arduino可以使用开发完成的电子元件例如Switch或Sensors或其他控制器、LED、步进马达或其他输出装置。Arduino也可以独立运作成为一个可以跟软件沟的接口,例如说:flash processing Max/MSP VVVV 或其他互动软件…。Arduino开发 IDE 接口基于开放源代码,可以让您免费下载使用开发出更多令人惊艳的互动作品。

这个最经典的开源硬件项目,诞生于意大利的一间设计学校。Arduino的核心开发团队成员包括:Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis和Nicholas Zambetti。

  据说Massimo Banzi的学生们经常抱怨找不到便宜好用的微控制器,2005年冬天,Massimo Banzi跟朋友David Cuartielles讨论了这个问题,David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。几乎任何人,即使不懂电脑编程,也能用Arduino做出很酷的东西,比如对感测器作出回应,闪烁灯光,还能控制马达。

随后Banzi,Cuartielles,和Mellis把设计图放到了网上。保持设计的开放源码理念,因为版权法可以监管开源软体,却很难用在硬体上,他们决定采用Creative Commons许可。Creative Commons(CC)是为保护开放版权行为而出现的类似GPL的一种许可(license)。在Creative Commons许可下,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得Arduino团队的许可。然而,如果你重新发布了引用设计,你必须说明原始Arduino团队的贡献。如果你调整或改动了电路板,你的最新设计必须使用相同或类似的 Creative Commons许可,以保证新版本的Arduino电路板也会一样的自由和开放。唯一被保留的只有Arduino这个名字。它被注册成了商标。如果有人想用这个名字卖电路板,那他们可能必须付一点商标费用给Arduino的核心开发团队成员。你可以参考Arduino 的官方网站http://www.arduino.cc,通过链接你会找到各种创意作品的源码,当然也有很多机器人应用实例代码,例如直流电机PWM 调速、舵机控制、超声波测距、红外传感器寻迹等,相信它能使你早日实现机器人DIY 的梦想。

Arduino名称的由来

意大利北部一个如诗如画的小镇「Ivrea」,横跨过蓝绿色Dora Baltea河,它最著名的事迹是关于一位受压迫的国王。公元1002年,国王Arduin成为国家的统治者,不幸的是两年后即被德国亨利二世国王给废掉了。今日,在这位无法成为新国王的出生地,cobblestone街上有家叫「di Re Arduino」的酒吧纪念了这位国王。Massimo Banzi经常光临这家酒吧,而他将这个电子产品计划命名为Aruino以纪念这个地方。

Arduino系列控制器特色

1、开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改;

2、可以采用USB 接口供电,也可以外部供电,双向选择;

3、Arduino支持ISP 在线烧写,可以将新的“bootloader”固件烧入 ATmega168 或AT mega328芯片。有了bootloader之后,可以通过USB 更新程序;

4、可依据官方提供的Eagel格式PCB 和SCH 电路图,简化Arduino模组,完成独立运作的微处理控制。可简单地与传感器,各式各样的电子元件连接(红外线、超音波、热敏电阻、光敏电阻、伺服舵机…等);

5、支持多种互动程序,如:Flash、Max/Msp 、VVVV 、C、Processing....等;

6、应用方面,利用Arduino,突破以往只能使用鼠标、键盘,CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。



arduino 的程序框架如下:

void setup(){
 只执行一次,就是初使化一次
}
void loop() {
程序在循环中执行
}

从下个笔记开始Sakura之旅。




关键词: 赤色     要塞     进程     Arduino    

助工
2012-11-30 20:58:38     打赏
2楼
明白

助工
2012-11-30 21:03:53     打赏
3楼

二:收到arduino并编译了一下 

谢谢JACKWANG:

本来28号就到的,但由于种种原因今天才到我手里。本来以为很大的一个板子,但出乎我的意料,十分的小巧。上照片:

板子的照片:




我看用USB线(迷你),连到电脑一端连到板子,没有设什么跳不跳线的。自动就给我装上了。我的电脑里多了个U盘。


然后我就登录网上编译器的网页:
http://sakuraboard.net,



起个名字:first
然后自动就生成了一个例程:


程序如下所示:

/*GR-SAKURA Sketch Template Version: V1.01*/
#include <rxduino.h>

#define INTERVAL 100

void setup()
{
    pinMode(PIN_LED0,OUTPUT);
    pinMode(PIN_LED1,OUTPUT);
    pinMode(PIN_LED2,OUTPUT);
    pinMode(PIN_LED3,OUTPUT);

}

void loop()
{

    digitalWrite(PIN_LED0, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED1, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED2, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED3, 1);
    delay(INTERVAL);
    digitalWrite(PIN_LED0, 0);
    delay(INTERVAL);
    digitalWrite(PIN_LED1, 0);
    delay(INTERVAL);
    digitalWrite(PIN_LED2, 0);
    delay(INTERVAL);
    digitalWrite(PIN_LED3, 0);
    delay(INTERVAL);
}

我直接点编译,居然一个错误也莫有,呵呵



然后把产生的BIN文件下载,考入到U盘中,这时本来是一直亮的灯,开始象蛇一样地闪了起来


助工
2012-12-01 23:34:55     打赏
4楼

三:呼息灯效果

这个是利用管脚的模拟电压功能,输出不同的电压。

其中有以下几个库函数:

analogReference 这个函数是指定参考电压,用法是analogReference(mode),其中模式又有DEFAULT:5.0V
INTERNAL:1.1V
EXTERNAL:外部电压
RAW12BIT:3.3V


analogRead这个函数是用业读模拟管脚值,用法是analogRead(analog_pin)读出值为0-1023,12位AD为0-4095.

analogWrite这个函数是往管脚写值,用法是analogwrite(int pin,int value) 值为0-255

analogWriteFrequency(int HZ) 往管脚写频率12-84999

analogWriteDAC(int pin,int value) 向管脚写DAC值,0-1023

程序如下:

/*GR-SAKURA Sketch Template Version: V1.01*/
#include <rxduino.h>
    unsigned char ledpat[6][4] ={
    {20,50,100,200},
    {50,100,200,20},
    {100,200,20,50},
    {200,20,50,100},
    {100,200,20,50},
    {50,100,200,20},
    };
void setup()
{
    pinMode(PIN_LED0,OUTPUT);
    pinMode(PIN_LED1,OUTPUT);
    pinMode(PIN_LED2,OUTPUT);
    pinMode(PIN_LED3,OUTPUT);
}
void loop()
{
    int i;
    for(i=0;i<6;i++)
    {
    analogWrite(PIN_LED0,ledpat[i][0]);
    analogWrite(PIN_LED1,ledpat[i][1]);
    analogWrite(PIN_LED2,ledpat[i][2]);
    analogWrite(PIN_LED3,ledpat[i][3]);
    delay(100);
    }
}
    

 其效果是实现了吸息灯效果。



助工
2012-12-02 14:25:23     打赏
5楼

串口通讯

GR-SAKURA的通讯是通过USB口通讯的。首先得下个虚拟串口驱动,否则。串口识别不了。

驱动程序如下:

R.rar

再看下库函数:

begin函数:

Serial.begin(int speed,port)

speed 通信速率

port:   SCI_USB0

       SCI_SCI2A       30RXD    31TXD

       SCI_SCI2B       24TXD    26RXD

       SCI_SCI6B       6TXD   7 RXD

        SCI_SCIOP2x    0RXD   1TXD

        SCI_AUTO      为第0、第1


end函数    
停止串口

available 串口使能


read  
读串口


peek
监视收到数据没有


flush
等待串口空


write
写一字符串

      Serial.write(const char* str)

      Serial.write(const unsigned char* buf, int len)


print
输出字符串 BIN2进制,OCT8进制,DEC10进制


println
可控制行输出

 
程序如下:

     

/*GR-SAKURA Sketch Template Version: V1.00*/
#include <rxduino.h>
#define INTERVAL 500
 
void setup()
{
    Serial.begin(9600);
}
 
void loop()
{
    Serial.println("Hello Sakura!");
    Serial.println("Hello eepw");

    delay(INTERVAL);
}


检测的时候一定要看准端口,我的端口如下:





用超级终端观察结果:


助工
2012-12-04 23:31:02     打赏
6楼

SD卡的操作

 

要想操作SD卡一定要包含SDMMC那个库。否则编译时提示出错。

 

 

 

 

简单学习下SDMMC的库的文件:

 

 

begin 初使化SD卡。

      SDMMC.begin

      SDMMC.begin(int cspin)

      cspin为片选信号。

insert插入状态

      SDMMC.insert(bool ins)

exists 看文件是否存在

       bool SDMMC.exists(const char* filename)

mkdir 建立子目录

      bool SDMMC.mkdir(const char* pathname)

      成功返true 失败false

open  打开文件

      File SDMMC.open(const char* filename, FILE_MODE mode)

remove删除文件

      bool SDMMC.remove(const char* filename)

rename给文件重新命名

      bool SDMMC.rename(const char* oldname, const char* newname)

rmdir 删除子目录名

      bool SDMMC.rmdir(const char* pathname)

 

 

我下面的程序就是识别一下SD卡。当SD卡成功时第三灯亮,否则第一灯亮

 

以下是程序:

 

 

 

#include <rxduino.h>
#include <sdmmc.h>
typedef unsigned long DWORD;

DWORD get_fattime (void)

{

    return ( ((DWORD)2012 - 1980)  1);

}

SDMMC MicroSD;

File SdFile = MicroSD.open(__null);

void setup()

{

    Serial.begin(9600);

    pinMode(PIN_LED0,OUTPUT);

    pinMode(PIN_LED1,OUTPUT);

    pinMode(PIN_LED2,OUTPUT);

    pinMode(PIN_LED3,OUTPUT);

    MicroSD.begin();

}

void loop()

{

    SdFile = MicroSD.open( "Test9", FILE_WRITE );

    if( SdFile==false ){

        Serial.print("SdFile == false");

        digitalWrite(PIN_LED0, 1);

        while(true);

    }

    SdFile.print( "Test9" );

    SdFile .flush();

    SdFile .close();

    digitalWrite(PIN_LED2, 1);

    Serial.print("test ok");

    while(true);

}


助工
2012-12-05 21:27:30     打赏
7楼

谢谢JOB提示,我改去


助工
2012-12-05 21:48:32     打赏
8楼
GR-SAKURA开发板的原理图:黑白
gr_sakura_schematic_mono.pdf

彩色:
gr_sakura_schematic_color.pdf


助工
2012-12-05 22:01:01     打赏
9楼

用按键控制LED

利用蓝色按钮,来控制LED1,

这人是利用板子定义的宏 PIN _SW和PIN_LED0

当按下蓝色按钮时,LED0灭当抬起来的时候,就亮了。

以下是程序:


/*GR-SAKURA Sketch Template Version: V1.01*/
#include <rxduino.h>


const int buttonPin = PIN_SW;     // the number of the pushbutton pin
const int ledPin =  PIN_LED0;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);     
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);    
}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {    
    // turn LED on:   
    digitalWrite(ledPin, HIGH); 
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}


助工
2012-12-10 23:19:57     打赏
10楼

对GR-SAKURA的网络接口的疑问

我的程序很简单如下:


#include <rxduino.h>

#include <Ethernet.h>

byte mac[] = {
  0x00,0x23,0xCD,0x72,0x64,0x7E };
    byte ip[] ={192,168,1,100};
    byte gateway[] ={192,168,1,1};
    byte subnet[] ={255,255,255,0};
    TEthernet net;


// telnet defaults to port 23
EthernetServer server(23);
boolean alreadyConnected = false; // whether or not the client was connected previously

void setup() {
// Open serial communications and wait for port to open:
  Serial.begin(9600);

  // initialize the ethernet device
  net.begin(mac, ip, gateway, subnet);
  // start listening for clients
  server.begin();
   


  Serial.print("Chat server address:");
  Serial.println(net.localIP());
}

void loop() {
  // wait for a new client:
  EthernetClient client = server.available();
  Serial.print("RUNING");
  // when the client sends the first byte, say hello:
  if (client) {
    if (!alreadyConnected) {
      // clead out the input buffer:
      client.flush();   
      Serial.println("We have a new client");
      client.println("Hello, client!");
      alreadyConnected = true;
    }

    if (client.available() > 0) {
      // read the bytes incoming from the client:
      char thisChar = client.read();
      // echo the bytes back to the client:
      server.write(thisChar);
      // echo the bytes to the server as well:
      Serial.write(thisChar);
    }
  }
}


我的这个程序很简单就是实现在本地通过IE浏览器看到IP地址。

我的板子通过网口接到路由器,MAC 为:00 23 CD72 64 7E
                                                        网关为:192.168.1.1
我对论坛里通过的网络部分,表示怀疑,因为我星期天搞了一天,络口指示灯一点不亮。我用了好几个程序,在不跳线的情况下。我看是没有办法的。学习吗就应知之为知之,不知为不知。我通过实践觉得网口有毛病。求解?


但我程序编译通过了。下进没任何反应。MAC,网关,IP,我都没设错。我怀疑板子的网络接口是不是有问题。

请做出的或知道原因的大侠给个指导。谢了


共14条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]