Avançar para o conteúdo principal

Apresentação da Placa Freedom FRDM-KL25Z


Olá a todos!
O artigo de hoje é dedicado aos adeptos dos micro-controladores e suas plataformas de avaliação e desenvolvimento. Estas placas são úteis para prototipagem rápida de aplicações baseadas em micro-controladores. 
Vamos hoje falar da placa Freedom FRDM-KL25Z. Com um custo na ordem dos 20€, esta placa usa um micro-controlador Kinetics da série L, de 32 bits, mais propriamente o KL25Z128VLK, baseado no ARM® Cortex™-M0+. Com uma frequência de relógio que chega aos 48MHz, 128K de flash e muitos portos analógicos, digitais, e PWM. é sem duvida promissora a nível de possibilidades e desempenho.
 
FRDM-KL25Z NXP USA Inc. | FRDM-KL25Z-ND DigiKey Electronics
 Fig. 1 - ARM® Cortex®-M0+ MCU 32-Bit Embedded Evaluation Board

A forma da placa e do seu pinout, permite usar placas de expansão desenhadas para o Arduino R3, tendo no entanto em atenção que esta placa FRDM-KL25Z trabalha com 3.3V. Devemo-nos portanto assegurar da compatibilidade dos "shields" Arduino com os 3.3V.

 Fig.2 - Pinout da placa KL25Z

Na fig. 2 podemos ver o pinout da placa. Os pinos exteriores estão dispostos de forma a assegurar a compatibilidade com as "shields" do Arduino Uno R3. Os pinos interiores oferecem portos adicionais. Implementado diretamente na placa, temos um led RGB, um acelerómetro de 3 eixos e um sensor capacitivo de toque.
Antes de começar a usar a placa, é imprescindível dar uma leitura atenta ao manual disponível aqui: 
https://www.nxp.com/files-static/32bit/doc/user_guide/FRDMKL25ZUM.zip
Para programar a placa, vários ambientes de desenvolvimento podem ser usados. Eu atualmente uso o mbed, que pode ser facilmente acedido em qualquer computador com acesso à internet no endereço  https://www.mbed.com/en/ sem necessidade de instalar programas pesados no PC. Basta criar uma conta, selecionar o hardware que usa e começar a desenvolver os seus programas, ou experimentar os programas dos outros utilizadores que os publiquem. Os meus estão disponíveis aqui  
https://os.mbed.com/users/lmsousa/code/
Deixo aqui um exemplo de um pequeno programa que gera efeitos multicolores usando o LED tricolor.
https://os.mbed.com/users/lmsousa/code/PWM_Blink_V2//file/20358798a986/main.cpp/


#include "mbed.h"
#define pause 0.015
PwmOut rled(LED_RED);
PwmOut gled(LED_GREEN);
PwmOut bled(LED_BLUE);
 
int main()
{
    rled=1;
    gled=1;
    bled=1;
    
    while(1) {
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            rled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            rled = p;
            wait(pause);
        }
        wait (0.5);
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            gled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            gled = p;
            wait(pause);
        }
        wait (0.5);
 
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            bled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            bled = p;
            wait(pause);
        }
        wait (0.5);
        
        
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            rled = p;
            gled=p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            rled = p;
            gled=p;
            wait(pause);
        }
        wait (0.5);
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            rled = p;
            bled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            rled = p;
            bled = p;
            wait(pause);
        }
        wait (0.5);
 
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            gled = p;
            bled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            gled = p;
            bled = p;
            wait(pause);
        }
        wait (0.5);
    }
}
            

Após a fase de familiarização, depois de conhecer a placa e o ambiente de desenvolvimento escolhido, pode entregar-se a projetos mais complexos.
Divirta-se

Comentários

Mensagens populares deste blogue

Projecto: PWM - o que é e como funciona

Olá! Todos já ouviram falar de PWM, mas nem todos sabem o que é e como funciona. O principal objectivo deste projecto é ajudar as pessoas a entender melhor os conceitos por detrás do PWM e perceber como funciona. Decidi portanto construir uma placa de encaixe no Arduino (Arduino shield) que usando as saídas  PWM do Arduino, e algum código simples, consegue demonstrar com ajuda de um osciloscópio, como funciona o PWM. Todo o projeto está descrito neste link : https://create.arduino.cc/projecthub/lmsousa/pwm-demonstration-board-using-arduino-a17d0f?ref=user&ref_id=391612&offset=1   Para uma introdução ao PWM, não deixe de visitar esta página .

Assistentes Virtuais

Olá a todos, Hoje vamos falar sobre as assistentes virtuais e a sua real utilidade. Um(a) assistente  virtual é um dispositivo composto por software e hardware, capaz de realizar tarefas para si, ou para qualquer individuo, baseado num comando dado pelo utilizador. Esse comando pode ser dado por texto ou por voz, dependendo do assistente, sendo que alguns aceitam ambos. Os assistentes virtuais têm ganho espaço na vida das pessoas, em vários campos, nomeadamente no auxílio doméstico. Agilizam a obtenção de informações, como a informação meteorológica, aprendem com as interações com o utilizador, melhorando gradualmente a sua performance. Se tiver o equipamento adequado em casa, podem mesmo ligar a TV, controlar a iluminação, subir os estores etc… Os mais interessantes são os/as assistentes virtuais que aceitam comandos de voz e respondem da mesma forma, pois representa uma maior aproximação da máquina ao ser humano, minimizando a necessidade de o homem aprender a li...