Índice:

NOCAR (Notificación De Carga): 5 etapas
NOCAR (Notificación De Carga): 5 etapas

Vídeo: NOCAR (Notificación De Carga): 5 etapas

Vídeo: NOCAR (Notificación De Carga): 5 etapas
Vídeo: ¿QUÉ LE PASO EN EL BRAZO? 😱 2024, Novembro
Anonim
NOCAR (Notificación De Carga)
NOCAR (Notificación De Carga)

Resumo

Criamos novas tecnologias e técnicas todos os anos. No passado, a máquina a vapor foi o primeiro passo de algo que chamamos de Revolução Industrial. O ser humano não se demorou desde então. Temos vindo a criar máquinas para tornar a nossa vida mais fácil, e agora sempre tentamos melhorar as coisas e processos que já fizemos.

O carro moderno foi introduzido pela primeira vez em 1886. Desde então, teve um grande desenvolvimento em muitos aspectos. Do limite de velocidade ao controle de peso, tem mudado e percorrido muitos caminhos. Uma nova tecnologia fez com que o carro não necessitasse de combustíveis fósseis: o carro híbrido. No entanto, esse método tem limites mais restritos. Uma desvantagem é o tempo que leva para recarregar. Não é tão fácil quanto ir ao posto de gasolina e encher o tanque em alguns minutos. Alguns carros precisam de horas para completar a recarga. Muitos se o posto de gasolina estiver perto de uma zona recreativa ou zona comercial, no entanto. E faz sentido, se levar mais tempo para encher sua bateria, não faz sentido você estar lá o tempo todo, então isso lhe dá a oportunidade de ir aonde quiser nesse ínterim. No entanto, assim que o carro estiver carregado, se você não tiver retirado o carro da estação de carregamento, uma multa será aplicada ao seu carro. O objetivo deste produto é resolver um problema normal nos carros híbridos do futuro (os carros híbridos têm uma grande aposta na mesa). Implementamos um sistema de circuito usando um Dragonboard 410c. Ele envia um e-mail para alertá-lo de que a carga de energia do seu carro é de até certa porcentagem. Dessa forma, você pode realizar suas atividades sem se preocupar se o carro ainda está carregando ou pronto (e provavelmente será multado). Embora aqui no México esse tipo de problema não pareça surgir, mais cedo do que esperamos, novos sistemas tomarão terreno sobre os combustíveis fósseis, e os carros híbridos terão um papel importante. Novas leis foram estabelecidas e as multas agora são um fato, não uma ideia distante.

Crédito da imagem: Clipper Creek: Estações de carregamento de veículos elétricos

Etapa 1: Materiais

  • DragonBoard 410c
  • Mezanino para 96Boards
  • Protoboard
  • Jumper wire
  • Botão de apertar
  • Resistor 10 ohm
  • Potenciômetro 10k ohm
  • Capacitor 150 pF
  • Chip ADC0804

Etapa 2: Código

#incluir

#incluir

#incluir

#include "libsoc_gpio.h"

#include "libsoc_debug.h"

#include "libsoc_board.h"

unsigned int GPIO_PIN1;

unsigned int GPIO_PIN2;

unsigned int GPIO_PIN3;

unsigned int GPIO_PIN4;

unsigned int GPIO_TRANSIS;

unsigned int GPIO_SELECT;

unsigned int GPIO_ENTER;

unsigned int GPIO_LEDTEST;

bandeira int;

int valorBoton;

int valorLEDTest;

int pin1_state = 0;

int pin2_state = 0;

int pin3_state = 0;

int pin4_state = 0;

int last_touch_pin1;

int last_touch_p1;

int last_touch_pin2;

int last_touch_p2;

int last_touch_pin3;

int last_touch_p3;

int last_touch_pin4;

int last_touch_p4;

int select_state = 0;

int enter_state = 0;

int transis_state = 0;

int last_touch_b;

int last_touch_l;

int led_state = 0;

int buzzer_state = 0;

execução interna = 1;

_attribute _ ((construtor)) static void _init ()

{

board_config * config = libsoc_board_init ();

GPIO_PIN1 = libsoc_board_gpio_id (config, "GPIO-A");

GPIO_PIN2 = libsoc_board_gpio_id (config, "GPIO-B");

GPIO_PIN3 = libsoc_board_gpio_id (config, "GPIO-C");

GPIO_PIN4 = libsoc_board_gpio_id (config, "GPIO-D");

GPIO_TRANSIS = libsoc_board_gpio_id (config, "GPIO-E");

GPIO_SELECT = libsoc_board_gpio_id (config, "GPIO-G");

GPIO_ENTER = libsoc_board_gpio_id (config, "GPIO-H");

GPIO_LEDTEST = libsoc_board_gpio_id (config, "GPIO-I");

libsoc_board_free (config);

}

int main ()

{

gpio * gpio_pin1, * gpio_pin2, * gpio_pin3, * gpio_pin4, * gpio_transis, * gpio_select, * gpio_enter, * gpio_ledtest;

int touch_pin1;

int touch_pin2;

int touch_pin3;

int touch_pin4;

int touch_transis;

int touch_select;

int touch_enter;

int touch_ledtest;

libsoc_set_debug (0);

gpio_pin1 = libsoc_gpio_request (GPIO_PIN1, LS_SHARED);

gpio_pin2 = libsoc_gpio_request (GPIO_PIN2, LS_SHARED);

gpio_pin3 = libsoc_gpio_request (GPIO_PIN3, LS_SHARED);

gpio_pin4 = libsoc_gpio_request (GPIO_PIN4, LS_SHARED);

gpio_transis = libsoc_gpio_request (GPIO_TRANSIS, LS_SHARED);

gpio_select = libsoc_gpio_request (GPIO_SELECT, LS_SHARED);

gpio_enter = libsoc_gpio_request (GPIO_ENTER, LS_SHARED);

gpio_ledtest = libsoc_gpio_request (GPIO_LEDTEST, LS_SHARED);

if ((gpio_pin1 == NULL) || (gpio_pin2 == NULL) || (gpio_pin3 == NULL) || (gpio_pin4 == NULL) || (gpio_transis == NULL) || (gpio_select == NULL) || (gpio_enter == NULL) || (gpio_ledtest == NULL))

{

goto fail;

}

libsoc_gpio_set_direction (gpio_pin1, INPUT);

libsoc_gpio_set_direction (gpio_pin2, INPUT);

libsoc_gpio_set_direction (gpio_pin3, INPUT);

libsoc_gpio_set_direction (gpio_pin4, INPUT);

libsoc_gpio_set_direction (gpio_transis, INPUT);

libsoc_gpio_set_direction (gpio_select, INPUT);

libsoc_gpio_set_direction (gpio_enter, INPUT);

libsoc_gpio_set_direction (gpio_ledtest, OUTPUT);

if ((libsoc_gpio_get_direction (gpio_pin1)! = INPUT)

|| (libsoc_gpio_get_direction (gpio_pin2)! = INPUT) || (libsoc_gpio_get_direction (gpio_pin3)! = INPUT) || (libsoc_gpio_get_direction (gpio_pin4)! = INPUT)

|| (libsoc_gpio_get_direction (gpio_transis)! = INPUT) || (libsoc_gpio_get_direction (gpio_select)! = INPUT) || (libsoc_gpio_get_direction (gpio_enter)! = INPUT) || (libsoc_gpio_get_direction (gpio_ledtest)! = SAÍDA))

{

goto fail;

}

enquanto correndo)

{

touch_pin1 = libsoc_gpio_get_level (gpio_pin1);

touch_pin2 = libsoc_gpio_get_level (gpio_pin2);

touch_pin3 = libsoc_gpio_get_level (gpio_pin3);

touch_pin4 = libsoc_gpio_get_level (gpio_pin4);

touch_enter = libsoc_gpio_get_level (gpio_enter);

touch_select = libsoc_gpio_get_level (gpio_select);

touch_transis = libsoc_gpio_get_level (gpio_transis);

touch_ledtest = libsoc_gpio_get_level (gpio_ledtest);

if (touch_select == 1)

{

valorBoton ++;

if (valorBoton == 4)

{

valorBoton = 0;

}

}

if (valorBoton == 3)

{

valorLEDTest = 1;

libsoc_gpio_set_level (gpio_ledtest, valorLEDTest);

}

}

falha: if (gpio_pin1 || gpio_pin2 || gpio_pin3 || gpio_pin4 || gpio_transis || gpio_select || gpio_enter || gpio_ledtest)

{

printf ("falha na aplicação do recurso GPIO! / n");

libsoc_gpio_free (gpio_pin1);

libsoc_gpio_free (gpio_pin2);

libsoc_gpio_free (gpio_pin3);

libsoc_gpio_free (gpio_pin4);

libsoc_gpio_free (gpio_transis);

libsoc_gpio_free (gpio_select);

libsoc_gpio_free (gpio_enter);

libsoc_gpio_free (gpio_ledtest);

}

return EXIT_SUCCESS;

}

Etapa 3: circuito elétrico

Circuito elétrico
Circuito elétrico
Circuito elétrico
Circuito elétrico
Circuito elétrico
Circuito elétrico
Circuito elétrico
Circuito elétrico

Este circuito funciona como um conversor analógico-digital. Ele pega o sinal de um potenciômetro que vem em um valor entre 0 e 5 volts, então o conversor transforma em um sinal digital entre 0 e 255 bits e envia para o DragonBoard INPUTS.

Passo 4:

Desenvolvido por:

Alfredo Fontes

Mauricio Gómez

Jorge Jiménez

Gerardo Lopéz

Felipe Rojas

Luis Rojas

Ivón Sandoval

Recomendado: