INHOUDSOPGAWE:
- Stap 1: materiaal
- Stap 2: Sny die stukke vir die laai in die MDF. (Gebruik 'n lasersnyer vir beter resultate)
- Stap 3: Plak al die stukke saam om 'n laai te vorm met twee laaie en 'n groot een
- Stap 4: Skroef die skroewe in die middel van elke laai vas
- Stap 5: Maak met die boor gate deur die laai aan die agterkant, die gat moet die grootte van die sensor wees
- Stap 6: Las elke sensor CNY 70 met die koperdrade. (herhaal 4 keer meer)
- Stap 7: 'n Spesiale stroombaan word vir die sensor gebruik
- Stap 8: Koppel die sensor -mezzanine aan die Dragon Board 410c. (gebruik om toegang tot die GPIO te verkry)
- Stap 9: Koppel die stroombaan van die broodbord aan die tussenverdieping
- Stap 10: Skryf of kopieer die kode
- Stap 11: Begin die program
- Stap 12: Gevolgtrekkings
Video: Voorraadlaai "Smart Cities Hackathon Qualcomm17": 13 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
In die volgende dokument kan u die proses van konstruksie en programmering van 'n intelligente laai sien. Hierdie laai is geprogrammeer in 'n Dragon Board 410c, met die doel om die kwaliteit van stede te verbeter. Die projek is deel van die kompetisie "smart cities hackathon Qualcomm 17".
Die idee van hierdie projek het begin met 'n probleem wat baie min mense sien, dit is die verlore en slegte bestuur van gereedskap en materiaal wat deur ondernemings soos fabrieke en selfs hospitale verskaf word. Op hierdie plekke word materiaal en gereedskap aan die werkers verskaf om aktiwiteite te doen; hierdie materiaal en gereedskap moet hergebruik word omdat dit duur is of 'n gebrek aan ekonomiese hulpbronne is om dit te vervang.
In hospitale is daar mense wat beheer neem oor die materiaal wat verwyder word, maar as daar 'n menslike ingryping is, is daar die fout, wat tot onnodige uitgawes kan lei. Die beste oplossing vir hierdie probleem is 'n intelligente laai wat 'n inventaris kan hou van voorwerpe wat geleen en teruggestuur word en terselfdertyd weet wie die verantwoordelik is.
Stap 1: materiaal
Die materiaal wat nodig is vir die projek is die volgende: 1 x Dragon Board 410c
1 x Sensor Mezzanine 96 borde vir Dragon Board 410c
1 x broodbord
1 x MDF (medium digtheid veselbord) vel 61 x 122 cm
5 x sensor CNY 70
1 X WENK31B
1 x elektromagneet
1 x 7408
1 x sleutelbord
1 x skerm
3 x skroewe
Weerstand (verskeidenheid)
Koperdrade
Gom
Boor
Stap 2: Sny die stukke vir die laai in die MDF. (Gebruik 'n lasersnyer vir beter resultate)
Stap 3: Plak al die stukke saam om 'n laai te vorm met twee laaie en 'n groot een
Stap 4: Skroef die skroewe in die middel van elke laai vas
Stap 5: Maak met die boor gate deur die laai aan die agterkant, die gat moet die grootte van die sensor wees
Stap 6: Las elke sensor CNY 70 met die koperdrade. (herhaal 4 keer meer)
Stap 7: 'n Spesiale stroombaan word vir die sensor gebruik
Stap 8: Koppel die sensor -mezzanine aan die Dragon Board 410c. (gebruik om toegang tot die GPIO te verkry)
Dit is baie belangrik dat hierdie stap uitgevoer word met die draakbord af, as dit nie kan brand nie, behalwe dat al die PIN korrek geplaas moet word.
Stap 9: Koppel die stroombaan van die broodbord aan die tussenverdieping
Stap 10: Skryf of kopieer die kode
#include #include #include // #include
#sluit "libsoc_gpio.h" in
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Hierdie stukkie kode hieronder laat hierdie voorbeeld op alle 96 borde werk */
ongetekende int LED_1; // elektro iman
ongetekende int BUTTON_1; // eerste sensor
ongetekende int BUTTON_2; // tweede sensor ongetekende int BUTTON_3; // sluit ongetekende int BUTTON_4; // derde sensor
struktuur gebruiker {
char gebruikersnaam [20]; char wagwoord [20]; } Gebruiker;
struct Databasis {
char Artikelnaam [20]; char Ligging [20]; } Databasis;
int sensor1;
int sensor2; int sensor3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char gebruikersnaam [50];
char wagwoord [50];
char Ja Nee [40];
LêER *pFILE;
char Ja [20] = {"Ja"};
int hardloop = 1;
_attribute _ ((konstruktor)) statiese leemte _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // vuiste sensor BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // tweede sensor BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // sluit rak BUTTON_4 = libsoc_board_gpio_id (config, "GPIO-B"); // derde sensor // BUTTON_5 = libsoc_board_gpio_id (config, "GPIO-E");
LED_1 = libsoc_board_gpio_id (config, "GPIO-E"); // elektro iman
libsoc_board_free (config); } / * Einde van 96Borde spesiale kode * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; struct Gebruiker Karina; struct Gebruikersbestuurder; strcpy (Karina.gebruikersnaam, "Karina Valverde"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "The Boss"); strcpy (Bestuurder.wagwoord, "ITESM"); struct Databasis Tool; struct Databasis Pen; struct Database Case; strcpy (Tool. Article_Name, "Tool"); struct Databasis Tool; struct Databasis Pen; struct Database Case; strcpy (Tool. Article_Name, "Tool"); strcpy (Pen. Article_Name, "Pen"); strcpy (Case. Article_Name, "Case"); libsoc_set_debug (0); led_1 = libsoc_gpio_request (LED_1, LS_SHARED); button_1 = libsoc_gpio_request (BUTTON_1, LS_SHARED); button_2 = libsoc_gpio_request (BUTTON_2, LS_SHARED); button_3 = libsoc_gpio_request (BUTTON_3, LS_SHARED); button_4 = libsoc_gpio_request (BUTTON_4, LS_SHARED); // button_5 = libsoc_gpio_request (BUTTON_5, LS_SHARED);
as ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))
{misluk; } libsoc_gpio_set_direction (led_1, OUTPUT); libsoc_gpio_set_direction (knoppie_1, INVOER); libsoc_gpio_set_direction (knoppie_2, INVOER); libsoc_gpio_set_direction (knoppie_3, INVOER); libsoc_gpio_set_direction (knoppie_4, INVOER); // libsoc_gpio_set_direction (knoppie_5, INVOER);
as ((libsoc_gpio_get_direction (led_1)! = UITGANG)
|| (libsoc_gpio_get_direction (button_1)! = INVOER) || (libsoc_gpio_get_direction (knoppie_2)! = INVOER) || (libsoc_gpio_get_direction (button_3)! = INVOER) || (libsoc_gpio_get_direction (button_4)! = INVOER)) {misluk; } sensor1 = libsoc_gpio_get_level (knoppie_1); sensor2 = libsoc_gpio_get_level (knoppie_2); sensor3 = libsoc_gpio_get_level (knoppie_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Geleë op rek"); } anders if (sensor1 == 0) {strcpy (Tool. Location, "Nooit in hierdie rek geplaas nie"); } if (sensor2 == 1) {strcpy (Pen. Location, "Geleë op rek"); } anders as (sensor2 == 0) {strcpy (Pen. Location, "Nooit in hierdie rek geplaas nie"); } if (sensor3 == 1) {strcpy (Case. Location, "Geleë op rek"); } anders as (sensor3 == 0) {strcpy (Case. Location, "Nooit in hierdie rek geplaas nie"); } terwyl (hardloop) {libsoc_gpio_set_level (led_1, HOOG); printf ("Gebruikersnaam:"); scanf ("%s", gebruikersnaam); printf ("Voer asseblief wagwoord in:"); scanf ("%s", wagwoord); if (strcmp (gebruikersnaam, "Karina") == 0 && strcmp (wagwoord, "groter") == 0) {libsoc_gpio_set_level (led_1, LOW); libsoc_gpio_set_level (led_1, LOW); terwyl (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (knoppie_2); sensor3 = libsoc_gpio_get_level (knoppie_4); } libsoc_gpio_set_level (led_1, HOOG); if (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } anders as (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Geleë op rek"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } anders as (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Geleë op rek"); }
if (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location, Karina.gebruikersnaam); } anders as (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Geleë op rek"); }} anders if (strcmp (gebruikersnaam, "Baas") == 0 && strcmp (wagwoord, "ITESM") == 0) {printf ("Wil u 'n tekslêer met die databasis genereer? [Ja/Nee] "); scanf ("%s", Ja Nee); if ((strcmp (YesNo, Yes) == 0)) {// Manager_user (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- Rack se databasis ----- / n"); fprintf (pFILE, "%s", "Artikel se naam:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikel se ligging:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Artikel se naam:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikel se ligging:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "Artikel se naam:");
fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikel se ligging:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Toegang geweier / n");
}} misluk: as (led_1 || button_1 || button_2 || button_3) {printf ("pas gpio -bron toe! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (knoppie_1); libsoc_gpio_free (knoppie_2); libsoc_gpio_free (knoppie_3); }
Stap 11: Begin die program
Stap 12: Gevolgtrekkings
Die projek het 'n belowende toekoms, aangesien dit op 'n baie effektiewe manier kan verbeter, kan die sensors vir RFID -etikette verander word, en terselfdertyd met die RFID kan u ID -kaarte gebruik om te monitor wie verantwoordelik is vir die materiaal.
Aanbeveel:
Apple Barcode Graveur (Photonics Hackathon Phablabs): 3 stappe
Apple Barcode Engraver (Photonics Hackathon Phablabs): Hallo almal, As deel van ons Phablabs Photonics -uitdaging is ons gevra om 'n toestel te skep wat plakkers op vrugte kan vervang. Haat u ook vrugteplakkers? En wil u 'n omgewingsvriendelike verandering aanbring? Dan wil ons graag insit
Smart Garden "SmartHorta": 9 stappe
Smart Garden "SmartHorta": Hallo ouens, hierdie instruksies bied die kollege -projek aan van 'n intelligente groentetuin wat outomatiese plantwater gee en deur 'n mobiele app beheer kan word. Die doel van hierdie projek is om kliënte te bedien wat tuis wil plant
Holografiese borde - Photonics Challenger Hackathon PhabLabs: 6 stappe
Holografiese plate - Photonics Challenger Hackathon PhabLabs: Aan die begin van hierdie jaar is ek gevra om deel te neem aan die PhabLabs Photonics Hackathon by die Science Center Delft in Nederland. Hier het hulle 'n wonderlike werkruimte met baie masjiene wat gebruik kan word om iets te skep wat ek normaal vind
"Ready Maker" - Beheer oor die "Lego Power Functions" -projek: 9 stappe
"Ready Maker" - Beheer oor "Lego Power Functions" -projek: Leer hoe om Lego " Power -funksies " komponente met Arduino -bord en bou u projek in die " Ready Maker " redakteur (geen kode nodig nie) om u model op afstand te beheer
SMART VISVOER "DOMOVOY": 5 stappe (met foto's)
SMART VISVOER "DOMOVOY": Die voerder " DOMOVOY " is ontwerp vir die outomatiese voer van akwariumvisse op skedule.Kenmerke: Ontwerp vir outomatiese voeding van akwariumvisse word op die vasgestelde tyd uitgevoer 'n Spesiale algoritme verhoed dat die konfyt gevoer word Parameters kan verander word