زبان جاوا اسکریپت یا پایتون؟ - آموزش رزبری پای با پایتون - قسمت صفرم -

blog
۱۴۰۰-۰۸-۱۶
4 دقیقه

سلام به همه.

توی نوشته قبل آموزش رزبری پای با پایتون دیدین که چطور میشه توی رزبری پای یه LED رو خاموش و روشن کرد.

توی این مقاله از آموزش رزبری پای مقایسه ای بین زبان های pyhton ،java script (nodejs) و c برای برای اینکه ببینیم کدوم سرعت بیشتری رو کنترل ورودی و خروجی I/O داره انجام میدیم (به کمک زئوس).

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

زبان برنامه نویسی پایتون روی سیستم عامل raspbian به صورت پیش فرض نصبه. خب اولین قدم اینه که LED blink رو با زبان برنامه نویسی پایتون پیاده سازی کنیم. اینجا میتونید ببینید که چطور توی پایتون یه LED blink بنویسیم. تنها تفاوتی که داره اینه که ما نمیخوایم مدتی رو برای خاموش یا روشن بودن LED صبر کنیم. پس باید کد ما به این صورت باشه:

 

 

خب همون طور که میبینید کدش خیلی کم و راحته. حالا بیاید این برنامه رو اجرا کنیم و ببینیم که با چه سرعتی دستور برای خاموش و روشن شدن LED میده.

من وقتی دفه اول کد رو اجرا کردم سرعت ۱مگاهرتز رو دیدم اما دفعه های بعد با سرعت تقریبا ۹۲۰ کیلوهرتر دستور برای خاموش و روشن شدن LED داد.

زبان جاوا اسکریپت یا پایتون؟ - آموزش رزبری پای با پایتون - قسمت صفرم -

 

زبان برنامه نویسی JavaScript

درسته زبان برنامه نویسی جاوا اسکریپت! درسته که فقط توی مرورگر اجرا میشه اما چندسال پیش یه Platform (چهارچوب) به اسم Nodejs ارائه شد تا کد های جاوا اسکریپت رو خارج از مرورگر اجرا کنید. اگه میخواید بیشتر در مورد Nodejs بخونید میتونید به این لینک که داکیومنت Nodejs هست مراجعه کنید. Nodejs به صورت پیش‌فرض روی سیستم عامل Raspbian نصب نیست و شما باید اون رو نصب کنید روی سیستم عامل خودتون. (توجه کنید که من نسخه ۱۰ رو نصب کردم و هنگام اجرا بهم خطا داد که باید نسخه Nodejs رو به روز رسانی کنم. منم به نسخه ۱۴ آپدیت کردم).

 

اینجا ما از کتابخونه onoff استفاده کردیم که بر خلاف پایتون این کتابخونه به صورت پیشفرض نصب نیست و باید خودمون نصب کنیم. ما این کتابخونه رو با دستور npm install onoff نصب کردیم. همون طور که میشه توی کد ها دید این کتابخونه رو توی برنامه فراخانی کردیم و کد های خودمون رو نوشتیم.

نتیجه افتضاح بود. به خاطر اینکه با این کتابخونه به سرعت ۱۳۴ کیلوهرتز رسیدیم.

زبان جاوا اسکریپت یا پایتون؟ - آموزش رزبری پای با پایتون - قسمت صفرم -

خیلی افتضاح بود. رفتیم یه جست و جوی کوچیک دیگه کردیم و به کتابخونه rpio رسیدیم. اون رو با دستور زیر نصب کردیم:

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

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

زبان جاوا اسکریپت یا پایتون؟ - آموزش رزبری پای با پایتون - قسمت صفرم -

 

زبان برنامه نویسی C

تا اینجا دوتا زبان اسکریپتی رو با هم مقایسه کردیم. من به زئوس گفتم بیا تا زبان برنامه نویسی C رو هم تست کنیم.

همون طور که میبینید زبان C کد هاش خیلی بیشتره نسبت به Python و Nodejs. اما وقتی اجرا کردیم نتیجه به صورت وحشتناکی خوب بود. دفعه اول که ران کردیم سرعت ۶ مگاهرتز رو دیدم. اما توی دفعه های بعد سرعت ۲ مگاهرتز رو دیدیم.

زبان جاوا اسکریپت یا پایتون؟ - آموزش رزبری پای با پایتون - قسمت صفرم -

 

نتیجه گیری

زبان برنامه نویسی Python و JavaScript تقریبا با یه سرعت اجرا میشن. فقط با این تفاوت که زبان برنامه نویسی پایتون و کتابخونه های مرتبط به اون به صورت پیش‌فرض روی سیستم عامل رزبیان نصب هست و نیازی نداره که اون رو نصب کنیم اما Nodejs رو باید نصب کنیم (که چند ساعت از من وقت گرفت تا تونستم اون رو به نسخه ۱۴ به روز رسانی کنم).

اما زبان برنامه نویسی C. این برنامه به خاطر سطح پایین بودن کد های بیشتری نسبت به پایتون و Nodejs داره اما سرعت خیلی بیشتری نسبت بهشون داره. البته ما تا ۴۰۰ مگاهرتز رو هم توی زبان برنامه نویسی C دیدیم که این بدون واسط سیستم عامل انجام شد.

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

اطلاعات
22
0
لینک و اشتراک
profile

xander karimi

متخصص الکترونیک

گونه ای از برنامه نویس های نادر و کم یاب. در بر گیرنده انواع و اقسام باگ های ناشناخته. مدافع حقوق این روی سیستم من کار می‌کنه. ابداع کننده انواع روش های سامورایی در برنامه نویسی

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

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

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

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

ارسال مقاله
become a writer

نویسنده شو !

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

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

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

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
بهمن گفت :
۱۴۰۰-۱۰-۱۰ ۰۱:۰۴

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

profile
xander karimi گفت :
۱۴۰۰-۱۰-۱۳ ۰۹:۰۱

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

profile
عرفان گفت :
۱۴۰۰-۱۰-۰۹ ۱۲:۵۲

من توی کد مربوط به پکیج onoff شما استفاده از clearInterval رو میبینم. البته این کد ناقص هست اما به نظر میرسه شما واسه این کد از تایمر ها استفاده کردید که تایمر ها خیلی کند تر از حلقه های ساده while(true) هستن که واسه کد های بعدی استفاده کردید. و طبیعی هست که این مثال شما خیلی کند تر از بقیه باشه.

همچنین برای تغییر ورژن node.js من پیشنهاد میکنم از ابزار nvm استفاده کنید. با یه دستور میتونید ورژن های مختلف رو نصب کنید و بینشون سوییچ کنید.

profile
اصغر گفت :
۱۴۰۰-۰۹-۰۶ ۱۹:۰۹

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

profile
راوندی گفت :
۱۴۰۰-۰۹-۰۲ ۱۰:۱۳

سلام.ممنون از مطلبتون.
اینکه دفعۀ اول این مقدار و دفعه دوم این مقدار یعنی چی؟

profile
xander karimi گفت :
۱۴۰۰-۰۹-۰۲ ۱۲:۳۵

منظور از دفعه اول و دفعه دوم یعنی اینکه وقتی اولین بار برنامه رو اجرا کردیم و دومین بار که برنامه رو ران کردیم

profile
مهران گفت :
۱۴۰۰-۰۸-۱۷ ۰۹:۱۵

این زئوس خودش کجا هست که هر بچه ای از راه میرسه باهاش فیت میده

profile
Zeus گفت :
۱۴۰۰-۰۸-۱۷ ۰۹:۳۵

المپ، تشریف بیارید در خدمت هستیم

profile
میلاد گفت :
۱۴۰۰-۰۸-۱۷ ۰۸:۵۹

سلام
دوستان دیگه ای هم که با این دوتا زبان JavaScript یا python برای رزبری پای کار کردن تجربیاتشون رو بنویسن ممنون میشم ازشون
اینجوری هم من هم بقیه دوستان استفاده میبریم
ما تو شرکت برای بیگل بن بلک از جاوااسکریپت استفاده کردیم حالا میخوایم سوییچ کنیم روی رزبری پای خب قطعا هزینه بر بخوایم کل نرم افزارمون رو هم ببریم روی ‌‌پایتون
خلاصه ممنون

profile
xander karimi گفت :
۱۴۰۰-۰۸-۱۷ ۱۲:۱۷

ممنونم از اینکه وقت گذاشتید و مطالعه کردید

profile
mKt گفت :
۱۴۰۰-۰۸-۱۷ ۰۰:۱۷

اون کاری که کردی بهش میگن اندازه گیری فرکانس نه سرعت خاموش روشن شدن چراغ
در کل مقاله خیلی چرند و غیر علمی بود

profile
xander karimi گفت :
۱۴۰۰-۰۸-۱۷ ۰۹:۳۰

من به زبان شیرین فارسی در اول مقاله به این موضوع ذکر کردم که : میخوایم ببینیم کدوم زبان سرعت بیشتری رو کنترل ورودی و خروجی I/O داره انجام میدیم. یعنی میخوایم ببینیم فرکانس رورودی و خروجی توی کدوم زبان سرعت بیشتری داره. حالا سوال مطرح شده اینه که فرکانس چیه؟ به تعداد رویداد (معنی رویداد رو میتونید از ویکی‌پدیا و یا سایت واژه یاب ببینید) هایی که در یک بازه زمانی مشخص تکرار میشن میگن فرکانس یا بسامد. اینجا رویداد ما چیه؟ ۰ و ۱ شدن خرورجی. ۰ و ۱ شدن مگه همون روشن و خاموش شدن نیست؟
در جواب اون جمله مقاله چرند و غیر علمی هم باید بگم که نظر شما بر روی چرند بودن مقاله ای که براش وقت گذاشته شده و زحمت کشیده شده محترمه. در غیر علمی; شما یا نمیدونید مقاله علمی و غیر علمی چیه یا کلا در مورد مقاله دارید اشتباه میزنید.(با نهایت احترام)

profile
Zeus گفت :
۱۴۰۰-۰۸-۱۷ ۰۹:۱۴

فکر می‌کنم اول باید مقداری دانش خودتون رو در زمینه ای که میخواید در موردش نظر بدید بیشتر کنید، بعد نظر بدید 😐
خیلی ساده است اگر به ویکی پدیا مراجعه کنید نوشته
فِرِکانس (به فرانسوی: Fréquence) برابر «تعداد رخداد یک رویداد تکراری» در «واحد زمان» است.
یعنی اون چراغه چند بار در ثانیه روشن و خاموش می‌شه ! به همین سادگی
در ضمن مقاله کاملا علمی است چون مقاله علمی مقاله ای است که نتایجش قابل تکرار باشند، من هم تست کردم نتیجه همین چیزی هست که در مقاله ذکر شده

profile
محمد یوسفی گفت :
۱۴۰۰-۰۸-۱۷ ۰۰:۰۷

مطلب جالبی بود دست شما درد نکنه. در مورد کدی که به زبان C نوشتین کتابخانه wiringPi از دسترسی به رجیسترهای پردازنده استفاده می کنه. بد نیست سرعت رو با استفاده از sysfs هم توی C تست کنید چون روش روش هم خیلی کاربردیه. متشکرم.
https://elinux.org/RPi_GPIO_Code_Samples#:~:text=500)%20%3B%0A%20%20%7D%0A%20%20return%200%20%3B%0A%7D-,sysfs,-The%20following%20example

profile
xander karimi گفت :
۱۴۰۰-۰۸-۱۷ ۱۲:۱۶

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

profile
بهرام گفت :
۱۴۰۰-۰۸-۱۷ ۰۰:۰۵

چرند نگو باو جاواسکریپتو xxxx میدونه سریع تر پایتونه
بلد نیستی باش کار کنی الکی نگو افتضاح!!!

profile
xander karimi گفت :
۱۴۰۰-۰۸-۱۷ ۰۹:۵۲

در اینکه زبان های برنامه نویسی فقط یک ابزار هستند و ما نباید روی اون ها تعصبی بشیم هیچ شکی نیست. اما به نظرم شما برید و از اول این نوشته رو بخونید. “onoff” داشت با سرعت ۱۳۴ کیلو هرتز دستور برای ۰ و ۱ شدن خروجی میداد. من به نظرم اگه دستی یه سیم رو قطع و وصل کنیم سرعتش به ۱۵۰ کیلو هرتز میرسه. اگه این نتیجه افتضاح نیست پس چیه؟
اما “rpio” با سرعت ۱ مگاهرتز دستور برای ۰ و ۱ شدن خروجی داد. پس مشکل از onoff بوده و نه از زبان جاوا اسکریپت. حالا در اینکه شما میگید بلد نیستی باش کار کنی باید بگم دقیقا باید باهاش چیکار کنم؟
اگه احساس میکنید من بلد نیستم پس شما رو به چالش برنامه نویسی دعوت میکنم. چه با پایتون و چه با جاوا اسکریپت.

profile
بهرام گفت :
۱۴۰۰-۰۸-۲۴ ۲۰:۱۵

آخه جوجه برنامه نویس تو خودت اول برنامه نویسی رو کامل یاد بگیر، 4 خط کد آماده نوشتی یه LED خاموش روشن کردی دعوت به مبارزه هم میکنی!!!

profile
xander karimi گفت :
۱۴۰۰-۰۹-۰۲ ۱۲:۳۰

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

profile
Zeus گفت :
۱۴۰۰-۰۸-۱۷ ۰۹:۱۹

داشتن ادب اولین چیزی هست که لازمه یک بحث سالمه
من دقیقا آزمایش رو تکرار کردم نتایج همین چیزی است که در مقاله ذکر شده
اگر به نظر شما فرق میکنه، خوشحال میشم نتایج آزمایش شما رو هم بررسی کنم

profile
داود گفت :
۱۴۰۰-۰۸-۲۳ ۱۲:۵۸

کاری به ادب این آقا ندارم اما خب شما هم کاش به جای این حرفا یکم مفاهیم سیستم عامل رو میخوندید بعد شروع به نوشتن مقاله کنید
اونجا که سرعت دوبار متفاوت شد حداقل یه سرنخی میتونست بهتون بده که یکم علمی به موضوع نگاه کنید تا شبیه یک تکنسین

profile
Zeus گفت :
۱۴۰۰-۰۹-۰۲ ۱۳:۱۳

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

become a writer

نویسنده شو !

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

ارسال مقاله
become a writer

نویسنده شو !

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

ارسال مقاله