<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>desenvolvimento Python - MCU &amp; FPGA</title>
	<atom:link href="https://mcu.tec.br/tags/desenvolvimento-python/feed/" rel="self" type="application/rss+xml" />
	<link>https://mcu.tec.br</link>
	<description>Microcontroladores &#38; FPGA</description>
	<lastBuildDate>Thu, 14 Aug 2025 18:41:34 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mcu.tec.br/wp-content/uploads/2025/02/Robo-para-o-site-MCU.tec_.br-512x512-1-150x150.png</url>
	<title>desenvolvimento Python - MCU &amp; FPGA</title>
	<link>https://mcu.tec.br</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Placa Labrador Caninos Loucos: Desenvolvimento Python e IoT</title>
		<link>https://mcu.tec.br/sbc/placa-labrador-caninos-loucos-desenvolvimento-python-e-iot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=placa-labrador-caninos-loucos-desenvolvimento-python-e-iot</link>
		
		<dc:creator><![CDATA[Carlos Delfino]]></dc:creator>
		<pubDate>Tue, 19 Aug 2025 18:21:51 +0000</pubDate>
				<category><![CDATA[SBC]]></category>
		<category><![CDATA[ARM Cortex-A7]]></category>
		<category><![CDATA[automação]]></category>
		<category><![CDATA[BLE]]></category>
		<category><![CDATA[Caninos Loucos]]></category>
		<category><![CDATA[caninos-sdk]]></category>
		<category><![CDATA[desenvolvimento Python]]></category>
		<category><![CDATA[gpiod]]></category>
		<category><![CDATA[GPIOs]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[microcontrolador]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[placa Labrador]]></category>
		<category><![CDATA[robótica]]></category>
		<category><![CDATA[SPI]]></category>
		<category><![CDATA[UART]]></category>
		<guid isPermaLink="false">https://mcu.tec.br/?p=740</guid>

					<description><![CDATA[<p>Aprenda a programar a placa Labrador Caninos Loucos com Python para IoT, explorando GPIOs, comunicação e aplicações práticas</p>
<p>The post <a href="https://mcu.tec.br/sbc/placa-labrador-caninos-loucos-desenvolvimento-python-e-iot/">Placa Labrador Caninos Loucos: Desenvolvimento Python e IoT</a> first appeared on <a href="https://mcu.tec.br">MCU & FPGA</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">A <strong>Labrador</strong>, desenvolvida pelo projeto <strong>Caninos Loucos</strong>, é um <strong>Single-Board Computer (SBC)</strong> nacional projetado para ser uma plataforma de alto desempenho, aberta e acessível, destinada a aplicações em <strong>IoT (Internet das Coisas)</strong>, automação, robótica e ensino de sistemas embarcados. Seu design compacto esconde um conjunto robusto de recursos, permitindo que tanto iniciantes quanto desenvolvedores experientes explorem ao máximo o potencial do hardware.</p>



<p class="wp-block-paragraph">No núcleo da Labrador encontra-se um <strong>processador ARM Cortex-A7</strong> de baixo consumo e alto desempenho, acompanhado de <strong>512 MB de RAM DDR3</strong> e armazenamento interno <strong>eMMC de 4 GB</strong>, expansível via cartão microSD. A placa oferece conectividade flexível com <strong>Ethernet</strong>, <strong>Wi-Fi</strong> e <strong>Bluetooth</strong>, além de portas <strong>USB</strong> para periféricos e interface HDMI para saída de vídeo.</p>



<p class="wp-block-paragraph">No quesito expansão, a Labrador traz um <strong>header de 40 pinos</strong> compatível com múltiplos protocolos, incluindo <strong>GPIOs</strong>, <strong>UART</strong>, <strong>I²C</strong>, <strong>SPI</strong>, <strong>PWM</strong> e entradas/saídas digitais, permitindo interação direta com sensores, atuadores e outros módulos. Ao todo, são <strong>40 pinos</strong>, dos quais 12 são dedicados à alimentação (8 GND, 2×3,3 V e 2×5 V) e os demais configuráveis para diferentes funções. Os GPIOs seguem um padrão de nomenclatura <strong>letra + número</strong> (ex.: C26), agrupados em blocos gerenciados por chips lógicos individuais (<code>gpiochip0</code>, <code>gpiochip1</code>, etc.), proporcionando flexibilidade e controle refinado.</p>



<p class="wp-block-paragraph">O <strong>Caninos Loucos</strong> é uma iniciativa colaborativa brasileira dedicada a criar soluções de hardware aberto adaptadas à realidade local. A Labrador reflete essa missão ao oferecer um ecossistema de hardware e software que facilita desde a instalação do sistema operacional até o desenvolvimento de projetos avançados, com suporte nativo a <strong>Python</strong> e bibliotecas como <strong>gpiod</strong> e <strong>caninos-sdk</strong>.</p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><img fetchpriority="high" decoding="async" width="299" height="169" src="https://mcu.tec.br/wp-content/uploads/2025/08/caninos-loucos-mao-segurando.jpeg" alt="" class="wp-image-742" style="width:433px;height:auto"/></figure>
</div>


<p class="wp-block-paragraph">Este artigo irá explorar a placa Labrador em profundidade, abordando suas especificações técnicas, arquitetura de software e um exemplo prático de desenvolvimento em Python para controle de periféricos. Também serão apresentadas estratégias de otimização SEO para ampliar a visibilidade de projetos e tutoriais relacionados a esta plataforma.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Arquitetura de Software da Labrador</h2>



<p class="wp-block-paragraph">A <strong>arquitetura de software da placa Labrador</strong> foi projetada para oferecer <strong>flexibilidade</strong>, <strong>facilidade de uso</strong> e <strong>compatibilidade com ferramentas modernas</strong> de desenvolvimento. Baseada em <strong>Linux Debian 11 customizado</strong>, a distribuição oficial da <strong>Caninos Loucos</strong> já vem preparada para o uso educacional e de prototipagem, reduzindo a curva de aprendizado para novos usuários e garantindo robustez para aplicações mais avançadas.</p>



<h3 class="wp-block-heading">Camada de Firmware</h3>



<p class="wp-block-paragraph">O firmware embarcado na Labrador é responsável pela inicialização do hardware, configuração de periféricos e carregamento do sistema operacional. Essa camada interage diretamente com os recursos do <strong>SoC ARM Cortex-A7</strong>, preparando o ambiente para que as bibliotecas de nível mais alto possam controlar <strong>GPIOs, interfaces seriais e módulos de comunicação</strong>.</p>



<h3 class="wp-block-heading">Sistema Operacional e Desenvolvimento</h3>



<p class="wp-block-paragraph">O sistema operacional oficial inclui suporte completo a <strong>Python 3</strong> e <strong>pip3</strong>, permitindo a instalação rápida de bibliotecas essenciais, como:</p>



<ul class="wp-block-list">
<li><strong>gpiod</strong> – Controle de GPIOs em dispositivos Linux com suporte a interfaces digitais genéricas.</li>



<li><strong>caninos-sdk</strong> – Biblioteca oficial da Caninos Loucos, simplificando o acesso aos recursos da Labrador.</li>



<li><strong>OpenCV</strong> – Processamento e análise de imagens em tempo real.</li>



<li><strong>pylibi2c</strong> – Comunicação via barramento I²C de forma simplificada.</li>
</ul>



<p class="wp-block-paragraph">A instalação dessas bibliotecas é feita diretamente no terminal, com comandos simples como:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>sudo pip3 install gpiod caninos-sdk opencv-python
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">pip3</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">gpiod</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">caninos</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">sdk</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">opencv</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">python</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading">Protocolos de Comunicação</h3>



<p class="wp-block-paragraph">A Labrador oferece suporte nativo a protocolos amplamente utilizados em sistemas embarcados:</p>



<ul class="wp-block-list">
<li><strong>UART</strong> – Para comunicação serial assíncrona, útil em debug e troca de dados com microcontroladores externos.</li>



<li><strong>I²C</strong> – Para conectar múltiplos sensores e módulos usando apenas dois fios (SDA e SCL).</li>



<li><strong>SPI</strong> – Comunicação síncrona de alta velocidade com displays, memórias flash e outros periféricos.</li>



<li><strong>BLE (Bluetooth Low Energy)</strong> – Comunicação sem fio de baixo consumo, ideal para dispositivos móveis e IoT.</li>
</ul>



<h3 class="wp-block-heading">Estratégia de Controle de Energia</h3>



<p class="wp-block-paragraph">Embora projetada para funcionar continuamente, a Labrador adota práticas de economia de energia inspiradas em dispositivos móveis. O sistema operacional suporta modos de suspensão, desligamento de interfaces inativas e ajustes de frequência do processador conforme a carga de trabalho. Essa abordagem é essencial para projetos IoT alimentados por baterias ou fontes limitadas de energia.</p>



<p class="wp-block-paragraph">Com essa base de software, a Labrador está pronta para receber e executar aplicações de controle, automação e monitoramento, mantendo um equilíbrio entre <strong>desempenho</strong>, <strong>consumo de energia</strong> e <strong>facilidade de programação</strong>.</p>



<p class="wp-block-paragraph">Ótimo, vamos então para a <strong>Seção 4 – Desenvolvimento de um aplicativo Python para a Labrador</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Desenvolvimento de um Aplicativo Python para a Labrador</h2>



<p class="wp-block-paragraph">Uma das principais vantagens da <strong>Labrador</strong> é seu suporte nativo a <strong>Python 3</strong>, o que permite o desenvolvimento rápido e direto de aplicações para controle de periféricos, leitura de sensores e integração com sistemas IoT. Nesta seção, vamos criar um exemplo prático que acende e apaga um LED conectado à placa, utilizando tanto a conexão local quanto a possibilidade de adaptação para controle via <strong>Bluetooth Low Energy (BLE)</strong>.</p>



<h3 class="wp-block-heading">Dependências e Ambiente</h3>



<p class="wp-block-paragraph">Antes de iniciar a programação, é necessário garantir que o <strong>Python 3</strong> e o <strong>pip3</strong> estejam atualizados e que as bibliotecas essenciais estejam instaladas:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>sudo apt update &amp;&amp; sudo apt upgrade
sudo apt install python3 python3-pip
sudo pip3 install gpiod caninos-sdk
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">update</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">&amp;&amp;</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">upgrade</span></span>
<span class="line"><span style="color: #D8DEE9">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">python3</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">python3</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">pip</span></span>
<span class="line"><span style="color: #D8DEE9">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">pip3</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">gpiod</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">caninos</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">sdk</span></span>
<span class="line"></span></code></pre></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Dica:</strong> Se a comunicação for via BLE, bibliotecas como <code>bleak</code> podem ser instaladas com <code>pip install bleak</code>.</p>
</blockquote>



<h3 class="wp-block-heading">Estrutura de Diretórios</h3>



<p class="wp-block-paragraph">Para manter a organização, recomenda-se criar um diretório de projeto com a seguinte estrutura:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>projeto_labrador/
│
├── src/
│   ├── controle_led.py
│
├── assets/          # Imagens, documentação ou diagramas
└── README.md
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">projeto_labrador</span><span style="color: #81A1C1">/</span></span>
<span class="line"><span style="color: #D8DEE9FF">│</span></span>
<span class="line"><span style="color: #D8DEE9FF">├── </span><span style="color: #D8DEE9">src</span><span style="color: #81A1C1">/</span></span>
<span class="line"><span style="color: #D8DEE9FF">│   ├── </span><span style="color: #D8DEE9">controle_led</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">py</span></span>
<span class="line"><span style="color: #D8DEE9FF">│</span></span>
<span class="line"><span style="color: #D8DEE9FF">├── </span><span style="color: #D8DEE9">assets</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9FF">          # </span><span style="color: #D8DEE9">Imagens</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">documentação</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ou</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">diagramas</span></span>
<span class="line"><span style="color: #D8DEE9FF">└── </span><span style="color: #D8DEE9">README</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">md</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading">Código Exemplo – Controle de LED via GPIO</h3>



<p class="wp-block-paragraph">A seguir, um exemplo completo que acende e apaga um LED conectado ao pino GPIO 17:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>import gpiod
import time

# Configuração do chip GPIO
chip = gpiod.Chip('gpiochip0')

# Obtém controle sobre o pino 17
led_line = chip.get_line(17)
led_line.request(consumer='led', type=gpiod.LINE_REQ_DIR_OUT)

try:
    while True:
        led_line.set_value(1)  # Liga o LED
        time.sleep(1)
        led_line.set_value(0)  # Desliga o LED
        time.sleep(1)
except KeyboardInterrupt:
    print("\nEncerrando execução e liberando recursos...")
    chip.close()
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #81A1C1">import</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">gpiod</span></span>
<span class="line"><span style="color: #8FBCBB">import</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">time</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"># </span><span style="color: #8FBCBB">Configuração</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">do</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">chip</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">GPIO</span></span>
<span class="line"><span style="color: #8FBCBB">chip</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">gpiod</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">Chip</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">gpiochip0</span><span style="color: #ECEFF4">&#39;</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"># </span><span style="color: #8FBCBB">Obtém</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">controle</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">sobre</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">o</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">pino</span><span style="color: #D8DEE9FF"> 17</span></span>
<span class="line"><span style="color: #8FBCBB">led_line</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">chip</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">get_line</span><span style="color: #D8DEE9FF">(17)</span></span>
<span class="line"><span style="color: #8FBCBB">led_line</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">request</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">consumer</span><span style="color: #D8DEE9FF">=</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">led</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">type</span><span style="color: #D8DEE9FF">=</span><span style="color: #8FBCBB">gpiod</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">LINE_REQ_DIR_OUT</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #8FBCBB">try</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">while</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">True</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">led_line</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">set_value</span><span style="color: #D8DEE9FF">(1)  # </span><span style="color: #8FBCBB">Liga</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">o</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">LED</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">time</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">sleep</span><span style="color: #D8DEE9FF">(1)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">led_line</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">set_value</span><span style="color: #D8DEE9FF">(0)  # </span><span style="color: #8FBCBB">Desliga</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">o</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">LED</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">time</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">sleep</span><span style="color: #D8DEE9FF">(1)</span></span>
<span class="line"><span style="color: #8FBCBB">except</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">KeyboardInterrupt</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">print</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&quot;</span><span style="color: #EBCB8B">\n</span><span style="color: #A3BE8C">Encerrando execução e liberando recursos...</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">chip</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">close</span><span style="color: #D8DEE9FF">()</span></span>
<span class="line"></span></code></pre></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Esse código acende e apaga o LED em intervalos de 1 segundo. Para adaptar para controle via <strong>BLE</strong>, basta criar uma função de callback que altere o valor do pino conforme os comandos recebidos pelo módulo Bluetooth.</p>
</blockquote>



<h3 class="wp-block-heading">Extensão para Controle via BLE</h3>



<p class="wp-block-paragraph">Com o módulo BLE da Labrador, é possível receber comandos de um aplicativo no celular. Um exemplo de integração seria criar um serviço BLE que, ao receber o valor <code>"on"</code>, acende o LED, e ao receber <code>"off"</code>, apaga. Isso amplia as possibilidades de automação e controle remoto, mantendo a simplicidade do Python.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"></p><p>The post <a href="https://mcu.tec.br/sbc/placa-labrador-caninos-loucos-desenvolvimento-python-e-iot/">Placa Labrador Caninos Loucos: Desenvolvimento Python e IoT</a> first appeared on <a href="https://mcu.tec.br">MCU & FPGA</a>.</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">740</post-id>	</item>
	</channel>
</rss>
