Mostrar mensagens com a etiqueta arduino. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta arduino. Mostrar todas as mensagens

Suporte Open Roberta e Bot'n Roll


Classes e métodos

Classe Pessoa, define objetos com atributos e métodos para gerar objetos.Atributos altura peso, etc.
Métodos são ações, fala, caminha, corre.

Pessoa aluno = new Pessoa();
aluno.corre(velocidadePernaE, VelocidadePernaD)
aluno.fala(língua)

Atributos
Do aluno Data de nascimento, BI, género
setData(int ano);
getData();

Parâmetros
velocidadePernaE, VelocidadePernaD

Inserir código do Open Roberta no Arduino

1. Elaborar o programa no Open Roberta.

2. Exportar o código
e abri-lo no Arduino.

Rascunho - incluir biblioteca - Adicionar biblioteca zip

Nota: Quando adiciono uma biblioteca,
elas são arrastadas para dentro 
do programa do Arduino.



4. No código comentar
//#include <NEPODefs.h>

5. Descarregar bibliotecas feitas à mão
e copiá-las para dentro da pasta do projeto.
Tenho de fazer sempre isto. 


6. No código, alterar < por “ e > por “ 
nos nomes das bibliotecas inseridas em 5.
para ir buscar as bibliotecas à pasta do projeto.
Só a "RobertaFunctions.h" e BnrRoberta.h"


7. Para não estar sempre a alterar
posso copiar apenas o void setup,
o topo, com os includes, é igual.


Colar isto antes do void setup()
#include <ArduinoSTL.h>
#include <list>
//#include <NEPODefs.h>
#include <math.h> 
#include <BnrOneA.h>   // Bot'n Roll ONE A library 
#include <BnrRescue.h>   // Bot'n Roll CoSpace Rescue Module library 
#include "RobertaFunctions.h"   // Open Roberta library 
#include "BnrRoberta.h"    // Open Roberta library 
#include <SPI.h>   // SPI communication library required by BnrOne.cpp 
#include <Wire.h>   //a library required by BnrRescue.cpp for the additional sonar  
BnrOneA one; 
BnrRescue brm; 
RobertaFunctions rob;  
BnrRoberta bnr(one, brm);  
#define SSPIN  2 
#define MODULE_ADDRESS 0x2C 
byte colorsLeft[3]={0,0,0}; 
byte colorsRight[3]={0,0,0};

Se quiser ver o que um objeto ou método faz:

Por exemplo bnr.move vou a biblioteca bnr.h,

mas só tem os cabeçalhos.
O código está em no ficheiro com a extensão *.cpp.

Tenho de descompactuar o zip.

Bnr.moveTime

Lâmpada pulsante - Exercício arduino


Código 1

// Lâmpada pulsante
int ledPin = 11;
float sinVal;
int ledVal;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int x=0; x<180 o:p="" x="">
// converte graus para radianos e, então, obtém o valor do seno
sinVal = (sin(x*(3.1416/180)));
ledVal = int(sinVal*255);
analogWrite(ledPin, ledVal);
delay(25);
}
}

Código 2 (Opção)

// Lâmpada pulsante
int ledPin = 11;
float sinVal;
int ledVal;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int x=0; x< 256; x++) {<256 o:p="" x="">
analogWrite(ledPin, x);
delay(25);
}
for ( x=255; x>=0 ; x--) {
analogWrite(ledPin, x);
delay(25);
}
}



Código 3 (Opção)

// Lâmpada pulsante
int ledPin = 11;
float sinVal;
int ledVal;

void setup() {
   pinMode(ledPin, OUTPUT);
}

void loop() {

   for (int x=-255; x<256 p="" x=""><256 i="" p=""> analogWrite(ledPin, abs(x) );
delay(25);
   }
}


Iluminação com potenciómetro - Exercício Arduino




Código

//Efeito interativo de iluminação sequencial com LEDs
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};        // Cria um array para os pinos dos LEDs int ledDelay; // intervalo entre as alterações
int direction = 1; int currentLED = 0;
unsigned long changeTime;
int potPin = 2;      // seleciona o pino de entrada para o potenciômetro

void setup() {
for (int x=0; x<10 span="" style="letter-spacing: -.5pt;"> x++) {       // define todos os pinos como saída pinMode(ledPin[x], OUTPUT); }

changeTime = millis();
}

void loop() {
ledDelay = analogRead(potPin);                        // lê o valor do potenciômetro
if ((millis() - changeTime) > ledDelay) {             // verifica se transcorreram ledDelay ms desde a
// última alteração
changeLED(); changeTime = millis();
}
}

void changeLED() {
for (int x=0; x<10 span="" style="letter-spacing: -1.15pt;"> x++) {   // apaga todos os LEDs digitalWrite(ledPin[x], LOW);

}
digitalWrite(ledPin[currentLED], HIGH);              // acende o LED atual
currentLED += direction;                     // incrementa de acordo com o valor de direction
// altera a direção se tivermos atingido o fim if (currentLED == 9) {direction = -1;}
if (currentLED == 0) {direction = 1;}
}




Exercício 06 - Iluminação sequencial com LEDs



Código

-->
// Projeto 5 – Efeito de iluminação sequencial com LEDs
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};      // cria um array para os pinos dos LEDs int ledDelay(65); // intervalo entre as alterações
int direction = 1; int currentLED = 0;
unsigned long changeTime;

void setup() {
for (int x=0; x<10 span="" style="letter-spacing: -.5pt;"> x++) {    // define todos os pinos como saída pinMode(ledPin[x], OUTPUT); }

changeTime = millis();
}

void loop() {
if ((millis() - changeTime) > ledDelay) {     // verifica se transcorreram ledDelay ms desde
// a última alteração
changeLED(); changeTime = millis();
}
}
void changeLED() {
for (int x=0; x<10 span="" style="letter-spacing: -1.15pt;"> x++) {   // apaga todos os LEDs digitalWrite(ledPin[x], LOW);

}



digitalWrite(ledPin[currentLED], HIGH); // acende o LED atual
currentLED += direction; // incrementa de acordo com o valor de direction
// altera a direção se tivermos atingido o fim if (currentLED == 9) {direction = -1;}
if (currentLED == 0) {direction = 1;}
}




-->