Baixe o app para aproveitar ainda mais
Prévia do material em texto
Professor Roberto Claudio G. Pinto Algoritimo Introdução a Linguagem da Programação Raciocínio Lógico Tudo na vida depende de Raciocínio Lógico, por exemplo se o quarto está escuro eu tenho que acender a luz, claro que isto é efetuado de forma rápida. Em Programação é necessário o mesmo raciocínio Na vida precisamos pensar, se determinada atitude está certa ou errada, antes de tomar decisões em Programação istotambém se aplica. Conteúdo Definição de algoritmos O que é? Para que serve? Solução de problemas Como me organizar? Que etapas seguir? Etapas para construção de um algoritmo Como fazer? Como descrever? 3 Definição de Algoritmo É uma sequência de passos para executar uma função exemplo uma calculadora executando uma soma usa o algoritimo para tal, a mesma sistematica usada em uma receita de bolo que usa ingredientes. 4 Algoritmo MDC Divida A por B e obtenha o resto R1 Se R1=0, MDC é B Se R1≠0, divida B/R1 e obtenha R2 Se R2=0, MDC é R1 Se R2≠0, divida R2/R2 e obtenha R3 Se R3=0, MDC é R2 Se R3≠0, repita os dois passos anteriores que o resto seja 0. 5 Lógica É um ramo da filosofia que estuda e cuida das regras de estruturação do pensamento, do uso do raciocínio no estudo e solução de problemas. Apresentas formas e técnicas para estruturação e argumentação utilizadas na solução de problemas. 6 6 Lógica Problema dos 9 pontos Torre de Hanói É um "quebra- cabeças" que consiste numa base contendo três estacas, no qual são dispostos alguns discos uns sobre os outros numa das estacas, em ordem crescente de diâmetro, de cima para baixo. 7 Tente ligar os 9 pontos com 4 segmentos de reta unidos (consecutivos), passando em cada ponto exatamente uma vez, de modo que nenhum segmento de reta seja traçado duas vezes: Lógica Desafios de raciocínio e lógica matemática Racha Cuca 8 SITES SUGERIDOS http://www.profcardy.com/desafios/ http://rachacuca.com.br Resolução de problemas Geroge Pólya Entender Planejar Executar Verificar 9 Resolução de problemas 1 – ENTENDER Identifique os dados. Identifique a incógnita. Identifique condição. Verifique se é possível satisfazer a condição com os dados fornecidos. 10 Resolução de problemas 1 – PLANEJAR Procure achar alguma semelhança entre esse problema e outro que já resolveu. Releia o problema se não tiver conseguido encontrar as etapas necessárias para resolvê-lo. Quando tiver conseguido, escreva as etapas sem ser prolixo e impreciso. 11 Resolução de problemas 1 – EXECUTAR Acompanhe todas as etapas. Verifique se conseguiu atingir o objetivo. 12 Resolução de problemas 1 – VERIFICAR Consegue justificar todas as etapas? Consegue visualizar outra solução? Consegue ver uma outra aplicação para a solução encontrada? 13 14 Entender Planejar Executar Verificar Interpretação do enunciado do problema e das questões envolvidas. Escolha da linguagem e estruturação da solução. Construção do algoritmo. Execução em um interpretador ou compilador. Etapas para construção de um algoritmo Representação de algoritmos Linguagem Natural Linguagem Gráfica Pseudo linguagem Construção de um algoritmo 15 Representação de Algoritmos Linguagem Natural 16 Escrever: Olá, como vai, tudo bem? Ler: “resposta” Escrever: Seja bem-vindo, é um prazer conhecê-lo. Representação de Algoritmos Linguagem Natural Depende diretamente de quem está escrevendo e de quem está lendo; Necessário clareza; Ambiguidade léxica. 17 Representação de Algoritmos Linguagem Natural 18 1 – Utilize frases curtas; 2 – Use somente um verbo em cada frase, sempre no infinitivo ou imperativo; 3 – Evite palavras com ambíguas; 4 – Detalhe todas as etapas. Representação de Algoritmos Linguagem gráfica Imagens Esquemas Manuais de instrução 19 © Christian Bridgwater | Dreamstime.com Representação de Algoritmos Fluxograma ISO 5807 20 INÍCIO Acordar Escovar os dentes Preparar e tomar café Preparar roupas e lanches para o clube Há tarefas a fazer? Verificar programação do cinema Ir ao shopping Fazer Refeição Ir ao Cinema Ir ao clube Ir à piscina Fazer refeição Praticar esportes Voltar pra casa Fazer tarefas Tomar banho Fazer Refeição Assistir TV Dormir Dia de sol? FIM Não Não Sim Sim Linguagem gráfica Representação de Algoritmos Pseudolinguagem Abstrai os problemas da linguagem natural; Facilita o aprendizado da lógica de algoritmos; Focada no aprendizado e não na estrutura. 21 Semântica definição do comando. Sintaxe como se escreve um comando. Linguagens Algorítmicas Portugol Departamento de Engenharia Informática do Instituto Politécnico de Tomar em Portugal http://www.dei.estt.ipt.pt/portugol/ 22 Linguagens Algorítmicas WEBPortugol Universidade do Vale do Itajaí (UNIVALI) http://siaiacad17.univali.br/webportugol/ 23 Linguagens Algorítmicas C++ http://www.bloodshed.net/devcpp.html 24 O Windows só tem um terminal nativo, que é o interpretador de comandos dele (cmd.exe ou command.com). Pacotes como o Cygwin e o MSys (do mesmo projeto que o MinGW) incluem terminais alternativos que funcionam basicamente à maneira do Linux. No Linux, além dos terminais de modo texto, há vários emuladores de terminal, entre os quais estão o XTerm, o Konsole (KDE) e o Terminal do Gnome. O uso de todos eles é idêntico. O Visual Studio inclui um compilador de C++ linha de comando que você pode usar para criar tudo, desde aplicativos de console básicos até plataforma universal do Windows aplicativos, aplicativos de área de trabalho, drivers de dispositivo e componentes .net. O GCC tem uma versão para Windows que se chama MinGW. É a mesma instalada pelo ambiente Dev-C++ ou pelo CodeBlocks (mais recomendado!). PARTE 1 C Índice C parte 1 CONCEITOS BÁSICOS rf Estruturas Condicionais rf Matrizes rf Ponteiros JULIANA DANELETI Funções saulo Tipos de Dados do usuário rf Entrada e Saída ju Arquivos selma Diretivas de pré-processadores saulo Comentários saulo Units selma Visão Geral de C C é uma linguagem de médio nível. C é uma linguagem estruturada. C é uma linguagem compilada. C pode ser compilada em separada. Tipos de Dados Char Int ( Integer ) Float ( Real ) Double Void Identificadores Os identificadores em C devem começar com uma letra ou _ ( sublinhado ) Os identificadores podem conter letras, números ou _ ( sublinhado) As primeiras 31 letras são significativas Variáveis Forma geral da declaração de uma variável tipo ListaDeVariáveis As variáveis podem ser inicializadas na definição Variáveis globais Variáveis locais Especificadores de tipo de classe de armazenamento Extern - Referenciar variáveis globais em módulos compilados separadamente. Static - Mantém o valor de uma variável entre chamadas Register - Acesso mais rápido possível ( usando registradores em vez da memória ) EspDeArmazenamento tipo NomeDaVariável Operadores e Atribuição = comando de atribuição - Menos + Mais * Multiplicação / Divisão % Resto da Divisão -- Decremento ++ Incremento Operadores Relacionais > Maior < Menor >= Maior igual <= Menor igual = = Igual != Diferente Operadores Lógicos && And || Or ! Not Conversão de tipos Quando duas variáveis de tipos diferentes são misturadas, o compilador converte todos os operandos no tipo do maior operando. Índice C parte 1 Conceitos Básicos ESTRUTURAS CONDICIONAIS Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units Comando If If ( expressão ) comando; Else comando; ex: if (x > y) x = y; else x = 0; Comando Switch Switch ( expressão ){ Case Comando1: seqüência de comandos Break ..... Defaultseqüência de comandos } Exemplo Switch ( x ){ Case 1: escreve(x); break; Case 2: Registra(x); break; Default apaga(x); } Comando For For( inicialização; condição; Incremento) comando; For( i = 0;i < 100; i++) j += i; Comando while While ( condição ) comando; ex: while (x<12) { y += x y = y*y } Comando do-while Do { comando; } while ( condição ); Do { y += x; } while (x < 12); Índice C parte 1 Conceitos Básicos Estruturas Condicionais MATRIZES Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units Matrizes Unidimensionais Matrizes unidimensionais Tipo NomeVar[tamanho] Ponteiros para matrizes Apenas o nome leva ao 1º elemento var == &var[0] Matrizes como parâmetros Como ponteiro ex: func1(int* x) Como matriz dimensionada ex: func1(int x[10] Como matriz adimensional ex: func1(int x[]) Mesmo resultado pois a função recebe apenas um ponteiro e não cria de fato a matriz Strings Matriz de caracteres terminados com o caractere nulo “/0” Constantes strings são declarados entre aspas duplas ex: “Olha eu aqui!” Matrizes Bidimensionais tipo NomeVar [tamanho][tamanho] Matrizes multidimensionais tipo NomeVar[tamanho][tamanho]...[tamanho] Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes PONTEIROS Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units Ponteiros Forma Geral de Declaração: tipo *nome; Operadores: &: devolve o endereço na memória do seu operando – “recebe o endereço de” *: devolve o valor da variável localizada no endereço que o segue – “recebe o valor que está no endereço de” Ponteiros – Continuação Operações: Adição Subtração Não limitado a apenas incremento e decremento. Pode-se somar ou subtrair inteiros de ponteiros. Comparação: Em expressões relacionais Ponteiros – Continuação Ponteiros e Matrizes: Para acessar elementos de matrizes usa–se aritmética de ponteiros ou indexação de matrizes Matrizes de Ponteiros: tipo *nome[num]; Ponteiros - Continuação Inicialização de Ponteiros: é necessário para evitar erros Alocação Dinâmica Malloc(): aloca memória Free(): libera memória Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros FUNÇÕES Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units Funções EspTipo Nome ( ListaParâmetros ) { corpo da função } C não aceita funções dentro de funções Parâmetros Formais Chamadas por valor ex: func1(int x) Chamadas por referência ex: func1(int *x) Funções Programa principal Arquivo separado Biblioteca Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções TIPOS DE DADOS DO USUÁRIO Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units Tipos de dados do usuário Estrutura (Struct) Campo de bit União (Union) Enumeração typedef Struct Forma geral NomeVar { tipo NomeVar tipo NomeVar } ListaDeVariáveis Declaração de variáveis Struct NomeStruct NomeVar Struct podem ser passadas inteiras como argumentos Ponteiros para estruturas Struct também podem ser usados Campos de Bit Usado para acessar um único bit dentro de um byte Forma Geral Struct nome { tipo nome1: comprimento; tipo nome2: comprimento; ... } Lista de variáveis Uniões Posição de memória que é compartilhada por duas ou mais variáveis em momentos diferentes. Forma Geral Union nome { tipo NomeDaVariável; ... } ListaVariáveis Enumerações enum Nome {ListaEnumeração} NomeVar É possível atribuir valores a seqüência criada Typedef Typedef tipo nome Onde nome é o novo nome do tipo Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário ENTRADA E SAÍDA Arquivos Diretivas de pré-processadores Comentários Units E/S pelo Console Lendo: Getch(); ch=getch(); Gets(); gets(str); Scanf(); scanf(“%t”,&variável); Escrevendo: Putchar(); putchar(ch); Puts(); puts(“alo”); Printf(); printf(“texto %t texto”, variável); E/S pelo Console - Continuação %c %d %i %e %E %f %g %G Caractere Inteiros decimais com sinal Inteiros decimais com sinal Notação Científica Notação Científica Ponto flutuante decimal Usa %e ou %f, o que for mais curto Usa %E ou %F, o que for mais curto E/S pelo Console - Continuação %o %s %u %x %X %p %n %% Octal sem sinal String de caracteres Inteiros decimais sem sinal Hexadecimal sem sinal (letras minúsculas) Hexadecimal sem sinal (letras maiúsculas) Apresenta um ponteiro Escreve o símbolo % Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída ARQUIVOS Diretivas de pré-processadores Comentários Units E/S com Arquivos Para se iniciar a utilização das funções de arquivos em C é necessário saber a diferença entre Streams e Arquivo. Arquivo é um dispositivo real, que pode ser desde de um arquivo em disco até um terminal ou impressora. Streams é um dispositivo lógico criado pelo sistema de arquivos, sendo associada a um arquivo para que possamos trabalhar com diferentes tipos de dispositivos de uma mesma maneira.Existem dois tipos de Streams: texto e binária. Considerações iniciais Para se utilizar as funções de E/S com arquivos é necessário que o cabeçalho STDIO.H esteja presente no programa. O arquivo de cabeçalho STDIO.H fornece protótipos para as funções e define três tipos: size_t, ftpos_t e FILE, onde size_t e ftpos_t são do tipo unsigned e FILE é um ponteiro para arquivo. A macro EOF definida em STDIO.H indica fim de arquivo e é definida como –1. Ponteiro de Arquivo Um ponteiro de arquivo é um ponteiro para informações que definem várias coisas sobre o arquivo como o nome, status e a posição atual. Um ponteiro de arquivo é do tipo FILE. FILE *fp; Funções Fopen() – abre arquivo FILE *fopen(const *char nomearq, const *char modo); Fclose() – fecha arquivo int fclose(FILE *fp); Modos de abertura r – Abre arquivo texto para leitura w – Cria arquivo texto para escrita a – Anexa a um arquivo texto rb – Abre um arquivo binário para leitura wb – Cria um arquivo binário para escrita ab – Anexa a um arquivo binário OBS: Acrescentando + nos modos anteriores o arquivo trabalha tanto com leitura como com escrita. Funções de caractere putc() ou fputc() int putc( int ch, FILE *fp); getc() ou fgetc() int getc( FILE *fp); feof(), rewind() e ferror() Testa fim de arquivo int feof (FILE *fp); Reposiciona indicador de posição no início do arquivo void rewind (FILE *fp); Determina se operação de arquivo produziu erro int ferror (FILE *fp) Funções de string fputs() int fputs (const char *str, FILE *fp); fgets() char *fgets (char *str, int lenght,FILE *fp); remove() e fflush() remove() – apaga arquivo int remove (char *filename); fflush() – esvazia stream int fflush (FILE *fp); fread() e fwrite() fread() size_t fread (void *buffer, size_t numbytes, size_t count, FILE *fp); fwrite() size_t fwrite (void *buffer, size_t numbytes, size_t count, FILE *fp); fprintf() e fscanf() fprintf() int fprintf (FILE *fp, const char *control_string,...); fscanf() int fscanf (FILE *fp, const char *control_string,...); fseek() fseek() int fseek (FILE *fp, long numbytes, int origin); Origin Nomeda macro Inicío do arquivo SEEK_SET Posição atual SEEK_CUR Final do arquivo SEEK_END Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos DIRETIVAS DE PRÉ-PROCESSADORES Comentários Units Diretivas de pré-processador #define #include #error #undef Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores COMENTÁRIOS Units Comentários /* ... */ ex: /* Isto é um comentário! */ Obs: Todos os comentários são ignorados pelo compilador C. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários UNITS Protótipo de função TipoDeRetorno NomeDaFunção (DeclaraçãoDeParâmetros); Arquivos-cabeçalho Cabeçalho = header ; arquivos “.h” Contêm protótipos de funções Código em outro programa Compilação conjunta (projeto) Ex: stdio.h, conio.h PARTE 2 C ++ Índice C++ parte 2 CLASSES Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga Classes de C++ Ferramenta principal para Programação Orientada a Objetos Similar a Struct no sentido de agrupar membros (dados do objeto + funções) Permite definir atributos (características) ao objeto Simplifica programação e amplia reutilização do código Classes de C++ Objeto, em um sentido mais simples, é um objeto mesmo, uma “coisa”, como por exemplo, um telefone, um arquivo Num sentido de programação, objeto é uma variável do tipo classe Classe dados n° fone, tipo métodos discar, atender Objeto telefone Classes de C++ - Estrutura Class nome_classe { tipo dado_membro; // Dados do Objeto void exibe_membro; // Métodos }; // No programa principal Nome_classe objeto_um, objeto_dois; Classes de C++ - Métodos A medida que os métodos se tornarem maiores, defini-los dentro da classe poderá congestionar a definição de classe Solução: colocar o protótipo dentro da classe e definir o método fora dela Classes de C++ - Métodos Ex: class funcionario { void exibe_func(void); //Protótipo }; void funcionario::exibe_func(void) { }; Nome da classe Nome do método Índice C++ parte 2 Classes DADOS PRIVADOS E PÚBLICOS Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga Dados Públicos e Privados Se não colocar o rótulo public, pressupõe-se que todos os membros são privados Sendo privados, os programas não podem acessar os membros da classe usando o operador ponto objeto.alguma_variável = valor Somente as funções (métodos) de membro da classe podem acessar os membros de classe privados Dados Públicos e Privados Ex: class funcionario { public: int atribui_valores(char*, long, float); void exibe_funcinario(void); private: char nome[64]; long func_id; float salario; }; Índice C++ parte 2 Classes Dados Privados e Públicos FUNÇÃO CONSTRUTORA E DESTRUTORA Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga Função Construtora Métodos que facilitam aos programadores a inicialização dos dados-membro da classe Tem o mesmo nome da classe, porém, não precede o nome dela com a palavra-chave void Não retorna tipo É chamada quando se cria um objeto Função Destrutora É chamada para descartar um objeto, liberando a memória que estava sendo usada Tem o mesmo nome da classe, porém, precedido do caractere til (~) Não retorna tipo, nem precede o nome dela com a palavra-chave void Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora SOBRECARGA DE OPERADOR Funções e Dados-membro estáticos Herança Classe Amiga Sobrecarga de operador Ao sobrecarregar um operador para uma classe, especifica-se uma função que C++ chama toda vez que a classe usa o operador sobrecarregado. O significado do operador muda somente para a classe, não para o programa todo. Sobrecarga de operador Exemplo: void operator +(char *str) //na classe string { strcpy(data, str); } string titulo(“aprendendo ”); //func. constr. titulo + “C++”; Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador FUNÇÕES E DADOS –MEMBRO ESTÁTICOS Herança Classe Amiga Funções e dados-membro estáticos Para objetos de uma mesma classe compartilharem um ou mais dados-membro: public ou private: static tipo membro_compartilhado; Então, definir o membro como uma variável global, fora da classe: tipo nome_classe membro_compartilhado; Funções e dados-membro estáticos Se a classe define, por exemplo: public: static int conta-pagina; /*definido depois como variável global*/ static void limpa_tela(void); os membros declarados podem ser usados pelo programa mesmo que não existam objetos da classe. Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos HERANÇA Classe Amiga Herança É a capacidade de uma classe derivada herdar as características de uma classe-base existente. A classe derivada acessa membros public (todo o programa acessa) e membros protected (só ela acessa) da classe-base. Herança múltipla Acontece quando uma classe deriva de mais de uma classe-base. Exemplo: class computador : public tela_computador, public placa_mae Na derivação de uma classe por herança múltipla, a construtora da classe derivada precisa chamar funções construtoras para cada uma das classes-base. Cadeia de herança Acontece quando uma classe é derivada de uma classe-base que já foi derivada de uma ou mais outras classes. Exemplo: Tela_computador Placa_mae Computador Estacao_trabalho Neste caso, a classe estacao_trabalho herda as características das três classes. Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança CLASSE AMIGA Classe amiga Permite o acesso aos membros privados entre classes não-relacionadas A classe cujos membros privados terão o acesso permitido declara uma outra classe como amiga na sua definição através do comando friend Restringindo o acesso de uma amiga friend ProtótipoDaFunção Onde ProtótipoDaFunção define que funções a classe amiga terá acesso. Apresentação da Disciplina Sistemas Embarcados O aluno identificará os conceitos básicos de um sistema embarcado onde a análise e estudo requerem do projetista um conhecimento não apenas de programação clássica, mas também noções de controle de processos, sistemas de tempo real, tecnologias de aquisição de dados (conversores analógico-digitais e sensores de um modo geral) e de atuadores (conversores digital-analógicos, PWM, etc.), além de um cuidado especial no que se refere à eficiência (estruturação, tamanho e velocidade) do código produzido! Ementa Ao final da disciplina, o aluno deve ser capaz de: Identificar as diferenças e aplicabilidades de sistemas embarcados Analisar projetos de sistemas embarcados sugerindo melhorias utilizando os conceitos aprendidos. Realizar simulações e testes em sistemas embarcados dentro das especificações requiridas e focando em objetivosde livre escolha. Objetivos Específicos Apresentação da Disciplina Micro Controladores Identificar as principais características e funcionalidades das arquiteturas de um microcontrolador típico avaliando suas limitações e aplicabilidade em projetos. O aluno desenvolverá a habilidade de criar e simular os códigos. O aluno terá a oportunidade de utilizar kit de microcontrolador. Todo esse processo será baseado em aulas expositivas, aulas práticas em laboratório, simulações e projetos de circuitos. Ementa Ao final da disciplina, o aluno deve ser capaz de: Interpretar o funcionamento de um microprocessador baseado nos fundamentos aprendidos com a finalidade de indicar aplicações de microcontrolador. Analisar projetos de microcontrolados sugerindo melhorias utilizando os conceitos aprendidos. Projetar e realizar simulações e testes de projetos microcontrolados os conceitos/comandos/instruções aprendidos. Objetivos Específicos Conceitos Básicos de ARDUINO ARDUINO é uma plataforma open-source de software e hardware para prototipagem flexível, fácil de usar e multiplataforma! www.arduino.cc O microcontrolador pode ser programado utilizando a linguagem de programação C para Arduino Linguagem baseada em Wiring (www.wiring.org.co) O desenvolvimento dos aplicativos é feito no ambiente de programação próprio do arduino Desenvolvido em Processing (www.processing.org) Software Arduino UNO Arduino UNO Arduino UNO Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 6 Clock de operação 16MHz Processador Atmega328 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 4 timers de 16 bits Portas de comunicação Gravação via USB; 1 porta RS-232 disponivel Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 32kB (armazenar código) Memória SRAM 2kB (rodar programa) Memória EEPROM 1 kB (gravar dados) Unidade no SI: Hertz[Hz] = 1ciclo/seg Frequência Múltiplo Nome Símbolo Múltiplo Nome Símbolo 100 -hertz Hz 101 deca-hertz daHz 10–1 deci-hertz dHz 102 hecto-hertz hHz 10–2 centi-hertz cHz 103 quilo-hertz kHz 10–3 mili-hertz mHz 106 mega-hertz MHz 10–6 micro-hertz µHz 109 giga-hertz GHz 10–9 nano-hertz nHz 1012 tera-hertz THz 10–12 pico-hertz pHz 1015 peta-hertz PHz 10–15 femto-hertz fHz 1018 exa-hertz EHz 10–18 atto-hertz aHz 1021 zetta-hertz ZHz 10–21 zepto-hertz zHz 1024 yotta-hertz YHz 10–24 yocto-hertz yHz Em eletrônica e especialmente em circuitos digitais síncronos, o clock é um sinal usado para coordenar as ações de dois ou mais circuitos eletrônicos. Um sinal de clock oscila entre os estados alto e baixo, normalmente usando um duty cycle de 50%, e gerando uma onda quadrada. Unidade de frequência no SI: Hertz[Hz] = 1ciclo/seg Clock de 16MHz www.atmel.com datasheet 131 instruções Assembler... a maioria de um único ciclo! Arduino MEGA Arduino UNO Arduino MEGA Entradas e saídas digitais (I/O) 54 (15 com saída PWM) Entradas analógicas 16 Clock de operação 16MHz Processador Atmega2560 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação Gravação via USB; 4 portas RS-232 disponiveis Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 256kB (armazenar código) Memória SRAM 8kB (rodar programa) Memória EEPROM 4kB (gravar dados) Memória do tipo EEPROM, re-gravável que, ao contrário de uma memória RAM convencional, preserva o seu conteúdo sem a necessidade de fonte de alimentação. Armazena o código do programa que gravamos no Arduino, assim ao retirar a alimentação da placa o código continua gravado e não é perdido! Memória Flash Static Random Access Memory, memória estática de acesso aleatório, mantém dados armazenados enquanto alimentação é mantida mas ao contrário da DRAM, não requer refresh. Utilizada para executar o programa que gravamos no Arduino, assim ao retirar a alimentação da placa qualquer status de variáveis de execução do código é perdido! Memória SRAM Electrically-Erasable Programmable Read-Only Memory, memória não volátil, que ao contrário de uma EPROM, uma EEPROM pode ser programada e apagada eletricamente várias vezes. Utilizada para que seu programa grave dados que deseje recuperar posteriormente caso a alimentção seja perdida a exemplo de status de variáveis de execução do código! Memória EEPROM Onde comprar? No Brasil... No Brasil... No Exterior... No Exterior... Arduino Shields O conceito de shields permite empilhar placas com diferentes funcionalidades. Dá flexibilidade ao Arduino para se adequar a diferentes projetos de forma rápida, basta comprar o shield desejado e empilhar. Não encontrou um shield?! Você pode construir o seu e pessoas do mundo todo poderão comprar e será sempre compatível! Arduino Shields shieldlist.org GPS GSM-GPRS Display colorido Display 16x2 Display de 7 segmentos Controle de Motor Ponte H – 1A Controle de Motor Ponte H – 2A GameDuino Saida VGA Audio Stereo joystick Ethernet Wi-Fi microSD SDCard logger ZigBee CanBus ZigBee Saídas a Relé Arduino MINI Arduino UNO Arduino MINI Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 8 Clock de operação 16MHz Processador Atmega168 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação Gravação via RS-232 Alimentação recomendada 7-9V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 32kB Memória SRAM 2kB Memória EEPROM 1 kB Arduino NANO Arduino UNO Arduino NANO Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 8 Clock de operação 16MHz Processador Atmega328 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação USB e RS-232 Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 16kB Memória SRAM 1kB Memória EEPROM 512 B Dimensão Miniaturização Simplificada! Arduino LilyPad Arduino UNO Arduino Lilypad Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 6 Clock de operação 16MHz Processador Atmega328 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação USB e RS-232 Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 32kB Memória SRAM 2kB Memória EEPROM 1 kB Wearable Devices Funcional Estética Diversão Software Software Software Tutoriais Tutoriais Tutoriais Tutoriais Tutoriais Tutoriais Tutoriais Software Software Tutoriais Tutoriais Resumo – Este artigo apresenta uma proposta diferenciada de uma nova metodologia de ensino, apoiada por ferramentas computacionais que podem contribuir para a melhoria do aprendizado dos alunos. Metodologia: Os Alunos deverão por tanto seguir os seguintes critérios Na primeira etapa, conhecer os recursos da Plataforma Arduino. Para isso, um dos autores participou do curso de “Arduino”, ofertado pelo UFG(Universidade Federal de Goiás), com carga horária de 8 horas. Neste curso foi possível familiarizar-se com a Plataforma Arduino. Na segunda, o professor da disciplina e os autores deste projeto realizaram a divisão da turma em 5 grupos de 6 alunos, cada grupo tem um líder eleito porvotação do grupo. Todos os grupos tem um acompanhamento dos autores do projeto. A terceirapreparar o desenvolvimento. Eaborar projetos que abordem a utilização de uma grande variedade de recursos do Arduino . De acordo com Bennet et al (2012), o processo de implantação e uso deste modelo pode ser algo não tão fácil de realizar, uma vez que não existem modelos definidos para tal. Porém, em sua experiência, a efetiva utilização do modelo deve possuir várias das seguintes características: as discussões são levadas pelos alunos para a sala de aula; essas discussões geralmente atingem ordens superiores de pensamento crítico; o trabalho colaborativo ocorre entre os alunos em função de várias discussões simultâneas; estudantes desafiam uns aos outros durante a aula, em função do conhecimento adquirido; os estudantes têm a posse do material; os estudantes transformam-se de ouvintes passivos para os alunos ativos no processo de ensino-aprendizagem, terá um tempo maior para desenvolver atividades práticas com os alunos, em forma de projetos ou listas de exercícios direcionadas. Com essa abordagem, pretende-se motivar o aluno em atividades de auto estudo com base em livros, materiais em hipertextos e hiperlinks, vídeos e outros recursos midiáticos. Consequentemente, como afirma Schneider (2013), espera-se que o aluno, dedique-se,a aquisição de seu próprio conhecimento e ao tempo necessário a atividade de acordo com suas características de aprendizagem , estimulando sempre o aluno a pesquisa e a interação com os colegas. A terceira preparar o desenvolvimento. Eaborar projetos que abordem a utilização de uma grande variedade de recursos do Arduino . De acordo com Bennet et al (2012), o processo de implantação e uso deste modelo pode ser algo não tão fácil de realizar, uma vez que não existem modelos definidos para tal. Porém, em sua experiência, a efetiva utilização do modelo deve possuir várias das seguintes características: as discussões são levadas pelos alunos para a sala de aula; essas discussões geralmente atingem ordens superiores de pensamento crítico; o trabalho colaborativo ocorre entre os alunos em função de várias discussões simultâneas; estudantes desafiam uns aos outros durante a aula, em função do conhecimento adquirido; os estudantes têm a posse do material; os estudantes transformam-se de ouvintes passivos para os alunos ativos no processo de ensino-aprendizagem, terá um tempo maior para desenvolver atividades práticas com os alunos, em forma de projetos ou listas de exercícios direcionadas. Com essa abordagem, pretende-se motivar o aluno em atividades de auto estudo com base em livros, materiais em hipertextos e hiperlinks, vídeos e outros recursos midiáticos. Consequentemente, como afirma Schneider (2013), espera-se que o aluno, dedique-se,a aquisição de seu próprio conhecimento e ao tempo necessário a atividade de acordo com suas características de aprendizagem , estimulando sempre o aluno a pesquisa e a interação com os colegas. Avaliação A avaliação será formada pelos seguintes itens: Auto avaliação do aluno: Serão constituídas do conhecimento adquirido, habilidades, reconhecimento de responsabilidades. Avaliação por pares: Os membros dos grupos avaliarão seus colegas para verificar o desempenho e compromisso ao final de cada projeto. Avaliação do professor: Identificar participação, atitudes, habilidades, conhecimento e progressos de cada aluno e grupo. A nota será formada pelos resultados da avaliação e da Exercícios da disciplina. A prova prática será o resultado dos problemas devidamente registrados e apresentados.
Compartilhar