Sommario:

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

Video: NOCAR (Notificación De Carga): 5 passaggi

Video: NOCAR (Notificación De Carga): 5 passaggi
Video: 1 HORA DE COSAS QUE NO SABÍAS! 👀⏰ [XpressTV] 2024, Luglio
Anonim
NOCAR (Notifica de Carga)
NOCAR (Notifica de Carga)

Astratto

Creiamo nuove tecnologie e tecniche ogni anno. In passato, la macchina a vapore è stata il primo passo di qualcosa che abbiamo chiamato Rivoluzione Industriale. Da allora l'essere umano non ha più indugiato. Abbiamo creato macchine per semplificarci la vita e ogni volta cerchiamo di migliorare le cose e i processi che abbiamo già realizzato.

L'auto moderna è stata introdotta per la prima volta nel 1886. Da allora, ha avuto un grande sviluppo su molti aspetti. Dal limite di velocità, al controllo del peso, è cambiato e ha preso molte strade. Una nuova tecnologia ha fatto sì che l'auto non richiedesse combustibili fossili: l'auto ibrida. Tuttavia, questo metodo ha limiti più ristretti. Uno svantaggio è il tempo necessario per la ricarica. Non è così facile come andare alla stazione di servizio e riempire il serbatoio in un paio di minuti. Alcune auto hanno bisogno di ore per completare la ricarica. Tuttavia, molti se la stazione di servizio si trova vicino a una zona ricreativa o commerciale. E ha senso, se ci vuole più tempo per riempire la batteria, non ha senso che tu sia lì tutto il tempo, quindi ti dà l'opportunità di andare dove vuoi nel frattempo. Tuttavia, una volta che l'auto è stata caricata, se non l'hai portata fuori dalla stazione di ricarica, verrà applicata una multa alla tua auto. L'obiettivo di questo prodotto è risolvere un problema normale nelle future auto ibride (le auto ibride hanno una grande scommessa sul tavolo). Implementiamo un sistema di circuiti utilizzando una Dragonboard 410c. Ti invia un'e-mail per avvisarti che la carica energetica della tua auto è fino a una certa percentuale. In questo modo, puoi svolgere le tue attività senza doversi preoccupare se la tua auto è ancora in carica o è pronta (e probabilmente riceverà una multa). Anche se qui in Messico questo tipo di problema non sembra sorgere, prima di quanto ci aspettiamo nuovi sistemi prenderanno piede sui combustibili fossili e le auto ibride assumeranno un ruolo importante. Sono state stabilite nuove leggi e le multe sono ormai un dato di fatto, non un'idea lontana.

Credito immagine: Clipper Creek: stazioni di ricarica per veicoli elettrici

Passaggio 1: materiali

  • DragonBoard 410c
  • Soppalco per 96Tavole
  • Protoboard
  • Cavo del ponticello
  • Premi il bottone
  • Resistenza 10 ohm
  • Potenziometro 10k ohm
  • Condensatore 150 pF
  • Chip ADC0804

Passaggio 2: codice

#includere

#includere

#includere

#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;

bandiera 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 stato_transitorio=0;

int last_touch_b;

int last_touch_l;

int led_state = 0;

int buzzer_state = 0;

int in esecuzione = 1;

_attribute_((costruttore)) 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);

}

intero principale()

{

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))

{

andare a fallire;

}

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) != OUTPUT))

{

andare a fallire;

}

mentre corro)

{

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)

{

valoreBoton=0;

}

}

if(valorBoton==3)

{

valorLEDTest=1;

libsoc_gpio_set_level(gpio_ledtest, valorLEDTest);

}

}

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

{

printf("Applica risorsa gpio fallita!\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);

}

restituire EXIT_SUCCESS;

}

Passaggio 3: circuito elettrico

Circuito elettrico
Circuito elettrico
Circuito elettrico
Circuito elettrico
Circuito elettrico
Circuito elettrico
Circuito elettrico
Circuito elettrico

Questo circuito funziona come un convertitore analogico-digitale. Prende il segnale di un potenziometro che arriva in un valore compreso tra 0 e 5 volt, quindi il convertitore lo trasforma in un segnale digitale tra 0 e 255 bit e lo invia agli INGRESSI della DragonBoard.

Passaggio 4:

Sviluppato da:

Alfredo Fontes

Mauricio Gómez

Jorge Jiménez

Gerardo Lopez

Felipe Rojas

Luis Rojas

Ivón Sandoval

Consigliato: