Inhoudsopgave:

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

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

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

Abstract

We creëren elk jaar nieuwe technologieën en technieken. In het verleden was de stoommachine de eerste stap van iets dat we de Industriële Revolutie noemden. De mens is sindsdien niet meer blijven hangen. We hebben machines gemaakt om ons leven gemakkelijker te maken, en elke keer proberen we de dingen en processen die we al hebben gemaakt te verbeteren.

De moderne auto werd voor het eerst geïntroduceerd in 1886. Sindsdien heeft hij op veel aspecten een grote ontwikkeling doorgemaakt. Van de snelheidslimiet tot de gewichtscontrole, het is veranderd en heeft vele wegen ingeslagen. Een nieuwe technologie zorgde ervoor dat de auto geen fossiele brandstoffen nodig had: de hybride auto. Deze methode heeft echter meer beperkte limieten. Een nadeel is de tijd die nodig is om op te laden. Het is niet zo eenvoudig om naar het tankstation te gaan en de tank in een paar minuten te vullen. Sommige auto's hebben uren nodig om het opladen te voltooien. Veel als het tankstation zich echter in de buurt van een recreatiegebied of winkelgebied bevindt. En het is logisch, als het langer duurt om je batterij te vullen, heeft het geen zin om daar de hele tijd te zijn, dus het geeft je de mogelijkheid om in de tussentijd te gaan waar je maar wilt. Als de auto echter eenmaal is opgeladen en u uw auto niet van het laadstation heeft gehaald, wordt uw auto beboet. Het doel van dit product is om een normaal probleem in de toekomstige hybride auto's op te lossen (hybride auto's hebben een grote gok op tafel). We implementeren een circuitsysteem met behulp van een Dragonboard 410c. Het stuurt u een e-mail om u te waarschuwen dat de energielading van uw auto een bepaald percentage heeft bereikt. Op deze manier kunt u uw activiteiten uitvoeren zonder dat u zich zorgen hoeft te maken of uw auto nog aan het opladen is of klaar is (en waarschijnlijk een boete krijgt). Hoewel dit soort problemen hier in Mexico niet lijkt op te duiken, zullen nieuwe systemen eerder dan we verwachten het terrein veroveren op de fossiele brandstoffen, en zullen de hybride auto's een belangrijke rol gaan spelen. Er zijn nieuwe wetten gemaakt en boetes zijn nu een feit, geen veraf idee.

Image Credit: Clipper Creek: laadstations voor elektrische voertuigen

Stap 1: Materialen

  • DragonBoard 410c
  • Mezzanine voor 96 Boards
  • Protobord
  • Doorverbindingsdraad
  • Druk op de knop
  • Weerstand 10 ohm
  • Potenciometer 10k ohm
  • Condensator 150 pF
  • Chip ADC0804

Stap 2: Coderen

#erbij betrekken

#erbij betrekken

#erbij betrekken

#include "libsoc_gpio.h"

#include "libsoc_debug.h"

#include "libsoc_board.h"

niet-ondertekende int GPIO_PIN1;

niet-ondertekende int GPIO_PIN2;

niet-ondertekende int GPIO_PIN3;

niet-ondertekende int GPIO_PIN4;

niet-ondertekende int GPIO_TRANSIS;

niet-ondertekende int GPIO_SELECT;

unsigned int GPIO_ENTER;

niet-ondertekende int GPIO_LEDTEST;

int vlag;

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_status = 0;

int buzzer_state = 0;

int actief = 1;

_attribute_((constructor)) statische leegte _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 hoofd()

{

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

{

mislukken;

}

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

{

mislukken;

}

tijdens het rennen)

{

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)

{

waardeBoton=0;

}

}

if(valorBoton==3)

{

valorLEDTest=1;

libsoc_gpio_set_level (gpio_ledtest, valorLEDTest);

}

}

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

{

printf("app gpio-bron mislukt!\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);

}

retourneer EXIT_SUCCESS;

}

Stap 3: Elektrisch circuit

Elektrisch circuit
Elektrisch circuit
Elektrisch circuit
Elektrisch circuit
Elektrisch circuit
Elektrisch circuit
Elektrisch circuit
Elektrisch circuit

Deze schakeling werkt als een analoog-naar-digitaal omzetter. Het neemt het signaal van een potenciometer met een waarde tussen 0 en 5 volt, dan maakt de converter er een digitaal signaal van tussen 0 en 255 bits van en stuurt het naar de DragonBoard INPUTS.

Stap 4:

Ontwikkeld door:

Alfredo Fontes

Mauricio Gomez

Jorge Jiménez

Gerardo Lopez

Felipe Rojas

Luis Rojas

Ivón Sandoval

Aanbevolen: