Πίνακας περιεχομένων:

NOCAR (Notificación De Carga): 5 Βήματα
NOCAR (Notificación De Carga): 5 Βήματα

Βίντεο: NOCAR (Notificación De Carga): 5 Βήματα

Βίντεο: NOCAR (Notificación De Carga): 5 Βήματα
Βίντεο: DOOGEE T20 - ОБЗОР и ТЕСТЫ ХОРОШЕГО БЮДЖЕТНОГО ПЛАНШЕТА 2024, Ιούλιος
Anonim
NOCAR (Notificación De Carga)
NOCAR (Notificación De Carga)

Αφηρημένη

Δημιουργούμε νέες τεχνολογίες και τεχνικές κάθε χρόνο. Στο παρελθόν, η ατμομηχανή ήταν το πρώτο βήμα για κάτι που ονομάσαμε Βιομηχανική Επανάσταση. Ο άνθρωπος δεν έχει καθυστερήσει από τότε. Δημιουργούμε μηχανές για να κάνουμε τη ζωή μας πιο εύκολη και κάθε φορά προσπαθούμε να βελτιώνουμε τα πράγματα και τις διαδικασίες που έχουμε ήδη κάνει.

Το μοντέρνο αυτοκίνητο παρουσιάστηκε για πρώτη φορά το 1886. Έκτοτε, είχε μεγάλη εξέλιξη σε πολλές πτυχές. Από το όριο ταχύτητας, μέχρι τον έλεγχο του βάρους, αλλάζει και παίρνει πολλούς δρόμους. Μια νέα τεχνολογία έκανε το αυτοκίνητο να μην απαιτεί ορυκτά καύσιμα: το υβριδικό αυτοκίνητο. Ωστόσο, αυτή η μέθοδος έχει πιο περιορισμένα όρια. Ένα μειονέκτημα είναι ο χρόνος που απαιτείται για την επαναφόρτιση. Δεν είναι τόσο εύκολο όσο να πάτε στο βενζινάδικο και να γεμίσετε τη δεξαμενή σε λίγα λεπτά. Ορισμένα αυτοκίνητα χρειάζονται ώρες για να ολοκληρώσουν την επαναφόρτιση. Ωστόσο, πολλά αν το βενζινάδικο βρίσκονται κοντά σε ζώνη αναψυχής ή εμπορική ζώνη. Και είναι λογικό, εάν χρειάζεται περισσότερος χρόνος για να γεμίσετε την μπαταρία σας, δεν έχει νόημα να είστε εκεί όλη την ώρα, έτσι σας δίνει την ευκαιρία να πάτε όπου θέλετε στο μεταξύ. Ωστόσο, από τη στιγμή που το αυτοκίνητο φορτίζεται, εάν δεν έχετε βγάλει το αυτοκίνητό σας από τον σταθμό φόρτισης, θα επιβληθεί πρόστιμο στο αυτοκίνητό σας. Ο στόχος αυτού του προϊόντος είναι να λύσει ένα κανονικό πρόβλημα στα μελλοντικά υβριδικά αυτοκίνητα (τα υβριδικά αυτοκίνητα έχουν ένα μεγάλο στοίχημα στο τραπέζι). Εφαρμόζουμε ένα σύστημα κυκλώματος χρησιμοποιώντας ένα Dragonboard 410c. Σας στέλνει ένα email για να σας ειδοποιήσει ότι η ενεργειακή φόρτιση του αυτοκινήτου σας είναι έως ένα ορισμένο ποσοστό. Με αυτόν τον τρόπο, μπορείτε να κάνετε τις δραστηριότητές σας χωρίς να ανησυχείτε για το αν το αυτοκίνητό σας φορτίζεται ακόμα ή είναι έτοιμο (και πιθανότατα θα επιβληθεί πρόστιμο). Παρόλο που εδώ στο Μεξικό αυτό το πρόβλημα δεν φαίνεται να εμφανίζεται, νωρίτερα από ό, τι περιμέναμε νέα συστήματα θα καταρρίψουν τα ορυκτά καύσιμα και τα υβριδικά αυτοκίνητα θα αναλάβουν σημαντικό ρόλο. Νέοι νόμοι έχουν θεσπιστεί και τα πρόστιμα είναι πλέον γεγονός και όχι μακρινή ιδέα.

Image Credit: Clipper Creek: Σταθμοί φόρτισης ηλεκτρικών οχημάτων

Βήμα 1: Υλικά

  • DragonBoard 410c
  • Mezzanine για 96Boards
  • Protoboard
  • Σύρμα βραχυκυκλωτήρα
  • Κουμπί
  • Αντίσταση 10 ohm
  • Ποτενσιόμετρο 10k ohm
  • Πυκνωτής 150 pF
  • Τσιπ ADC0804

Βήμα 2: Κωδικός

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

#include "libsoc_gpio.h"

#include "libsoc_debug.h"

#include "libsoc_board.h"

χωρίς υπογραφή int GPIO_PIN1;

χωρίς υπογραφή int GPIO_PIN2;

χωρίς υπογραφή int GPIO_PIN3;

χωρίς υπογραφή int GPIO_PIN4;

χωρίς υπογραφή int GPIO_TRANSIS;

χωρίς υπογραφή int GPIO_SELECT;

χωρίς υπογραφή int GPIO_ENTER;

χωρίς υπογραφή int GPIO_LEDTEST;

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;

int τρέξιμο = 1;

_αναφορά _ ((κατασκευαστής)) στατικό κενό _init ()

{

board_config *config = libsoc_board_init ();

GPIO_PIN1 = libsoc_board_gpio_id (διαμόρφωση, "GPIO-A");

GPIO_PIN2 = libsoc_board_gpio_id (διαμόρφωση, "GPIO-B");

GPIO_PIN3 = libsoc_board_gpio_id (διαμόρφωση, "GPIO-C");

GPIO_PIN4 = libsoc_board_gpio_id (διαμόρφωση, "GPIO-D");

GPIO_TRANSIS = libsoc_board_gpio_id (διαμόρφωση, "GPIO-E");

GPIO_SELECT = libsoc_board_gpio_id (διαμόρφωση, "GPIO-G");

GPIO_ENTER = libsoc_board_gpio_id (διαμόρφωση, "GPIO-H");

GPIO_LEDTEST = libsoc_board_gpio_id (διαμόρφωση, "GPIO-I");

libsoc_board_free (διαμόρφωση);

}

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

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

{

πρέπει να αποτύχει?

}

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

εάν ((libsoc_gpio_get_direction (gpio_pin1)! = ΕΙΣΟΔΟΣ)

|| (libsoc_gpio_get_direction (gpio_pin2)! = ΕΙΣΟΔΟΣ) || (libsoc_gpio_get_direction (gpio_pin3)! = ΕΙΣΟΔΟΣ) || (libsoc_gpio_get_direction (gpio_pin4)! = ΕΙΣΟΔΟΣ)

|| (libsoc_gpio_get_direction (gpio_transis)! = ΕΙΣΟΔΟΣ) || (libsoc_gpio_get_direction (gpio_select)! = ΕΙΣΟΔΟΣ) || (libsoc_gpio_get_direction (gpio_enter)! = ΕΙΣΟΔΟΣ) || (libsoc_gpio_get_direction (gpio_ledtest)! = ΕΞΟΔΟΣ))

{

πρέπει να αποτύχει?

}

τρέχοντας)

{

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

αν (touch_select == 1)

{

valorBoton ++;

αν (valorBoton == 4)

{

valorBoton = 0;

}

}

αν (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 ("εφαρμόστε τον πόρο gpio fail! / 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);

}

επιστροφή EXIT_SUCCESS;

}

Βήμα 3: Ηλεκτρικό κύκλωμα

Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα

Αυτό το κύκλωμα λειτουργεί ως μετατροπέας αναλογικού σε ψηφιακό. Παίρνει το σήμα ενός δυναμομέτρου που έρχεται σε τιμή μεταξύ 0 και 5 βολτ, στη συνέχεια ο μετατροπέας το μετατρέπει σε ψηφιακό σήμα μεταξύ 0 και 255 bits και το στέλνει στις ΕΙΣΟΔΟΥΣ του DragonBoard.

Βήμα 4:

Αναπτύχθηκε από:

Αλφρέντο Φόντες

Μαουρίτσιο Γκόμεζ

Χόρχε Χιμένεθ

Gerardo Lopéz

Φελίπε Ρόχας

Λουίς Ρόχας

Ιβόν Σαντόβαλ

Συνιστάται: