
Satura rādītājs:
- 1. solis: materiāli
- 2. darbība: izgrieziet atvilktnes gabalus MDF. (Lai iegūtu labākus rezultātus, izmantojiet lāzera griezēju)
- 3. darbība: ielīmējiet visus gabalus kopā, lai izveidotu atvilktni ar divām mazām atvilktnēm un lielu
- 4. solis: ieskrūvējiet skrūves katra atvilktnes vidū
- 5. solis. Ja urbis izdara caurumus aizmugurē esošajā atvilktnē, caurumam jābūt sensora izmēram
- 6. solis: metiniet katru sensoru CNY 70 ar vara vadiem. (atkārtojiet vēl 4 reizes)
- 7. solis: Sensoram tiek izmantota īpaša ķēde
- 8. darbība. Savienojiet sensora starpstāvu ar Dragon Board 410c. (izmanto, lai piekļūtu GPIO)
- 9. solis: savienojiet ķēdi no maizes dēļa ar starpstāvu
- 10. darbība: uzrakstiet vai kopējiet kodu
- 11. darbība: palaidiet programmu
- 12. darbība. Secinājumi
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Nākamajā dokumentā varat redzēt viedās atvilktnes uzbūves un programmēšanas procesu. Šī atvilktne tika ieprogrammēta Dragon Board 410c, lai uzlabotu pilsētu kvalitāti. Projekts ir daļa no konkursa “viedās pilsētas hakatons Qualcomm 17”.
Šī projekta ideja sākās ar problēmu, ko redz ļoti maz cilvēku, kas ir zaudēta un slikta rīku un materiālu pārvaldība, ko nodrošina tādi uzņēmumi kā rūpnīcas un pat slimnīcas. Šajās vietās strādniekiem tiek nodrošināti daži materiāli un instrumenti, lai veiktu darbības, šis materiāls un instrumenti ir jāizmanto atkārtoti, jo tie ir dārgi vai trūkst ekonomisko resursu to aizstāšanai.
Slimnīcās ir cilvēki, kas pārņem kontroli pār izņemtajiem materiāliem, bet, ja notiek cilvēka iejaukšanās, rodas kļūda, kas var radīt nevajadzīgus izdevumus. Labākais risinājums šai problēmai ir inteliģenta atvilktne, kas spēj uzturēt aizņemto un atdoto objektu uzskaiti un vienlaikus zināt, kurš ir atbildīgais.
1. solis: materiāli
Projektam nepieciešamais materiāls ir šāds: 1 x Dragon Board 410c
1 x sensora starpstāvu 96 dēļi Dragon Board 410c
1 x maizes dēlis
1 x MDF (vidēja blīvuma kokšķiedru plātne) loksne 61 x 122 cm
5 x CNY 70 sensors
1 X PADOMS 31B
1 x elektromagnēts
1 x 7408
1 x tastatūra
1 x ekrāns
3 x skrūves
Pretestības (daudzveidība)
Vara stieples
Līme
Urbis
2. darbība: izgrieziet atvilktnes gabalus MDF. (Lai iegūtu labākus rezultātus, izmantojiet lāzera griezēju)

3. darbība: ielīmējiet visus gabalus kopā, lai izveidotu atvilktni ar divām mazām atvilktnēm un lielu
4. solis: ieskrūvējiet skrūves katra atvilktnes vidū

5. solis. Ja urbis izdara caurumus aizmugurē esošajā atvilktnē, caurumam jābūt sensora izmēram

6. solis: metiniet katru sensoru CNY 70 ar vara vadiem. (atkārtojiet vēl 4 reizes)

7. solis: Sensoram tiek izmantota īpaša ķēde

8. darbība. Savienojiet sensora starpstāvu ar Dragon Board 410c. (izmanto, lai piekļūtu GPIO)

Ir ļoti svarīgi, lai šis solis tiktu veikts ar izslēgtu pūķa dēli, ja ne, tas var sadedzināt, turklāt viss PIN ir jāievada pareizi.
9. solis: savienojiet ķēdi no maizes dēļa ar starpstāvu




10. darbība: uzrakstiet vai kopējiet kodu
#iekļaut #iekļaut #iekļaut // #iekļaut
#include "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Šis zemāk esošais koda bits ļauj šim piemēram darboties visās 96Boards */
unsigned int LED_1; // electro iman
unsigned int BUTTON_1; // pirmais sensors
neparakstīts int BUTTON_2; // otrais sensors neparakstīts int BUTTON_3; // aizveriet neparakstīto int BUTTON_4; // trešais sensors
strukturēts lietotājs {
char lietotājvārds [20]; char parole [20]; } Lietotājs;
strukturālā datu bāze {
char Article_Name [20]; char Atrašanās vieta [20]; } Datu bāze;
int sensors1;
int sensors2; int sensors3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char lietotājvārds [50];
char parole [50];
char JāNē [40];
FILE *pFILE;
char Jā [20] = {"Jā"};
int skriešana = 1;
_attribute _ ((konstruktors)) static void _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (konfigurācija, "GPIO-A"); // dūres sensors BUTTON_2 = libsoc_board_gpio_id (konfigurācija, "GPIO-C"); // otrais sensors BUTTON_3 = libsoc_board_gpio_id (konfigurācija, "GPIO-D"); // aizvērt plauktu BUTTON_4 = libsoc_board_gpio_id (konfigurācija, "GPIO-B"); // trešais sensors // BUTTON_5 = libsoc_board_gpio_id (konfigurācija, "GPIO-E");
LED_1 = libsoc_board_gpio_id (konfigurācija, "GPIO-E"); // electro iman
libsoc_board_free (konfigurācija); } / * 96Boards īpašā koda beigas * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; struk Lietotāja Karīna; strukturēts lietotāja pārvaldnieks; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.parole, "Garāka vertikāla"); strcpy (Manager.username, "The Boss"); strcpy (Manager.parole, "ITESM"); struk Datu bāzes rīks; struk Datu bāzes pildspalva; struk Datu bāzes lieta; strcpy (Tool. Article_Name, "Tool"); struk Datu bāzes rīks; struk Datu bāzes pildspalva; struk Datu bāzes lieta; 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); poga_2 = libsoc_gpio_request (BUTTON_2, LS_SHARED); poga_3 = libsoc_gpio_request (BUTTON_3, LS_SHARED); poga_4 = libsoc_gpio_request (BUTTON_4, LS_SHARED); // poga_5 = libsoc_gpio_request (BUTTON_5, LS_SHARED);
ja ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))
{goto fail; } libsoc_gpio_set_direction (led_1, OUTPUT); libsoc_gpio_set_direction (button_1, INPUT); libsoc_gpio_set_direction (button_2, INPUT); libsoc_gpio_set_direction (button_3, INPUT); libsoc_gpio_set_direction (button_4, INPUT); // libsoc_gpio_set_direction (button_5, INPUT);
ja ((libsoc_gpio_get_direction (led_1)! = OUTPUT)
|| (libsoc_gpio_get_direction (button_1)! = INPUT) || (libsoc_gpio_get_direction (button_2)! = INPUT) || (libsoc_gpio_get_direction (button_3)! = INPUT) || (libsoc_gpio_get_direction (button_4)! = INPUT)) {goto fail; } sensors1 = libsoc_gpio_get_level (button_1); sensors2 = libsoc_gpio_get_level (poga_2); sensors3 = libsoc_gpio_get_level (poga_4); sensor1_last_state = sensors1; sensor2_last_state = sensors2; sensor3_last_state = sensors3; if (sensors1 == 1) {strcpy (Tool. Location, "Atrodas uz plaukta"); } cits if (sensors1 == 0) {strcpy (Tool. Location, "Nekad nav ievietots šajā statīvā"); } ja (sensors2 == 1) {strcpy (Pen. Location, "Atrodas uz plaukta"); } cits if (sensors2 == 0) {strcpy (Pen. Location, "Nekad nav ievietots šajā statīvā"); } ja (sensors3 == 1) {strcpy (Case. Location, "Atrodas uz plaukta"); } cits if (sensors3 == 0) {strcpy (Case. Location, "Nekad nav ievietots šajā statīvā"); } kamēr (darbojas) {libsoc_gpio_set_level (led_1, HIGH); printf ("Lūdzu, ievadiet lietotājvārdu:"); scanf ("%s", lietotājvārds); printf ("Lūdzu ievadiet paroli:"); scanf ("%s", parole); if (strcmp (lietotājvārds, "Karina") == 0 && strcmp (parole, "Taller") == 0) {libsoc_gpio_set_level (led_1, LOW); libsoc_gpio_set_level (led_1, LOW); while (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (button_1); sensors2 = libsoc_gpio_get_level (poga_2); sensors3 = libsoc_gpio_get_level (poga_4); } libsoc_gpio_set_level (led_1, HIGH); if (sensors1 == 1 && sensors1! = sensors1_pēdējā_valsts) {strcpy (Tool. Location, Karina.username); } cits if (sensors1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Atrodas uz plaukta"); } if (sensors2 == 1 && sensors2! = sensors2_pēdējā_valsts) {strcpy (Pen. Location, Karina.username); } cits if (sensors2 == 0 && sensor2! = sensors2_last_state) {strcpy (Pen. Location, "Atrodas uz plaukta"); }
ja (sensors3 == 1 && sensors3! = sensors3_laiks_valsts) {
strcpy (Case. Location, Karina.username); } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Atrodas uz plaukta"); }} cits if (strcmp (lietotājvārds, "priekšnieks") == 0 && strcmp (parole, "ITESM") == 0) {printf ("Vai vēlaties izveidot teksta failu ar datu bāzi? [Jā/Nē] "); scanf ("%s", JāNē); if ((strcmp (JāNē, Jā) == 0)) {// Pārvaldnieka_lietotājs (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- Rack datu bāze ----- / n"); fprintf (pFILE, "%s", "Raksta nosaukums:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Raksta atrašanās vieta:"); fprintf (pFILE, "%s", rīks. atrašanās vieta); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Raksta nosaukums:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Raksta atrašanās vieta:"); fprintf (pFILE, "%s", pildspalva. atrašanās vieta); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "Raksta nosaukums:");
fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Raksta atrašanās vieta:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Piekļuve liegta / n");
}} neizdoties: if (led_1 || button_1 || button_2 || button_3) {printf ("Apply gpio resource fail! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (poga_1); libsoc_gpio_free (poga_2); libsoc_gpio_free (poga_3); }
11. darbība: palaidiet programmu
12. darbība. Secinājumi
Projektam ir daudzsološa nākotne, jo to var uzlabot ļoti efektīvi, sensorus var nomainīt pret RFID tagiem, un vienlaikus ar RFID ir iespējams izmantot ID kartes, lai uzraudzītu, kurš ir atbildīgs par materiālu.
Ieteicams:
Apple svītrkodu gravieris (fotonika Hackathon Phablabs): 3 soļi

Apple svītrkodu gravieris (Photonics Hackathon Phablabs): Sveiki visiem! Kā daļu no mūsu Phablabs Photonics izaicinājuma mums tika lūgts izveidot ierīci, kas spēj aizstāt uzlīmes uz augļiem. Vai jūs arī ienīst augļu uzlīmes? Un vai jūs vēlētos veikt videi draudzīgas izmaiņas? Tad mēs vēlētos uzzināt
Slepena atvilktne: 4 soļi

Slepena atvilktne: Mani vienmēr fascinēja slepenās telpas vai slēptās atvilktnes. Tas ir iemesls, kāpēc kādu dienu pēc Betmena filmas noskatīšanās es nolēmu izveidot savu slēpto atvilktni. Šis projekts sastāv no krūšu kurvja ar slepenu pogu, kuru varat ievietot visur
Hologrāfiskās plāksnes - fotonikas izaicinātājs Hackathon PhabLabs: 6 soļi

Hologrāfiskās plāksnes - Photonics Challenger Hackathon PhabLabs: Šī gada sākumā man tika lūgts piedalīties PhabLabs Photonics Hackathon zinātnes centrā Delft Nīderlandē. Šeit viņiem ir lieliska darbvieta ar daudzām mašīnām, kuras varētu izmantot, lai izveidotu kaut ko tādu, kas man ir normāli
Slepenā nodalījuma mini atvilktne: 5 soļi

Slepena nodalījuma mini atvilktne: Šī pamācība parādīs, kā es izveidoju atvilktņu skapi ar slepenu nodalījumu. Es galvenokārt izmantos sīkas detaļas, lai aprakstītu manis veiktās darbības
HC - 06 (vergu modulis) Nosaukuma "NAME" nomaiņa, neizmantojot "Monitor Serial Arduino" kas "darbojas viegli": nevainojams veids!: 3 soļi

HC - 06 (vergu modulis) Nosaukuma "NAME" maiņa bez lietošanas "Monitor Serial Arduino" … kas "darbojas viegli": nevainojams veids!: Pēc " Ilgi " mēģinot mainīt nosaukumu uz HC -06 (vergu modulis), izmantojot " Arduino sērijas monitors, bez " Veiksmi ", es atradu citu vienkāršu veidu, un es tagad kopīgošu! Izklaidējieties, draugi