NLP و کامپیوتر بصری یکپارچه

NLP و کامپیوتر بصری یکپارچه

ادغام و بین رشته ای سنگ بنای علم و صنعت مدرن هستند. یکی از نمونه های تلاش های اخیر برای ترکیب همه چیز ، ادغام بینایی رایانه و پردازش زبان طبیعی (NLP) است. هر دوی این زمینه ها یکی از فعال ترین مناطق تحقیقاتی یادگیری ماشین هستند. با این حال ، تا همین اواخر ، آنها به عنوان مناطق جداگانه بدون راههای زیادی برای بهره مندی از یکدیگر رفتار می شدند. در حال حاضر ، با گسترش چند رسانه ای ، محققان بررسی امکان استفاده از هر دو رویکرد برای دستیابی به یک نتیجه را آغاز کرده اند. استخراج و تجزیه و تحلیل اطلاعات از منابع مختلف. این مطابق با نظریه نشانه شناسی است (گرینلی 1978) - مطالعه روابط بین علائم و معانی آنها در سطوح مختلف. نشانه شناسی رابطه بین علائم و معنا ، روابط رسمی بین نشانه ها (تقریباً معادل نحو) و نحوه تفسیر علائم توسط افراد بسته به زمینه (عملگرایی در نظریه زبانی) را مطالعه می کند. اگر نشانه های کاملاً بصری را در نظر بگیریم ، این نتیجه می شود که می توان با دید رایانه ای به نشانه شناسی نیز نزدیک شد و علائم جالبی را برای پردازش زبان طبیعی استخراج کرد تا معانی متناظر را متوجه شود.

بینایی رایانه ای و ارتباط آن با NLP

مالک وظایف Computer Vision را در 3R خلاصه می کند (Malik و همکاران 2016): بازسازی ، تشخیص و سازماندهی مجدد.

بازسازی به برآورد یک صحنه سه بعدی اشاره دارد که باعث ایجاد یک تصویر بصری خاص شده است. با ترکیب اطلاعات از نماهای متعدد ، سایه ، بافت یا حسگرهای عمق مستقیم. این فرایند به یک مدل سه بعدی مانند ابرهای نقطه ای یا تصاویر عمیق منجر می شود.

تشخیص شامل اختصاص برچسب به اشیاء در تصویر است. برای اشیاء دو بعدی ، نمونه های تشخیص عبارتند از دست خط یا تشخیص چهره ، و کارهای سه بعدی با مشکلاتی مانند تشخیص اشیا از ابرهای نقطه ای که به دستکاری روباتیک کمک می کند ، برخورد می کنند.

سازماندهی مجدد به معنای بینایی از پایین به بالا است ، زمانی که پیکسل های خام به بخش هایی تقسیم می شوند. گروه هایی که نمایانگر ساختار یک تصویر هستند. وظایف بینایی سطح پایین شامل تشخیص لبه ، خطوط و گوشه است ، در حالی که وظایف سطح بالا شامل تقسیم بندی معنایی است که تا حدی با وظایف تشخیص همپوشانی دارد.

این شناخت بیشترین ارتباط را با زبان دارد زیرا دارای خروجی است که می تواند به عنوان کلمات تفسیر شود. به عنوان مثال ، اشیاء را می توان با اسم ، فعالیتها را بر فعلها و ویژگیهای شی را با صفات نشان داد. از این نظر ، بینایی و زبان با استفاده از بازنمایی های معنایی به هم متصل می شوند (Gardenfors 2014 ؛ Gupta 2009). در مقایسه با بینایی رایانه ای و از نحو ، شامل ریخت شناسی و ترکیب بندی ، معناشناسی به عنوان مطالعه معنا ، شامل روابط بین کلمات ، عبارات ، جملات و گفتمان ها ، تا عمل گرایی ، مطالعه سایه های معنا ، در سطح ارتباط طبیعی است.

برخی از کارهای پیچیده در NLP شامل ترجمه ماشینی ، رابط گفتگو ، استخراج اطلاعات و خلاصه سازی است.

اعتقاد بر این است که تغییر تصویر از کلمات نزدیکترین به ترجمه ماشینی است. با این حال ، چنین "ترجمه" بین پیکسل های سطح پایین یا خطوط تصویر و توصیف سطح بالا در کلمات یا جملات-وظیفه ای که به عنوان پل شکاف معنایی شناخته می شود (ژائو و گروسکی 2002)-یک شکاف گسترده برایمتقاطع.

حوزه ادغام بینایی رایانه ای و NLP

ادغام بینایی و زبان به صورت عمدی از بالا به پایین بدون مشکل انجام نمی شد ، جایی که محققان مجموعه ای از اصول. تکنیک های یکپارچه از پایین به بالا توسعه یافتند ، زیرا برخی از پیشگامان مشکلات مشخص و باریک را شناسایی کردند ، چندین راه حل را امتحان کردند و نتیجه رضایت بخشی یافتند.

مسیر جدید با درک این نکته که اکثر فایل های امروزی چند رسانه ای ، که شامل تصاویر ، فیلم ها و متون به زبان طبیعی است. برای مثال ، یک مقاله خبری معمولی حاوی نوشته ای توسط یک روزنامه نگار و عکس مربوط به محتوای خبری است. علاوه بر این ، ممکن است یک ویدئوی کلیپی وجود داشته باشد که حاوی یک گزارشگر یا تصویر لحظه ای از صحنه ای باشد که رویداد در خبر رخ داده است. داده های زبانی و تصویری دو مجموعه اطلاعات را ارائه می دهد که در یک داستان واحد ترکیب شده و زمینه را برای ارتباط مناسب و بدون ابهام فراهم می کند. در کار با فایل های چند رسانه ای ، بلکه در زمینه های رباتیک ، ترجمه های بصری و معانی توزیعی.

فایل های چند رسانه ای

وظایف مربوط به چند رسانه ای برای NLP و بینایی رایانه ای در سه بخش اصلی قرار می گیرد. دسته ها: توصیف خواص بصری ، توصیف بصری و بازیابی بصری.

< p> توصیف ویژگیهای بصری: یک مرحله فراتر از طبقه بندی ، رویکرد توصیفی با اختصاص ویژگیها ، ویژگیهای شی را خلاصه می کند. چنین ویژگیهایی ممکن است هم ارزشهای دوتایی برای خواصی باشند که به راحتی قابل تشخیص هستند و هم ویژگیهای نسبی که با کمک یک چارچوب یادگیری-رتبه بندی یک ویژگی را توصیف می کنند. نکته اصلی این است که ویژگی ها مجموعه ای از زمینه ها را به عنوان منبع دانش برای تشخیص یک شیء خاص با ویژگی های آن ارائه می دهند. کلمات ویژگی به نمایشی متوسط ​​تبدیل می شوند که به پل شکاف معنایی بین فضای بصری و فضای برچسب کمک می کند.

توصیف بصری: در زندگی واقعی ، وظیفه توصیف بصری ارائه تصویر یا ویدئو است. اعتقاد بر این است که جملات توصیف آموزنده تری از یک تصویر ارائه می دهند تا یک کلمه از کلمات بی نظم. برای ایجاد جمله ای که یک تصویر را توصیف می کند ، باید مقدار مشخصی از اطلاعات بصری سطح پایین را استخراج کرد که اطلاعات اساسی "چه کسی با چه کسی و کجا و چگونه آن را انجام داد" را ارائه می دهد. از دیدگاه بخشی از گفتار ، چهارقلوهای "اسم ها ، افعال ، صحنه ها ، حروف اضافه" می توانند نشان دهنده معنی استخراج شده از آشکارسازهای بصری باشند. ماژول های بصری اشیائی را استخراج می کنند که در جمله یا فاعل یا شیء هستند. سپس از یک مدل مارکوف پنهان برای رمزگشایی محتمل ترین جمله از مجموعه ای از چهارقلوهای نامحدود به همراه تعدادی از پیشگامان راهنمای پیکر برای پیش بینی فعل و صحنه (حرف اضافه) استفاده می شود. این معنا با استفاده از اشیاء (اسم) ، ویژگی های بصری (صفت) و روابط فضایی (حروف اضافه) نشان داده می شود. سپس این جمله با استفاده از تکنیک ترکیب ترکیب با استفاده از n-gram در مقیاس وب برای تعیین احتمالات تولید می شود.

بازیابی بصری: بازیابی تصویر مبتنی بر محتوا (CBIR) یکی دیگر از زمینه های چند رسانه ای است که از زبان استفاده می کند. در قالب رشته ها یا مفاهیم پرس و جو. به عنوان یک قاعده ، تصاویر با ویژگی های سطح پایین مانند رنگ ، شکل و بافت نمایه می شوند. سیستم های CBIR سعی می کنند یک ناحیه تصویر را با a حاشیه نویسی کنندکلمه ، شبیه به تقسیم بندی معنایی ، بنابراین برچسب های کلیدواژه به تفسیر انسان نزدیک است. سیستم های CBIR از کلمات کلیدی برای توصیف یک تصویر برای بازیابی تصویر استفاده می کنند ، اما ویژگی های بصری یک تصویر را برای درک تصویر توصیف می کنند. با این وجود ، ویژگی های بصری یک لایه میانی مناسب برای CBIR با تطبیق با حوزه موردنظر فراهم می کند.

رباتیک

روباتیک بینایی: روبات ها باید محیط خود را از بیش از یک روش تعامل درک کنند به همانند انسان هایی که با استفاده از دانش خود در مورد اشیاء در قالب کلمات ، عبارات و جملات ، ورودی های ادراکی را پردازش می کنند ، روبات ها نیز باید تصور خود را با زبان ادغام کنند تا اطلاعات مربوط به اشیاء ، صحنه ها ، اقدامات یا رویدادهای موجود در آن را بدست آورند. دنیای واقعی ، آنها را درک کرده و اقدام مربوطه را انجام دهید. به عنوان مثال ، اگر یک شیء دور باشد ، یک اپراتور انسانی ممکن است به صورت شفاهی اقدامی را برای رسیدن به دیدگاه روشن تر درخواست کند. وظایف Robotics Vision مربوط به این است که چگونه یک روبات می تواند با استفاده از حسگرهای سخت افزاری مانند دوربین عمق یا دوربین حرکتی ، دنباله هایی از اقدامات را روی اشیا انجام دهد تا محیط واقعی را دستکاری کند.

< p> زبان موقعیتی: روباتها برای توصیف جهان فیزیکی و درک محیط خود از زبانها استفاده می کنند. علاوه بر این ، زبان گفتاری و حرکات طبیعی راه راحت تری برای تعامل با یک روبات برای انسان است ، در صورتی که روبات برای درک این شیوه تعامل آموزش دیده باشد. از دیدگاه انسان ، این روش تعامل طبیعی تر است. بنابراین ، یک روبات باید بتواند اطلاعات را از درک متنی خود با استفاده از ساختارهای معنایی درک و تبدیل کند. معروف ترین رویکرد برای بازنمایی معنا تجزیه معنایی است که کلمات را به محمولات منطقی تبدیل می کند. SP سعی می کند یک جمله زبان طبیعی را به نمایش معنای متناظر که می تواند یک شکل منطقی مانند λ-calculus با استفاده از گرامر طبقه بندی ترکیبی (CCG) به عنوان قواعدی برای ساخت ترکیبی درخت تجزیه باشد ، ترسیم کند.

معناشناسی توزیعی

مدلهای معناشناسی توزیع چندوجهی اولیه: ایده ای که در مدلهای معناشناسی توزیعی وجود دارد این است که کلمات در زمینه های مشابه باید دارای معنای مشابه باشند ، بنابراین ، معنی کلمه را می توان از آمار همزمان بین کلمات و زمینه هایی که در آنها ظاهر می شود ، بازیابی کرد. اعتقاد بر این است که این روش در بینایی رایانه و پردازش زبان طبیعی به عنوان جاسازی تصویر و جاسازی کلمه مفید است. DSM ها برای مدل سازی معنایی مشترک بر اساس هر دو ویژگی بصری مانند رنگ ، شکل یا بافت و ویژگی های متنی مانند کلمات استفاده می شوند. خط متداول این است که داده های بصری را روی کلمات ترسیم کرده و مدلهای معناشناسی توزیعی مانند LSA یا مدلهای موضوعی را در بالای آنها اعمال کنید. ویژگیهای بصری می توانند ویژگیهای زبانی مدل معناشناسی توزیعی را تقریبی کنند.

مدلهای معناشناسی توزیع چندوجهی عصبی: مدلهای عصبی با یادگیری توزیع بهتر داده ها از بسیاری از روشهای سنتی در بینایی و زبانی پیشی گرفته اند. به عنوان مثال ، ماشینهای Multimodal Deep Boltzmann می توانند ویژگیهای بصری و متنی مشترک را بهتر از مدلهای موضوعی مدل کنند. علاوه بر این ، مدل های عصبی می توانند برخی از پدیده های قابل قبول شناختی مانند توجه و حافظه را الگو قرار دهند. برای توجه ، یک تصویر در ابتدا می تواند با استفاده از CNN وRNN ها یک شبکه LSTM را می توان در بالای صفحه قرار داد و مانند یک ماشین حالت دهنده عمل کرد که همزمان خروجی هایی تولید می کند ، مانند زیرنویس های تصویر یا به طور همزمان به مناطق مورد علاقه در یک تصویر نگاه می کند. برای حافظه ، دانش عمومی در پاسخ به س visualالات بصری

آینده ادغام NLP و بینایی رایانه

در صورت ترکیب ، دو وظیفه می تواند تعدادی از مشکلات طولانی مدت را در زمینه های مختلف حل کند ، از جمله:

طراحی: در زمینه طراحی خانه ، لباس ، جواهرات یا اقلام مشابه ، مشتری می تواند الزامات را به صورت شفاهی یا کتبی توضیح دهد و این توصیف را می توان برای تجسم بهتر به طور خودکار به تصاویر تبدیل کرد. . شرح تصاویر پزشکی: بینایی رایانه ای را می توان برای شناسایی مشکلات ظریف تر و مشاهده تصویر با جزئیات بیشتر در مقایسه با متخصصان انسانی آموزش دید. تبدیل زبان اشاره به گفتار یا متن برای کمک افراد کم شنوا و اطمینان از ادغام بهتر آنها در جامعه. ساختن سیستمی که محیط اطراف را ببیند و در مورد آن توضیحات گفتاری ارائه دهد ، توسط افراد نابینا قابل استفاده است. ساخت سیستم ها که می تواند محتوای گفتاری را به شکل برخی از تصاویر تبدیل کند ch ممکن است تا حدی به افرادی که توانایی گفتار و شنوایی ندارند کمک کند.

با این حال ، از آنجا که ادغام بینایی و زبان یک مشکل اساسی شناختی است ، تحقیقات در این زمینه باید علوم شناختی را در نظر بگیرد که ممکن است بینش هایی را در مورد نحوه پردازش انسان ها به صورت کلی محتوای بصری و متنی و ایجاد داستان ارائه دهد. بر اساس آن.

منابع:

گوردنفورس ، ص. 2014. هندسه معنا: معناشناسی بر اساس فضاهای مفهومی. مطبوعات MIT.

گرینلی ، دی . 1978. نشانه شناسی و معنی. Int گل میخ فلسفه 10 (1978) ، 251-254.

گوپتا ، A. 2009. فراتر از اسمها و افعال. (2009).

مالک ، J. ، Arbeláez ، P. ، Carreira، J.، Fragkiadaki، K.، Girshick، R.، Gkioxari، G.، Gupta، S.، Hariharan، B. ، Kar ، A. و Tulsiani ، S. 2016. سه Rs بینایی رایانه ای: بازشناسی ، بازسازی و سازماندهی مجدد. تشخیص الگو.

شوکلا ، دی ، دسای A.A. یکپارچه سازی بینایی رایانه ای و پردازش زبان طبیعی: مسائل و چالش ها. مجله علم و فناوری VNSGU جلد. 4 ، №1 ، ص. 190–196.

Wiriyathammabhum، P.، Stay، D.S.، Fermüller C.، Aloimonos، Y. Computer Computer and Processing Natural Language Processing: Recent Approaches in Multimedia and Robotics. نظرسنجی های محاسباتی ACM 49 (4): 1–44

مبانی آدرس های IP در شبکه های کامپیوتری

مبانی آدرس های IP در شبکه های کامپیوتری

هر دستگاه متصل به اینترنت دارای یک شناسه منحصر به فرد است. امروزه اکثر شبکه ها ، از جمله تمام رایانه های موجود در اینترنت ، از TCP/IP به عنوان استانداردی برای برقراری ارتباط در شبکه استفاده می کنند. در پروتکل TCP/IP ، این شناسه منحصر به فرد آدرس IP است. دو نوع آدرس IP عبارتند از: IPv4 و IPv6. آدرس IPv4 با چهار عدد که با نقطه از هم جدا شده اند بیان می شود. هر عدد نمایندگی اعشاری (پایه 10) برای یک عدد باینری هشت رقمی (پایه 2) است که به آن اکتت نیز گفته می شود.

IPv6 از 128 بیت دودویی برای ایجاد یک آدرس منحصر به فرد در شبکه استفاده می کند. یک آدرس IPv6 توسط هشت گروه از اعداد هگزادسیمال (پایه 16) با کولون ها جدا شده است. گروههایی از اعداد که حاوی تمام صفرها هستند غالباً برای صرفه جویی در فضا حذف می شوند و یک جداکننده بزرگ برای نشان دادن فاصله ایجاد می کند.

فضای IPv6 بسیار بزرگتر از فضای IPv4 به دلیل استفاده از هگزادسیمال و همچنین داشتن 8 گروه است. اکثر دستگاه ها از IPv4 استفاده می کنند. با این حال ، به دلیل ظهور دستگاه های IoT و تقاضای بیشتر برای آدرس های IP ، دستگاه های بیشتری IPv6 را می پذیرند.

Static vs Dynamic

رایانه شما چگونه آدرس IP خود را دریافت می کند؟ یک آدرس IP می تواند پویا یا استاتیک باشد.

آدرس استاتیکی است که خودتان با ویرایش تنظیمات شبکه رایانه خود پیکربندی می کنید. این نوع آدرس ها نادر است و اگر از آن بدون درک خوب TCP/IP استفاده کنید ، می تواند مشکلات شبکه ایجاد کند.

آدرس های پویا رایج ترین هستند. آنها توسط پروتکل پیکربندی میزبان پویا (DHCP) ، سرویسی که در شبکه اجرا می شود ، تعیین می شوند. DHCP معمولاً بر روی سخت افزار شبکه مانند روترها یا سرورهای اختصاصی DHCP اجرا می شود. آدرس های IP پویا با استفاده از سیستم لیزینگ صادر می شود ، به این معنی که آدرس IP فقط برای مدت محدود فعال است. اگر قرارداد اجاره منقضی شود ، کامپیوتر به طور خودکار درخواست اجاره نامه جدید می کند.

کلاس های IP

معمولاً فضای IPv4 به ما اجازه می دهد بین 0.0.0.0 تا 255.255.255.255 آدرس داشته باشیم. با این حال ، برخی از اعداد در آن محدوده برای اهداف خاصی در شبکه های TCP/IP محفوظ است. این رزروها توسط مرجع آدرس دهی TCP/IP ، مرجع شماره اختصاص داده اینترنت (IANA) به رسمیت شناخته می شود. چهار رزرو خاص شامل موارد زیر است:

0.0.0.0 - این نشان دهنده شبکه پیش فرض است که مفهوم انتزاعی فقط اتصال به شبکه TCP/IP است. 255.255.255.255 - این آدرس مختص پخش شبکه یا پیام هایی است که باید به تمام رایانه های موجود در شبکه ارسال شود. 127.0.0.1 - این آدرس loopback نامیده می شود ، به این معنی که رایانه شما می تواند خود را تشخیص دهد ، خواه ناخواه آدرس IP اختصاصی دارد. 169.254.0.1 تا 169.254.255.254 - این محدوده آدرس های خصوصی IP آدرس دهی (APIPA) است که به طور خودکار هنگام دریافت آدرس رایانه از سرور DHCP ناموفق تعیین می شود. < /uli>

رزرو آدرس IP دیگر برای کلاس های زیر شبکه است. زیر شبکه یک شبکه کوچکتر از رایانه ها است که از طریق روتر به شبکه بزرگتری متصل می شوند. زیر شبکه می تواند سیستم آدرس مخصوص به خود را داشته باشد ، بنابراین رایانه های موجود در یک زیر شبکه می توانند بدون ارسال داده به یکدیگر سریع ارتباط برقرار کنندشبکه بزرگتر یک روتر در یک شبکه TCP/IP ، از جمله اینترنت ، طوری پیکربندی شده است که یک یا چند زیر شبکه را تشخیص داده و ترافیک شبکه را به طور مناسب مسیریابی کند. آدرس های IP زیر برای زیر شبکه ها محفوظ است: 172.16.0.0 تا 172.31.255.255 - این در محدوده آدرس کلاس B از 128.0.0.0 تا 191.255.0.0 قرار می گیرد ، که در آن دو بیت اول 10. 192.168 است. 0.0 تا 192.168.255.255 - این محدوده در محدوده کلاس C از 192.0.0.0 تا 223.255.255.0 قرار دارد ، که در آن سه بیت اول 110 است. Multicast (قبلاً کلاس D نامیده می شد) - چهار بیت اول در آدرس 1110 ، با آدرسهای بین 224.0.0.0 تا 239.255.255.255. برای استفاده در آینده/تجربی (قبلاً کلاس E نامیده می شد) - آدرس 240.0.0.0 تا 254.255.255.254.

سه مورد اول (در کلاس های A ، B و C) بیشترین استفاده را در ایجاد زیر شبکه ها دارند. بعداً خواهیم دید که چگونه یک زیر شبکه از این آدرس ها استفاده می کند. IANA کاربردهای خاصی را برای آدرس های چند رسانه ای در سند RFC 5771 Engineering Engineering Task Force (IETF) بیان کرده است. با این حال ، از آنجا که این بلوک در سند 1989 خود RFC 1112 ذخیره شده است ، هدف یا برنامه ای برای آدرسهای کلاس E تعیین نکرده است. IPv6 ، اینترنت پر بود از این که آیا IANA باید کلاس E را برای استفاده عمومی منتشر کند. ) ، اطلاعات کاملی از اطلاعات آدرس IP خود را مشاهده خواهید کرد. من از قسمتی که به آن علاقه دارم ، اسکرین شات گرفته ام.

ipconfig جزئی خروجی آدرس IP: 192.168.1.69 ماسک زیر شبکه: 255.255.255.0 بیست و چهار بیت (سه اکتت) برای هویت شبکه ذخیره شده است هشت بیت (یک اکتت) برای گره ها محفوظ است هویت زیر شبکه بر اساس ماسک زیر شبکه (آدرس اول): 192.168.1.0 آدرس پخش رزرو شده برای زیر شبکه (آخرین آدرس ): 192.168.1.255 نمونه آدرسها در یک شبکه: 192.168.1.1 ، 192.168.1.103 آدرسهای نمونه در یک شبکه مشابه: 192.168.2.1 ، 192.168.2.103

آدرس IP در زیر شبکه دارای دو قسمت است: شبکه و گره. قسمت شبکه خود زیر شبکه را مشخص می کند. گره ، که میزبان نیز نامیده می شود ، یک قطعه جداگانه از تجهیزات رایانه ای است که به شبکه متصل است و نیاز به یک آدرس منحصر به فرد دارد. هر رایانه می داند چگونه دو قسمت آدرس IP را با استفاده از ماسک زیر شبکه جدا کند. یک ماسک زیر شبکه تا حدودی شبیه یک آدرس IP است ، اما در واقع فقط یک فیلتر است که تعیین می کند کدام قسمت از آدرس IP شبکه و گره را تعیین می کند.

در شرایط کنونی ، ماسک زیر شبکه 255.255.255.0 است که نشان می دهد 1 بایت برای میزبان اختصاص داده شده است. همچنین می تواند 255.255.0.0 (2 بای) و 255.0.0.0 (3 بایت) باشد.

معرفی اصطلاحات علوم کامپیوتر

معرفی اصطلاحات علوم کامپیوتر

علوم کامپیوتر

یک تعریف پیچیده: علم کامپیوتر مطالعه فناوری اطلاعات ، فرایندها و تعاملات آنها با جهان است.

یک تعریف ساده: علوم کامپیوتر مطالعه استفاده از رایانه برای حل مشکلات است.

مبانی کامپیوتر

رایانه دستگاهی است که محاسبات را بر اساس دستورالعمل انجام می دهد.

یک کامپیوتر از دو جزء تشکیل شده است:

سخت افزار نرم افزار

سخت افزار شامل اجزای فیزیکی کامپیوتر شما می باشد. اگر می توانید آن را لگد بزنید ، مشت کنید یا بلند کنید تا پرتاب شود ، سخت افزار است.

از طرف دیگر ، نرم افزار جزء فیزیکی نیست. نرم افزار شامل مجموعه ای از دستورالعمل ها برای سخت افزار است. این دستورالعمل ها معمولاً در فایل های رایانه شما ذخیره می شوند. دستورالعمل ها به زبان انگلیسی یا هیچ زبان گفتاری دیگری نیستند ؛ آنها در نوع خاصی از زبان هستند که زبان برنامه نویسی نامیده می شود. نرم افزار دستورالعمل هایی را ارائه می دهد که به سخت افزار می گوید چه کاری انجام دهد.

یک برنامه مترادف یک قطعه نرم افزار یا یک برنامه کاربردی است. در اصل ، این یک فایل ذخیره شده در رایانه شما است که به زبان برنامه نویسی نوشته شده است و حاوی دستورالعمل هایی است که به رایانه می گوید هنگام راه اندازی برنامه چه کاری باید انجام دهد.

کد مترادف "دستورالعمل" موجود است یک فایل. همچنین مترادف با نرم افزار است. "کد" فقط مجموعه ای از کلمات و علائم نقطه گذاری در یک برنامه کامپیوتری است که به زبان برنامه نویسی نوشته شده است.

سخت افزار کامپیوتر

برای یادگیری برنامه نویسی ، ابتدا باید اصول اولیه سخت افزار کامپیوتر.

اجزای مختلف سخت افزار کامپیوتر هر کدام اهداف مختلفی را ارائه می دهند.

6 جزء اصلی وجود دارد که سخت افزار کامپیوتر را تشکیل می دهند:

پردازش مرکزی واحد (CPU) حافظه اصلی ذخیره ثانویه دستگاه های ورودی/خروجی (دستگاه های ورودی/خروجی) شبکه Bus

CPU اغلب "مغز" رایانه نامیده می شود. مسئول اجرای دستورالعمل ها ، مانند کد در برنامه است.

حافظه اصلی ، که به آن "حافظه دسترسی تصادفی" (RAM) نیز گفته می شود ، برای ذخیره موارد زیر استفاده می شود: برنامه ها و 2) داده هایی که کد در حین اجرای فعال برنامه اجرا می کند. وقتی برنامه ای مانند Microsoft Word را در رایانه خود باز می کنید ، کد اجرای Microsoft Word در حافظه اصلی بارگذاری می شود.

Secondary Storage برنامه ها و داده های شما را هنگامی که به طور فعال مورد استفاده قرار نمی گیرند ذخیره می کند.

دستگاه های ورودی/خروجی به افراد امکان می دهد با رایانه تعامل داشته باشند. دستگاه های ورودی/خروجی به افراد امکان می دهد داده ها را به رایانه (صفحه کلید ، ماوس ، میکروفون) یا داده های خروجی را به کاربر (مانیتور ، چاپگر ، بلندگوها) وارد کنند.

Bus گروهی از سیم ها است که اجزای سخت افزاری مختلف این سیم ها اجازه می دهند داده ها بین اجزای سخت افزاری مختلف منتقل شوند. به عنوان مثال ، هنگامی که برنامه ای را در رایانه خود اجرا می کنید ، گذرگاه داده (شامل کد واقعی برنامه) ذخیره شده در Storage Storage را به حافظه اصلی ارسال می کند.

یک شبکه به کامپیوتر شما امکان اتصال به کامپیوترهای دیگر در سراسر جهان شبکه ها به شما امکان می دهند داده ها را از رایانه های دیگر ارسال کنید و دریافت کنید ، مانند ایمیل به یا از دوستان خود.

اصطلاحات برنامه نویسی - مترادف

به طور کلی ، می توانید به هریک از سه گروه زیر از کلمات به عنوان مترادف. در حالی که هر کدام می توانند چیزی را نشان دهند کهبرای درک مقدماتی خود ، می توانید موارد زیر را معادل تصور کنید:

"کد" = "دستورالعمل رایانه" = "نرم افزار" = "برنامه" = "برنامه" = "برنامه" < /oli> "برنامه نویسی" = "برنامه نویسی" = "توسعه نرم افزار" = "مهندسی نرم افزار" "برنامه نویس" = "برنامه نویس" = "توسعه دهنده نرم افزار" = "توسعه دهنده وب" = "نرم افزار engineer ”

زبان ماشین در مقابل زبان برنامه نویسی

رایانه و انسان اطلاعات را در قالب های مختلف نشان داده و درک می کنند.

هر زمان که داده ها را ذخیره می کنید (مانند سند Word ) در رایانه شما ، رایانه همه کاراکترهایی را که تایپ می کنید در قالب خاصی ذخیره می کند ، به نام باینری ، همچنین به عنوان زبان ماشین معروف است. هر کاراکتر روی صفحه کلید شما دارای یک نمایش دوتایی منحصر به فرد است که کاراکتر را از بقیه متمایز می کند.

یک کاراکتر می تواند یک حرف ، رقم عددی ، علامت نقطه گذاری ، نماد ، فاصله ، بازگشت خط بعدی ، برگه و غیره باشد. هر شخصیت دارای یک کد عددی منحصر به فرد است که آن را از دیگران متمایز می کند. می توانید کد عددی (کد ASCII) برای هر کاراکتر را با جستجوی آن در یک جدول ASCII ، مانند اینجا پیدا کنید: https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html

توجه داشته باشید که کاراکتر "A" به طور جداگانه از "a" متمایز شده است.

"A" دارای کد عددی است: 65

'a 'دارای کد عددی است: 97

این بدان معناست که هر زمان که کاراکتر' a 'در سند شما ظاهر می شود ، رایانه شما داده ها را برای آن در دوتایی معادل مقدار 97 ذخیره می کند.

توجه داشته باشید که 97 یک فرمت قابل خواندن برای انسان است که به آن قالب "دهدهی" گفته می شود. "اعشاری" نام قالب مقادیر عددی است که در مبنای 10 نشان داده شده است ، بدین معنی که از اعداد 0 تا 9 برای تشکیل مقادیر استفاده می شود.

قالب "دودویی" به این معناست که مقادیر عددی نشان داده می شوند در base-2 ، به این معنی که از رقم 0 و 1 برای تشکیل مقادیر استفاده می شود. این ممکن است کاملاً انتزاعی به نظر برسد ، اما می توانید با استفاده از فرمول های ریاضی یک عدد اعشاری را به دوتایی (و دودویی به اعشاری) تبدیل کنید. نیازی به انجام این کار نیست - این فقط برای اطلاع شما است. اگر واقعاً می خواهید نمای دوتایی یک عدد اعشاری را دریافت کنید ، می توانید از ماشین حساب استفاده کنید ، مانند: https://codebeautify.org/decimal-binary-converter

هنگام ذخیره سند Word خود و برنامه Word خود را ببندید ، کامپیوتر شما در واقع سند شما را در 0s و 1s ذخیره می کند. مردم رایانه ها را طوری طراحی کردند که بطور م byثر توسط انسان استفاده شود. از آنجا که زبان دوتایی وسیله ارتباطی کارآمد برای انسان ها نیست ، برای انسان منطقی نیست که اسناد ورد خود را در قالب دوتایی ببینند. به همین دلیل ، هنگامی که بعداً سند خود را دوباره باز می کنید ، از فرمت دوتایی ترجمه می شود و دوباره به انگلیسی (یا هر زبانی که استفاده می کردید) ترجمه می شود.

دوتایی ("زبان ماشین") به عنوان " زبان سطح پایین " این زبان "سطح پایین" در نظر گرفته می شود زیرا زبانی است که ماشین ها آن را می فهمند.

برنامه نویسان برنامه های خود را با یک زبان برنامه نویسی تایپ می کنند. زبان سطح بالا ”زیرا زبانی است که انسان می تواند بخواند و بفهمد.

درست مانند انگلیسی ، یک زبان برنامه نویسی نیز دارای قوانین یا نحو خاص خود است. همچنین شامل مجموعه ای از کلمات تعریف شده به نام کلمات کلیدی (یا "کلمات محفوظ") است که هنگام استفاده در برنامه معنای خاصی دارد. زبانهای گفتاریزبانهای برنامه نویسی مختلفی نیز وجود دارد که برنامه نویسان برای ایجاد برنامه از آنها استفاده می کنند.

برنامه نویسی که چندین زبان برنامه نویسی مختلف را می شناسد ، مناسب ترین زبان برنامه نویسی را برای استفاده در هر شرایط خاص انتخاب می کند. به عنوان مثال ، زبانهای برنامه نویسی وجود دارند که بیشتر برای توسعه وب مناسب هستند (ساخت وب سایت) و برخی دیگر که برای توسعه تلفن همراه مناسب هستند (ساخت برنامه های تلفن های هوشمند).

علاوه بر مواردی مانند نوع در سطح توسعه ، زبان برنامه نویسی در پارادایم های مختلف برنامه نویسی طبقه بندی می شود.

در اینجا یک تعریف ساده برای کلمه "پارادایم" آمده است.

پارادایم یک روش تفکر است یا راهی برای انجام کاری پارادایم یک طرز فکر است.

پارادایم برنامه نویسی راهی برای طبقه بندی زبان برنامه نویسی بر اساس سبک یا روش برنامه نویسی است.

در اینجا چند نوع رایج از پارادایم های برنامه نویسی آورده شده است:

پارادایم برنامه نویسی کاربردی پارادایم برنامه نویسی رویه ای پارادایم برنامه نویسی ضروری پارادایم برنامه نویسی شی گرا

به عنوان مثال ، جاوا و C نمونه هایی از زبان های برنامه نویسی هستند. زبان برنامه نویسی جاوا نمونه ای از زبان برنامه نویسی شی گرا است. زبان برنامه نویسی C نمونه ای از زبان برنامه نویسی رویه ای است.

در حال حاضر ، نیازی به دانستن این نیست که یک زبان برنامه نویسی به عنوان شیء گرا یا رویه ای طبقه بندی شود. با این حال ، فقط درک این موضوع که طبقه بندی های متفاوتی برای زبان های برنامه نویسی مختلف وجود دارد ، کمک می کند.

نوشتن و ذخیره کد

اولین مرحله در فرآیند نرم افزار شامل برنامه نویسی است ، که به سادگی برای نوشتن کد یک برنامه نویس برای ایجاد یک برنامه کد می نویسد. یک برنامه به سادگی برنامه ای است که هنگامی که کاربر برنامه را اجرا می کند کاری را انجام می دهد یا به هدفی می رسد. به عنوان برنامه نویس ، هدف شما تعیین این است که می خواهید کد شما چه کاری انجام دهد و کد را بنویسید.

وقتی می خواهید مقاله بنویسید ، از یک برنامه رایانه ای مانند Word یا هر ویرایشگر متن استفاده می کنید. شما به سادگی برنامه ویرایشگر متن را باز می کنید ، یک فایل ایجاد می کنید ، قسمتی از متن را تایپ می کنید و سند خود را در قالب فایل دلخواه مانند .docx یا .pdf ذخیره می کنید.

روند نوشتن کد مشابه است.

می توانید کد خود را با استفاده از ویرایشگر متن یا محیط توسعه یکپارچه (IDE) بنویسید. IDE یک برنامه کامپیوتری است که شامل تمام ابزارهایی است که برای برنامه نویسی نیاز دارید ، مانند ویرایشگر متن ، کامپایلر ، محیط اجرا و اشکال زدایی.

اشکال زدایی ابزاری است که برنامه نویسان برای پیدا کردن از آن استفاده می کنند. اشتباهاتی در کد آنها وجود دارد که باگ نامیده می شوند. به عنوان مثال ، یک اشکال ممکن است از برنامه نویسی برنامه جلوگیری کند ، از اجرای برنامه (در حال اجرا) جلوگیری کند ، یا ممکن است باعث شود که برنامه مقادیر نادرستی تولید کند. یادگیری نحوه اشکال زدایی یک برنامه مهارتی است که در طول زندگی حرفه ای خود توسعه خواهید داد.

پس از ایجاد برنامه خود ، باید کد خود را در یک فایل ذخیره کنید ، به نام فایل منبع. یک فایل منبع به سادگی یک فایل حاوی کد منبع است که کد برنامه شما است. ذخیره کد شما در یک فایل منبع مستلزم نامگذاری پرونده با نام ریشه و پسوند است. نام ریشه نام منحصر به فردی است که شما انتخاب می کنیدفایل خود را که شامل نویسه هایی است که در سمت چپ نقطه (.) نام فایل شما ظاهر می شوند ، بدهید و پسوند آن چیزی است که در سمت راست نقطه ظاهر می شود. با توجه به زبان برنامه نویسی کد منبع خود ، پسوند مورد نظر را به فایل منبع می دهید. به عنوان مثال ، پسوند .java برای فایلهای منبع نوشته شده در جاوا استفاده می شود ، در حالی که پسوند .c برای فایلهای منبع نوشته شده در C.

کامپایل و اجرای کد

فرض کنید شما یک برنامه به زبان برنامه نویسی C نوشته اید و برنامه خود را به عنوان myprogram.c ذخیره کرده اید. در مرحله بعد ، می خواهید کد خود را اجرا کنید تا ببینید برنامه شما همان کاری را که شما در نظر داشتید انجام می دهد.

قبل از اینکه بتوانید کد خود را اجرا کنید ("اجرا") ، فایل منبع شما باید از C (زبان سطح بالاتر) به یک فایل اجرایی باینری (زبان سطح پایین). یک فایل اجرایی (یا "قابل اجرا") فایلی است که حاوی ترجمه دوتایی کد شما است و در صورت راه اندازی ، برنامه شما را اجرا می کند ("اجرا"). این فرایند ترجمه Compilation نامیده می شود.

کامپایل کردن عبارت است از ترجمه کد منبع درون یک فایل منبع از زبان سطح بالاتر به زبان سطح پایین و سپس ایجاد و ذخیره کد ترجمه شده در یک فایل اجرایی.

کامپایلر یک برنامه کامپیوتری است که برای کامپایل کد شما استفاده می شود. این یک ابزار رایج است که در IDE گنجانده شده است. هنگام استفاده از IDE ، IDE ممکن است هنگام اجرای کد برنامه ، برنامه کامپایلر را برای شما مدیریت کند. هنگامی که از IDE استفاده نمی کنید ، باید کامپایلر را راه اندازی کرده و فایل منبع مورد نظر خود را برای شما مشخص کنید.

اگر برنامه شما دارای اشکال در کد نباشد ، برنامه را ایجاد می کند. قابل اجرا است و فرآیند کامپایل با موفقیت به پایان می رسد. با این حال ، اگر برنامه شما دارای یک یا چند اشکال باشد ، ممکن است خطایی ایجاد کند و از تولید کننده اجرایی جلوگیری کند. اگر کامپایلر خطایی ایجاد کرد ، باید کد خود را مجدداً عیب یابی کرده و اشتباه (ها) را اصلاح کنید.

هنگامی که برنامه خود را با موفقیت کامپایل کردید ، می توانید اجرا کنید ("راه اندازی" یا "execute") قابل اجرا است و رایانه شما دستورالعمل برنامه شما را اجرا می کند.

توجه: بسیاری از این موضوعات در کتاب آموزشی مقدماتی زیر برای برنامه نویسی C پوشش داده شده است: The Art and Science of C ، توسط اریک رابرتز

VNH2SP30-Monster Moto Shield

VNH2SP30-Monster Moto Shield

از این برد در برنامه های با تقاضای شدید استفاده کنید-رانندگان موتور Full-Bridge-30A@16v peak-Ardu_Serie#63

بیایید چند موتور دریافت کنیم حال چرخش؟ من این دستور را دادم تا مشکل گرم شدن بیش از حد را با استفاده از L9100S - Toy Driver Easy to Use حل کنید. عالی کار کرد. من می توانم DoRobot خود را در حال حاضر با استفاده از موتورهای DC 2x12v بدون مشکل گرمایش اجرا کنم ... با این هیولاها ، شما حتی می توانید کنترل از راه دور خود را چمن زنی \ o/

مشخصات:

حداکثر ولتاژ: 16V حداکثر امتیاز جریان: 30 A جریان مداوم عملی: 14 A سنجش جریان در دسترس پین آنالوگ آردوینو MOSFET on- مقاومت: 19 mΩ (در هر پا) حداکثر فرکانس PWM: 20 کیلوهرتز خاموش شدن حرارتی خاموش شدن ولتاژ پایین و ولتاژ بالا

توضیحات < /h4>

VNH2SP30-E یک راننده موتور کامل پل است که برای طیف گسترده ای از برنامه های خودرو طراحی شده است. این دستگاه دارای یک درایور دو طرفه بالا و دو سوئیچ سمت پایین است. سوئیچ راننده سمت بالا با استفاده از فناوری VIPower ™ M0 شناخته شده و اثبات شده STMicroelectronic طراحی شده است که امکان ادغام کارآمد در همان قالب یک MOSFET قدرت واقعی با یک سیگنال/مدار حفاظتی هوشمند را فراهم می کند.

کلیدهای سمت پایین MOSFET های عمودی هستند که با استفاده از فرایند EHD اختصاصی STMicroelectronic ('STripFET ™') تولید می شوند. این سه قالب در بسته MultiPowerSO-30 روی قاب های سربی جدا شده از نظر برق مونتاژ می شوند. این بسته ، که به طور خاص برای محیط خشن خودرو طراحی شده است ، عملکرد حرارتی بهتری را به لطف پدهای قالب نمایان شده ارائه می دهد.

علاوه بر این ، طراحی مکانیکی کاملاً متقارن آن به قابلیت تولید برتر در سطح تخته اجازه می دهد.

ورودی سیگنالهای INA و INB می توانند مستقیماً به میکروکنترلر وصل شوند تا جهت موتور و وضعیت شکستن را انتخاب کنند. DIAGA/ENA یا DIAGB/ENB ، هنگامی که به یک مقاومت کششی خارجی متصل می شوید ، یک پا از پل را فعال می کند. آنها همچنین یک سیگنال تشخیصی دیجیتال بازخورد ارائه می دهند. عملکرد عادی در

توضیح داده می شود که جریان موتور را می توان با پین CS با ارائه جریان متناسب با مقدار آن کنترل کرد. سرعت موتور را می توان در تمام شرایط ممکن توسط PWM تا 20 کیلوهرتز کنترل کرد. در همه موارد ، وضعیت سطح پایین روی پین PWM ، هر دو سوئیچ LSA و LSB را خاموش می کند. هنگامی که PWM به سطح بالایی می رسد ، LSA یا LSB بسته به وضعیت پین ورودی دوباره روشن می شوند.

این در اصل یک نسخه ارتقا یافته از سپر راننده موتور Sparkfun's Ardumoto است. برای این SparkFun Monster Moto Shield ، آنها L298 H-bridge را با یک جفت راننده موتور کامل VNH2SP30 جایگزین کرده اند. آنها همچنین مدارهای پشتیبانی را تقویت کرده اند تا این برد بتواند یک جفت موتور جریان قوی را هدایت کند! VIN و موتور خارج شده برای پایانه های پیچ 5 میلی متری آنها (شامل نمی شود) ، اتصال سیم های بزرگتر را آسان می کند.

توجه از Sparkfun: هنگام استفاده از این برد در کاربردهای بسیار پرمصرف ممکن است نیاز به بهبود عملکرد حرارتی با هیت سینک یا فن و لحیم کاری باشد. به جای استفاده از ترمینال پیچ (بجز عوارض بی شمار دیگر که در سیستم با جریان زیاد وجود دارد) مستقیماً به برد وصل می شود. با این حال ، هنگام استفاده از برد در جریانهای تا 6A ، تراشه ها به سختی گرم می شوند.

VNH2SP30 یک راننده موتور کامل پل است که برای طیف گسترده ای از برنامه های خودرو طراحی شده است. دستگاه شامل می شودیک راننده یکپارچه دو طرف بالا و دو سوئیچ سمت پایین. سوئیچ راننده سمت بالا با استفاده از فناوری معروف و اثبات شده VIPower M0 اختصاصی STMicroelectronic طراحی شده است که امکان ادغام کارآمد در همان قالب یک MOSFET قدرت واقعی با مدار سیگنال/حفاظت هوشمند را فراهم می آورد. VIN و موتور خارج شده برای پایانه های پیچ 5 میلی متری قرار گرفته اند که اتصال سیم های بزرگتر را آسان می کند. INA و INB جهت هر موتور را کنترل می کنند و پین های PWM موتورها را روشن یا خاموش می کنند. برای VNH2SP30 ، پین های حس فعلی (CS) تقریباً 0.13 ولت در هر آمپر جریان خروجی تولید می کنند.

اعتبارات و منابع

SparkFun Monster Moto Shield

شماتیک SparkFun

فایلهای SparkFun Eagle

SpartFun Datasheet (VNH2SP30)

کد نمونه SparkFun

SparkFun GitHub (طراحی فایلها و کد نمونه)

آموزش Monster Motor Shield VNH2SP30

شروع به کار ماشین چمن زنی سواری

هدر قابل جمع شدن 6 پین برای آردوینو 6 پین اتصال دهنده قابل نصب برای برد توسعه Arduino www.abelectronics.co.uk CONNECTOR BORNE KRE 2 VIAS - Google Search ویرایش توضیحات www.google.com

پست های مرتبط:

Meet DoRobot-Technical Tequniques J3 Caterpillar-Crawler-Chassis v 1.0-ArduSerie#46

L9100S-Toy راننده آسان برای استفاده-اسباب بازی-ولتاژ کم- h- پل- آسان برای استفاده- موتور-.8A@12v peak-Ardu_Serie#47

EASYDRIVER: 4-Wire-Stepper Motor Driver-Brian طراحی Schmalz در IC A3967-موتورهای دو قطبی-.75A@30v peak-ساختن اینها نسیم! Ardu_Serie #48

DRV8825-Carrier High Stepper Motor Driver Carrier-Stepper Motor-حالت دوقطبی-2.5A@45v peak-Ardu_Serie #59

L298N-Dual Full-Bridge Driver-Darlington آرایه های ترانزیستور بر اساس-3A@50v peak-Ardu-Serie#52

TB6612FNG: Dual DC Motor Driver-SparkFun Motor Driver-3.2A@13.5v peak-Ardu-Serie#49

A4988-Stepper Motor Driver Carrier-Allegro's A4988-دوقطبی Stepper Motor Driver-2A@35v peak-Ardu-Serie#53

Adafruit Motor Shield v1 & v2–4 DC Motors یا 2 Stepper Motor یا 2 Servos -1.2A@25v & 3.2A@15v peak-Ardu-Serie#54 ​​

IFR 520 MOS-Module + DoRobot-Switch Heavy DC Loads-10A@100v peak-Ardu-Serie#60

L9110 H-bridge module + DoRobot- DC Stepper Motor Driver Board- .8A@12 v peak- Ardu_Serie#62

BTS7960B- Pn High PN Half Bridge- برنامه های کاربردی درایو موتور با جریان بالا- NovalithIC TM-43A@24v peak-ArduSerie#64

VNH2SP30-Monster Moto Shield-از این برد در برنامه های با تقاضای شدید استفاده کنید-Fu ll-Bridge Drivers Motor-30A@16v peak-Ardu_Serie#63

VNH2SP30 - Monster Moto Shield