فهرست مطالب:
- مرحله 1: مواد
- مرحله 2: قطعات کشو را در MDF برش دهید. (برای نتایج بهتر از لیزر برش استفاده کنید)
- مرحله 3: همه قطعات را بچسبانید تا یک کشو با دو کشو کوچک و یک کش بزرگ ایجاد کنید
- مرحله 4: پیچ ها را در وسط هر کشو پیچ کنید
- مرحله 5: با استفاده از مته سوراخی در کشو در قسمت عقب ، سوراخ باید به اندازه سنسور باشد
- مرحله 6: هر سنسور CNY 70 را با سیم های مسی جوش دهید. (4 بار بیشتر تکرار کنید)
- مرحله 7: از یک مدار ویژه برای سنسور استفاده می شود
- مرحله 8: سنسور میزانسن را به Dragon Board 410c وصل کنید. (برای دسترسی به GPIO استفاده می شود)
- مرحله 9: مدار را از تخته نان به مزونین وصل کنید
- مرحله 10: کد را بنویسید یا کپی کنید
- مرحله 11: برنامه را اجرا کنید
- مرحله 12: نتیجه گیری
تصویری: کشوی موجودی "شهرهای هوشمند Hackathon Qualcomm17": 13 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
در سند بعدی می توانید روند ساخت و برنامه نویسی کشوی هوشمند را مشاهده کنید. این کشو با هدف ارتقاء کیفیت شهرها در Dragon Board 410c برنامه ریزی شده است. این پروژه بخشی از مسابقه "شهرهای هوشمند hackathon Qualcomm 17" است.
ایده این پروژه با مشکلی شروع شد که افراد کمی آن را می بینند ، یعنی مدیریت گم شده و بد ابزارها و موادی که توسط شرکت هایی مانند کارخانه ها و حتی بیمارستان ها ارائه می شود. در این مکانها ، برخی مواد و ابزار برای انجام فعالیتها در اختیار کارگران قرار می گیرد ، این مواد و ابزارها باید مجدداً مورد استفاده قرار گیرند زیرا گران هستند یا کمبود منابع اقتصادی برای جایگزینی آنها وجود دارد.
در بیمارستانها افرادی هستند که کنترل مواد حذف شده را در دست می گیرند ، اما وقتی مداخله انسانی وجود دارد خطایی رخ می دهد که می تواند منجر به هزینه های غیر ضروری شود. بهترین راه حل برای این مشکل کشوی هوشمندی است که می تواند موجودی اشیایی را که قرض گرفته و پس داده شده اند نگهداری کند و در عین حال بداند مسئول چه کسی است.
مرحله 1: مواد
مواد مورد نیاز برای پروژه بعدی است: 1 x Dragon Board 410c
1 عدد Sensor Mezzanine 96 برد برای Dragon Board 410c
1 عدد تخته نان
1 x MDF (تخته فیبر با چگالی متوسط) ورق 61 در 122 سانتی متر
سنسور 5 x CNY 70
1 X TIP31B
1 برابر الکترومغناطیس
1 7 7408
1 عدد صفحه کلید
صفحه نمایش 1 x
3 عدد پیچ
مقاومت ها (تنوع)
سیمهای مسی
چسب
مته
مرحله 2: قطعات کشو را در MDF برش دهید. (برای نتایج بهتر از لیزر برش استفاده کنید)
مرحله 3: همه قطعات را بچسبانید تا یک کشو با دو کشو کوچک و یک کش بزرگ ایجاد کنید
مرحله 4: پیچ ها را در وسط هر کشو پیچ کنید
مرحله 5: با استفاده از مته سوراخی در کشو در قسمت عقب ، سوراخ باید به اندازه سنسور باشد
مرحله 6: هر سنسور CNY 70 را با سیم های مسی جوش دهید. (4 بار بیشتر تکرار کنید)
مرحله 7: از یک مدار ویژه برای سنسور استفاده می شود
مرحله 8: سنسور میزانسن را به Dragon Board 410c وصل کنید. (برای دسترسی به GPIO استفاده می شود)
بسیار مهم است که این مرحله با برد اژدها خاموش انجام شود ، در غیر این صورت می تواند بسوزد ، علاوه بر این همه PIN باید به درستی قرار گیرد.
مرحله 9: مدار را از تخته نان به مزونین وصل کنید
مرحله 10: کد را بنویسید یا کپی کنید
#شامل #شامل #شامل #شامل // #شامل
#شامل "libsoc_gpio.h"
#شامل "libsoc_debug.h" #شامل "libsoc_board.h"
/ * این بیت کد زیر باعث می شود این مثال روی همه 96Boards کار کند */
بدون LED int_1؛ // الکترو ایمان
unsigned int BUTTON_1؛ // اولین سنسور
unsigned int BUTTON_2 ؛ // سنسور دوم unsigned int BUTTON_3 ؛ // بستن unsigned int BUTTON_4 ؛ // سنسور سوم
ساختار کاربر {
نام کاربری char [20]؛ رمز عبور char [20]؛ }کاربر؛
ساختار پایگاه داده {
char نام مقاله [20]؛ char محل [20]؛ } پایگاه داده ؛
حسگر int1؛
سنسور int2؛ int sensor3؛
int sensor1_last_state؛
int sensor2_last_state؛ int sensor3_last_state؛
نام کاربری char [50]؛
رمز عبور char [50]؛
char YesNo [40]؛
FILE *pFILE؛
char بله [20] = {"Yes"}؛
int در حال اجرا = 1؛
_tribute _ ((سازنده)) void static _init ()
{board_config *config = libsoc_board_init ()؛ BUTTON_1 = libsoc_board_gpio_id (پیکربندی ، "GPIO-A") ؛ // حسگر مشت BUTTON_2 = libsoc_board_gpio_id (پیکربندی ، "GPIO-C") ؛ // سنسور دوم BUTTON_3 = libsoc_board_gpio_id (پیکربندی ، "GPIO-D") ؛ // بستن قفسه BUTTON_4 = libsoc_board_gpio_id (پیکربندی ، "GPIO-B") ؛ // حسگر سوم // BUTTON_5 = libsoc_board_gpio_id (پیکربندی ، "GPIO-E") ؛
LED_1 = libsoc_board_gpio_id (پیکربندی ، "GPIO-E") ؛ // الکترو ایمان
libsoc_board_free (پیکربندی) ؛ } / * پایان کد ویژه 96Boards * /
int main ()
{gpio *led_1 ، *button_1 ، *button_2 ، *button_3 ، *button_4 ؛ // int touch؛ struct User Karina؛ ساختار مدیریت کاربر ؛ strcpy (Karina.username، "Karina Valverde")؛ strcpy (Karina.password ، "بلندتر عمودی") ؛ strcpy (Manager.username ، "رئیس") ؛ strcpy (Manager.password ، "ITESM") ؛ ساختار پایگاه داده؛ ساختار قلم پایگاه داده ؛ ساختار پایگاه داده مورد؛ strcpy (Tool. Article_Name ، "Tool") ؛ ساختار پایگاه داده؛ ساختار قلم پایگاه داده ؛ ساختار پایگاه داده مورد؛ 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) ؛
if ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))
{شکست خوردن ؛ } 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) ؛
if ((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؛ } sensor1 = libsoc_gpio_get_level (button_1) ؛ sensor2 = libsoc_gpio_get_level (button_2) ؛ sensor3 = libsoc_gpio_get_level (button_4) ؛ sensor1_last_state = sensor1؛ sensor2_last_state = sensor2؛ sensor3_last_state = sensor3؛ if (sensor1 == 1) {strcpy (Tool. Location ، "واقع در رک") ؛ } else if (sensor1 == 0) {strcpy (Tool. Location ، "هرگز در این رک قرار داده نشده است") ؛ } if (sensor2 == 1) {strcpy (Pen. Location ، "واقع در رک") ؛ } else if (sensor2 == 0) {strcpy (Pen. Location ، "هرگز در این رک قرار داده نشده است") ؛ } if (sensor3 == 1) {strcpy (Case. Location ، "واقع در رک") ؛ } else if (sensor3 == 0) {strcpy (Case. Location ، "هرگز در این رک قرار داده نشده است")؛ } هنگام (در حال اجرا) {libsoc_gpio_set_level (led_1، HIGH)؛ printf ("لطفا نام کاربری را وارد کنید:")؛ scanf ("٪ s" ، نام کاربری) ؛ printf ("لطفاً رمز ورود را وارد کنید:")؛ scanf ("٪ s" ، رمز عبور) ؛ if (strcmp (نام کاربری ، "Karina") == 0 && strcmp (گذرواژه ، "بلندتر") == 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) ؛ sensor2 = libsoc_gpio_get_level (button_2) ؛ sensor3 = libsoc_gpio_get_level (button_4) ؛ } libsoc_gpio_set_level (led_1 ، HIGH) ؛ if (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location ، Karina.username) ؛ } else if (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location ، "واقع در رک") ؛ } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location ، Karina.username) ؛ } else if (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (مکان Pen، "واقع در رک")؛ }
if (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location ، Karina.username) ؛ } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location ، "واقع در رک") ؛ }} else if (strcmp (نام کاربری ، "رئیس") == 0 && strcmp (گذرواژه ، "ITESM") == 0) {printf ("آیا می خواهید یک فایل متنی با پایگاه داده ایجاد کنید؟ [بله/خیر] ")؛ scanf ("٪ s" ، YesNo)؛ if ((strcmp (YesNo، Yes) == 0)) {// Manager_user (pFILE)؛ pFILE = fopen ("Database.txt" ، "w") ؛ fprintf (pFILE ، "٪ s" ، "-------- پایگاه داده Rack ----- / n") ؛ fprintf (pFILE ، "٪ s" ، "نام مقاله:") ؛ fprintf (pFILE ، "٪ s" ، Tool. Article_Name) ؛ fprintf (pFILE ، "٪ s" ، "\ t") ؛ fprintf (pFILE ، "٪ s" ، "محل مقاله:") ؛ fprintf (pFILE ، "٪ s" ، Tool. Location) ؛ fprintf (pFILE ، "٪ s" ، "\ n") ؛ fprintf (pFILE ، "٪ s" ، "نام مقاله:") ؛ fprintf (pFILE ، "٪ s" ، Pen. Article_Name) ؛ fprintf (pFILE ، "٪ s" ، "\ t") ؛ fprintf (pFILE ، "٪ s" ، "محل مقاله:") ؛ fprintf (pFILE ، "٪ s" ، Pen. Location) ؛ fprintf (pFILE ، "٪ s" ، "\ n") ؛
fprintf (pFILE ، "٪ s" ، "نام مقاله:") ؛
fprintf (pFILE ، "٪ s" ، Case. Article_Name) ؛ fprintf (pFILE ، "٪ s" ، "\ t") ؛ fprintf (pFILE ، "٪ s" ، "محل مقاله:") ؛ fprintf (pFILE ، "٪ s" ، Case. Location) ؛ fprintf (pFILE ، "٪ s" ، "\ n") ؛
fclose (pFILE) ؛
}
printf ("دسترسی ممنوع / n")؛
}} fail: if (led_1 || button_1 || button_2 || button_3) {printf ("اعمال منبع gpio fail! / n")؛ libsoc_gpio_free (led_1) ؛ libsoc_gpio_free (button_1) ؛ libsoc_gpio_free (button_2) ؛ libsoc_gpio_free (دکمه_3) ؛ }
مرحله 11: برنامه را اجرا کنید
مرحله 12: نتیجه گیری
این پروژه آینده ای امیدوارکننده دارد ، زیرا می تواند به طرز بسیار موثری بهبود یابد ، سنسورها را می توان برای برچسب های RFID´S تغییر داد و همزمان با RFID می توان از کارت های شناسایی برای نظارت بر مسئولیت مواد استفاده کرد.
توصیه شده:
صورتحساب صورت حساب و سیستم کنترل موجودی: 3 مرحله
سیستم صورتحساب صورتحساب و کنترل موجودی: با استفاده از این دستورالعمل ، به شما ایده ای برای ایجاد یک سیستم کنترل فاکتور و موجودی می دهم. با استفاده از دسترسی به MS. این بسیار آسان است و نیازی به دانش رایانه یا برنامه نویسی بیشتر نیست. اگر شما دانش اولیه از خانم دسترسی ، جداول. فرمها و گزارشات
کشوی مخفی: 4 مرحله
کشوی مخفی: من همیشه شیفته اتاق های مخفی یا کشوهای مخفی بودم. به همین دلیل است که تصمیم گرفتم یک روز پس از تماشای فیلم بتمن کشوی مخفی خود را بسازم. این پروژه شامل یک نیم تنه با یک دکمه مخفی است که می توانید در همه جا در آن قرار دهید
سیستم مدیریت موجودی یکپارچه: 10 مرحله (همراه با تصاویر)
سیستم مدیریت موجودی یکپارچه: من همیشه می خواستم راهی مقرون به صرفه برای پیگیری همه چیز در انبار خانه خود داشته باشم ، بنابراین چند ماه پیش کار روی پروژه ای را شروع کردم که دقیقاً این کار را انجام می داد. هدف ایجاد یک سیستم ساده و مقرون به صرفه بود که استفاده از آن بسیار آسان و در عین حال ذخیره سازی
مینی کشوی محفظه مخفی: 5 مرحله
مخزن کوچک محفظه مخفی: این دستورالعمل به شما نشان می دهد که چگونه یک کمد کشویی با یک محفظه مخفی ساخته ام. من عمدتا از جزئیات کوچک برای توصیف اقدامات انجام شده استفاده خواهم کرد
تابلوی موجودی خود را بسازید (و در راه Wii Fit باشید): 6 مرحله
تابلوی تعادل خود را بسازید (و در راه Wii Fit باشید): Balance Board یا BalanceTile (به قول خودمان) را به عنوان واسط برای بازیهای مختلف و تمرینات آمادگی جسمانی ، با استفاده از فناوری I-CubeX بسازید. برنامه خود را طراحی کنید و از Wii Fit فراتر بروید! این ویدئو یک مرور کلی و