<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.canisinc.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nickdias</id>
	<title>Caninos Loucos - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.canisinc.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nickdias"/>
	<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php/Especial:Contribui%C3%A7%C3%B5es/Nickdias"/>
	<updated>2026-09-02T23:04:00Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=696</id>
		<title>Guia 5 - Enviando dados da Labrador para o Arduino com I2C</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=696"/>
		<updated>2023-08-31T18:00:46Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 5 - Enviando dados da Labrador para o Arduino com I2C&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste quinto guia, você aprenderá a enviar dados da Labrador para o Arduino com I2C, para isso, utilize o Guia 5 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1YI4sLhD7B0gQaXjbJU3Mbu3auFk-8gIy/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 5]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observações gerais&#039;&#039;&#039;&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 2 - Programando um LED com a Labrador&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Durante o desenvolvimento de soluções embarcadas é comum precisarmos estabelecer a comunicação entre dois dispositivos distintos. A comunicação entre dois dispositivos só é possível quando estabelecemos um protocolo que seja capaz de viabilizar a troca de mensagens.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um protocolo, por sua vez, pode ser tratado como uma convenção, composta por um conjunto de regras, que viabiliza a comunicação entre duas entidades distintas. Em outras palavras, um protocolo permite que criemos um conjunto de regras de comunicação para que uma &amp;quot;conversa&amp;quot; aconteça. No dia-a-dia, por exemplo, utilizamos protocolos para conversar com outras pessoas! Geralmente iniciamos uma conversa com uma saudação, por exemplo.&lt;br /&gt;
&lt;br /&gt;
No universo dos microcontroladores, utilizamos um protocolo para estabelecer a comunicação entre dispositivos de baixa velocidade de transmissão, e microcontroladores, para quando os dispositivos não estão muito distantes. Este protocolo é o I2C, que significa  Inter-Integrated Circuit. Este protocolo foi desenvolvido pela Philips em 1982 e tem por objetivo permitir que dois dispositivos se comuniquem de forma adequada, desde que um deles assuma o papel de dispositivo principal, e o outro possa atuar como um dispositivo agente.&lt;br /&gt;
&lt;br /&gt;
Neste Guia vamos utilizar a labrador para enviar mensagens para o Arduino utilizando o protocolo I2C. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Utilizar a IDE do Arduino em conjunto com a sua placa labrador&lt;br /&gt;
2. Estabelecer a comunicação entre a labrador (dispositivo principal) e uma placa Arduino (dispositivo agente) utilizando I2C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
    sudo chown caninos /dev/gpiochip*&lt;br /&gt;
    sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
    pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[NOVO] Observação 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para utilizar o protocolo I2C será necessário autorizar as permissões de acesso, para isso, rode o Código 3.&lt;br /&gt;
&lt;br /&gt;
    sudo chmod a+rw /dev/i2c-*&lt;br /&gt;
&lt;br /&gt;
Código 3. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[NOVO] Observação 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Além disso, é necessário instalar a biblioteca listada abaixo:&lt;br /&gt;
&lt;br /&gt;
pip3 install pylibi2c&lt;br /&gt;
&lt;br /&gt;
Código 4. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 Placa Arduino Uno&lt;br /&gt;
*1 Hub USB para acesso a pelo menos três portas USB na Labrador&lt;br /&gt;
*3 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Conforme mencionado na introduçao deste guia, um protocolo é utilizado para garantir que as regras de comunicação sejam bem estabelecidas entre dois dispositivos diferentes. Desta forma, este experimento, diferente dos anteriores, utilizará duas placas distintas.&lt;br /&gt;
&lt;br /&gt;
A Labrador assumirá o papel de placa principal, sendo capaz de enviar informações para a placa arduino. Já a placa Arduino Uno, assumirá o papel de placa agente, em que eventualmente, pode utilizar as informacões proessadas pela Labrador, para que desempenhe o seu papel enquanto um microcontrolador.&lt;br /&gt;
&lt;br /&gt;
Esta comunicação utilizará duas linhas de transmissão (i) o Serial Data (SDA) e (ii) o Serial Clock (SCL). O SDA é responsavel por enviar e receber os dados de uma placa para a outra, já o SCL é utilizado para estabelecerum clock que garante a sincronia entre os sistemas.&lt;br /&gt;
&lt;br /&gt;
Não nos aprofundaremos neste guia a respeito das diretrizes de uso do protocolo I2C. No entanto, destacaremos como utilizar a Caninos SDK para estabelecer a comunicação entre os dois dispositivos, bem como, construiremos juntos um exemplo para ilustrar esta comunicação. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para isso, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Estabelecer uma conexão entre as duas placas, conectando as portas SDA, SCL e GND do Arduino com as GPIOs necessárias para construção da infraestrutura de comunicação entre os dois dispositivos.&lt;br /&gt;
2. Escrever um código em linguagem Arduino, para que seja possível receber os dados enviados pela Laborador.&lt;br /&gt;
3. Escrever um código em Python, utilizando a Caninos SDK para que (i) a comunicação I2C seja estabelecida entre os dois dispositivos e (ii) seja possível enviar dados para o Arduino por I2C &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|300px|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
Além disso, também será necessário utilizar conexões com a placa arduino. Utilize a Figura 2, extraída do Student-Circuit (2023) como base para o mapeamento destas portas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_5.jpg|thumb|400px|Figura 2. GPIOs disponíveis na placa Arduino Uno]]&lt;br /&gt;
&lt;br /&gt;
Para estabelecer a comunicação entre os dispositivos, precisamos utilizar as portas de comunicação SDA e SCL estabelecidas para cada dispositivo. Veja a Figura 3 que ilustra esta montagem.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_3_guia_5.jpg|thumb|400px|Figura 3. Conexões entre a Labrador e o Arduino Uno]]&lt;br /&gt;
&lt;br /&gt;
== Discutindo a montagem do programa ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do lado do Arduino...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programarmos o Arduino, utilizaremos a biblioteca Wire.h.  Desta forma, utilize o Código 5 para importa-la em seu programa.&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código 5. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos garantir que o preparo do Arduino, seja capaz de estabelecer as configurações mínimas para iniciar a comunicação entre os dispositivos. Note que não faremos isso manualmente, e para isso utilizamos as bibliotecas indicadas tanto para o Arduino, quanto para a Labrador. &lt;br /&gt;
&lt;br /&gt;
Utilize o Código 6 para (i) definir o endereço de uso do dispositivo i2c (ii) adicionar um evento de resposta que ser &amp;quot;chamado&amp;quot; quando um dado for enviado ao Arduino (iii) iniciar a comunicação Serial.&lt;br /&gt;
&lt;br /&gt;
    void setup(){&lt;br /&gt;
        Wire.begin(4);&lt;br /&gt;
        Wire.onReceive(eventoResposta);&lt;br /&gt;
        Serial.begin(9600);&lt;br /&gt;
    }&lt;br /&gt;
Código 6. Definindo a função de Setup no Arduino&lt;br /&gt;
&lt;br /&gt;
A função onReceive() espera como parâmetro o nome de um evento. Este evento não foi criado ainda. Faremos isso logo mais, ok? Mas vale destacar que o nome eventoResposta poderia ser qualquer outro, desde que respeitasse as mesmas regras para criação do nome de uma função.&lt;br /&gt;
&lt;br /&gt;
O Arduino, além da função setup(), possuí uma segunda função principal que é a função loop(). Esta função é invocada continuamente para que seja possível garantir que o Arduino utilize adequadamente o seu microcontrolador. Nesta aplicação a função loop pode ficar vazia.&lt;br /&gt;
&lt;br /&gt;
Por fim, precisamos criar a função que será &amp;quot;invocada&amp;quot; para responder aos chamados da nossa placa Labrador. Esta função deve ter o mesmo nome que informamos no Código 6 e deve ter como parâmetro uma variável inteira. Veja o Código 7&lt;br /&gt;
&lt;br /&gt;
    void eventoResposta(int quantidade){&lt;br /&gt;
        while(Wire.available()&amp;gt;0){&lt;br /&gt;
            char caractere = Wire.read();&lt;br /&gt;
            Serial.print(caractere);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
Código 7. Capturando os caracteres enviados por I2C e exibindo o resultado&lt;br /&gt;
&lt;br /&gt;
Neste trecho de código estamos capturando caractere por caractere que foi enviado pela comunicação I2C, e para cada um deles, armazenamos na variável local chamada caractere. Em seguida, exibimos este caractere. No final do laço de repetição, a mensagem enviada será completamente exibida.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do lado da Labrador...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No lado da Labrador escreveremos um código em Python para estabelecer a comunicação entre os dispositivos e enviar uma mensagem importante!&lt;br /&gt;
&lt;br /&gt;
Para estabelecer a comunicação entre os dispositivos é necessário importar a biblioteca da Caninos e em seguida adicionar o dispositivo que desejamos estabelecer a comunicação, utilizando I2C. Veja o Código 8.&lt;br /&gt;
&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    labrador.i2c.add_device(&amp;quot;arduino_i2c&amp;quot;, 4)&lt;br /&gt;
&lt;br /&gt;
Código 8. Preparando a Labrador para comunicação I2C&lt;br /&gt;
&lt;br /&gt;
A terceira linha de código nos permite adicionar o arduino como um dispositivo I2C e estabelece o endereço de acesso como 4.&lt;br /&gt;
Para enviar uma informação para o Arduino, utilize o trecho de Código 9.&lt;br /&gt;
&lt;br /&gt;
    resposta = labrador.arduino_i2c.write(&amp;quot;dados importantes\n&amp;quot;)&lt;br /&gt;
    print (resposta)&lt;br /&gt;
&lt;br /&gt;
Código 9. Enviando uma mensagem por I2C e recebendo uma mensagem I2C&lt;br /&gt;
&lt;br /&gt;
O Código 9 destaca as duas funções principais implementadas para comunicação I2C. A função write() permite enviar dados para o Arduino. Esta função retorna uma resposta que pode ser exibida para indicar o sucesso do envio dos dados.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Código do experimento ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
    import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #adicionamos o dispositivo I2C, definindo o endereço 4 de comunicação&lt;br /&gt;
    labrador.i2c.add_device(&amp;quot;arduino_i2c&amp;quot;, 4)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #enviamos uma mensagem para o Arduino&lt;br /&gt;
    resposta = labrador.arduino_i2c.write(&amp;quot;dados importantes\n&amp;quot;)&lt;br /&gt;
    #imprimimos a resposta&lt;br /&gt;
    print (resposta)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    //importamos a biblioteca Wire&lt;br /&gt;
    #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    //função chamada quando o arduino inicializa&lt;br /&gt;
    void setup(){&lt;br /&gt;
        Wire.begin(4); //definimos o endereço de comunicação&lt;br /&gt;
        Wire.onReceive(eventoResposta); //definimos a função de resposta (evento)&lt;br /&gt;
        Serial.begin(9600); //iniciamos o serial&lt;br /&gt;
    }&lt;br /&gt;
    //deixar vazio, não utilizamos neste exemplo&lt;br /&gt;
    void loop(){&lt;br /&gt;
    }&lt;br /&gt;
    void eventoResposta(int quantidade){ //função informada no setup&lt;br /&gt;
        while(Wire.available()&amp;gt;0){ //laço de repeetição, enquanto I2C estiver comunicando&lt;br /&gt;
            char caractere = Wire.read(); //lê dado recebido&lt;br /&gt;
            Serial.print(caractere); //imprime dado recebido&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_3_guia_5.jpg&amp;diff=695</id>
		<title>Arquivo:Figura 3 guia 5.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_3_guia_5.jpg&amp;diff=695"/>
		<updated>2023-08-31T17:55:20Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_5.jpg&amp;diff=694</id>
		<title>Arquivo:Figura 2 guia 5.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_5.jpg&amp;diff=694"/>
		<updated>2023-08-31T17:54:45Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=693</id>
		<title>Guia 5 - Enviando dados da Labrador para o Arduino com I2C</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=693"/>
		<updated>2023-08-31T17:54:22Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: /* Código do experimento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 5 - Enviando dados da Labrador para o Arduino com I2C&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste quinto guia, você aprenderá a enviar dados da Labrador para o Arduino com I2C, para isso, utilize o Guia 5 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1YI4sLhD7B0gQaXjbJU3Mbu3auFk-8gIy/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 5]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observações gerais&#039;&#039;&#039;&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 2 - Programando um LED com a Labrador&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Durante o desenvolvimento de soluções embarcadas é comum precisarmos estabelecer a comunicação entre dois dispositivos distintos. A comunicação entre dois dispositivos só é possível quando estabelecemos um protocolo que seja capaz de viabilizar a troca de mensagens.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um protocolo, por sua vez, pode ser tratado como uma convenção, composta por um conjunto de regras, que viabiliza a comunicação entre duas entidades distintas. Em outras palavras, um protocolo permite que criemos um conjunto de regras de comunicação para que uma &amp;quot;conversa&amp;quot; aconteça. No dia-a-dia, por exemplo, utilizamos protocolos para conversar com outras pessoas! Geralmente iniciamos uma conversa com uma saudação, por exemplo.&lt;br /&gt;
&lt;br /&gt;
No universo dos microcontroladores, utilizamos um protocolo para estabelecer a comunicação entre dispositivos de baixa velocidade de transmissão, e microcontroladores, para quando os dispositivos não estão muito distantes. Este protocolo é o I2C, que significa  Inter-Integrated Circuit. Este protocolo foi desenvolvido pela Philips em 1982 e tem por objetivo permitir que dois dispositivos se comuniquem de forma adequada, desde que um deles assuma o papel de dispositivo principal, e o outro possa atuar como um dispositivo agente.&lt;br /&gt;
&lt;br /&gt;
Neste Guia vamos utilizar a labrador para enviar mensagens para o Arduino utilizando o protocolo I2C. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Utilizar a IDE do Arduino em conjunto com a sua placa labrador&lt;br /&gt;
2. Estabelecer a comunicação entre a labrador (dispositivo principal) e uma placa Arduino (dispositivo agente) utilizando I2C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
    sudo chown caninos /dev/gpiochip*&lt;br /&gt;
    sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
    pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[NOVO] Observação 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para utilizar o protocolo I2C será necessário autorizar as permissões de acesso, para isso, rode o Código 3.&lt;br /&gt;
&lt;br /&gt;
    sudo chmod a+rw /dev/i2c-*&lt;br /&gt;
&lt;br /&gt;
Código 3. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[NOVO] Observação 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Além disso, é necessário instalar a biblioteca listada abaixo:&lt;br /&gt;
&lt;br /&gt;
pip3 install pylibi2c&lt;br /&gt;
&lt;br /&gt;
Código 4. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 Placa Arduino Uno&lt;br /&gt;
*1 Hub USB para acesso a pelo menos três portas USB na Labrador&lt;br /&gt;
*3 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Conforme mencionado na introduçao deste guia, um protocolo é utilizado para garantir que as regras de comunicação sejam bem estabelecidas entre dois dispositivos diferentes. Desta forma, este experimento, diferente dos anteriores, utilizará duas placas distintas.&lt;br /&gt;
&lt;br /&gt;
A Labrador assumirá o papel de placa principal, sendo capaz de enviar informações para a placa arduino. Já a placa Arduino Uno, assumirá o papel de placa agente, em que eventualmente, pode utilizar as informacões proessadas pela Labrador, para que desempenhe o seu papel enquanto um microcontrolador.&lt;br /&gt;
&lt;br /&gt;
Esta comunicação utilizará duas linhas de transmissão (i) o Serial Data (SDA) e (ii) o Serial Clock (SCL). O SDA é responsavel por enviar e receber os dados de uma placa para a outra, já o SCL é utilizado para estabelecerum clock que garante a sincronia entre os sistemas.&lt;br /&gt;
&lt;br /&gt;
Não nos aprofundaremos neste guia a respeito das diretrizes de uso do protocolo I2C. No entanto, destacaremos como utilizar a Caninos SDK para estabelecer a comunicação entre os dois dispositivos, bem como, construiremos juntos um exemplo para ilustrar esta comunicação. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para isso, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Estabelecer uma conexão entre as duas placas, conectando as portas SDA, SCL e GND do Arduino com as GPIOs necessárias para construção da infraestrutura de comunicação entre os dois dispositivos.&lt;br /&gt;
2. Escrever um código em linguagem Arduino, para que seja possível receber os dados enviados pela Laborador.&lt;br /&gt;
3. Escrever um código em Python, utilizando a Caninos SDK para que (i) a comunicação I2C seja estabelecida entre os dois dispositivos e (ii) seja possível enviar dados para o Arduino por I2C &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|300px|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
Além disso, também será necessário utilizar conexões com a placa arduino. Utilize a Figura 2, extraída do Student-Circuit (2023) como base para o mapeamento destas portas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_5.jpg|thumb|400px|Figura 2. GPIOs disponíveis na placa Arduino Uno]]&lt;br /&gt;
&lt;br /&gt;
Para estabelecer a comunicação entre os dispositivos, precisamos utilizar as portas de comunicação SDA e SCL estabelecidas para cada dispositivo. Veja a Figura 3 que ilustra esta montagem.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_3_guia_5.jpg|thumb|400px|Figura 3. Conexões entre a Labrador e o Arduino Uno]]&lt;br /&gt;
&lt;br /&gt;
== Discutindo a montagem do programa ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do lado do Arduino...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programarmos o Arduino, utilizaremos a biblioteca Wire.h.  Desta forma, utilize o Código 5 para importa-la em seu programa.&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código 5. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos garantir que o preparo do Arduino, seja capaz de estabelecer as configurações mínimas para iniciar a comunicação entre os dispositivos. Note que não faremos isso manualmente, e para isso utilizamos as bibliotecas indicadas tanto para o Arduino, quanto para a Labrador. &lt;br /&gt;
&lt;br /&gt;
Utilize o Código 6 para (i) definir o endereço de uso do dispositivo i2c (ii) adicionar um evento de resposta que ser &amp;quot;chamado&amp;quot; quando um dado for enviado ao Arduino (iii) iniciar a comunicação Serial.&lt;br /&gt;
&lt;br /&gt;
    void setup(){&lt;br /&gt;
        Wire.begin(4);&lt;br /&gt;
        Wire.onReceive(eventoResposta);&lt;br /&gt;
        Serial.begin(9600);&lt;br /&gt;
    }&lt;br /&gt;
Código 6. Definindo a função de Setup no Arduino&lt;br /&gt;
&lt;br /&gt;
A função onReceive() espera como parâmetro o nome de um evento. Este evento não foi criado ainda. Faremos isso logo mais, ok? Mas vale destacar que o nome eventoResposta poderia ser qualquer outro, desde que respeitasse as mesmas regras para criação do nome de uma função.&lt;br /&gt;
&lt;br /&gt;
O Arduino, além da função setup(), possuí uma segunda função principal que é a função loop(). Esta função é invocada continuamente para que seja possível garantir que o Arduino utilize adequadamente o seu microcontrolador. Nesta aplicação a função loop pode ficar vazia.&lt;br /&gt;
&lt;br /&gt;
Por fim, precisamos criar a função que será &amp;quot;invocada&amp;quot; para responder aos chamados da nossa placa Labrador. Esta função deve ter o mesmo nome que informamos no Código 6 e deve ter como parâmetro uma variável inteira. Veja o Código 7&lt;br /&gt;
&lt;br /&gt;
    void eventoResposta(int quantidade){&lt;br /&gt;
        while(Wire.available()&amp;gt;0){&lt;br /&gt;
            char caractere = Wire.read();&lt;br /&gt;
            Serial.print(caractere);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
Código 7. Capturando os caracteres enviados por I2C e exibindo o resultado&lt;br /&gt;
&lt;br /&gt;
Neste trecho de código estamos capturando caractere por caractere que foi enviado pela comunicação I2C, e para cada um deles, armazenamos na variável local chamada caractere. Em seguida, exibimos este caractere. No final do laço de repetição, a mensagem enviada será completamente exibida.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do lado da Labrador...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No lado da Labrador escreveremos um código em Python para estabelecer a comunicação entre os dispositivos e enviar uma mensagem importante!&lt;br /&gt;
&lt;br /&gt;
Para estabelecer a comunicação entre os dispositivos é necessário importar a biblioteca da Caninos e em seguida adicionar o dispositivo que desejamos estabelecer a comunicação, utilizando I2C. Veja o Código 8.&lt;br /&gt;
&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    labrador.i2c.add_device(&amp;quot;arduino_i2c&amp;quot;, 4)&lt;br /&gt;
&lt;br /&gt;
 Código 8. Preparando a Labrador para comunicação I2C&lt;br /&gt;
&lt;br /&gt;
A terceira linha de código nos permite adicionar o arduino como um dispositivo I2C e estabelece o endereço de acesso como 4.&lt;br /&gt;
Para enviar uma informação para o Arduino, utilize o trecho de Código 9.&lt;br /&gt;
&lt;br /&gt;
    resposta = labrador.arduino_i2c.write(&amp;quot;dados importantes\n&amp;quot;)&lt;br /&gt;
    print (resposta)&lt;br /&gt;
&lt;br /&gt;
Código 9. Enviando uma mensagem por I2C e recebendo uma mensagem I2C&lt;br /&gt;
&lt;br /&gt;
O Código 9 destaca as duas funções principais implementadas para comunicação I2C. A função write() permite enviar dados para o Arduino. Esta função retorna uma resposta que pode ser exibida para indicar o sucesso do envio dos dados.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Código do experimento ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
    import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #adicionamos o dispositivo I2C, definindo o endereço 4 de comunicação&lt;br /&gt;
    labrador.i2c.add_device(&amp;quot;arduino_i2c&amp;quot;, 4)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #enviamos uma mensagem para o Arduino&lt;br /&gt;
    resposta = labrador.arduino_i2c.write(&amp;quot;dados importantes\n&amp;quot;)&lt;br /&gt;
    #imprimimos a resposta&lt;br /&gt;
    print (resposta)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    //importamos a biblioteca Wire&lt;br /&gt;
    #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    //função chamada quando o arduino inicializa&lt;br /&gt;
    void setup(){&lt;br /&gt;
        Wire.begin(4); //definimos o endereço de comunicação&lt;br /&gt;
        Wire.onReceive(eventoResposta); //definimos a função de resposta (evento)&lt;br /&gt;
        Serial.begin(9600); //iniciamos o serial&lt;br /&gt;
    }&lt;br /&gt;
    //deixar vazio, não utilizamos neste exemplo&lt;br /&gt;
    void loop(){&lt;br /&gt;
    }&lt;br /&gt;
    void eventoResposta(int quantidade){ //função informada no setup&lt;br /&gt;
        while(Wire.available()&amp;gt;0){ //laço de repeetição, enquanto I2C estiver comunicando&lt;br /&gt;
            char caractere = Wire.read(); //lê dado recebido&lt;br /&gt;
            Serial.print(caractere); //imprime dado recebido&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=692</id>
		<title>Guia 5 - Enviando dados da Labrador para o Arduino com I2C</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=692"/>
		<updated>2023-08-31T17:53:06Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 5 - Enviando dados da Labrador para o Arduino com I2C&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste quinto guia, você aprenderá a enviar dados da Labrador para o Arduino com I2C, para isso, utilize o Guia 5 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1YI4sLhD7B0gQaXjbJU3Mbu3auFk-8gIy/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 5]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observações gerais&#039;&#039;&#039;&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 2 - Programando um LED com a Labrador&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Durante o desenvolvimento de soluções embarcadas é comum precisarmos estabelecer a comunicação entre dois dispositivos distintos. A comunicação entre dois dispositivos só é possível quando estabelecemos um protocolo que seja capaz de viabilizar a troca de mensagens.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um protocolo, por sua vez, pode ser tratado como uma convenção, composta por um conjunto de regras, que viabiliza a comunicação entre duas entidades distintas. Em outras palavras, um protocolo permite que criemos um conjunto de regras de comunicação para que uma &amp;quot;conversa&amp;quot; aconteça. No dia-a-dia, por exemplo, utilizamos protocolos para conversar com outras pessoas! Geralmente iniciamos uma conversa com uma saudação, por exemplo.&lt;br /&gt;
&lt;br /&gt;
No universo dos microcontroladores, utilizamos um protocolo para estabelecer a comunicação entre dispositivos de baixa velocidade de transmissão, e microcontroladores, para quando os dispositivos não estão muito distantes. Este protocolo é o I2C, que significa  Inter-Integrated Circuit. Este protocolo foi desenvolvido pela Philips em 1982 e tem por objetivo permitir que dois dispositivos se comuniquem de forma adequada, desde que um deles assuma o papel de dispositivo principal, e o outro possa atuar como um dispositivo agente.&lt;br /&gt;
&lt;br /&gt;
Neste Guia vamos utilizar a labrador para enviar mensagens para o Arduino utilizando o protocolo I2C. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Utilizar a IDE do Arduino em conjunto com a sua placa labrador&lt;br /&gt;
2. Estabelecer a comunicação entre a labrador (dispositivo principal) e uma placa Arduino (dispositivo agente) utilizando I2C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
    sudo chown caninos /dev/gpiochip*&lt;br /&gt;
    sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
    pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[NOVO] Observação 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para utilizar o protocolo I2C será necessário autorizar as permissões de acesso, para isso, rode o Código 3.&lt;br /&gt;
&lt;br /&gt;
    sudo chmod a+rw /dev/i2c-*&lt;br /&gt;
&lt;br /&gt;
Código 3. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[NOVO] Observação 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Além disso, é necessário instalar a biblioteca listada abaixo:&lt;br /&gt;
&lt;br /&gt;
pip3 install pylibi2c&lt;br /&gt;
&lt;br /&gt;
Código 4. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 Placa Arduino Uno&lt;br /&gt;
*1 Hub USB para acesso a pelo menos três portas USB na Labrador&lt;br /&gt;
*3 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Conforme mencionado na introduçao deste guia, um protocolo é utilizado para garantir que as regras de comunicação sejam bem estabelecidas entre dois dispositivos diferentes. Desta forma, este experimento, diferente dos anteriores, utilizará duas placas distintas.&lt;br /&gt;
&lt;br /&gt;
A Labrador assumirá o papel de placa principal, sendo capaz de enviar informações para a placa arduino. Já a placa Arduino Uno, assumirá o papel de placa agente, em que eventualmente, pode utilizar as informacões proessadas pela Labrador, para que desempenhe o seu papel enquanto um microcontrolador.&lt;br /&gt;
&lt;br /&gt;
Esta comunicação utilizará duas linhas de transmissão (i) o Serial Data (SDA) e (ii) o Serial Clock (SCL). O SDA é responsavel por enviar e receber os dados de uma placa para a outra, já o SCL é utilizado para estabelecerum clock que garante a sincronia entre os sistemas.&lt;br /&gt;
&lt;br /&gt;
Não nos aprofundaremos neste guia a respeito das diretrizes de uso do protocolo I2C. No entanto, destacaremos como utilizar a Caninos SDK para estabelecer a comunicação entre os dois dispositivos, bem como, construiremos juntos um exemplo para ilustrar esta comunicação. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para isso, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Estabelecer uma conexão entre as duas placas, conectando as portas SDA, SCL e GND do Arduino com as GPIOs necessárias para construção da infraestrutura de comunicação entre os dois dispositivos.&lt;br /&gt;
2. Escrever um código em linguagem Arduino, para que seja possível receber os dados enviados pela Laborador.&lt;br /&gt;
3. Escrever um código em Python, utilizando a Caninos SDK para que (i) a comunicação I2C seja estabelecida entre os dois dispositivos e (ii) seja possível enviar dados para o Arduino por I2C &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|300px|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
Além disso, também será necessário utilizar conexões com a placa arduino. Utilize a Figura 2, extraída do Student-Circuit (2023) como base para o mapeamento destas portas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_5.jpg|thumb|400px|Figura 2. GPIOs disponíveis na placa Arduino Uno]]&lt;br /&gt;
&lt;br /&gt;
Para estabelecer a comunicação entre os dispositivos, precisamos utilizar as portas de comunicação SDA e SCL estabelecidas para cada dispositivo. Veja a Figura 3 que ilustra esta montagem.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_3_guia_5.jpg|thumb|400px|Figura 3. Conexões entre a Labrador e o Arduino Uno]]&lt;br /&gt;
&lt;br /&gt;
== Discutindo a montagem do programa ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do lado do Arduino...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programarmos o Arduino, utilizaremos a biblioteca Wire.h.  Desta forma, utilize o Código 5 para importa-la em seu programa.&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código 5. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos garantir que o preparo do Arduino, seja capaz de estabelecer as configurações mínimas para iniciar a comunicação entre os dispositivos. Note que não faremos isso manualmente, e para isso utilizamos as bibliotecas indicadas tanto para o Arduino, quanto para a Labrador. &lt;br /&gt;
&lt;br /&gt;
Utilize o Código 6 para (i) definir o endereço de uso do dispositivo i2c (ii) adicionar um evento de resposta que ser &amp;quot;chamado&amp;quot; quando um dado for enviado ao Arduino (iii) iniciar a comunicação Serial.&lt;br /&gt;
&lt;br /&gt;
    void setup(){&lt;br /&gt;
        Wire.begin(4);&lt;br /&gt;
        Wire.onReceive(eventoResposta);&lt;br /&gt;
        Serial.begin(9600);&lt;br /&gt;
    }&lt;br /&gt;
Código 6. Definindo a função de Setup no Arduino&lt;br /&gt;
&lt;br /&gt;
A função onReceive() espera como parâmetro o nome de um evento. Este evento não foi criado ainda. Faremos isso logo mais, ok? Mas vale destacar que o nome eventoResposta poderia ser qualquer outro, desde que respeitasse as mesmas regras para criação do nome de uma função.&lt;br /&gt;
&lt;br /&gt;
O Arduino, além da função setup(), possuí uma segunda função principal que é a função loop(). Esta função é invocada continuamente para que seja possível garantir que o Arduino utilize adequadamente o seu microcontrolador. Nesta aplicação a função loop pode ficar vazia.&lt;br /&gt;
&lt;br /&gt;
Por fim, precisamos criar a função que será &amp;quot;invocada&amp;quot; para responder aos chamados da nossa placa Labrador. Esta função deve ter o mesmo nome que informamos no Código 6 e deve ter como parâmetro uma variável inteira. Veja o Código 7&lt;br /&gt;
&lt;br /&gt;
    void eventoResposta(int quantidade){&lt;br /&gt;
        while(Wire.available()&amp;gt;0){&lt;br /&gt;
            char caractere = Wire.read();&lt;br /&gt;
            Serial.print(caractere);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
Código 7. Capturando os caracteres enviados por I2C e exibindo o resultado&lt;br /&gt;
&lt;br /&gt;
Neste trecho de código estamos capturando caractere por caractere que foi enviado pela comunicação I2C, e para cada um deles, armazenamos na variável local chamada caractere. Em seguida, exibimos este caractere. No final do laço de repetição, a mensagem enviada será completamente exibida.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do lado da Labrador...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No lado da Labrador escreveremos um código em Python para estabelecer a comunicação entre os dispositivos e enviar uma mensagem importante!&lt;br /&gt;
&lt;br /&gt;
Para estabelecer a comunicação entre os dispositivos é necessário importar a biblioteca da Caninos e em seguida adicionar o dispositivo que desejamos estabelecer a comunicação, utilizando I2C. Veja o Código 8.&lt;br /&gt;
&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    labrador.i2c.add_device(&amp;quot;arduino_i2c&amp;quot;, 4)&lt;br /&gt;
&lt;br /&gt;
 Código 8. Preparando a Labrador para comunicação I2C&lt;br /&gt;
&lt;br /&gt;
A terceira linha de código nos permite adicionar o arduino como um dispositivo I2C e estabelece o endereço de acesso como 4.&lt;br /&gt;
Para enviar uma informação para o Arduino, utilize o trecho de Código 9.&lt;br /&gt;
&lt;br /&gt;
    resposta = labrador.arduino_i2c.write(&amp;quot;dados importantes\n&amp;quot;)&lt;br /&gt;
    print (resposta)&lt;br /&gt;
&lt;br /&gt;
Código 9. Enviando uma mensagem por I2C e recebendo uma mensagem I2C&lt;br /&gt;
&lt;br /&gt;
O Código 9 destaca as duas funções principais implementadas para comunicação I2C. A função write() permite enviar dados para o Arduino. Esta função retorna uma resposta que pode ser exibida para indicar o sucesso do envio dos dados.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Código do experimento ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
    import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #adicionamos o dispositivo I2C, definindo o endereço 4 de comunicação&lt;br /&gt;
    labrador.i2c.add_device(&amp;quot;arduino_i2c&amp;quot;, 4)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #enviamos uma mensagem para o Arduino&lt;br /&gt;
    resposta = labrador.arduino_i2c.write(&amp;quot;dados importantes\n&amp;quot;)&lt;br /&gt;
    #imprimimos a resposta&lt;br /&gt;
    print (resposta)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=691</id>
		<title>Guia 5 - Enviando dados da Labrador para o Arduino com I2C</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_5_-_Enviando_dados_da_Labrador_para_o_Arduino_com_I2C&amp;diff=691"/>
		<updated>2023-08-31T17:28:37Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 5 - Enviando dados da Labrador para o Arduino com I2C&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste quinto guia, você aprenderá a enviar dados da Labrador para o Arduino com I2C, para isso, utilize o Guia 5 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1YI4sLhD7B0gQaXjbJU3Mbu3auFk-8gIy/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 5]&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_4_-_Controlando_um_LED_por_PWM&amp;diff=690</id>
		<title>Guia 4 - Controlando um LED por PWM</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_4_-_Controlando_um_LED_por_PWM&amp;diff=690"/>
		<updated>2023-08-31T17:23:29Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 4 - Controlando um LED por PWM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste quarto guia, você aprenderá a controlar um LED com um sinal PWM, para isso, utilize o Guia 4 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1N_cjUv1n6XY6uN9Bq3dro9hWJRkC44ds/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observações gerais&#039;&#039;&#039;&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 2 - Programando um LED com a Labrador&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para explorar uma variação para implementação que você fez no Guia 2 - Programando um LED com a Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. No Guia 2, verificamos como podemos controlar as GPIOs para garantir que seja possível enviar sinais digitais para o mundo real, por meio do uso de um LED. &lt;br /&gt;
&lt;br /&gt;
Neste Guia adaptaremos a solução anterior para que seja possível controlar um LED por meio de um sinal PWM. Este processo permitirá, por exemplo, que alteremos o intervalo de tempo no qual um sinal digital é enviado para nossa GPIO, para que seja possivel reproduzir um comportamento de variação de intensidade do sinal luminoso em nosso LED.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal PWM na porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
    sudo chown caninos /dev/gpiochip*&lt;br /&gt;
    sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
    pip3 install -U caninos-sdk&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de 330 Ω&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Quando programamos nosso LED, utilizamos o pin15 para controlar os estados de &amp;quot;ligado&amp;quot; ou &amp;quot;desligado&amp;quot; de acordo com uma rotina lógica que pré-estabelecemos. Neste experimento vamos realizar uma alteração no código de programação do nosso LED para que seja possível controlar a intensidade de sinal que será enviada para nossa GPIO.&lt;br /&gt;
&lt;br /&gt;
O PWM, do inglês ​​Pulse Width Modulation, significa modulação por largura de pulso e consiste em uma técnica utilizada na elaboração de projetos que envolvem sistemas digitais para variar o valor de uma onda, em função de um intervalo de tempo. &lt;br /&gt;
&lt;br /&gt;
Para isso, mantemos a frequência de uma onda quadrada fixa (quão rápido um ciclo completo será percorrido), e alteramos a quantidade de tempo em que um sinal digital ALTO será enviado para nossa GPIO. Veja a Figura 1, ela ilustra dois cenários em que variamos o duty cycle de um sinal digital enviado para uma porta digital.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_4.jpg|thumb|400px|Figura 1. Exemplo de PWM com 25% e 50% de duty cycle]]&lt;br /&gt;
&lt;br /&gt;
No exemplo 1, consideramos um duty cycle de 25%, ou seja, em 25% do tempo de um ciclo, o sinal enviado para a GPIO será um ALTO (HIGH - 5V), enquanto nos outros 75% o sinal será BAIXO (LOW - OV). No segundo exemplo, também na Figura 1, alteramos o duty cycle para 50% e isso faz com que para uma onda de mesma frequência tenhamos um comportamento diferente, pois neste caso, o sinal de ALTO permanecerá ativo durante 50% do ciclo.&lt;br /&gt;
&lt;br /&gt;
Na páticra, o que isso significa? Se tivermos um duty cycle pequeno, o LED ficará &amp;quot;menos acesa&amp;quot;” ou seja, passará a sensação de que a intensidade luminosa será mais fraca. Já para o caso em que o duty cycle for maior, a nossa sensação será de um LED mais brilhoso, pois ele permanecerá mais tempo com sinal de ALTO, e por consequência, nos permitirá enxergar a iluminação por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que (i) o LED deve acender, inicialmente com 25% de duty_cycle (ii) o LED deve ficar aceso por 2 segundos e então deve apagar (iii) o duty_cycle deve ser incrementado em 25% (iv) o passo ii deve ser repetido até que o duty_cycle atinja 100% e então, o LED deve ficar apagado.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o PWM para controlarmos nosso LED (pelo pin15). Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
    labrador.pin15.enable_pwm(alias=&amp;quot;led1&amp;quot;, freq=50, duty_cycle=0.1)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. A primeira, conforme explicado no guia 2, permite acessar as operações básicas da labrador. Já na segunda, definimos que o pin15, associado a esta variável labrador, foi ativado como PWM para uso no programa (por meio da função enable_pwm). Além disso, definimos que a frequência da onda quadrada será de 50 Hz e que o duty_cycle será de 0.1 (ou seja 10%). Por fim, definimos que o apelido desta porta será led1. Este apelido permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para que o envio de sinal PWM inicie-se é necessário chamarmos a função start(), conforme destacado no Código 5.&lt;br /&gt;
&lt;br /&gt;
    labrador.led1.pwm.start()&lt;br /&gt;
&lt;br /&gt;
Código 5. Iniciando o comportamento PWM para pin15&lt;br /&gt;
&lt;br /&gt;
Caso você deseje interromper o comportamento PWM bastar chamar a função stop() conforme destacado no Código 5.&lt;br /&gt;
&lt;br /&gt;
    labrador.led1.pwm.stop()&lt;br /&gt;
&lt;br /&gt;
Código 5. Iniciando o comportamento PWM para pin15&lt;br /&gt;
&lt;br /&gt;
Sabendo disso, você já consegue montar o código necessário para resolver o desafio proposto neste guia! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Montagem do circuito ==&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_2.jpg|thumb|400px|Figura 2. Imagem do circuito]]&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como controlador, e permitindo a intensidade deste LED seja alterada de acordo com um sinal PWM enviado para nossa GPIO. A Figura 2 permite identificar a montagem deste circuito e é a mesma representada no Guia 2!&lt;br /&gt;
&lt;br /&gt;
== Código do experimento ==&lt;br /&gt;
&lt;br /&gt;
    #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
    import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos um contador para facilitar percorrer o laço de repetição e variar o duty_cycle&lt;br /&gt;
    contador_tempo = 1&lt;br /&gt;
    while contador_tempo &amp;lt;= 4:&lt;br /&gt;
      #inicializamos o pin15 com o duty_cycle de 25% e a cada iteração variamos ele&lt;br /&gt;
      labrador.pin15.enable_pwm(alias=&amp;quot;led1&amp;quot;, freq=100, duty_cycle=0.25*contador_tempo)&lt;br /&gt;
      labrador.led1.pwm.start()&lt;br /&gt;
      time.sleep(2)&lt;br /&gt;
      labrador.led1.pwm.stop()&lt;br /&gt;
      time.sleep(2)&lt;br /&gt;
      #incrementamos o contador para variar o duty_cycle e sair do loop ao final do ciclo&lt;br /&gt;
      contador_tempo = contador_tempo + 1&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_2.jpeg&amp;diff=689</id>
		<title>Arquivo:Figura 2 guia 2.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_2.jpeg&amp;diff=689"/>
		<updated>2023-08-31T17:22:31Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_1_guia_4.jpg&amp;diff=688</id>
		<title>Arquivo:Figura 1 guia 4.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_1_guia_4.jpg&amp;diff=688"/>
		<updated>2023-08-31T17:20:55Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_4_-_Controlando_um_LED_por_PWM&amp;diff=687</id>
		<title>Guia 4 - Controlando um LED por PWM</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_4_-_Controlando_um_LED_por_PWM&amp;diff=687"/>
		<updated>2023-08-31T17:20:17Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 4 - Controlando um LED por PWM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste quarto guia, você aprenderá a controlar um LED com um sinal PWM, para isso, utilize o Guia 4 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1N_cjUv1n6XY6uN9Bq3dro9hWJRkC44ds/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observações gerais&#039;&#039;&#039;&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 2 - Programando um LED com a Labrador&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para explorar uma variação para implementação que você fez no Guia 2 - Programando um LED com a Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. No Guia 2, verificamos como podemos controlar as GPIOs para garantir que seja possível enviar sinais digitais para o mundo real, por meio do uso de um LED. &lt;br /&gt;
&lt;br /&gt;
Neste Guia adaptaremos a solução anterior para que seja possível controlar um LED por meio de um sinal PWM. Este processo permitirá, por exemplo, que alteremos o intervalo de tempo no qual um sinal digital é enviado para nossa GPIO, para que seja possivel reproduzir um comportamento de variação de intensidade do sinal luminoso em nosso LED.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal PWM na porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
    sudo chown caninos /dev/gpiochip*&lt;br /&gt;
    sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
    pip3 install -U caninos-sdk&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de 330 Ω&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Quando programamos nosso LED, utilizamos o pin15 para controlar os estados de &amp;quot;ligado&amp;quot; ou &amp;quot;desligado&amp;quot; de acordo com uma rotina lógica que pré-estabelecemos. Neste experimento vamos realizar uma alteração no código de programação do nosso LED para que seja possível controlar a intensidade de sinal que será enviada para nossa GPIO.&lt;br /&gt;
&lt;br /&gt;
O PWM, do inglês ​​Pulse Width Modulation, significa modulação por largura de pulso e consiste em uma técnica utilizada na elaboração de projetos que envolvem sistemas digitais para variar o valor de uma onda, em função de um intervalo de tempo. &lt;br /&gt;
&lt;br /&gt;
Para isso, mantemos a frequência de uma onda quadrada fixa (quão rápido um ciclo completo será percorrido), e alteramos a quantidade de tempo em que um sinal digital ALTO será enviado para nossa GPIO. Veja a Figura 1, ela ilustra dois cenários em que variamos o duty cycle de um sinal digital enviado para uma porta digital.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_4.jpg|thumb|400px|Figura 1. Exemplo de PWM com 25% e 50% de duty cycle]]&lt;br /&gt;
&lt;br /&gt;
No exemplo 1, consideramos um duty cycle de 25%, ou seja, em 25% do tempo de um ciclo, o sinal enviado para a GPIO será um ALTO (HIGH - 5V), enquanto nos outros 75% o sinal será BAIXO (LOW - OV). No segundo exemplo, também na Figura 1, alteramos o duty cycle para 50% e isso faz com que para uma onda de mesma frequência tenhamos um comportamento diferente, pois neste caso, o sinal de ALTO permanecerá ativo durante 50% do ciclo.&lt;br /&gt;
&lt;br /&gt;
Na páticra, o que isso significa? Se tivermos um duty cycle pequeno, o LED ficará &amp;quot;menos acesa&amp;quot;” ou seja, passará a sensação de que a intensidade luminosa será mais fraca. Já para o caso em que o duty cycle for maior, a nossa sensação será de um LED mais brilhoso, pois ele permanecerá mais tempo com sinal de ALTO, e por consequência, nos permitirá enxergar a iluminação por mais tempo.&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que (i) o LED deve acender, inicialmente com 25% de duty_cycle (ii) o LED deve ficar aceso por 2 segundos e então deve apagar (iii) o duty_cycle deve ser incrementado em 25% (iv) o passo ii deve ser repetido até que o duty_cycle atinja 100% e então, o LED deve ficar apagado.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o PWM para controlarmos nosso LED (pelo pin15). Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
    labrador.pin15.enable_pwm(alias=&amp;quot;led1&amp;quot;, freq=50, duty_cycle=0.1)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. A primeira, conforme explicado no guia 2, permite acessar as operações básicas da labrador. Já na segunda, definimos que o pin15, associado a esta variável labrador, foi ativado como PWM para uso no programa (por meio da função enable_pwm). Além disso, definimos que a frequência da onda quadrada será de 50 Hz e que o duty_cycle será de 0.1 (ou seja 10%). Por fim, definimos que o apelido desta porta será led1. Este apelido permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para que o envio de sinal PWM inicie-se é necessário chamarmos a função start(), conforme destacado no Código 5.&lt;br /&gt;
&lt;br /&gt;
    labrador.led1.pwm.start()&lt;br /&gt;
&lt;br /&gt;
Código 5. Iniciando o comportamento PWM para pin15&lt;br /&gt;
&lt;br /&gt;
Caso você deseje interromper o comportamento PWM bastar chamar a função stop() conforme destacado no Código 5.&lt;br /&gt;
&lt;br /&gt;
    labrador.led1.pwm.stop()&lt;br /&gt;
&lt;br /&gt;
Código 5. Iniciando o comportamento PWM para pin15&lt;br /&gt;
&lt;br /&gt;
Sabendo disso, você já consegue montar o código necessário para resolver o desafio proposto neste guia! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Montagem do circuito ==&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_2|thumb|400px|Figura 2. Imagem do circuito]]&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como controlador, e permitindo a intensidade deste LED seja alterada de acordo com um sinal PWM enviado para nossa GPIO. A Figura 2 permite identificar a montagem deste circuito e é a mesma representada no Guia 2!&lt;br /&gt;
&lt;br /&gt;
== Código do experimento ==&lt;br /&gt;
&lt;br /&gt;
    #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
    #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
    import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos um contador para facilitar percorrer o laço de repetição e variar o duty_cycle&lt;br /&gt;
    contador_tempo = 1&lt;br /&gt;
    while contador_tempo &amp;lt;= 4:&lt;br /&gt;
      #inicializamos o pin15 com o duty_cycle de 25% e a cada iteração variamos ele&lt;br /&gt;
      labrador.pin15.enable_pwm(alias=&amp;quot;led1&amp;quot;, freq=100, duty_cycle=0.25*contador_tempo)&lt;br /&gt;
      labrador.led1.pwm.start()&lt;br /&gt;
      time.sleep(2)&lt;br /&gt;
      labrador.led1.pwm.stop()&lt;br /&gt;
      time.sleep(2)&lt;br /&gt;
      #incrementamos o contador para variar o duty_cycle e sair do loop ao final do ciclo&lt;br /&gt;
      contador_tempo = contador_tempo + 1&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_3.jpg&amp;diff=686</id>
		<title>Arquivo:Figura 2 guia 3.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_3.jpg&amp;diff=686"/>
		<updated>2023-08-31T17:01:22Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_3_-_Controlando_um_LED_com_um_bot%C3%A3o&amp;diff=685</id>
		<title>Guia 3 - Controlando um LED com um botão</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_3_-_Controlando_um_LED_com_um_bot%C3%A3o&amp;diff=685"/>
		<updated>2023-08-31T17:00:53Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 3 - Controlando um LED com um botão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste terceiro guia, você aprenderá a controlar um LED com um botão, para isso, utilize o Guia 3 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1x-oHMVUgGkuBOEtTRprQuQrdooxK83x-/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Neste documento você encontra o passo a passo para aprimorarmos o projeto que iniciamos no Guia 2 - Programando um LED com a Labrador. Para isso, utilizaremos a &#039;&#039;&#039;Linguagem de Programação Python&#039;&#039;&#039;, com os recursos disponibilizados na &#039;&#039;&#039;Caninos SDK&#039;&#039;&#039;. No Guia 2, verificamos como podemos controlar as &#039;&#039;&#039;GPIOs&#039;&#039;&#039; para garantir que seja possível enviar sinais digitais para o mundo real, por meio do uso de um LED. &lt;br /&gt;
&lt;br /&gt;
Neste Guia adaptaremos nossa solução anterior para que seja possível incluir um botão no processo de controle de um LED, fazendo com que ao invés de controlarmos diretamente o LED, sejamos capazes de garantir que o LED acenda sempre que um botão for pressionado, ou apague sempre que este botão não esteja pressionado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Ao final deste experimento você será capaz de:&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um &#039;&#039;&#039;LED&#039;&#039;&#039; utilizando um botão&lt;br /&gt;
&lt;br /&gt;
2. Realizar a leitura de um botão utilizando a Linguagem de Programação &#039;&#039;&#039;Python&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Programar uma &#039;&#039;&#039;GPIO&#039;&#039;&#039;, lendo um sinal digital em uma porta de sua escolha &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Descrição do Experimento ==&lt;br /&gt;
&lt;br /&gt;
Quando programamos nosso LED, utilizamos o pin15 para controlar os estados de &amp;quot;ligado&amp;quot; ou &amp;quot;desligado&amp;quot; de acordo com uma rotina lógica que pré-estabelecemos. Neste experimento vamos adaptar a solução anterior, para que seja possível ligar um LED sempre que um Botão for pressionado, ou apagar o mesmo LED sempre que o Botão não estiver pressionado. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação I:&#039;&#039;&#039;&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        sudo chown caninos /dev/gpiochip*&lt;br /&gt;
        sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
(Código 1. Definição de permissões para o uso das GPIOs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação II:&#039;&#039;&#039;&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        pip install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
(Código 2. Definição de permissões para o uso das GPIOs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Desta forma, você deverá:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Incluir no circuito do Guia 2 um &#039;&#039;&#039;botão&#039;&#039;&#039;, garantindo que (i) o circuito necessário para conecta-lo junto a labrador seja adequdamente montado e (ii) que o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt; seja a &#039;&#039;&#039;gpio&#039;&#039;&#039; utilizada para a leitura deste &#039;&#039;&#039;botão&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
2. Em seguida, você deve escrever um código em &#039;&#039;&#039;Python&#039;&#039;&#039;, utilizando a &#039;&#039;&#039;Caninos SDK&#039;&#039;&#039;, para que o &#039;&#039;&#039;LED&#039;&#039;&#039; acenda sempre que o &#039;&#039;&#039;botão&#039;&#039;&#039; seja presisonado, ou para que o &#039;&#039;&#039;LED&#039;&#039;&#039; apague enquanto o &#039;&#039;&#039;botão&#039;&#039;&#039; não estiver pressionado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt;&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt;&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar a Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. &lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, habilitar a GPIO (&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;) que deverá ser definido como uma porta de entrada. Veja o Código 3.&lt;br /&gt;
&lt;br /&gt;
        labrador = k9.Labrador()&lt;br /&gt;
        labrador.pin18.enable_gpio(k9.Pin.Direction.INPUT, alias=&amp;quot;button1&amp;quot;)&lt;br /&gt;
(Código 3. Criando uma variável do tipo Labrador para controlar o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18.&amp;lt;/font&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 3 realizamos duas operações distintas. A primeira, conforme explicado no Guia 2, permite acessar as operações básicas da labrador. Já a segunda, nos permite definir que o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;, associado a esta variável &#039;&#039;&#039;labrador&#039;&#039;&#039;, foi ativado como uma &#039;&#039;&#039;gpio&#039;&#039;&#039; para uso no programa (por meio da função &#039;&#039;&#039;enable_io&#039;&#039;&#039;). Além disso, definimos que a &#039;&#039;&#039;GPIO&#039;&#039;&#039; será uma porta de &#039;&#039;&#039;entrada&#039;&#039;&#039;, por meio da constante &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;&#039;&#039;&#039;k9.Pin.Direction.INPUT&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Por fim, definimos que ela receberá o apelido de &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;button1&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Este apelido permite que você utilize o &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;button1&#039;&#039;&#039;&amp;lt;/font&amp;gt; deste ponto em diante do código, o que torna um pouco mais fácil controlar seu código, certo?&lt;br /&gt;
&lt;br /&gt;
Para que seja possível realizar a leitura do sinal enviado para placa, quando clicamos no botão, podemos utilizar o &#039;&#039;&#039;apelido&#039;&#039;&#039; que atribuímos anteriormente a nossa &#039;&#039;&#039;GPIO&#039;&#039;&#039;. Para realizar a leitura do estado do botão, podemos utilizar a operação apresentada no Código 4&lt;br /&gt;
&lt;br /&gt;
        labrador.button1.read()&lt;br /&gt;
&lt;br /&gt;
(Código 4. O button1 (&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;) receberá um sinal HIGH (5V) se for pressionado, ou de LOW (0V) enquanto não for pressionado.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Com estas novas instruções já somos capazes de adaptar completamente nosso código! &lt;br /&gt;
&lt;br /&gt;
        &amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt; Caso tenha alguma dúvida, consulte a seção &#039;&#039;&#039;Código do Experimento&#039;&#039;&#039;.&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;A562CE&amp;quot;&amp;gt; &#039;&#039;&#039;Montagem do circuito&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como controlador, e permitindo que toda vez que um botão for pressionado um LED acenda. Nesta montagem especificamos uma GPIO para sinal de referência GND, uma GPIO (pin15) para conexão com o LED e uma GPIO (pin18) para conexão do botão.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 2 para observar a montagem do circuito que incluí o botão que será acessado durante nosso experimento.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_3.jpg|thumb|400px|Figura 2]]&lt;br /&gt;
&lt;br /&gt;
Na Figura 2 adicionamos ao nosso circuito um botão. Em um dos terminais de entrada do botão conectamos o sinal de 5V da Labrador, e no outro, adicionamos um resistor, que estará em série com o sinal GND (para garantir estabilidade do botão). Na extremidade de saída, conectamos o terminal com a GPIO da labrador (pin18). Para que este circuito seja otimizado, também alteramos a montagem do LED, garantindo que o sinal de 5V seja transmitido a uma trilha de acesso comum da protoboard, para que assim, possa ser distribuído por todos os componentes tanto quanto necessário. Fazemos o mesmo com o GND.&lt;br /&gt;
&lt;br /&gt;
    #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
    import caninos_sdk as k9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
    labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
    labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #ativamos o pino 18 (da labrador), como entrada e definimos um apelido para ele&lt;br /&gt;
    labrador.pin18.enable_gpio(k9.Pin.Direction.INPUT, alias=&amp;quot;button1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #um laço de repetição para 6 iterações&lt;br /&gt;
    while True:&lt;br /&gt;
       #verificamos o estado do botão, caso seja ALTO, ligamos o LED&lt;br /&gt;
       # se não, delsigamos o LED&lt;br /&gt;
       if labrador.button1.read() == 1:&lt;br /&gt;
            labrador.led_status.high()&lt;br /&gt;
       else:&lt;br /&gt;
            labrador.led_status.low()&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_3_-_Controlando_um_LED_com_um_bot%C3%A3o&amp;diff=684</id>
		<title>Guia 3 - Controlando um LED com um botão</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_3_-_Controlando_um_LED_com_um_bot%C3%A3o&amp;diff=684"/>
		<updated>2023-08-31T16:55:55Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 3 - Controlando um LED com um botão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste terceiro guia, você aprenderá a controlar um LED com um botão, para isso, utilize o Guia 3 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1x-oHMVUgGkuBOEtTRprQuQrdooxK83x-/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Neste documento você encontra o passo a passo para aprimorarmos o projeto que iniciamos no Guia 2 - Programando um LED com a Labrador. Para isso, utilizaremos a &#039;&#039;&#039;Linguagem de Programação Python&#039;&#039;&#039;, com os recursos disponibilizados na &#039;&#039;&#039;Caninos SDK&#039;&#039;&#039;. No Guia 2, verificamos como podemos controlar as &#039;&#039;&#039;GPIOs&#039;&#039;&#039; para garantir que seja possível enviar sinais digitais para o mundo real, por meio do uso de um LED. &lt;br /&gt;
&lt;br /&gt;
Neste Guia adaptaremos nossa solução anterior para que seja possível incluir um botão no processo de controle de um LED, fazendo com que ao invés de controlarmos diretamente o LED, sejamos capazes de garantir que o LED acenda sempre que um botão for pressionado, ou apague sempre que este botão não esteja pressionado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Ao final deste experimento você será capaz de:&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um &#039;&#039;&#039;LED&#039;&#039;&#039; utilizando um botão&lt;br /&gt;
&lt;br /&gt;
2. Realizar a leitura de um botão utilizando a Linguagem de Programação &#039;&#039;&#039;Python&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Programar uma &#039;&#039;&#039;GPIO&#039;&#039;&#039;, lendo um sinal digital em uma porta de sua escolha &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Descrição do Experimento ==&lt;br /&gt;
&lt;br /&gt;
Quando programamos nosso LED, utilizamos o pin15 para controlar os estados de &amp;quot;ligado&amp;quot; ou &amp;quot;desligado&amp;quot; de acordo com uma rotina lógica que pré-estabelecemos. Neste experimento vamos adaptar a solução anterior, para que seja possível ligar um LED sempre que um Botão for pressionado, ou apagar o mesmo LED sempre que o Botão não estiver pressionado. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação I:&#039;&#039;&#039;&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        sudo chown caninos /dev/gpiochip*&lt;br /&gt;
        sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
(Código 1. Definição de permissões para o uso das GPIOs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação II:&#039;&#039;&#039;&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        pip install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
(Código 2. Definição de permissões para o uso das GPIOs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Desta forma, você deverá:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Incluir no circuito do Guia 2 um &#039;&#039;&#039;botão&#039;&#039;&#039;, garantindo que (i) o circuito necessário para conecta-lo junto a labrador seja adequdamente montado e (ii) que o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt; seja a &#039;&#039;&#039;gpio&#039;&#039;&#039; utilizada para a leitura deste &#039;&#039;&#039;botão&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
2. Em seguida, você deve escrever um código em &#039;&#039;&#039;Python&#039;&#039;&#039;, utilizando a &#039;&#039;&#039;Caninos SDK&#039;&#039;&#039;, para que o &#039;&#039;&#039;LED&#039;&#039;&#039; acenda sempre que o &#039;&#039;&#039;botão&#039;&#039;&#039; seja presisonado, ou para que o &#039;&#039;&#039;LED&#039;&#039;&#039; apague enquanto o &#039;&#039;&#039;botão&#039;&#039;&#039; não estiver pressionado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt;&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt;&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar a Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. &lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, habilitar a GPIO (&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;) que deverá ser definido como uma porta de entrada. Veja o Código 3.&lt;br /&gt;
&lt;br /&gt;
        labrador = k9.Labrador()&lt;br /&gt;
        labrador.pin18.enable_gpio(k9.Pin.Direction.INPUT, alias=&amp;quot;button1&amp;quot;)&lt;br /&gt;
(Código 3. Criando uma variável do tipo Labrador para controlar o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18.&amp;lt;/font&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 3 realizamos duas operações distintas. A primeira, conforme explicado no Guia 2, permite acessar as operações básicas da labrador. Já a segunda, nos permite definir que o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;, associado a esta variável &#039;&#039;&#039;labrador&#039;&#039;&#039;, foi ativado como uma &#039;&#039;&#039;gpio&#039;&#039;&#039; para uso no programa (por meio da função &#039;&#039;&#039;enable_io&#039;&#039;&#039;). Além disso, definimos que a &#039;&#039;&#039;GPIO&#039;&#039;&#039; será uma porta de &#039;&#039;&#039;entrada&#039;&#039;&#039;, por meio da constante &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;&#039;&#039;&#039;k9.Pin.Direction.INPUT&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Por fim, definimos que ela receberá o apelido de &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;button1&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Este apelido permite que você utilize o &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;button1&#039;&#039;&#039;&amp;lt;/font&amp;gt; deste ponto em diante do código, o que torna um pouco mais fácil controlar seu código, certo?&lt;br /&gt;
&lt;br /&gt;
Para que seja possível realizar a leitura do sinal enviado para placa, quando clicamos no botão, podemos utilizar o &#039;&#039;&#039;apelido&#039;&#039;&#039; que atribuímos anteriormente a nossa &#039;&#039;&#039;GPIO&#039;&#039;&#039;. Para realizar a leitura do estado do botão, podemos utilizar a operação apresentada no Código 4&lt;br /&gt;
&lt;br /&gt;
        labrador.button1.read()&lt;br /&gt;
&lt;br /&gt;
(Código 4. O button1 (&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;) receberá um sinal HIGH (5V) se for pressionado, ou de LOW (0V) enquanto não for pressionado.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Com estas novas instruções já somos capazes de adaptar completamente nosso código! &lt;br /&gt;
&lt;br /&gt;
        &amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt; Caso tenha alguma dúvida, consulte a seção &#039;&#039;&#039;Código do Experimento&#039;&#039;&#039;.&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;A562CE&amp;quot;&amp;gt; &#039;&#039;&#039;Montagem do circuito&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como controlador, e permitindo que toda vez que um botão for pressionado um LED acenda. Nesta montagem especificamos uma GPIO para sinal de referência GND, uma GPIO (pin15) para conexão com o LED e uma GPIO (&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_3_-_Controlando_um_LED_com_um_bot%C3%A3o&amp;diff=683</id>
		<title>Guia 3 - Controlando um LED com um botão</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_3_-_Controlando_um_LED_com_um_bot%C3%A3o&amp;diff=683"/>
		<updated>2023-08-31T16:53:57Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 3 - Controlando um LED com um botão&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste terceiro guia, você aprenderá a controlar um LED com um botão, para isso, utilize o Guia 3 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1x-oHMVUgGkuBOEtTRprQuQrdooxK83x-/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Neste documento você encontra o passo a passo para aprimorarmos o projeto que iniciamos no Guia 2 - Programando um LED com a Labrador. Para isso, utilizaremos a &#039;&#039;&#039;Linguagem de Programação Python&#039;&#039;&#039;, com os recursos disponibilizados na &#039;&#039;&#039;Caninos SDK&#039;&#039;&#039;. No Guia 2, verificamos como podemos controlar as &#039;&#039;&#039;GPIOs&#039;&#039;&#039; para garantir que seja possível enviar sinais digitais para o mundo real, por meio do uso de um LED. &lt;br /&gt;
&lt;br /&gt;
Neste Guia adaptaremos nossa solução anterior para que seja possível incluir um botão no processo de controle de um LED, fazendo com que ao invés de controlarmos diretamente o LED, sejamos capazes de garantir que o LED acenda sempre que um botão for pressionado, ou apague sempre que este botão não esteja pressionado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Ao final deste experimento você será capaz de:&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um &#039;&#039;&#039;LED&#039;&#039;&#039; utilizando um botão&lt;br /&gt;
&lt;br /&gt;
2. Realizar a leitura de um botão utilizando a Linguagem de Programação &#039;&#039;&#039;Python&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Programar uma &#039;&#039;&#039;GPIO&#039;&#039;&#039;, lendo um sinal digital em uma porta de sua escolha &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Descrição do Experimento ==&lt;br /&gt;
&lt;br /&gt;
Quando programamos nosso LED, utilizamos o pin15 para controlar os estados de &amp;quot;ligado&amp;quot; ou &amp;quot;desligado&amp;quot; de acordo com uma rotina lógica que pré-estabelecemos. Neste experimento vamos adaptar a solução anterior, para que seja possível ligar um LED sempre que um Botão for pressionado, ou apagar o mesmo LED sempre que o Botão não estiver pressionado. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação I:&#039;&#039;&#039;&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        sudo chown caninos /dev/gpiochip*&lt;br /&gt;
        sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
(Código 1. Definição de permissões para o uso das GPIOs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação II:&#039;&#039;&#039;&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        pip install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
(Código 2. Definição de permissões para o uso das GPIOs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Desta forma, você deverá:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Incluir no circuito do Guia 2 um &#039;&#039;&#039;botão&#039;&#039;&#039;, garantindo que (i) o circuito necessário para conecta-lo junto a labrador seja adequdamente montado e (ii) que o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt; seja a &#039;&#039;&#039;gpio&#039;&#039;&#039; utilizada para a leitura deste &#039;&#039;&#039;botão&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
2. Em seguida, você deve escrever um código em &#039;&#039;&#039;Python&#039;&#039;&#039;, utilizando a &#039;&#039;&#039;Caninos SDK&#039;&#039;&#039;, para que o &#039;&#039;&#039;LED&#039;&#039;&#039; acenda sempre que o &#039;&#039;&#039;botão&#039;&#039;&#039; seja presisonado, ou para que o &#039;&#039;&#039;LED&#039;&#039;&#039; apague enquanto o &#039;&#039;&#039;botão&#039;&#039;&#039; não estiver pressionado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt;&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt;&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar a Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. &lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, habilitar a GPIO (&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;) que deverá ser definido como uma porta de entrada. Veja o Código 3.&lt;br /&gt;
&lt;br /&gt;
        labrador = k9.Labrador()&lt;br /&gt;
        labrador.pin18.enable_gpio(k9.Pin.Direction.INPUT, alias=&amp;quot;button1&amp;quot;)&lt;br /&gt;
(Código 3. Criando uma variável do tipo Labrador para controlar o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18.&amp;lt;/font&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 3 realizamos duas operações distintas. A primeira, conforme explicado no Guia 2, permite acessar as operações básicas da labrador. Já a segunda, nos permite definir que o &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;, associado a esta variável &#039;&#039;&#039;labrador&#039;&#039;&#039;, foi ativado como uma &#039;&#039;&#039;gpio&#039;&#039;&#039; para uso no programa (por meio da função &#039;&#039;&#039;enable_io&#039;&#039;&#039;). Além disso, definimos que a &#039;&#039;&#039;GPIO&#039;&#039;&#039; será uma porta de &#039;&#039;&#039;entrada&#039;&#039;&#039;, por meio da constante &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;&#039;&#039;&#039;k9.Pin.Direction.INPUT&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Por fim, definimos que ela receberá o apelido de &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;button1&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Este apelido permite que você utilize o &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;button1&#039;&#039;&#039;&amp;lt;/font&amp;gt; deste ponto em diante do código, o que torna um pouco mais fácil controlar seu código, certo?&lt;br /&gt;
&lt;br /&gt;
Para que seja possível realizar a leitura do sinal enviado para placa, quando clicamos no botão, podemos utilizar o &#039;&#039;&#039;apelido&#039;&#039;&#039; que atribuímos anteriormente a nossa &#039;&#039;&#039;GPIO&#039;&#039;&#039;. Para realizar a leitura do estado do botão, podemos utilizar a operação apresentada no Código 4&lt;br /&gt;
&lt;br /&gt;
        labrador.button1.read()&lt;br /&gt;
&lt;br /&gt;
(Código 4. O button1 (&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;pin18&amp;lt;/font&amp;gt;) receberá um sinal HIGH (5V) se for pressionado, ou de LOW (0V) enquanto não for pressionado.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Com estas novas instruções já somos capazes de adaptar completamente nosso código! &lt;br /&gt;
&lt;br /&gt;
        &amp;lt;font color=&amp;quot;46A52F&amp;quot;&amp;gt; Caso tenha alguma dúvida, consulte a seção &#039;&#039;&#039;Código do Experimento&#039;&#039;&#039;.&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;A562CE&amp;quot;&amp;gt; &#039;&#039;&#039;Montagem do circuito&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como controlador, e permitindo que toda vez que um botão for pressionado um LED acenda. Nesta montagem especificamos uma GPIO para sinal de referência GND, uma GPIO (pin15) para conexão com o LED e uma GPIO (&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_3_guia_2.jpg&amp;diff=682</id>
		<title>Arquivo:Figura 3 guia 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_3_guia_2.jpg&amp;diff=682"/>
		<updated>2023-08-31T16:51:51Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=681</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=681"/>
		<updated>2023-08-31T16:51:31Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: /* Montagem do Circuito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Programando um LED com a Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
2. Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|(Figura 1)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se aprofundando um pouco mais…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do circuito&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
Figura 1. GPIOs disponíveis na placa labrador&lt;br /&gt;
&lt;br /&gt;
Se aprofundando um pouco mais…&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. Na primeira, criamos uma variável labrador e na segunda definimos que o pin15, associado a esta variável labrador, foi ativado como uma gpio para uso no programa (por meio da função enable_io). Além disso, definimos que a GPIO será uma porta de saída, por meio da constante k9.Pin.Direction.OUTPUT e que ela receberá o apelido de led status. Este apeliado permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para enviarmos um sinal de alto para esta GPIO podemos utilizar, de agora em diante, o apelido que criamos, conforme o Código 4. Para enviarmos um sinal de HIGH (5V), podemos utilizar o algoritmo representado no Código 5. Caso seja necessário enviar um sinal de 0V, podemos enviar um sinal de LOW, de acordo com o Código 6.&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
Código 5. O led_status (pin15) receberá um sinal de tensão HIGH (5V)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.low()&lt;br /&gt;
&lt;br /&gt;
Código 6. O led_status (pin15) receberá um sinal de tensão LOW (0V)&lt;br /&gt;
&lt;br /&gt;
Veja que mantivemos o acesso a variável labrador, porém utilizamos o apelido que criamos no Código 4 para realizar as operações de acender e apagar um led. Por fim, lembre-se que para realizar as pausas entre o comando de ligar e desligar o led, será necessário implementar um delay. Para isso, utilize o comando disponível no Código 7.&lt;br /&gt;
&lt;br /&gt;
             time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
Código 7. Comando de delay com o uso da biblioteca timer&lt;br /&gt;
&lt;br /&gt;
           Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Montagem do Circuito ==&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_2.jpg|thumb|300px|(Figura 2)]]&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como uma placa que permita o controle dos recursos disponíveis no mundo real. A Figura 2 permite identificar a montagem de parte deste circuito, a que está associada a Labrador. Nesta montagem especificamos uma GPIO para sinal de referência GND e outra GPIO (pin15) que será controlada via código de programação.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 3 para observar a montagem do circuito do LED que será controlado. O LED possuí duas polaridades distintas. Visualmente, podemos identificar a polaridade positiva com a perna do LED mais &amp;quot;cumprida&amp;quot;, esta deve ser conectada em série com o resistor. Já a perna mais &amp;quot;curta&amp;quot;, de polaridade negativa, deve ser conectada em série com a conexão GND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_3_guia_2.jpg|thumb|400px|left|(Figura 3)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na Figura 3 conectamos as outras pontas dos conectores que associamos à placa Labrador na Figura 2. Após isso, conectamos nosso resistor, em série, para garantir que o sinal enviado pela pin15 da labrador passe primeiro pelo resistor indicado na Figura 3, e somente após isso seja transmitido ao LED. Por fim, conectamos o fio marrom na outra extremidade do nosso led.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código do Experimento&lt;br /&gt;
               #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
               import caninos_sdk as k9&lt;br /&gt;
               #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
               import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
               labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
               labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #um laço de repetição para 6 iterações&lt;br /&gt;
               for i in range(0, 6):&lt;br /&gt;
                  #na labrador, acessamos o LED habilitado como saída (led_status)&lt;br /&gt;
                  #enviamos então, um sinal de ALTO para o pin15&lt;br /&gt;
                  labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  #uma pausa de meio segundo&lt;br /&gt;
                  time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #enviamos um sinal de BAIXO para o pin15&lt;br /&gt;
               labrador.led_status.low()&lt;br /&gt;
               time.sleep(0.5)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_2.jpg&amp;diff=680</id>
		<title>Arquivo:Figura 2 guia 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_2_guia_2.jpg&amp;diff=680"/>
		<updated>2023-08-31T16:48:14Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=679</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=679"/>
		<updated>2023-08-31T16:47:45Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: /* Montagem do Circuito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Programando um LED com a Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
2. Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|(Figura 1)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se aprofundando um pouco mais…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do circuito&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
Figura 1. GPIOs disponíveis na placa labrador&lt;br /&gt;
&lt;br /&gt;
Se aprofundando um pouco mais…&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. Na primeira, criamos uma variável labrador e na segunda definimos que o pin15, associado a esta variável labrador, foi ativado como uma gpio para uso no programa (por meio da função enable_io). Além disso, definimos que a GPIO será uma porta de saída, por meio da constante k9.Pin.Direction.OUTPUT e que ela receberá o apelido de led status. Este apeliado permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para enviarmos um sinal de alto para esta GPIO podemos utilizar, de agora em diante, o apelido que criamos, conforme o Código 4. Para enviarmos um sinal de HIGH (5V), podemos utilizar o algoritmo representado no Código 5. Caso seja necessário enviar um sinal de 0V, podemos enviar um sinal de LOW, de acordo com o Código 6.&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
Código 5. O led_status (pin15) receberá um sinal de tensão HIGH (5V)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.low()&lt;br /&gt;
&lt;br /&gt;
Código 6. O led_status (pin15) receberá um sinal de tensão LOW (0V)&lt;br /&gt;
&lt;br /&gt;
Veja que mantivemos o acesso a variável labrador, porém utilizamos o apelido que criamos no Código 4 para realizar as operações de acender e apagar um led. Por fim, lembre-se que para realizar as pausas entre o comando de ligar e desligar o led, será necessário implementar um delay. Para isso, utilize o comando disponível no Código 7.&lt;br /&gt;
&lt;br /&gt;
             time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
Código 7. Comando de delay com o uso da biblioteca timer&lt;br /&gt;
&lt;br /&gt;
           Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Montagem do Circuito ==&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_2.jpg|thumb|300px|(Figura 2)]]&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como uma placa que permita o controle dos recursos disponíveis no mundo real. A Figura 2 permite identificar a montagem de parte deste circuito, a que está associada a Labrador. Nesta montagem especificamos uma GPIO para sinal de referência GND e outra GPIO (pin15) que será controlada via código de programação.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 3 para observar a montagem do circuito do LED que será controlado. O LED possuí duas polaridades distintas. Visualmente, podemos identificar a polaridade positiva com a perna do LED mais &amp;quot;cumprida&amp;quot;, esta deve ser conectada em série com o resistor. Já a perna mais &amp;quot;curta&amp;quot;, de polaridade negativa, deve ser conectada em série com a conexão GND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figura 3. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na Figura 3 conectamos as outras pontas dos conectores que associamos à placa Labrador na Figura 2. Após isso, conectamos nosso resistor, em série, para garantir que o sinal enviado pela pin15 da labrador passe primeiro pelo resistor indicado na Figura 3, e somente após isso seja transmitido ao LED. Por fim, conectamos o fio marrom na outra extremidade do nosso led.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código do Experimento&lt;br /&gt;
               #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
               import caninos_sdk as k9&lt;br /&gt;
               #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
               import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
               labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
               labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #um laço de repetição para 6 iterações&lt;br /&gt;
               for i in range(0, 6):&lt;br /&gt;
                  #na labrador, acessamos o LED habilitado como saída (led_status)&lt;br /&gt;
                  #enviamos então, um sinal de ALTO para o pin15&lt;br /&gt;
                  labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  #uma pausa de meio segundo&lt;br /&gt;
                  time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #enviamos um sinal de BAIXO para o pin15&lt;br /&gt;
               labrador.led_status.low()&lt;br /&gt;
               time.sleep(0.5)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=678</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=678"/>
		<updated>2023-08-31T16:38:28Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: /* Montagem do Circuito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Programando um LED com a Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
2. Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|(Figura 1)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se aprofundando um pouco mais…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do circuito&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
Figura 1. GPIOs disponíveis na placa labrador&lt;br /&gt;
&lt;br /&gt;
Se aprofundando um pouco mais…&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. Na primeira, criamos uma variável labrador e na segunda definimos que o pin15, associado a esta variável labrador, foi ativado como uma gpio para uso no programa (por meio da função enable_io). Além disso, definimos que a GPIO será uma porta de saída, por meio da constante k9.Pin.Direction.OUTPUT e que ela receberá o apelido de led status. Este apeliado permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para enviarmos um sinal de alto para esta GPIO podemos utilizar, de agora em diante, o apelido que criamos, conforme o Código 4. Para enviarmos um sinal de HIGH (5V), podemos utilizar o algoritmo representado no Código 5. Caso seja necessário enviar um sinal de 0V, podemos enviar um sinal de LOW, de acordo com o Código 6.&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
Código 5. O led_status (pin15) receberá um sinal de tensão HIGH (5V)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.low()&lt;br /&gt;
&lt;br /&gt;
Código 6. O led_status (pin15) receberá um sinal de tensão LOW (0V)&lt;br /&gt;
&lt;br /&gt;
Veja que mantivemos o acesso a variável labrador, porém utilizamos o apelido que criamos no Código 4 para realizar as operações de acender e apagar um led. Por fim, lembre-se que para realizar as pausas entre o comando de ligar e desligar o led, será necessário implementar um delay. Para isso, utilize o comando disponível no Código 7.&lt;br /&gt;
&lt;br /&gt;
             time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
Código 7. Comando de delay com o uso da biblioteca timer&lt;br /&gt;
&lt;br /&gt;
           Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Montagem do Circuito ==&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_2_guia_2.png|thumb|300px|(Figura 2)]]&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como uma placa que permita o controle dos recursos disponíveis no mundo real. A Figura 2 permite identificar a montagem de parte deste circuito, a que está associada a Labrador. Nesta montagem especificamos uma GPIO para sinal de referência GND e outra GPIO (pin15) que será controlada via código de programação.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 3 para observar a montagem do circuito do LED que será controlado. O LED possuí duas polaridades distintas. Visualmente, podemos identificar a polaridade positiva com a perna do LED mais &amp;quot;cumprida&amp;quot;, esta deve ser conectada em série com o resistor. Já a perna mais &amp;quot;curta&amp;quot;, de polaridade negativa, deve ser conectada em série com a conexão GND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figura 3. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na Figura 3 conectamos as outras pontas dos conectores que associamos à placa Labrador na Figura 2. Após isso, conectamos nosso resistor, em série, para garantir que o sinal enviado pela pin15 da labrador passe primeiro pelo resistor indicado na Figura 3, e somente após isso seja transmitido ao LED. Por fim, conectamos o fio marrom na outra extremidade do nosso led.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código do Experimento&lt;br /&gt;
               #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
               import caninos_sdk as k9&lt;br /&gt;
               #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
               import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
               labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
               labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #um laço de repetição para 6 iterações&lt;br /&gt;
               for i in range(0, 6):&lt;br /&gt;
                  #na labrador, acessamos o LED habilitado como saída (led_status)&lt;br /&gt;
                  #enviamos então, um sinal de ALTO para o pin15&lt;br /&gt;
                  labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  #uma pausa de meio segundo&lt;br /&gt;
                  time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #enviamos um sinal de BAIXO para o pin15&lt;br /&gt;
               labrador.led_status.low()&lt;br /&gt;
               time.sleep(0.5)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_1_guia_2.png&amp;diff=677</id>
		<title>Arquivo:Figura 1 guia 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_1_guia_2.png&amp;diff=677"/>
		<updated>2023-08-31T16:32:44Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=676</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=676"/>
		<updated>2023-08-31T16:32:15Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Programando um LED com a Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
2. Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:figura_1_guia_2.png|thumb|400px|(Figura 1)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se aprofundando um pouco mais…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do circuito&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
Figura 1. GPIOs disponíveis na placa labrador&lt;br /&gt;
&lt;br /&gt;
Se aprofundando um pouco mais…&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. Na primeira, criamos uma variável labrador e na segunda definimos que o pin15, associado a esta variável labrador, foi ativado como uma gpio para uso no programa (por meio da função enable_io). Além disso, definimos que a GPIO será uma porta de saída, por meio da constante k9.Pin.Direction.OUTPUT e que ela receberá o apelido de led status. Este apeliado permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para enviarmos um sinal de alto para esta GPIO podemos utilizar, de agora em diante, o apelido que criamos, conforme o Código 4. Para enviarmos um sinal de HIGH (5V), podemos utilizar o algoritmo representado no Código 5. Caso seja necessário enviar um sinal de 0V, podemos enviar um sinal de LOW, de acordo com o Código 6.&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
Código 5. O led_status (pin15) receberá um sinal de tensão HIGH (5V)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.low()&lt;br /&gt;
&lt;br /&gt;
Código 6. O led_status (pin15) receberá um sinal de tensão LOW (0V)&lt;br /&gt;
&lt;br /&gt;
Veja que mantivemos o acesso a variável labrador, porém utilizamos o apelido que criamos no Código 4 para realizar as operações de acender e apagar um led. Por fim, lembre-se que para realizar as pausas entre o comando de ligar e desligar o led, será necessário implementar um delay. Para isso, utilize o comando disponível no Código 7.&lt;br /&gt;
&lt;br /&gt;
             time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
Código 7. Comando de delay com o uso da biblioteca timer&lt;br /&gt;
&lt;br /&gt;
           Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Montagem do Circuito ==&lt;br /&gt;
&lt;br /&gt;
Figura 2. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como uma placa que permita o controle dos recursos disponíveis no mundo real. A Figura 2 permite identificar a montagem de parte deste circuito, a que está associada a Labrador. Nesta montagem especificamos uma GPIO para sinal de referência GND e outra GPIO (pin15) que será controlada via código de programação.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 3 para observar a montagem do circuito do LED que será controlado. O LED possuí duas polaridades distintas. Visualmente, podemos identificar a polaridade positiva com a perna do LED mais &amp;quot;cumprida&amp;quot;, esta deve ser conectada em série com o resistor. Já a perna mais &amp;quot;curta&amp;quot;, de polaridade negativa, deve ser conectada em série com a conexão GND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figura 3. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na Figura 3 conectamos as outras pontas dos conectores que associamos à placa Labrador na Figura 2. Após isso, conectamos nosso resistor, em série, para garantir que o sinal enviado pela pin15 da labrador passe primeiro pelo resistor indicado na Figura 3, e somente após isso seja transmitido ao LED. Por fim, conectamos o fio marrom na outra extremidade do nosso led.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código do Experimento&lt;br /&gt;
               #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
               import caninos_sdk as k9&lt;br /&gt;
               #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
               import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
               labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
               labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #um laço de repetição para 6 iterações&lt;br /&gt;
               for i in range(0, 6):&lt;br /&gt;
                  #na labrador, acessamos o LED habilitado como saída (led_status)&lt;br /&gt;
                  #enviamos então, um sinal de ALTO para o pin15&lt;br /&gt;
                  labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  #uma pausa de meio segundo&lt;br /&gt;
                  time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #enviamos um sinal de BAIXO para o pin15&lt;br /&gt;
               labrador.led_status.low()&lt;br /&gt;
               time.sleep(0.5)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=674</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=674"/>
		<updated>2023-08-31T16:27:12Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1.png|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
        sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
        sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
        pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
        pip3 install gpiod &lt;br /&gt;
        pip3 install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
        sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
        idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=668</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=668"/>
		<updated>2023-08-31T16:21:50Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1.png|thumb|middle|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
        sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
        sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
        pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
        pip3 install gpiod &lt;br /&gt;
        pip3 install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
        sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
        idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=667</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=667"/>
		<updated>2023-08-31T16:20:37Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1.png|thumb|left|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
        sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
        sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
        pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
        pip3 install gpiod &lt;br /&gt;
        pip3 install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
        sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
        idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=666</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=666"/>
		<updated>2023-08-31T16:19:05Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1.png|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
        sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
        sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
        pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
        pip3 install gpiod &lt;br /&gt;
        pip3 install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
        sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
        idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=665</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=665"/>
		<updated>2023-08-31T16:17:11Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Programando um LED com a Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
2. Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se aprofundando um pouco mais…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do circuito&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
Figura 1. GPIOs disponíveis na placa labrador&lt;br /&gt;
&lt;br /&gt;
Se aprofundando um pouco mais…&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. Na primeira, criamos uma variável labrador e na segunda definimos que o pin15, associado a esta variável labrador, foi ativado como uma gpio para uso no programa (por meio da função enable_io). Além disso, definimos que a GPIO será uma porta de saída, por meio da constante k9.Pin.Direction.OUTPUT e que ela receberá o apelido de led status. Este apeliado permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para enviarmos um sinal de alto para esta GPIO podemos utilizar, de agora em diante, o apelido que criamos, conforme o Código 4. Para enviarmos um sinal de HIGH (5V), podemos utilizar o algoritmo representado no Código 5. Caso seja necessário enviar um sinal de 0V, podemos enviar um sinal de LOW, de acordo com o Código 6.&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
Código 5. O led_status (pin15) receberá um sinal de tensão HIGH (5V)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.low()&lt;br /&gt;
&lt;br /&gt;
Código 6. O led_status (pin15) receberá um sinal de tensão LOW (0V)&lt;br /&gt;
&lt;br /&gt;
Veja que mantivemos o acesso a variável labrador, porém utilizamos o apelido que criamos no Código 4 para realizar as operações de acender e apagar um led. Por fim, lembre-se que para realizar as pausas entre o comando de ligar e desligar o led, será necessário implementar um delay. Para isso, utilize o comando disponível no Código 7.&lt;br /&gt;
&lt;br /&gt;
             time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
Código 7. Comando de delay com o uso da biblioteca timer&lt;br /&gt;
&lt;br /&gt;
           Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Montagem do Circuito ==&lt;br /&gt;
&lt;br /&gt;
Figura 2. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como uma placa que permita o controle dos recursos disponíveis no mundo real. A Figura 2 permite identificar a montagem de parte deste circuito, a que está associada a Labrador. Nesta montagem especificamos uma GPIO para sinal de referência GND e outra GPIO (pin15) que será controlada via código de programação.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 3 para observar a montagem do circuito do LED que será controlado. O LED possuí duas polaridades distintas. Visualmente, podemos identificar a polaridade positiva com a perna do LED mais &amp;quot;cumprida&amp;quot;, esta deve ser conectada em série com o resistor. Já a perna mais &amp;quot;curta&amp;quot;, de polaridade negativa, deve ser conectada em série com a conexão GND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figura 3. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na Figura 3 conectamos as outras pontas dos conectores que associamos à placa Labrador na Figura 2. Após isso, conectamos nosso resistor, em série, para garantir que o sinal enviado pela pin15 da labrador passe primeiro pelo resistor indicado na Figura 3, e somente após isso seja transmitido ao LED. Por fim, conectamos o fio marrom na outra extremidade do nosso led.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código do Experimento&lt;br /&gt;
               #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
               import caninos_sdk as k9&lt;br /&gt;
               #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
               import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
               labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
               labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #um laço de repetição para 6 iterações&lt;br /&gt;
               for i in range(0, 6):&lt;br /&gt;
                  #na labrador, acessamos o LED habilitado como saída (led_status)&lt;br /&gt;
                  #enviamos então, um sinal de ALTO para o pin15&lt;br /&gt;
                  labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  #uma pausa de meio segundo&lt;br /&gt;
                  time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #enviamos um sinal de BAIXO para o pin15&lt;br /&gt;
               labrador.led_status.low()&lt;br /&gt;
               time.sleep(0.5)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=658</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=658"/>
		<updated>2023-08-30T19:43:56Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
        sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
        sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
        pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
        pip3 install gpiod &lt;br /&gt;
        pip3 install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
        sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
        idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=656</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=656"/>
		<updated>2023-08-30T19:42:49Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
        sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=655</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=655"/>
		<updated>2023-08-30T19:41:10Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Programando um LED com a Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
2. Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se aprofundando um pouco mais…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do circuito&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Figura 1. GPIOs disponíveis na placa labrador&lt;br /&gt;
&lt;br /&gt;
Se aprofundando um pouco mais…&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             import caninos_sdk as k9&lt;br /&gt;
             import time&lt;br /&gt;
&lt;br /&gt;
Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
             labrador = k9.Labrador()&lt;br /&gt;
             labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. Na primeira, criamos uma variável labrador e na segunda definimos que o pin15, associado a esta variável labrador, foi ativado como uma gpio para uso no programa (por meio da função enable_io). Além disso, definimos que a GPIO será uma porta de saída, por meio da constante k9.Pin.Direction.OUTPUT e que ela receberá o apelido de led status. Este apeliado permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para enviarmos um sinal de alto para esta GPIO podemos utilizar, de agora em diante, o apelido que criamos, conforme o Código 4. Para enviarmos um sinal de HIGH (5V), podemos utilizar o algoritmo representado no Código 5. Caso seja necessário enviar um sinal de 0V, podemos enviar um sinal de LOW, de acordo com o Código 6.&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
Código 5. O led_status (pin15) receberá um sinal de tensão HIGH (5V)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             labrador.led_status.low()&lt;br /&gt;
&lt;br /&gt;
Código 6. O led_status (pin15) receberá um sinal de tensão LOW (0V)&lt;br /&gt;
&lt;br /&gt;
Veja que mantivemos o acesso a variável labrador, porém utilizamos o apelido que criamos no Código 4 para realizar as operações de acender e apagar um led. Por fim, lembre-se que para realizar as pausas entre o comando de ligar e desligar o led, será necessário implementar um delay. Para isso, utilize o comando disponível no Código 7.&lt;br /&gt;
&lt;br /&gt;
             time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
Código 7. Comando de delay com o uso da biblioteca timer&lt;br /&gt;
&lt;br /&gt;
           Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Montagem do Circuito ==&lt;br /&gt;
&lt;br /&gt;
Figura 2. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como uma placa que permita o controle dos recursos disponíveis no mundo real. A Figura 2 permite identificar a montagem de parte deste circuito, a que está associada a Labrador. Nesta montagem especificamos uma GPIO para sinal de referência GND e outra GPIO (pin15) que será controlada via código de programação.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 3 para observar a montagem do circuito do LED que será controlado. O LED possuí duas polaridades distintas. Visualmente, podemos identificar a polaridade positiva com a perna do LED mais &amp;quot;cumprida&amp;quot;, esta deve ser conectada em série com o resistor. Já a perna mais &amp;quot;curta&amp;quot;, de polaridade negativa, deve ser conectada em série com a conexão GND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figura 3. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na Figura 3 conectamos as outras pontas dos conectores que associamos à placa Labrador na Figura 2. Após isso, conectamos nosso resistor, em série, para garantir que o sinal enviado pela pin15 da labrador passe primeiro pelo resistor indicado na Figura 3, e somente após isso seja transmitido ao LED. Por fim, conectamos o fio marrom na outra extremidade do nosso led.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código do Experimento&lt;br /&gt;
               #importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
               import caninos_sdk as k9&lt;br /&gt;
               #esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
               import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
               labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
               labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #um laço de repetição para 6 iterações&lt;br /&gt;
               for i in range(0, 6):&lt;br /&gt;
                  #na labrador, acessamos o LED habilitado como saída (led_status)&lt;br /&gt;
                  #enviamos então, um sinal de ALTO para o pin15&lt;br /&gt;
                  labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  #uma pausa de meio segundo&lt;br /&gt;
                  time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               #enviamos um sinal de BAIXO para o pin15&lt;br /&gt;
               labrador.led_status.low()&lt;br /&gt;
               time.sleep(0.5)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=654</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=654"/>
		<updated>2023-08-30T19:36:32Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Programando um LED com a Labrador&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;br /&gt;
&lt;br /&gt;
== Descrição do experimento ==&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
1. Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
2. Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do circuito&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se aprofundando um pouco mais…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discutindo a montagem do programa&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import caninos_sdk as k9&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
             Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
labrador = k9.Labrador()&lt;br /&gt;
labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
             Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Para acendermos um LED precisamos enviar um sinal de tensão que permitia que, através de uma diferença de potencial, o LED seja capaz de emitir um brilho. Desta forma, provocaremos esta diferença de potencial utilizando duas portas diferentes da Labrador. Uma delas será a porta GND que permitirá uma conexão de um sinal de referência (0V) para o nosso LED. A outra será a pin15, que permitirá que programemos de fato o LED, enviando ou não, sinais de tensão de acordo com o programa que iremos criar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desta forma, você deverá:&lt;br /&gt;
&lt;br /&gt;
Montar o circuito necessário para conectar um LED junto a labrador, garantindo (i) o uso adequado de um resistor na montagem do circuito com o LED e (ii) que o pin15 seja a gpio utilizada para a programação deste LED.&lt;br /&gt;
Em seguida, você deve escrever um código em Python, utilizando a Caninos SDK para que o LED acenda, seja estabelecida uma pausa de 1 segundo  e então o LED apague.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do circuito&lt;br /&gt;
Para lhe auxiliar no processo de montagem, utilize as portas destacadas na Figura 1. Esta figura consiste em um mapeamento de cada uma das GPIOs disponíveis na sua placa Labrador. Na hora de montar o seu circuito revise pelo menos duas vezes! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Figura 1. GPIOs disponíveis na placa labrador&lt;br /&gt;
&lt;br /&gt;
Se aprofundando um pouco mais…&lt;br /&gt;
A placa Labrador, de acordo com a Figura 1, possuí um conjunto de portas de propósito geral, que servem tanto como entrada ou saída para sinais digitais. No entanto, algumas delas estão reservadas para funcionalidades específicas da placa ou para que possam ser utilizadas para alimentar circuitos que utilizaremos em nosso experimento. Por exemplo, a GPIO de número 1 está associada a uma tensão de 3.3V.&lt;br /&gt;
&lt;br /&gt;
Neste experimento vamos programar um LED, acendendo-o e apagando-o em intervalos de meio segundo. Para isso, utilizaremos duas portas disponíveis no labrador: a pin15 (ver Figura 1) que será utilizada para definir quando o LED deve acender e quando ele deve apagar. E a porta GND que será utilizada como uma referência de tensão (0V) GND. &lt;br /&gt;
&lt;br /&gt;
Você pode escolher qualquer uma das portas GND disponíveis, mas caso tenha dúvidas, confira a montagem na seção &amp;quot;Montagem do Circuito&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Discutindo a montagem do programa&lt;br /&gt;
Para programarmos a Labrador em Python precisaremos importar Caninos SDK. Esta biblioteca foi desenvolvida para que possamos programar de forma mais simples nossa labrador, e desenvolver projetos compartilháveis. Além disso, precisaremos importar a biblioteca timer para garantir as pausas de acordo com o enunciado (ver Código 3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import caninos_sdk as k9&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
             Código 3. Importando as bibliotecas necessárias&lt;br /&gt;
&lt;br /&gt;
Após isso, precisamos criar uma variável para acessar os recursos da placa Labrador e em seguida, vamos habilitar o pin15 (nosso pin15) que deverá ser definido como uma porta de saída. Veja o Código 4.&lt;br /&gt;
&lt;br /&gt;
labrador = k9.Labrador()&lt;br /&gt;
labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
             Código 4. Criando uma variável do tipo Labrador para controlar o pin15&lt;br /&gt;
&lt;br /&gt;
Note que de acordo com o Código 4 realizamos duas operações distintas. Na primeira, criamos uma variável labrador e na segunda definimos que o pin15, associado a esta variável labrador, foi ativado como uma gpio para uso no programa (por meio da função enable_io). Além disso, definimos que a GPIO será uma porta de saída, por meio da constante k9.Pin.Direction.OUTPUT e que ela receberá o apelido de led status. Este apeliado permite que você utilize ele como uma constante, deste ponto em diante do código.&lt;br /&gt;
&lt;br /&gt;
Para enviarmos um sinal de alto para esta GPIO podemos utilizar, de agora em diante, o apelido que criamos, conforme o Código 4. Para enviarmos um sinal de HIGH (5V), podemos utilizar o algoritmo representado no Código 5. Caso seja necessário enviar um sinal de 0V, podemos enviar um sinal de LOW, de acordo com o Código 6.&lt;br /&gt;
&lt;br /&gt;
labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
             Código 5. O led_status (pin15) receberá um sinal de tensão HIGH (5V)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
labrador.led_status.low()&lt;br /&gt;
&lt;br /&gt;
             Código 6. O led_status (pin15) receberá um sinal de tensão LOW (0V)&lt;br /&gt;
&lt;br /&gt;
Veja que mantivemos o acesso a variável labrador, porém utilizamos o apelido que criamos no Código 4 para realizar as operações de acender e apagar um led. Por fim, lembre-se que para realizar as pausas entre o comando de ligar e desligar o led, será necessário implementar um delay. Para isso, utilize o comando disponível no Código 7.&lt;br /&gt;
&lt;br /&gt;
time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
             Código 7. Comando de delay com o uso da biblioteca timer&lt;br /&gt;
&lt;br /&gt;
           Caso tenha alguma dúvida, consulte a seção &amp;quot;Código do Experimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Montagem do Circuito ==&lt;br /&gt;
&lt;br /&gt;
Figura 2. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quando elaboramos um projeto que envolve o uso de microcontroladores é importante identificarmos que dois projetos distintos devem ser realizados (i) para a montagem dos recursos físicos do projeto (hardware) e (ii) a montagem do código de programação que permitirá o controle e acesso aos recursos disponibilizados pelo projeto físico.&lt;br /&gt;
&lt;br /&gt;
O projeto físico neste experimento consiste em acender um LED utilizando a labrador como uma placa que permita o controle dos recursos disponíveis no mundo real. A Figura 2 permite identificar a montagem de parte deste circuito, a que está associada a Labrador. Nesta montagem especificamos uma GPIO para sinal de referência GND e outra GPIO (pin15) que será controlada via código de programação.&lt;br /&gt;
&lt;br /&gt;
Veja a Figura 3 para observar a montagem do circuito do LED que será controlado. O LED possuí duas polaridades distintas. Visualmente, podemos identificar a polaridade positiva com a perna do LED mais &amp;quot;cumprida&amp;quot;, esta deve ser conectada em série com o resistor. Já a perna mais &amp;quot;curta&amp;quot;, de polaridade negativa, deve ser conectada em série com a conexão GND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figura 3. Imagem do Circuito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na Figura 3 conectamos as outras pontas dos conectores que associamos à placa Labrador na Figura 2. Após isso, conectamos nosso resistor, em série, para garantir que o sinal enviado pela pin15 da labrador passe primeiro pelo resistor indicado na Figura 3, e somente após isso seja transmitido ao LED. Por fim, conectamos o fio marrom na outra extremidade do nosso led.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código do Experimento&lt;br /&gt;
#importamos as bibliotecas necessárias para utilizarmos a labrador&lt;br /&gt;
import caninos_sdk as k9&lt;br /&gt;
#esta biblioteca permite gerar uma pausa na labrador (um delay)&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#criamos nossa variável labrador, para uso dos recursos da placa&lt;br /&gt;
labrador = k9.Labrador()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ativamos o pino 15 (da labrador), como saída e definimos um apelido para ele&lt;br /&gt;
labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias=&amp;quot;led_status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#um laço de repetição para 6 iterações&lt;br /&gt;
for i in range(0, 6):&lt;br /&gt;
   #na labrador, acessamos o LED habilitado como saída (led_status)&lt;br /&gt;
   #enviamos então, um sinal de ALTO para o pin15&lt;br /&gt;
   labrador.led_status.high()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   #uma pausa de meio segundo&lt;br /&gt;
   time.sleep(0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   #enviamos um sinal de BAIXO para o pin15&lt;br /&gt;
   labrador.led_status.low()&lt;br /&gt;
   time.sleep(0.5)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=648</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=648"/>
		<updated>2023-08-30T19:28:03Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Componentes necessários&#039;&#039;&#039;&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=646</id>
		<title>Guia 2 - Programando um LED com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_2_-_Programando_um_LED_com_a_Labrador&amp;diff=646"/>
		<updated>2023-08-30T19:26:59Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 2 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste segundo guia você encontrará um exemplo de como programar um LED, enviando um sinal digital para uma das GPIOs disponíveis na Labrador, para isso, utilize o Guia 2 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1tZjkWo1yBHxC_eEfaE1qUQ8wt9h-27io/edit?usp=sharing&amp;amp;ouid=107464440979458243615&amp;amp;rtpof=true&amp;amp;sd=true Guia 2]&lt;br /&gt;
&lt;br /&gt;
Apps e Bibliotecas Necessárias:&lt;br /&gt;
&lt;br /&gt;
*Pré-Requisito: &amp;quot;Guia 1- Preparando o Ambiente de Desenvolvimento&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Introdução]]&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para programar um LED na placa Labrador. Para isso, utilizaremos a Linguagem de Programação Python, com os recursos disponibilizados na Caninos SDK. A Caninos SDK consiste em um conjunto de pré-definições, elaboradas pelo time da Caninos Education, com o objetivo de democratizar o processo de programação das GPIOs.&lt;br /&gt;
&lt;br /&gt;
O processo de funcionamento é muito parecido com o que já existe em outras plataformas para desenvolvimento de sistemas embarcados. No entanto, para que seja possível utilizar a Caninos SDK é necessário que você tenha realizado o primeiro experimento &amp;quot;Guia 1 - Preparando o Ambiente de Desenvolvimento&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento você será capaz de:&lt;br /&gt;
&lt;br /&gt;
1. Ligar e Desligar um LED utilizando Linguagem de Programação Python&lt;br /&gt;
2. Programar uma GPIO, escrevendo um sinal digital em uma porta de sua escolha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para programar as GPIOs, enquanto a Caninos SDK estiver em modo de desenvolvimento, será necessário executar o Código 1 toda vez que você reiniciar a sua placa.&lt;br /&gt;
&lt;br /&gt;
sudo chown caninos /dev/gpiochip*&lt;br /&gt;
sudo chmod g+rw /dev/gpiochip*&lt;br /&gt;
&lt;br /&gt;
Código 1. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observação 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sempre mantenha a biblioteca atualizada, para isso, execute o Código 2 no terminal antes de começar a desenvolver novas soluções com sua labrador.&lt;br /&gt;
&lt;br /&gt;
pip3 install -U caninos-sdk&lt;br /&gt;
&lt;br /&gt;
Código 2. Definição de permissões para o uso das GPIOs&lt;br /&gt;
&lt;br /&gt;
[[Componentes necessários]]&lt;br /&gt;
*1 Placa Labrador de 32 bits&lt;br /&gt;
*1 LED &lt;br /&gt;
*1 Resistor de pelo menos 330 Ω (no exemplo utilizamos 1kΩ)&lt;br /&gt;
*2 Cabos MxF&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_1_guia_1.png&amp;diff=639</id>
		<title>Arquivo:Figura 1 guia 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Figura_1_guia_1.png&amp;diff=639"/>
		<updated>2023-08-30T19:04:51Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=638</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=638"/>
		<updated>2023-08-30T19:03:17Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=637</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=637"/>
		<updated>2023-08-30T18:48:54Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura 1 guia 1|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=636</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=636"/>
		<updated>2023-08-30T18:42:11Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura_1_guia_1|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=634</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=634"/>
		<updated>2023-08-30T18:28:36Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Figura 1 guia 1|thumb|400px|(FIgura 1)]]&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=633</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=633"/>
		<updated>2023-08-23T19:20:11Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=632</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=632"/>
		<updated>2023-08-23T19:19:33Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=631</id>
		<title>Guia 1 - Preparando o Ambiente de Desenvolvimento</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Guia_1_-_Preparando_o_Ambiente_de_Desenvolvimento&amp;diff=631"/>
		<updated>2023-08-23T19:18:50Z</updated>

		<summary type="html">&lt;p&gt;Nickdias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Guia 1 - Preparando o Ambiente de Desenvolvimento&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para que você possa contribuir com a Labrador, ou conduzir projetos em sala de aula, preparamos uma série de materiais que facilitarão o desenvolvimento de soluções que envolvem a programação de sistemas embarcados.&lt;br /&gt;
&lt;br /&gt;
Neste primeiro guia, você aprenderá a configurar o ambiente de desenvolvimento de sua labrador, para isso, utilize o Guia 1 disponibilizado abaixo:&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1Fbobc0WxL2OzWtLRGwHwpWkG399fbSXY/edit Guia 1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pré-Requisitos de Sistema&#039;&#039;&#039;&lt;br /&gt;
*Debian 10 (Versão do Sistema Operacional)&lt;br /&gt;
*Kernel 4.X ou superior&lt;br /&gt;
*LXTerminal (Ir em: System Tools &amp;gt; LXTerminal)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Introdução&#039;&#039;&#039;&lt;br /&gt;
Neste documento você encontra o passo a passo para configurar o Ambiente de Desenvolvimento que você utilizará para programar sua placa Labrador. &lt;br /&gt;
&lt;br /&gt;
Ao final deste experimento teremos:&lt;br /&gt;
&lt;br /&gt;
1. Uma IDE configurada para codificação de códigos em Python e que viabilizará que criemos programas utilizando, futuramente, as GPIOs.&lt;br /&gt;
2.  versão mais atual da Caninos SDK instalada em nossa placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Descrição do experimento&#039;&#039;&#039;&lt;br /&gt;
Neste experimento temos por objetivo instalar as dependências necessárias para que seja possível desenvolver soluções embarcadas, utilizando a Labrador, com linguagem de programação Python.&lt;br /&gt;
&lt;br /&gt;
As etapas necessárias para realizar as configurações de ambiente consistem em: (i) atualizar a ferramenta de pacote avançada do nosso sistema operacional (APT) e (ii) resolver as dependências necessários para desenvolver em linguagem Python, tal como instalar o gerenciador de pacotes padrão (pip). Além disso, precisaremos instalar os pacotes da Caninos SDK para utilizar os recursos disponíveis para uso da placa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 1. Atualizando o APT&#039;&#039;&#039;&lt;br /&gt;
*Abra o LXTerminal (ver Figura 1) disponível em sua placa Labrador.&lt;br /&gt;
&lt;br /&gt;
*Digite o trecho de código do Código 1 para atualizar o gerenciador apt de sua placa. Note que ao utilizar o comando sudo será necessário informar a senha de acesso da placa, que por padrão é caninos.&lt;br /&gt;
&lt;br /&gt;
sudo apt update &lt;br /&gt;
(Código 1. Atualizando o APT da placa labrador)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 2. Instalando PIP&#039;&#039;&#039;&lt;br /&gt;
*Ainda no LXTerminal, rode o comando disponível em Código 2 para instalação do gerenciador PIP. Observação: nesta etapa serão solicitadas liberação de espaço para que seja possível instalar alguns pacotes, para isso, pressione a tecla [y] para que seja possível avançar com a instalação.&lt;br /&gt;
&lt;br /&gt;
sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl &lt;br /&gt;
(Código 2. Instalando as dependências do Python (incluindo pip))&lt;br /&gt;
&lt;br /&gt;
*Utilize o Código 3 para atualizar o pip em sua máquina. Caso apareça alguma mensagem de erro, significa que não foi possível realizar a instalação de forma correta. Neste caso, verifique os procedimentos anteriores.&lt;br /&gt;
&lt;br /&gt;
pip3 install --upgrade pip &lt;br /&gt;
(Código 3. Verificando a versão do pip instalada)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 4. Instalando o Pacote Caninos SDK&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 4 para instalar os recursos de acesso as GPIOs (gpiod) e o pacote da Caninos SDK.&lt;br /&gt;
&lt;br /&gt;
pip install gpiod &lt;br /&gt;
pip install caninos-sdk&lt;br /&gt;
(Código 4. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etapa 5. Instalando IDLE&#039;&#039;&#039;&lt;br /&gt;
*Por fim, rode o trecho de Código 5 para instalar nossa ferramenta de edição de código (IDLE) e execute o Código 6 para abrir a ferramenta IDLE3&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install idle3&lt;br /&gt;
(Código 5. Instalando a ferramenta para codificação IDLE3)&lt;br /&gt;
&lt;br /&gt;
idle&lt;br /&gt;
(Código 6. Abrindo a ferramenta para codificação IDLE3)&lt;/div&gt;</summary>
		<author><name>Nickdias</name></author>
	</entry>
</feed>