Linha 12: Linha 12:


= Código =
= Código =
<syntaxhighlight lang="python3">
// define LED_PIN 13
Arquivo = "lista_contatos.txt" # Nome do arquivo
int LED_PIN = 13;


def ler_arquivo():              # Função que le o arquivo de texto
void setup () {
     try:                        # Tratamento de erro
     pinMode (LED_PIN, OUTPUT);    // habilita o pino 13 para saída digital (OUTPUT).
        arq = open(Arquivo,"r+") # Abre o arquivo para leitura
}
        print( '\n'+arq.read() ) # Quebra linha e mostra o conteudo
        arq.close()              # Fecha o arquivo
    except IOError:              # Tratamento de erro
        print('\nArquivo não encontrado!')


def escrever_linhas(texto):        # Função que le e escreve no arquivo
void loop () {
     try:                          # Tratamento de erro
     digitalWrite (LED_PIN, HIGH);  // liga o LED.
        arq = open(Arquivo,"a+")   # Abre o arquivo para gravação no final do arquivo
    delay (1000);                  // espera 1 segundo (1000 milissegundos).
        arq.writelines('\n'+texto) # Escreve no arquivo o parametro 'texto'
    digitalWrite (LED_PIN, LOW);  // desliga o LED.
        arq.close()               # Fecha o arquivo
     delay (1000);                  // espera 1 segundo.
        print('\nLinha gravada com sucesso')
}
     except IOError:                # Tratamento de erro
        print('\nErro ao abrir o arquivo!') # Mostra na tela uma mensagem de erro


def pesquisar_contato(nome):
    try:
        arq = open(Arquivo, "r+")
        dicionario = {'nome':'', 'telefone':'', 'email':''}
        achei = False
        # lógica ler arquivo e comparar nome
        for cont, s in enumerate(arq.readlines()):
           
            dicionario['nome'], dicionario['telefone'],dicionario['email'] = s.split(' - ')
            if dicionario['nome'] == nome:
                print(cont)
                print('Nome: %s'% dicionario['nome'])
                print('Telefone: %s'% dicionario['telefone'])
                print('Email: %s'% dicionario['email'])
                achei = True
               
        if not achei:
            print('Não existe %s' % (nome))
       
        # se achou imprime, se não mostra uma mensagem de nao encontrado
        arq.close
       
    except IOError:
        print('\nContato não encontrado')
def excluir_contatos():
    try:
        arq =open('lista_contatos.txt','r+')
        valores = arq.readlines()
        l = []
        splited =[]
        nome = input('Entre com um nome:')
        for x in valores:
            splited=x.split(' - ')
            if splited[0]==nome:
              pass
            else:
                l.append(splited)
       
        arq.close()
        novo_cadastro(l)
    except:
        print('erro')
def novo_cadastro(l):
    arq = open(Arquivo,'w')
    for x in l:
        #print("Nome:%s | Telefone:%s | Email:%s"%(x[0],x[1],x[2]))
        arq.write("%s - %s - %s" %(x[0],x[1],x[2]))
    arq.close()
while(True):
   
    print('\n        Opcões:')
    print(' ')
    print('1 - Cadastrar contato')
    print('2 - Listar dados')
    print('3 - Pesquisar contato')
    print('4 - Excluir contato')
    print('9 - Sair')
    print(' ')
    Op = int(input('Digite a opção desejada:')) # Entrada da opcao pelo teclado
    if Op == 1:                                    # Se a opcao for 1
        nome = input('\nDigite o nome do contato:')      # Entrada do nome pelo teclado
        fone = input('Digite o número do telefone:')# Entrada do telefone pelo teclado
        email = input('Digite o email:')            # Entrada do telefone pelo teclado
        contato = (nome+' - '+fone+' - '+email)    # Recebe o nome + o telefone
        escrever_linhas(str(contato))              # Chama a função que grava em arquivo
    elif Op == 2:                                  # Se a opcao for 2
        ler_arquivo()                              # Chama a função que le o arquivo
    elif Op == 9:                                  # Se a opcao for 0
        break                                      # Quebra o laço infinito
    elif Op == 3:
        nome = input("Digite o nome: ")
        pesquisar_contato(nome)
    elif Op == 4:
        #nome = input ("Digite o nome: ")
        excluir_contatos()
</syntaxhighlight>
Dar um exemplo de um código-fonte que mostre alguma parte da aplicação final. O código deverá ser curto mas que o leitor consiga enxergar para que serve. Pode-se usar comentários no programa.
<br>
<br>



Edição das 19h02min de 16 de outubro de 2017

Conceito

Programação na robótica é utilizada nos comandos e instruções que o protótipo escolhido deve executar. São comandos realizados através das linguagens de programação, que permite a criação das funções. As funcionalidades são guardadas em microcontroladores (circuitos integrado que são programáveis, ou seja, a programação do protótipo é armazenada na memória do microcontrolador), que basicamente é utilizada na entrada (computador) , a programação (memória) e a saída (comando).


Softwares

Microsoft Robotics Studio, é um software criado pela Microsoft,utilizado para simular e controlar robôs. Permite interagir com os robôs mediante de interfaces baseada em web ou pelo próprio Windows. A comunicação está baseada em mensagens, permitindo a comunicação entre módulos. É utilizada em protótipos com sensores. Permite as linguagens IronPhyton, Visual C# , Visual Basic e Microsoft Visual Studio Express.

Arduino IDE é uma aplicação que introduz a programacao a pessoa não familiarização com a parte de desenvolvimento de software. Carrega e compila para a placa de forma rápida. Aceita a linguagem c, c++. Definindo apenas apenas a entrada e saída.


Código

// define LED_PIN 13 int LED_PIN = 13;

void setup () {

   pinMode (LED_PIN, OUTPUT);     // habilita o pino 13 para saída digital (OUTPUT).

}

void loop () {

   digitalWrite (LED_PIN, HIGH);  // liga o LED.
   delay (1000);                  // espera 1 segundo (1000 milissegundos).
   digitalWrite (LED_PIN, LOW);   // desliga o LED.
   delay (1000);                  // espera 1 segundo.

}


Diagrama de Casos de Uso

Desenhar ou plotar  os requisitos funcionais de uma aplicação.


Interações com as tecnologias

Incluir links (internos ou externos) temas que tem relação com este, explicando detalhes sobre. Limite de 3 internos e 2 externos.


Informações adicionais

Descrever detalhes a mais sobre esse tema.


Referências bibliográficas

Relacionar aqui as referências bibliográficas no padrão ABNT. 
Bases de procura: Artigos, publicações acadêmicas, revistas e sites de fornecedores