Program-ME é uma placa controladora compatível com Arduino e programável através de uma simplificação da linguagem C. A transferência do programa é feita por USB com uma interface amigável que funciona em diferentes sistemas operacionais.
Temos dois formatos de placas: quadrada e redonda. Os componentes são exatamente os mesmos em ambas e recomendamos a redonda para robôs e quadrada para projetos estacionados.



Clique aqui para download de uma versão para impressão
O Program-ME já vem com sensor de luz e temperatura que são de extrema utilidade e diversos tipos de projetos.
Você pode controlar qualquer tipo de motor com o Program-ME, pois ele já possui 4 transistores e uma ponte H para isso.
/* Exemplo código Arduino*/ // Piscando Led int ledPin = 13; //Led da porta digital 13 do program-me void setup() { pinMode(ledPin, OUTPUT); // configura porta do led para escrita / saída } void loop() { digitalWrite(ledPin, HIGH); // liga o LED delay(1000); // espera um segundo digitalWrite(ledPin, LOW); // desliga o LED delay(1000); // espera um segundo }
int leds[] = { 13, 12, 8, 7, 4}; void setup() { Serial.begin(9600); for(int x=0;x<5;x++) { pinMode(leds[x], OUTPUT); } } void loop() { for(int x=0;x<=4;x++) { digitalWrite(leds[x], HIGH); delay(100); digitalWrite(leds[x], LOW); delay(100); } }
int leds[] = { 13, 12, 8, 7, 4}; void setup() { Serial.begin(9600); for(int x=0;x<5;x++) { pinMode(leds[x], OUTPUT); } } void loop() { Serial.println("Sensor: "); Serial.println(analogRead(SENSOR_LUZ)); int numeroLedsALigar = map(analogRead(SENSOR_LUZ), 300, 900, 0, 4); Serial.println(numeroLedsALigar); for(int x=0;x<=numeroLedsALigar;x++) { digitalWrite(leds[x], HIGH); delay(100); } for(int x=numeroLedsALigar;x>-1;x--) { digitalWrite(leds[x], LOW); delay(100); } }
#include <Servo.h> #define SPEAKER 4 //em paralelo com led #define LED_P5 4 //em paralelo com speaker #define LED_P4 7 #define LED_P3 8 #define LED_P2 12 #define LED_P1 13 #define CHAVE_1 2 #define TRANSISTOR_Q5 9 #define TRANSISTOR_Q4 6 //servo #define TRANSISTOR_Q2 5 //servo #define TRANSISTOR_Q3 3 //Analogicas #define SENSOR_TEMPERATURA 2 #define SENSOR_LUZ 3 #define ENTRADA_1 0 #define ENTRADA_2 1 //Entradas para interrupcao #define INT_1 3 #define INT_0 2 #define SERVO_1 5 #define SERVO_2 6 //Ponte H #define MOTOR1_A 7 //led paralelo #define MOTOR1_B 8 //led paralelo #define MOTOR1_PWM 10 //led paralelo #define MOTOR2_A 12 //led paralelo #define MOTOR2_B 13 //led paralelo #define MOTOR2_PWM 11 //led paralelo Servo servoV; Servo servoH; void setup(){ setupMotor(); servoH.attach(5); servoV.attach(6); } void loop() { andarFrente(1000,4); parar(); andarTraz(1000,4); parar(); girarNoEixo(1000,4,0); parar(); girarNoEixo(1000,4,1); parar(); return; } int sentido=0; void setupMotor() { pinMode(MOTOR1_A, OUTPUT); pinMode(MOTOR1_B, OUTPUT); pinMode(MOTOR2_A, OUTPUT); pinMode(MOTOR2_B, OUTPUT); } void girarNoEixo(int tempo, int intensidade, int sentido1) { analogWrite(MOTOR1_PWM,intensidade*50); analogWrite(MOTOR2_PWM,intensidade*50); digitalWrite(MOTOR1_A,sentido1); digitalWrite(MOTOR1_B,!sentido1); digitalWrite(MOTOR2_A,!sentido1); digitalWrite(MOTOR2_B,sentido1); delay(tempo); } void parar() { analogWrite(MOTOR1_PWM,0 ); analogWrite(MOTOR2_PWM,0); digitalWrite(MOTOR1_A,0); digitalWrite(MOTOR1_B,0); digitalWrite(MOTOR2_A,0); digitalWrite(MOTOR2_B,0); } void andarFrente(int tempo, int intensidade) { sentido = 0; analogWrite(MOTOR1_PWM,intensidade*50); analogWrite(MOTOR2_PWM,intensidade*50); digitalWrite(MOTOR1_A,sentido); digitalWrite(MOTOR1_B,!sentido); digitalWrite(MOTOR2_A,sentido); digitalWrite(MOTOR2_B,!sentido); delay(tempo); } void andarTraz(int tempo,int intensidade) { sentido = 1; analogWrite(MOTOR1_PWM,intensidade*50 ); analogWrite(MOTOR2_PWM,intensidade*50); digitalWrite(MOTOR1_A,sentido); digitalWrite(MOTOR1_B,!sentido); digitalWrite(MOTOR2_A,sentido); digitalWrite(MOTOR2_B,!sentido); delay(tempo); } void virarEsquerda(int tempo,int intensidade) { analogWrite(MOTOR1_PWM,intensidade*50 ); analogWrite(MOTOR2_PWM,10*intensidade); digitalWrite(MOTOR1_A,sentido); digitalWrite(MOTOR1_B,!sentido); digitalWrite(MOTOR2_A,sentido); digitalWrite(MOTOR2_B,!sentido); delay(tempo); } void virarDireita(int tempo,int intensidade) { analogWrite(MOTOR1_PWM,10*intensidade ); analogWrite(MOTOR2_PWM,intensidade*50); digitalWrite(MOTOR1_A,sentido); digitalWrite(MOTOR1_B,!sentido); digitalWrite(MOTOR2_A,sentido); digitalWrite(MOTOR2_B,!sentido); delay(tempo); } void virarEsquerdaRe(int tempo,int intensidade) { analogWrite(MOTOR1_PWM,intensidade*50 ); analogWrite(MOTOR2_PWM,10*intensidade); digitalWrite(MOTOR1_A,!sentido); digitalWrite(MOTOR1_B,sentido); digitalWrite(MOTOR2_A,!sentido); digitalWrite(MOTOR2_B,sentido); delay(tempo); } void virarDireitaRe(int tempo,int intensidade) { analogWrite(MOTOR1_PWM,10*intensidade ); analogWrite(MOTOR2_PWM,intensidade*50); digitalWrite(MOTOR1_A,!sentido); digitalWrite(MOTOR1_B,sentido); digitalWrite(MOTOR2_A,!sentido); digitalWrite(MOTOR2_B,sentido); delay(tempo); }
Arduino foi criado na Itália por Máximo Banzi com o objetivo de fomentar a computação física, cujo conceito é aumentar as formas de interação física entre nós e os computadores. Por se tratar de uma plataforma com especificações livres de patentes e softwares open-source, temos vários fabricantes independentes de ARduino ao redor do mundo, incluindo o Brasil que fabrica as versãotilde;es Severino, Tatuino, Modelixino e agora o Program-ME da Globalcode.
Na prática utilizamos portas digitais e analógicas para ligar componentes eletronicos (ex. leds, sensores, motores) e programar via software seu comportamento.
Nas portas digitais podemos ler ou gravar 0/1 ou HIGH/LOW. Um led ligado em uma porta digital em estado HIGH é um led ligado. Já as portas analógicas transmitem os dados em onda senoidal, que por fim são convertidos para números entre 0 e 1023. Potenciômetro e sensor de luz são exemplos de componentes que devem ser ligados nas portas analógicas.
O Arduino disponibiliza também portas digitais PWM que permitem um tipo de controle de potência em portas digitais. Usamos PWM para por exemplo controlar a velocidade de rotação de um motor.
Existem também diferentes tipos de Arduino além do convencional para atender a projetos mais específicos: