Skip to content

Terry Laundos Aguiar (terryvel)

Compartilhando experiências para inspirar e apoiar outras jornadas

Menu
Menu

Energia, MSP430 LaunchPad e Bluetooth com Python

Posted on 15 de julho de 201216 de julho de 2012 by terryvel

Bom, depois que fiz o post sobre o Energia, o Renne Takao M. Portal, fez uma publicação sobre comunicação serial usando esta IDE [1] e o William Antunes cobrou o teste com Bluetooth chegou a hora de ver a LaunchPad se comunicando sem fio!

Bom, a parte dificil disso tudo já foi explicada pelo amigo Renne Takao M. Portal, então basicamente neste post vou mostrar o dispositivo que utilizei, onde comprei, a documentação que achei dele na internet e ligação dos fios.

O Módulo Bluetooth que eu utilizei foi comprado no Goodluckbuy http://www.goodluckbuy.com/hc-05-bluetooth-serial-port-master-slave-one-bluetooth-serial-module.html. Na internet encontrei dois arquivos com especificações do mesmo. O Datasheet [2] e o Manual de comandos AT [3] . fazer a fiação foi bem fácil, bastando seguir a tabela abaixo:

Pino Descrição
1 UART_TXD
2 UART_RXD
3 UART_CTS
4 UART_RTS
9~11 NA
12 3.3V Supply input
13 GND
14~20 NA
21,22 GND
23 PIO0 Programmable IO port
24 PIO1 Programmable IO port
25 PIO2 Programmable IO port
26 PIO3 Programmable IO port
27 PIO4 Programmable IO port
28 PIO5 Programmable IO port
29 PIO6 Programmable IO port
30 PIO7 Programmable IO port
31 Operation Mode LED
32 Link Status LED
33 PIO10 Programmable IO port
34 PIO10 Programmable IO port

Fiz a ligação mais simples possível. Usei apenas os pinos 1,2, 13 e 21. Note que seria bem interessante usar LED’s nos pinos 31 e 32, para acompanhar o status do dispositivo.

Este é o esquema da ligação que eu fiz.

Esta  é a foto de como ficou. Como podem ver, coloquei um pouco de cola quente pois estava com medo de ficar muito frágil.

Vamos agora ao código.

Este é um exemplo extremamente simples, apenas com intuitos didáticos, desta forma o único propósito dele e acender e apagar o LED ligado ao pino 6 da porta 1 da LaunchPad (P1.6, LED2).

O código funciona da seguinte forma: Ao receber o caractere ‘1’ via serial, o LED2 acende, ao receber o caractere ‘0’ o LED2 apaga. Sendo uma comunicação serial, o dispositivo Bluetooth é apenas o meio, podemos utilizar este mesmo código para fazer a comunicação diretamente da porta serial de um computador, usando um conversor de RS232 para TTL, com a LaunchPad.

Lembre-se de antes de usar este código dar uma olhada no artigo do Renne Takao M. Portal sobre comunicação serial [1] ou você pode ter problemas.

#include <TimerSerial.h>

TimerSerial mySerial; // Create a new TimerSerial object

char eChar = -1; // Variavel para armazenar o caractere recebido pela Serial
int ledPin = 14;

void setup(){
  pinMode(ledPin, OUTPUT);
  mySerial.begin(); // only 9600 baud is supported
}

void loop(){
  if (mySerial.available()){
    eChar = mySerial.read();
    if(eChar=='0'){
      digitalWrite(ledPin, LOW);
      mySerial.println("Led Desligado!");
    } else if(eChar=='1'){
      digitalWrite(ledPin, HIGH);
      mySerial.println("Led Ligado!");
    }
  }
}

Uma vez o disposito conectado, agora vamos parear a LaunchPad com o Computador. No meu caso, estou usando OSX, mas acredito que não deve haver dificuldades para fazer o mesmo no Windows ou no Linux. Eu nunca nem tinha feito isso no OSX e consegui! De toda forma, se alguém tiver alguma dificuldade especifica com outro Sistema Operacional, posta aqui que eu tento ajudar a resolver.

Vamos lá… Configurar o Dispositivo Bluetooth.

Veja que apareceu um tal de linvor, este é o nome padrão deste dispositvo, caso você queria alterar este nome, deve dar uma olhada nos comandos AT.

Clique em Opções de Código… para entrarmos com o código de pareamento padrão deste dispositivo.

Eu não inventei este 1234 não, encontrei no manual de comandos AT.

Como você pode ver na mensagem, uma porta serial foi criada, caso esteja usando o Windows, acredito que após parear o dispositivo uma porta do tipo COMXX deverá ser criada também.

No meu caso, o dispositvo /dev/tty.linvor-DevB-1 foi criado, e vamos agora comunicar com a LaunchPad via serial usando Python. No OSX e no Linux o Python vem instalado, já quem estiver usando windows vai ter que instalar, mas não é nenhum bicho de sete cabeças. Basta acessar o endereço http://python.org/download/, baixar e instalar.

Para se comunicar usando uma porta serial com Python, vamos utilizar o PySerial. Você pode fazer o download diretamente no site do projeto (http://pyserial.sourceforge.net/). Ou instalar via pip ou easy_install.

Uma vez instalado o PySerial, vamos usar o interpretador do Python para testar nossa comunicação. Para isso abra um terminal, caso esteja no windows um prompt de comandos, e execute o Python.

MacBook-Air-de-Terry-Laundos:~ terrylaundos$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial(port='/dev/tty.linvor-DevB-1')
>>> cmd = ser.write('1')
>>> print ser.readline()
Led Ligado!

>>> cmd = ser.write('0')
>>> print ser.readline()
Led Desligado!

E para finalizar um vídeo…

Que vídeo cachorro hein!? Valeu, até mais…

[1] Enviando Dados Pela Porta Serial na placa LaunchPad MSP430 Utilizando o ambiente ENERGIA
[2] BTM-5 Bluetooth – Wireless TTL Master/Slave Transceiver Module – Datasheet
[3] BTM-5 Bluetooth – Wireless TTL Master/Slave Transceiver Module – AT Command User Guide

Category: microcontroladores, msp430, Python

Navegação de Post

← Energia! A LaunchPad que é mais barata que o Arduino, tão fácil de programar quanto!
Montando um ambiente para avaliação de qualidade de código no Azure com SonarQube →

9 thoughts on “Energia, MSP430 LaunchPad e Bluetooth com Python”

  1. Rogerio disse:
    16 de julho de 2012 às 18:42

    Fiquem atentos quando forem comprar o modulo bluetooth, pois existem modelos muito semelhantes no preço e na documentação, mas na pratica não aceitam comandos AT. Foi o caso de um modulo comprado na sure electronics GP-CG021. Somente aceita modo slave e não recebe comandos AT.

    Responder
  2. William Antunes disse:
    19 de julho de 2012 às 11:04

    Muito Bom!
    Não é que essa energia funciona mesmo!?

    Parabéns pelo post Terry!
    Agora só falta convencer seu chefe de por o BT no projeto! Hehehehe .. abraços!

    Responder
  3. hugo disse:
    12 de agosto de 2012 às 20:31

    Cara, eu vo fazer a mesma coisa esse semestre como projeto…. Isso aqui ja ajudou bastante

    Responder
  4. Bruno Gomes disse:
    14 de novembro de 2012 às 3:51

    Realmente Terry é muito legal esse chip! gostei tb dessa IDE pelo que vi posso pegar sketchs do arduino abrir nela e enviar para o MSP430 pelo Energia… me indica um modelo do LaunchPad para eu brincar!!!

    Responder
  5. Carlos disse:
    5 de janeiro de 2013 às 11:09

    Camarada, estou precisando de uma ajuda, vc ainda mantém este blog ? obrigado.

    Responder
    1. terryvel disse:
      26 de fevereiro de 2013 às 15:38

      Opa Carlos, desculpe a demora… estou um pouco atarefado 😀 Mas pretendo manter o Blog sim, em que posso ajudar?

      Responder
  6. JHONATAS disse:
    2 de maio de 2013 às 20:57

    MUITO BOM CARA!!!!!!!

    Responder
    1. terryvel disse:
      26 de abril de 2014 às 13:57

      Que massa Jhonatas, que você passou no Blog, poderia dar umas dicas de posts novos 😀 Abraços.

      Responder
  7. Reginaldo disse:
    10 de maio de 2014 às 22:36

    Boa noite Terry, só para registrar uma passadinha aqui pelo blog. Muito massa.
    Reginaldo
    Americana-SP

    Responder

Deixe um comentário para William Antunes Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Terry Laundos Aguiar
Gerente de Arquitetura de TI, apaixonado por dados, integrações e arquitetura empresarial, conectando estratégia de negócios e tecnologia.
  • LinkedIn
  • Instagram
  • X

Análise Estática de Código Azure Bluetooth DevOps Energia Enterprise Architecture Tools Essential Open Source Essential Project interrupções LED linux Microcontroladores msp430 mspgcc Python Qualidade de Código rede SonarQube Texas Instruments Windows

© 2025 Terry Laundos Aguiar (terryvel) | Powered by Minimalist Blog WordPress Theme