کاربرد پایتون در مهندسی برق:
طراحی و ویژگی های زبان برنامه نویسی پایتون، آن را برای حل بسیاری از مسائل، از جمله مواردی که در کار روزمره بخش تحقیق و توسعه با آن مواجه می شوند، به زبانی کارآمد و مفید تبدیل کرده است.
برای مثال، عیب یابی سیستم های یکپارچه یکی از کاربردهای رایج است که پایتون در آن واقعاً می درخشد. برای درک دلایل کاربرد پایتون در مهندسی برق، ابتدا ویژگی های زبان برنامه نویسی پایتون را که امکان نوشتن کد و آزمایش سریع آن را فراهم می کنند، بیان می کنیم:
پایتون یک زبان تفسیری است، نه یک زبان کامپایل شده. لایه اضافه انتزاعی که توسط مفسر پایتون ارائه شده، برنامه نویسان را از کار با جزئیات مدیریت حافظه سطح پایین سیستم عامل و معماری CPU بی نیاز می کند. با توجه به این موضوع، برنامه نویسان می توانند روی موارد مهم تر، مانند الگوریتم خود تمرکز کنند.
مفسر تعاملی پایتون (Python Prompt) به دلیل بازخورد فوری، امکان نوشتن و آزمایش سریع کلاس ها (اشیاء نرم افزاری که داده ها یا چیزی با آن ها را ذخیره می کند) را ممکن می کند. این امر برای توابع نمونه اولیه ایده آل است.
امروزه، کتابخانه استاندارد پایتون شامل کلاس هایی برای بسیاری از کارهای رایج در حوزه برنامه نویسی است. این امر سبب شده انجام کارهای دشوار قابل مدیریت باشد.
تعداد زیاد ماژول ها حل مسائل دشوار را با کدهای مختصر و ساده ممکن می کند.
این مزیت ها توسعه سریع و نوشتن برنامه های خاص را در شرایطی که مراحل کلی برنامه مشخص است، اما فقط باید به دستورالعمل رایانه تبدیل شود، تسهیل می کند.
در مهندسی سخت افزار، این برنامه ها اغلب مورد نیاز است، زیرا مسائل غیرمنتظره غالباً در سیستم های یکپارچه پیچیده رخ می دهد که نیاز به حل سریع نیز دارند؛ به ویژه هنگامی که این مشکل غیرمنتظره در سمت مشتری باشد.
طبقه بندی «سیستم های یکپارچه پیچیده» چیزی بسیار بیشتر از ماشین آلات بزرگ را شامل می شود. بسیاری از محصولات سخت افزاری (از چاپگرهای اداری گرفته تا سیستم های کنترل موتور خودرو) بخش های متنوعی دارند:
قطعات و تراشه های الکترونیکی، سیستم عامل، ارتباطات (مانند کابل کشی یا ارتباطات بی سیم) و در نهایت برنامه GUI قابل مشاهده توسط کاربر. این بخش آخر را افراد مختلف، مانند برنامه نویسان می توانند به زبان های مختلف بنویسند.
فرض کنید بین چاپگر دیجیتال و کامپیوتر متصل به آن، تأخیر بیش از حد انتظار (یعنی تأخیر بین ارسال فرمان و دریافت نتیجه) وجود داشته باشد. آیا سیستم عامل روی برد اصلی به اندازه کافی سریع به دستورات رایانه پاسخ نمی دهد؟
آیا کاهش سرعت در جایی در پشته نرم افزار روی رایانه است؟ طبیعتاً پایتون به نوشتن و اصلاح برنامه هایی که بتواند سطوح بالاتری از یک مجموعه نرم افزاری را دور زده و مستقیماً با سخت افزار ارتباط برقرار کند، کار را راحت تر خواهد کرد.
ارزش این موضوع زمانی مشخص تر خواهد بود که نیاز داشته باشید نرم افزار یا سخت افزار را تست کنید. اگر سخت افزار به همان سرعتی که برنامه آزمایشی شما می تواند پاسخ دهد، مشکل نرم افزاری است و نه سخت افزاری.
برای بسیاری از سناریوهای عیب یابی مانند مورد بالا، این واقعیت که پایتون یک زبان تفسیری است مهم نیست، حتی اگر زبان های تفسیری به طور کلی کندتر از زبان های کامپایل شده عمل کنند. این امر به ویژه در صورتی صادق است که کد پایتون روی رایانه شخصی و با یک پروتکل مانند سریال از طریق بلوتوث، سریال از طریق USB، RS-485 یا RS-232 (با استفاده از ابزار بسیار مفید ماژول PySerial شخص ثالث) اجرا شود.
این امر می تواند یک اتفاق بسیار رایج باشد، زیرا این نوع لوله های داده اغلب برای رابط های اشکال زدایی سیستم عامل یا به عنوان رابط ارتباطی اصلی برای دستگاه های قدیمی استفاده می شوند. به عنوان مثال، RS-485 هنوز به طور گسترده برای تجهیزات صنعتی مورد استفاده قرار می گیرد.
تقریباً در همه موارد، نرخ باد (Baud Rate) رابط سریال، و نه سرعت تفسیر و اجرای متن مفسر پایتون، عاملی محدودکننده خواهد بود. این امر اغلب در مورد دستگاه هایی که از طریق شبکه ارتباط برقرار می کنند صادق است.
مانند یک مولتی متر دیجیتال، پایتون به راحتی قابل استفاده است و سریع می توان از آن بهره گرفت. برنامه های پایتون مانند یک اسیلوسکوپ با حالت ها و گزینه های متعدد می توانند ابزارهای تشخیصی همه کاره و سازگار باشند. این قدرت و کاربرد پایتون در مهندسی برق است.
یادگیری و درک پایتون آسان است، برنامه نویسی با آن انعطاف پذیر است و به طور گسترده مورد استفاده قرار می گیرد و در سیستم عامل های متعدد با تعداد زیادی کتابخانه برای همه چیز از پردازش سیگنال گرفته تا بینایی ماشین پشتیبانی می شود.
برای آشنایی عملی با کاربرد پایتون در مهندسی برق یک مثال را بیان می کنیم. فرض کنید از یک مشتری خواسته شده که منحنی تخلیه (دشارژ) یک باتری را مشخص کند تا به عمر باتری یک محصول کمک کند.
هر ماده شیمیایی باتری منحنی منحصربه فردی دارد که در آن اگر جریان ثابتی از آن بکشید، باتری ولتاژ آن منحنی را از دست می دهد. حتی برای یک نوع باتری اما از تولیدکنندگان مختلف، منحنی های متفاوتی خواهید داشت.
در حال حاضر ابزارهایی وجود دارد که می توانید آن ها خریداری کنید که این کار را برای شما در 10 ساعت یا بیشتر انجام می دهد، اما فرض کنید ابزارهای تخصصی نداریم. آنچه داریم یک بار ثابت، یک ولت متر بسیار دقیق با رابط USB و البته پایتون است.
نوشتن سناریو به معنای واقعی کلمه چند دقیقه طول می کشد. خواندن ولت متر، ذخیره مقدار آن در یک آرایه، یک دقیقه صبر، یک خوانش دیگر و… تا زمانی که ولتاژ به نقطه خاصی برسد که در آن زمان اسکریپت بار فعلی را خاموش می کند و سپس تمام داده های جمع آوری شده در یک صفحه گسترده اکسل نوشته می شود.
همه این کارها به صورت اتوماتیک، همه بدون نظارت و همه در حالی که کارهای دیگری را انجام می دهیم قابل انجام است.
چیزهای بیشتری وجود دارد که کاربرد پایتون در مهندسی برق را ناشن می دهد و یکی از جدیدترین پیشرفت ها، MicroPython است. این پیاده سازی ساده و کارآمد پایتون برای اجرای سخت افزارهای محدود مانند میکروکنترلرها طراحی شده است.
اکنون ساعت ها صرفه جویی در سخت افزار جدید به ارمغان می آید. نوشتن اسکریپت ها برای آزمایش وسایل جانبی/حسگرها و غیره متصل به میکروکنترلر به ما اطمینان می دهد و مسائلی را مشخص می کند که باید در هنگام نوشتن سیستم عامل واقعی با بازسازی یا طراحی مجدد برطرف شوند.
پایتون هنگامی که با NumPy و Matplotlib و SciPy و Pandas ترکیب می شود یک پلت فرم محاسباتی علمی بسیار قدرتمند است که از نظر قابلیت با MATLAB و Scilab و GNU Octave قابل مقایسه است (با این تفاوت که هنوز ابزار شبیه سازی گرافیکی قابل مقایسه با Simulink متلب یا Xcos سایلب را ندارد).
با اینکه متلب در کاربردهای مهندسی برق و الکترونیک محبوب است، می توان پایتون را جایگزین آن کرد.
پایتون به عنوان یک زبان برنامه نویسی عمومی با پشتیبانی از محاسبات عددی، مجموعه عظیمی از کتابخانه ها برای برنامه های دیگر مانند چارچوب های GUI، دسترسی به پایگاه داده، کتابخانه هایی برای رابط سخت افزاری و… را دارد.
دستیابی به این امر در MATLAB/Scilab/GNU Octave دشوار است، زیرا آن ها یک پلت فرم محاسباتی عددی تخصصی با پشتیبانی محدود برای برنامه های عمومی هستند.
اگر بخواهیم از یک زبان برنامه نویسی مناسب مبتدیان نام ببریم، آن پایتون است. پایتون دارای نحو بسیار ساده ای است که شبیه زبان انگلیسی است. این زبان منحنی یادگیری کوتاهی دارد و بنابراین، یک انتخاب عالی برای مبتدیان است.
منحنی یادگیری و سادگی پایتون دو دلیل اصلی این است که چرا یکی از پرکاربردترین زبان های برنامه نویسی در برنامه های آموزشی، چه در سطوح مبتدی و چه در سطوح پیشرفته است.
با این حال، پایتون فقط به عنوان یک زبان مقدماتی عالی نیست؛ حتی توسعه دهندگان و برنامه نویسان حرفه ای در سراسر جهان به شدت به پایتون اعتماد دارند.