Professional Documents
Culture Documents
CPOL
4.87 13 votos
Tutorial de um novato para o Arduino com Ardos
Contedo
1. Antecedentes 2. Configurando Desenvolvimento Arduino Environment 2.1 Comeando com o Arduino Development Environment
2.2 Noes bsicas de Arduino C Programa 2.3 Escrevendo nosso Programa de Arduino Primeira 2.3.1 Simples Piscando Programa
2.3.2 Tomando entrada da Porta Serial 2.3.3 Trabalhando com Digital Chaves 2.3.4 Trabalhando com sensores toque
interruptor exemplo 2.3.5 Funes definidas pelo usurio 3. Ardos 3.1 Instalao 3.2 Trabalhando com Ardos 4. Concluso
1. Fundo
Arduino uma plataforma de hardware popular, que destinado a projectos de prototipagem e hobby, mas voc pode ter a certeza de
um projeto mais complexo e divertido hardware com Arduino. placas Arduino tem um microcontrolador central e vrios outros chips e
necessory hardware para comear com seus projetos de hardware e hobby.
Um microcontrolador tpico basicamente executa um nico programa infinitamente. Esse programa pode acessar vrios dispositivos
entradas, sensores, sada e exibio. Por exemplo, um microcontrolador pode ser programado para ler LDR sensor de luz continuesly e
exibir a intensidade da luz em um LCD. Quando a intensidade da luz cai abaixo de certo nvel, pode desencadear uma unidade rel que
liga luzes. Mas todos estes lgica executado em um nico circuito.
No entanto, existem punhado de scenerios tempo real, onde se espera que o microcontrolador para fazer muitas tarefas paralelas. A
execuo paralela de tarefas so mais ou menos em simultneo, o que significa que existe um mecanismo de comutao tarefa que
muda de um subrouting para outro. programa microcontrolador convencionalmente lida com essa simultaneidade atravs do uso
cutelo de temporizador e saltando de uma subrouting para outro. Mas a implementao de uma estratgia de concorrncia efectiva e,
em seguida, compartilhar dados entre a subrotina uma tarefa tediosa.
Considere um controle remoto IR simples com Arduino. Dependendo do cdigo gerado, o dispositivo esperado para executar certas
tarefas. Agora, quando o sinal de IR gerado no conhecido. Esta a entrada asynchrnous. Portanto, o dispositivo no pode continuar
a ouvir o sinal IR. O sinal necessita de ser ligado a interromper pino de tal forma que como e quando o sinal chega, uma ISR chamado,
que pode, em seguida, manipular o sinal de IV.
Agora, considere a instalao de iluminao simples, onde conjuntos de luzes so ligadas e desligadas pelo microcontrolador em uma
ordem especfica. Uma vez que um cdigo IR feita volume de dizer + bytton pressionado de um controlo remoto, em seguida, a
fim de LEDs deve ser mudado. Portanto, deve haver subrotinas separadas para Glowing LEDs, e ento deve haver ISR para lidar com
cdigo de IR. cdigo IR deve immidiately alterar a ordem. Em seguida, as subrotinas para diferentes LEDs deve ser mudado. Assim,
mesmo um IR simples pode ser pensado para ter evento diferente considerar diferentes cdigos IR como sendo evento diferente.
Ao mesmo tempo utilizador pode querer adicionar lgica extra para ele. Digamos que, juntamente com os LEDs, queremos certa
campainha para funcionar. Quando o novo hardware e funes esto a ser adicionado com a lgica existente, novo cdigo inteiro deve
ser reescrito, compilado, testado e otimizado.
A fim de lidar com esses requisitos simultaneidade, impulsividade Evento, Adicionando hardware, Gerenciamento de tarefas de
aplicaes orientadas microcontrolador tempo real, sistemas operacionais em tempo real foram desenvolvidos RTOS.
Um sistema operacional de tempo real um "programa" microcontrolador independente que pode lidar com taks de baixo nvel como
simultaneidade, gerenciamento de tarefas, disparadores de eventos e assim por diante. Quando um pedido desenvolvida com SOTR, o
prprio sistema operativo distribudo com a aplicao como no final do dia, o microcontrolador executa ainda um nico programa!
Assim, podemos pensar em sistema operacional em tempo real como uma biblioteca que pode ser utilizado pelo programa de
microcontrolador e um que lida com baixo nvel "taks especficos do sistema operacional", como o gerenciamento de dispositivos,
comunicao, tarefas e operaes.
Ardos um tal sistema operacional em tempo real para a plataforma Arduino. Destinase a fornecer APIs que ajuda a alcanar grandes
LEVL de paralelismo para os programas Arduino, juntamente com um excelente suporte para a manipulao de eventos e gatilhos.
Neste tutorial veremos o funcionamento bsico com Arduino e depois vamos estender nosso conselho para apoiar Ardos. Vamos comparar
certas aplicaes que esto sendo desenvolvidos sem Ardos e com Ardos e ir comparar seus desempenhos (Consulte a figura 1).
Eu estaria usando placa Arduino Duelmilanova para este totorial qual obtemos por cerca de $ 11 aqui na ndia. Voc tambm pode usar
Arduino Decimilia, placas Uno R3 como par a sua adequao e availibility da placa.
Primeiro download mais recente Arduino IDE de Official Software Download Site do Arduini . Usurio do Windows ser capaz de baixar
um instalador. O instalador tem um driver USB FTDI junto com o prprio IDE. Preferem instalar o driver USB. Isto essencial. Sem driver
USB seu IDE no pode se comunicar com o dispositivo de Arduino.
Seguese o Pin Descrio do dispositivo que estou usando.
setup() executado uma vez quando voc reiniciar o dispositivo, ou restrat o dispositivo, ou conectar o cabo USB. loop()
corre continuesly. lgica principal deve ser implementada dentro de loop.
Arduino Duemilanova / Diecimilia / Uno R3 daqui em diante ir se referir simplesmente como Arduino placa tem 14 IP Digital dos
pinos. Cada pino pode ser programa separadamente. Um PIN pode ser no modo de sada ou modo de entrada que precisa ser
especificada na configurao usando
pinMode(PIN_NO,OUTPUT) ou pinMode(PIN_NO,INPUT);
modo de entrada usado quando voc ligar um interruptor para um pino e quer o pino para ler o estado. Estes pinos digitais no modo
de entrada s pode reconhecer a entrada nvel lgico como 0 e 1. PIN_NO varia de 013, dependendo do pino que voc est
programando.
voc pode escrever a sada lgica em um pino no modo de sada ou pode ler o valor no pino 1 ou 0, usando
digitalWrite(PIN_NO,HIGH)/digitalWrite(PIN_NO,LOW)e intn=digitalRead(PIN_NO), respectivamente.
Alguns pinos nos portos digitais so marcados como PWM como 10 e 11 na figura. Eles podem ser usados para gerar impulso de
porta de diferente ciclo de trabalho. Pin PWM pode ser programado para produzir impulso de porta quadrado perfeito de ciclos de
funcionamento especficas usando analogWrite(PIN_NO,byteValue)Onde byteValue pode ser betweet 0 a 255, onde 255
represts mais altos ou 100% ciclo de trabalho. PWM pinos podem ser usados para controlar motores DC controle de velocidade preciso
ou intensidade controle de lmpadas elctricas atravs MOSFETs / IGBTs e assim por diante.
Arduino tem seis pinos de leitura analgico 0 a 5 em frente s portas digitais. Estes so pinos de entrada que esto ligados para 10
bits ADC. Sensores podem ser diretamente ligado a estes pinos. Arduino pode ler a tenso no pino com
intvalue=analogRead(ANALOG_PIN_NO)
O software vem com uma biblioteca de srie, atravs do qual outros programas podem se comunicar com Arduino usando
comunicao serial. Arduino IDE tambm vem com um monitor de srie atravs do qual se pode testar a comunicao serial.
Para inicializar a comunicao serial, na funo de configurao preciso inicializar o objeto de comunicao serial com
Serial.begin(BAUD_RATE)Taxa de transmisso varia nos mltiplos de 96200. Serial.print("msg"),
Serial.println("msg"), Serial.write(someVariable)so funes comuns por meio do qual a placa pode gravar
dados na porta serial que pode ser lido por qualquer programa externo capaz de comunicar com o dispositivo atravs da porta serial.
intv=Serial.read() usada para ler dados de porta serial escrito por outros programas na porta serial.
delay(delayInMilli); usado para fazer a prxima instruo de espera para delayinMilli perodo de tempo que especificado
em milissegundos.
A maior parte da ferragem entrada e sada de base pode ser realizada utilizando comandos acima.
vaziosetup()
{
pinMode(13,OUTPUT);
//colocaroseucdigodeconfiguraoaqui,paraexecutarumavez:
Serial.begin(19200);
}
vazioloop()
{
Se(Serial.available())
{
intn=Serial.read();
Serial.println(N);
}
}
Depois de fazer o upload do esboo, para verificar o resultado que voc precisa para abrir a janela Monitor de srie usando Ctrl + Shift
+ M ou opo de menu Ferramentas do.
Se(Serial.available())
{
intn=Serial.read();
//Serial.println(N);
N=N48;
se(n==0)
{
Serial.println("LEDOFF");
digitalWrite(13,LOW);
}
outracoisase(n==1)
{
Serial.println("LEDON");
digitalWrite(13,HIGH);
}
outro
{
Serial.println("Apenas0e1permitidocomoinput");
}
}
}
Quando voc carrega o cdigo e executar atravs do monitor de srie voc pode ver que o LED ligado quando a entrada 1, continua
se at que voc d entrada como 0 e permanece zero.
pinMode(8,ENTRADA);
//colocaroseucdigodeconfiguraoaqui,paraexecutarumavez:
Serial.begin(19200);
Serial.println("Insira1paratransformarLEDe0paradesliglo");
}
vazioloop()
{Intn=0;
n=digitalRead(8);
Se(n==0)
{
digitalWrite(13,LOW);
}
outracoisase(n==1)
{
digitalWrite(13,HIGH);
}
delay(200);//paraevitaroexcessodevotaoatravsdaleituracontinueslydadosporturios
}
delayNo final importante. Sem ela, o microcontrolador tem que pesquisar continuesly o pino que resulta na degradao do
desempenho. Voc pode alterar o valor de atraso, dependendo de suas necessidades de aplicao.
Um sensor converte o parmetro fsico por exemplo: temperatura, presso arterial, humidade, velocidade, etc. num sinal que
pode ser medido electricamente
Existem diferentes tipos de sensores para medir diferentes actividades fsicas que inclui a intensidade da luz, temparature, humidade e
assim por diante. Esta pgina wiki dlhe uma lista elaborada de sensores.
Um dos aspectos importantes de dispositivos de microcontroladores ler os dados do sensor e tomar decises em conformidade.
Assim, tambm deve aprender a lidar com sensores. Mas como este tutorial tudo sobre a aprendizagem Arduino sem muito de
hardware externo, vamos usar novamente certo conceito simples de entender como o sensor funciona.
Os pinos analgicos em Arduino est conectado a 10 bit ADC. Isso significa que a tenso analgica nos pinos vai ser convertido em
valor digital de 10 bits. O que significa para uma entrada 5v analgico, um pino sensor ir ler 1024.
Agora corpo humano tem diferena de potencial de terra. Arduino sensvel o suficiente para detectar essa diferena de potencial.
Ento, se ns tocar o pino analgico com o nosso corpo, ele vai ter diferena de potencial do nosso corpo. Como diferena de potencial
do corpo atribudo ao sinal de ECG que tem periodicidade, como voltagem ir variar entre alto a baixo.
Tambm tenso medido entre um ponto e o cho. tenso do corpo que adquirida pelos pinos tero terra como terra que no
comum para a terra do microcontrolador. Assim, haver diferena enorme potencial. Nosso programa deve levar isso em considerao.
Ento, vamos colocar o fio no pino analgico 5 e escrever nosso programa para obter tenso analgica no pino 5.
Figura 2.12: Serial Sada do Monitor Quando a tenso do corpo fornecido para Arduino Analog Pin 5
i++;
Se(i>10)
{
i=1;
s=0;
}
Serial.println(a);
se(a>650||uma<200)
{
digitalWrite(13,HIGH);
}
outro
{
digitalWrite(13,LOW);
}
atraso(500);
}
}
}
anularSwitchLogic()
{
intn=0;
n=digitalRead(8);
Se(n==0)
{
//DigitalWrite(13,LOW);
//Estamosdesligandoapenasatravsdecomandosdesrie
}
elsese(n==1)
{
digitalWrite(13,HIGH);
}
}
ints=0;
inti=1;
inta=0;
vazioSensorLogic()
{
intn=0;
n=analogRead(5);
s=s+n;
um=s/I;
i++;
Se(i>10)
{
//Imprimirovalorumemcada5Second
Serial.println(a);
i=1;
s=0;
}
//Serial.println(a);
se(a>650||uma<200)
{
digitalWrite(13,HIGH);
}
outro
{
//DigitalWrite(13,LOW);
//NoTurningoffaqui:)
}
}
vaziosetup()
{
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
digitalWrite(12,HIGH);
pinMode(8,ENTRADA);
//colocaroseucdigodeconfiguraoaqui,paraexecutarumavez:
Serial.begin(19200);
Serial.println("Insira1paratransformarLEDe0paradesliglo");
}
vazioloop()
{
SerialLogic();
SwitchLogic();
SensorLogic();
atraso(500);
}
Assim voc pode ver que ns realmente fez trs funes: SerialLogic(), SensorLogic(), SwitchLogic()que lida com a
On off atravs da porta serial, ligar atravs do toque e ligar conectando + 3v ao pino 12, respectivamente.
De loop()estamos apenas chamando essas funes. Voc tambm pode ver que no estamos imprimindo cada valor de srie aqui,
em vez de colocar apenas uma vez em Avery 5 seg leitura par .5sec, impresso aps 10 leituras.
Tecnicamente estamos esperando todas as trs funes para executar "paralelamente" simultaneamente no ? Mas devido natureza
do programa de C, no ser executada em srie, uma aps a outra na ordem de chamada. Correto? Ento, no temos apoio paralelismo
aqui.
Neste momento voc pode pensar de cada funo como uma tarefa, onde cada tarefa executada conjunto de instrues.
Agora vamos adicionar pouco de tempero. Vamos tambm piscar do LED para 5 vezes, uma vez em cada 10 segundos cada, juntamente
com a lgica existente.
Ento aqui o nosso novo programa com BlinkLogic()
anularSerialLogic()
{
intn=0;
se(Serial.available())
{
n=Serial.read();
Serial.println(N);
n=n48;
se(!n=10)//CdigoparaEnter
{
se(n==0)
{
Serial.println("LEDOFF");
digitalWrite(13,LOW);
}
outracoisase(n==1)
{
Serial.println("LEDON");
digitalWrite(13,HIGH);
}
outro
{
Serial.print("Apenas0e1permitidocomoinput");
Serial.println(N);
}
}
}
}
anularSwitchLogic()
{
intn=0;
n=digitalRead(8);
Se(n==0)
{
//DigitalWrite(13,LOW);
//Estamosdesligandoapenasatravsdecomandosdesrie
}
elsese(n==1)
{
digitalWrite(13,HIGH);
}
}
ints=0;
inti=1;
inta=0;
vazioSensorLogic()
{
intn=0;
n=analogRead(5);
s=s+n;
um=s/I;
i++;
Se(i>10)
{
//Imprimirovalorumemcada5Second
Serial.println(a);
i=1;
s=0;
}
//Serial.println(a);
se(a>650||uma<200)
{
digitalWrite(13,HIGH);
}
outro
{
//DigitalWrite(13,LOW);
//NoTurningoffaqui:)
}
}
anularBlinkLogic()
{
Serial.println("Intermitente");
para(intj=0;j<5;j++)
{
digitalWrite(13,HIGH);
atraso(500);
digitalWrite(13,LOW);
atraso(500);
}
Serial.println("IntermitenteEnds");
}
vaziosetup()
{
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
digitalWrite(12,HIGH);
pinMode(8,ENTRADA);
//colocaroseucdigodeconfiguraoaqui,paraexecutarumavez:
Serial.begin(19200);
Serial.println("Insira1paratransformarLEDe0paradesliglo");
}
intt=0;
nulaloop()
{
SerialLogic();
SwitchLogic();
SensorLogic();
T++;
Se(t>=10)
{
BlinkLogic();
t=0;
}
atraso(500);
}
Ter um olhar para a sada deste programa:
Figura 2.16: Resultado do Blink, Sensor, Switch, lgica Serial colocar no mesmo cdigo
A sada realmente expe o problema de programas Arduino convencionais. Podemos ver que no apenas as tarefas no so executados
em cocorrente tambm que eles esto bloqueando na natureza.
Mais uma observao que voc pode fazer durante a execuo do programa que, se voc quer um piscar 5 segundos aps cada 10
segundos, eles no aparecem aps exatos 10 segundos como a lgica tem de suportar os atrasos de outras partes executoras. O que
significa que a programao perfeita no possvel com programas Arduino . Arduino tem uma biblioteca de temporizador que faz
com que a programao melhor, mas multitarefa ainda uma tarefa difcil.
Vamos introduzir Ardos no prximo captulo e mostrar como superar esses problemas usando o OS.
3. Ardos
3.1 Instalao
Ardos distribudo como uma biblioteca Arduino. Primeiros Ardos baixar aqui . Renomeie o arquivo Zip como ArdOS.zip. Isso ocorre
porque Arduino no suporta caracteres especiais, como , SPACE ao instalar um pacote / biblioteca. Agora clique em Esboo menu>
Adicionar biblioteca e selecione o pacote compactado baixado e renomeado.
Voc pode facilmente tornarse que Kernel sero compilados junto com seu cdigo. Mutex fornece mtodos para exclussion mtua
importante para paralelismo de tarefas, filas gere fila de tarefas, sema gere os semforos. Semforos so os bloqueios utilizados,
enquanto um recurso compartilhado entre vrias tarefas. kernel fornece mtodos para a programao, gerenciamento de tarefas,
compartilhamento de recursos, manipulao de interrupo e assim por diante.
programas Ardos deve incorporar lgica de programao dentro de tarefas com assinatura
vaziotarefa(vazio*p)
De setup()tarefas mtodo deve ser inicializado e colocado dentro de uma fila. loop()No deve conter qualquer cdigo como
toda looping ser cuidada por Kernel. Como do kernel lida com tarefas, tarefas deve implementar loops infinitos para permitir que as
tarefas a executar infinitamente.
#include<kernel.h>#include<Queue.h>#include<sema.h>#defineNUM_TASKS2
vaziotask1(vaziop*)
decharbuffer[16];
noassinadocarvosreg;
intn=0;
enquanto(1)
{
sprintf(buffer,"Tempo:%lu",OSticks());
Serial.println(buffer);
OSSleep(500);
}
}
vaziotask2(vazio*p)
{
unsignedintpausa=(unsignedint)p;
caracteredebuffer[16];
enquanto(1)
{
digitalWrite(13,HIGH);
sprintf(buffer,"==>Time:%lu",OSticks());
Serial.println(buffer);
Serial.println("LEDHIGH");
OSSleep(pausa);
sprintf(buffer,"==>Time:%lu",OSticks());
Serial.println(buffer);
digitalWrite(13,LOW);
Serial.println("LEDLOW");
OSSleep(pausa);
}
}
vaziosetup()
{
OSInit(NUM_TASKS);
Serial.begin(19200);
pinMode(13,OUTPUT);
OSCreateTask(0,task1,NULL);
OSCreateTask(1,task2,(vazio*)250);
OSRun();
}
vazioloop()
{
//Vazio
}
Aqui ns usamos duas tarefas: task1 e task2. task1 apenas imprime tempo em termos de carrapatos. pisca TASK2 LED em um valor
especfico passado como parmetro e tambm imprime On e Off estado com a respectiva tempo. Ambas as tarefas so destinadas a
executar continuesly atravs de while(1)estrutura de Loop. Em vez de usar delayusamos OSSleep()a funo que lida com o
atraso com preciso sem bloquear outras tarefas. Primeiro, uma fila de tarefas inicializado com OSInita funo. As tarefas so
colocados em fila de tarefas usando OSCreateTaskfuno. O primeiro parmetro id tarefa, segundo parmetro o nome da
funo de tarefa eo terceiro parmetro passado para a tarefa.
Pinos digitais e de comunicao serial inicializada em forma ususal antes da inicializao das tarefas. Uma vez feito isso, o programa
executado atravs Ardos multitarefa ambiente usando OSRun().
A sada do programa acima como mostrado abaixo.
{
decharbuffer[16];
noassinadocarvosreg;
intn=0;
enquanto(1)
{
sprintf(buffer,"Tempo:%lu",OSticks());
Serial.println(buffer);
OSSleep(1000);
}
}
vaziotask2(vazio*p)
{
unsignedintpausa=(unsignedint)p;
caracteredebuffer[16];
enquanto(1)
{
digitalWrite(13,HIGH);
//sprintf(buffer,"==>Time:%lu",OSticks());
//Serial.println(buffer);
//Serial.println("LEDHIGH");
OSSleep(pausa);
//Sprintf(buffer,"==>Time:%lu",OSticks());
//Serial.println(buffer);
digitalWrite(13,LOW);
//Serial.println("LEDLOW");
OSSleep(pausa);
}
}
vaziotask3(vazio*p)
{
caracterebuff1[16];
intn1=0;
quando(1)
{
n1=analogRead(5);
n1=map(n1,0,1023,0,255);
sprintf(buff1,"APV:%d",n1);
Serial.println(buff1);
OSSleep(1000);
}
}
vaziosetup()
{
OSInit(NUM_TASKS);
Serial.begin(115200);
pinMode(13,OUTPUT);
OSCreateTask(0,task3,NULL);
OSCreateTask(1,task1,NULL);
OSCreateTask(2,task2,(vazio*)1000);
OSCreateTask(3,task1,NULL);
OSRun();
}
vazioloop()
{
//Vazio
}
O resultado deste programa vai lhe dar importantes insights de por que a funo anterior no funcionou. Muitas tarefas podem
paralelamente tentar escrever na porta serial.
{
intn2=0;
quando(1)
{
Se(Serial.available())
{
n2=Serial.read();
Serial.println(N2);
n2=N248;
se(!n2=10)//CdigoparaEnter
{
se(==n20)
{
Serial.println("OFFSERIAL");
digitalWrite(13,LOW);
}
outracoisase(==n21)
{
Serial.println("ONSERIAL");
digitalWrite(13,HIGH);
}
}
OSSleep(500);
}
}
vazioSwitchLogic(vaziop*)
{
intn3=0;
quando(1)
{
n3=digitalRead(8);
Se(N3==0)
{
//DigitalWrite(13,LOW);
//Estamosdesligandoapenasatravsdecomandosdesrie
}
elsese(==n31)
{
Serial.println("LIGAR");
digitalWrite(13,HIGH);
}
OSSleep(500);
}
}
ints=0;
inti;
inta=0;
nulaSensorLogic(vazio*p)
{
intN4=0;
enquanto(1)
{
4=analogRead(5);
Se(N4>750||N4<50)
{
Serial.println("SENSORON");
digitalWrite(13,HIGH);
}
outro
{
//DigitalWrite(13,LOW);
//NoTurningoffaqui:)
}
OSSleep(1000);
}
}
vazioBlinkLogic(vaziop*)
{
enquanto(1)
{
Serial.println("Intermitente");
para(intj=0;j<2;j++)
{
digitalWrite(13,HIGH);
OSSleep(500);
digitalWrite(13,LOW);
OSSleep(500);
}
Serial.println("IntermitenteEnds");
OSSleep(20000);
}
}
vaziosetup()
{
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
digitalWrite(12,HIGH);
pinMode(8,ENTRADA);
//colocaroseucdigodeconfiguraoaqui,paraexecutarumavez:
Serial.begin(115200);
//Serial.println("Enter1paratransformarLEDe0paradesliglo");
OSInit(4);
OSCreateTask(0,SerialLogic,NULL);
OSCreateTask(1,SwitchLogic,NULL);
OSCreateTask(2,SensorLogic,NULL);
OSCreateTask(3,BlinkLogic,NULL);
OSRun();
}
intt=0;
nulaloop()
{
}
Eu tive que reescrever SensorLogic por causa da incapacidade do sistema operacional para lidar com varivel global. A seguir a sada
4. Concluso
Neste artigo ns aprendemos como comear com os seus placas Arduino e codificao. Aprendemos os aspectos importantes do
conselho nomeadamente deteco, controle e comunicao serial. Ns, ento, aprendeu a usar Ardos e migrou uma soluo a partir do
esboo Arduino convencional para Ardos. Ardos no s proporciona boas caractersticas de multitarefa, mas ao mesmo tempo, ele
tambm oferece um bom compartilhamento de recursos usando Mutex e semforos. Como o objetivo deste tutorial era para guilo
fcil migrao de programas de esboo para programas Ardos, considerei recursos multitarefa do OS. Voc pode conferir os exemplos
de semforo e mutex e pode brincar com os exemplos. Ardos ainda est em fase beta e eu listei alguns inconvenientes. No entanto,
essas desvantagens no tornar o sistema operacional instvel. cuidados pouco na codificao pode superar as deficincias do sistema
operacional. Alm disso, o objetivo do tutorial era para cobrir a maior parte dos aspectos da programao Arduino sem usar qualquer
hardware externo. Uma vez que voc est confiante de ambiente Arduino, voc pode obter algum hardware barato como LM35, LDR,
Relays, BC548, 5V Motors, LEDs e pode experimentar diferentes lgicas.
Licena
Este artigo, juntamente com qualquer cdigofonte associado e arquivos, est licenciado sob o cdigo do projeto Open License CPOL
Compartilhar
Sobre o autor
Grasshopper.iics
CEO Idias Integradas
ndia
gasshopper.iics um grupo de programadores como o esprito e alunos em codeproject. O objetivo bsico manter em contato e
ser notificado quando um membro contribui com um artigo, para verificar com a tecnologia e compartilhar o que sabemos. Ns
somos os "estudantes" de codeproject.
Este grupo gerenciado por Rupam Das, um autor ativo aqui. Outros membros notveis incluem Ranjan que se estende suas mos
ajudando a nmero inestimvel de autores em seus artigos e escreve algumas grandes artigos a si mesmo.
Rupam Das o mentor da Grasshopper Rede, fundador e CEO da Integrated ideias Consultancy Services, uma empresa de
consultoria de pesquisa na ndia. Ele tem sido parte de projectos em vrias tecnologias, incluindo Matlab, C #, Android, OpenCV,
Drupal, Omnet ++, C legado, vb, gcc, NS2, Arduino, framboesaPI. Off tarde, ele fez as pazes com o fato de que ele ama C # mais do
que qualquer outra coisa, mas ainda golpeado no estilo legado de codificao.
Rupam ama algoritmo e prefere processamento de imagem, Inteligncia Artificial e Engenharia Biomdica sobre outras tecnologias.
Ele frustrado com sua pobre escrita e habilidades "gramtica", mas feliz que codificao de polir essas frustraes.
Tipo de grupo: Organizao
118 membros
Comentrios e discusses
2 mensagens foram postadas para este artigo Visita http://www.codeproject.com/Articles/834674/StageGettingStartedWith
ArdOSforArduino para postar e visualizar os comentrios sobre este artigo, ou clique aqui para obter uma viso de impresso com
mensagens.
Link permanente | Publicidade | Privacidade | Termos de Uso | Mvel
Web02 | 2.8.161026.1 | ltima atualizao novembro 2014 9
Selecione o idioma
Artigo de Copyright 2014 por Grasshopper.iics
Tudo o resto de Copyright CodeProject , 19992016