زبانهای برنامه نویسی انواع مختلفی دارند. هر کدام برای توسعه و رشد بوجود آمدهاند. در این بین زبان برنامه نویسی پایتون Python یکی از زبانهای محبوب و توسعه پذیر بین کاربران است. از زبان پایتون Python در بردهای امبدد هم استفاده میشود. برای توسعه اینترنت اشیا IoT به زبان پایتون Python هم نیاز میباشد. روش نصب پایتون برای استفاده در بردهای آردوینو Arduino را بررسی خواهیم کرد. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسیدیجی اسپارک همراه باشید.
زبان پایتون Python
پایتون Python یک زبان برنامه نویسی سطح بالا با برنامه های کاربردی در بسیاری از زمینه ها میباشد. این برنامه ها شامل برنامه نویسی وب، اسکریپت، محاسبات علمی و هوش مصنوعی میباشد. زبان برنامه نویسی پایتون Python بسیار محبوب است و همچنین توسط سازمان های توسعه یافته ای مانند گوگل Google، ناسا NASA، سی آی ای CIA و دیزنی Disney استفاده میشود. نکته قابل توجه در زیان برنامه نویسی پایتون Python این است که در زمان اجرا توسط مترجم پردازش میشود و لازم نیست برنامه خود را قبل از اجرا کامپایل کنید. پایتون Python دارای سه نسخه X.1، X.2 و X.3 میباشد که این سه نسخه اصلی به نسخه های جزئی تر تقسیم میگردد مانند ۲٫۷ و ۳٫۳. طبق ادعا توسعه دهنده، کدهای نوشته شده برای پایتون نسخه ۳٫۳، تضمین شده است که در تمامی نسخه های آبنده کار کند. هر دو نسخه X.2 و X.3 در حال حاضر در حال استفاده میباشد. در این دوره ما از هر دو ورژن بنا بر نیاز پروژه استفاده خواهیم کرد. دقت کنید هیچ محدودیتی برای جا به جایی و انتقال از یک نسخه به نسخه دیگر وجود نخواهد داشت. نکته آخر اینکه پایتون Python دارای پیاده سازی های بسیار گسترده با زبان های برنامه نویسی دارد که ما از نسخه Cpython استفاده خواهیم کرد.
نکته: یک مترجم برنامه ای است که اسکریپت هایی را که در زبان های برنامه نویسی مثل پایتون نوشته شده اند را اجرا میکند.
برد آردوینو Arduino
آردوینو Arduino یک سخت افزار اوپن سورس است که جهت نمونه سازی و اجرای پروژه هایی بر پایه اینترنت اشیا DIY مورد استفاده قرار میگیرد. زبان برنامه نویسی آردوینو C و ++C میباشد و برای اجرای پروژه ها نیاز به کامپایل برنامه در بوت لودر قرار گرفته شده در برد خواهیم بود. آموزش کار با برد آردوینو Arduino و نصب نرم افزار IDE در لینک زیر قرار گرفته شده است. در ابتدا وارد لینک زیر شده و در صورتیکه با نرم افزار آردوینو Arduino آشنایی ندارید، مطالعه کرده و سپس نرم افزار را دانلود و نصب نمایید.
آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE
نصب پایتون Python
برای ارتباط بین برد آردوینو Arduino و پایتون Python نیاز به نصب سه نرم افزار زیر خواهیم داشت:
-
python 2.7.8
-
pyserial version 2.7 , 32 bit version
-
vpython library for 32 bit windows
دانلود و نصب Download python 2.7
جهت نصب نرم افزار پایتون Python عبارت downlaod python 2.7 را گوگل یا بر روی عبارت کلیک کنید. با ورود به سایت پایتون، در قسمت دانلود Download، نسخه (windows X86 MSI Installer (2.7.0 را انتخاب و دانلود کنید.
(windows X86 MSI Installer (2.7.0
منتظر باشید تا نرم افزار دانلود شود. پس از دانلود، نرم افزار را در درایور C نصب نمایید.
دانلود و نصب Download Pyserial 2.7
نرم افزار Pyserial جهت ارتباط سریال بین پایتون و آردوینو نصب و فراخوانی میگردد. برای نصب این نرم افزار عبارت Download Pyserial 2.7 را گوگل و یا بر روی کلید واژه کلیک کنید. منتظر بمانید تا مراحل نصب کامل گردد.
دانلود و نصب Downlaod Vpython
Vpython یک کتابخانه بسیار جذاب برای پایتون میباشد که توسط آن میتوانید انیمیشن های سه بعدی ۳D animations با برنامه نویسی پایتون Python پیاده سازی کنید. جهت نصب کتابخانه، عبارت Downlaod Windows Vpython را گوگل و یا بر روی کلید واژه کلیک کنید. منتظر بمانید تا نرم افزار دانلود گردد و سپس نصب کنید. نرم افزار های مورد نیاز برای اجرای پروژه پایتون Python با نرم افزار آردوینو Arduino نصب و آماده است. برای اجرای اولین پروژه منتظر بخش دوم آموزش پایتون با آردوینو باشید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک دانشجوکیت digispark daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام بالاخره نوبت به پایتون رسید
بی صبرانه منتظرم
سلام
از توجه شما ممنونم.
سلام ورزن ۳ نمیشه استفاده کرد؟
سلام
بله میتوانید استفاده کنید.
سلام
خانم بلورچیان لطفا بخش دوم را قرار دهید.
سپاس از وقتی که میزارید
سلام
از توجه شما ممنونم.
به زودی منتشر خواهد شد.
سلام ضمن درود و خدا قوت ممنون میشم سری آموزشی رو کامل کنید
بی صبرانه منتظر کشف این دنیای جدید با مجموعه قوی دیجی اسپارک هستیم
با سلام
از توجه شما ممنونم.
به زودی آموزش های بخش بعدی منتشر خواهد شد.
چه جالب نمیدونستم سایت فارسی به این خوبی هست در زمینه اینترنت اشیا
ازتون ممنونم
سلامت باشید.
سلام. ببخشید pyserial 2.7 برای پایتون ورژن سه هم کار میکنه؟
با سلام
بله مشکلی وجود ندارد.
سلام با تشکر از مقاله خوبتون یه سوال داشتم من تازه میخوام تو زمینه برنامه نویسی برد اردوینو کار کنم برای برنامه نویسی این برد من الان بین ++C و Python موندم الان میتونم به جای یادگیری ++C پایتون بخونم و با زبان پایتون برنامه نویسی کنم
اگرم نه خب پس پایتون تو این برد کاربردش چی هست و چه نیازی هست براش
و کدوم بخش پایتون رو باید بخونم
با سلام
با توجه به اینکه پروژه های اینترنت اشیا مبتنی بر زبان های برنامه نویسی مختلف است، یادگیری هر یک جداگانه پیشنهاد میشود.
در خصوص IDE Arduino، زبان برنامه نویسی C++ مورد نیاز است و همچنین در صورت نیاز به تعمیم پروژه ممکن است به زبان های دیگر نیاز داشته باشید.
با سلام من میخواستم برنامه نویسی رو با میکروکنترلر ها شروع کنم میشه بگین به جز ++C میشه از پایتون هم استفاده کرد و از کجا باید شروع کنم مراحل کار چجوری لطفا یه توضیحی بدین
با سلام
رد کامنت قبل پاسخ داده شد. بررسی نمایید.
با سلام ممنون از پاسختون یکم راهنمایی ازتون میخوام من ترم ۴ کارشناسی برق هستم و میخوام گرایش الکترونیک برم و علاقه زیادی به برنامه نویسی و وارد شدن در حوزه برنامه نویسی میکروکنترلر ها دارم الان لازمه که من اول ++C بخونم بعد برای پیشرفت و حرفه ای شدن خودم شما چه زبان برنامه نویسی یا چه کاری رو پیشنهاد میدین که در مسیر درست قدم بردارم چون نمیخوام وقتمو با ازمون خطا از دست بدم ممنون میشم از راهنماییتون
با سلام
در خصوص برنامه نویسی در سمت میکروکنترلر ها زبان های برنامه نویسی زیادی قابل اجرا و پیاده سازی است. مانند C++ و پایتون و اندروید، که این مورد بسته به پروژه های انتخابی و انتخاب میکروکنترلر مناسب متفاوت است.
پیشنهاد میکنم در ابتدا با انواع بردها آشنا شده و تحقیق نمایید و سپس شروع به یادگیری کنید. زبان برنامه نویسی پایتون پیشنهاد خوبی بعد از یادگیری C++ میباشد. موارد را بررسی و در صورت سوال از همین طریق اقدام فرمایید.
با سلام
اول که تشکر میکنم بابت اینکه وقت میزارین
ببینین من راجبشون چندین مقاله خوندم ولی واقعیتش چندان متوجه نمیشم که کدومشون خوبه اما اینو میدونم که میکروکنترلر ARM STM32 بازار رو تو دست گرفته انگار که از بقیه سر تره در رابطه با این میکرو بنظرتون از چه زبانی شروع کنم برای برنامه نویسی و اینکه با توجه به رشتم که با خود این ها سرو کار دارم میتونم در اینده از این حرفه کسب درامد قابل توجهی داشته باشم در این زمینه
من برنامه نویس php ام اصلا ربطی به برنامه نویسی میکرو ها نداره؟
ممنون بابت پاسخ گویی تون
با سلام
انتخاب میکروکنترلرها با توجه به نیاز پروژه مشخص میشود. در خصوص یادگیری زبان های برنامه نویسی، اگر هدف داشتن اطلاعات کافی و به روز بودن در مبحث اینترنت اشیا باشد، یادگیری زبان های کاربردی پیشنهاد میشود.
در خصوص php بی ارتباط است و زبان هایی مانند C++ و پایتون بسیار کاربردی است.
سلام من نرم افزارای مورد نیاز رو از طریق pip install توی cmd نصب کردم درست بوده
با سلام
بله امکان پذیر است.
با سلام و عرض خسته نباشید. من چند جا خوندم که می شود در برنامه arduino IDE با زبان پایتون نوشت و کامپایل کرد و متوجه می شود.آیا اشتباه است؟
با سلام
جهت ارتباط آردوینو با پایتون بایستی از طریق ارتباط سریال که در همین آموزش توضیح داده شده است، پیش بروید.
ide arduino از زبان C , C++ پشتیبانی میکند.
سلام من تمام نسخه های پای سریال رو امتحان کردم ولی باز با اردینو ارتباط برقرار نمیشه چه کنم؟؟
ممنون میشم پاسخ بدید
با سلام
مشکل را دقیقا اعلام نمایید تا بررسی شود.
سلام وقتی اکانت درست میکنم بعدش لایسنس میخواد اون رو باید چکار کرد ؟ البته من برای پکیج رزبری میخوام.
با سلام
اکانت چه برنامه ای منظور شما است؟ توضیح دهید تا بررسی شود.
خسته نباشید من دو تا سوال داشتم ممنون میشم پاسخ بدید…
برای اتصال برد به پایتون از پای سریال استفاده میشه ولی متاسفانه پای سریال بنده فقط به نسخه ۳ پایتون متصل میشه و نسخه ۲ رو نمیشناسه و توی ژانویه ۲۰۲۰ پایتون ۲٫۷ منسوخ شده و ممکنه که کتابخانه سریال برای پایتون ۳ هم ارائه بشه؟؟واگرنه ممکنه راهنمایی کنید که چگونه این مشکل رو برطرف کنم…
با سلام و سپاس
اگه منظورتون کتابخانه pyserial هستش که این کتابخانه هم برای پایتون ۲٫۷ ارائه شده و هم برای پایتون ۳٫۴ به بعد در ضمن منظور از اینکه پایتون ۲٫۷ منسوخ شده یعنی آپدیت جدیدی برای آن ارائه نخواهد شد وگرنه پایتون به کار خودش ادامه میدهد مشکلی در اجرا ندارد.
سلام ممنون بابت اموزشتون
من ویندوزم ۶۴ هست و برای پایتونPython 2.7.17 بین Windows x86-64 MSI installer و Windows x86 MSI installer کدوم رو باید دانلود کنم و برای pyserial نسخه ۶۴ نداره فقط ۳۲ نوشته!
Download of pyserial-2.7.win32.exe (pyserial-2.7.win32.exe چیکار کنم ؟ ممنون
با سلام
در خصوص سوال اول نسخه (windows X86 MSI Installer (2.7.0 نصب کنید.
با توجه به اینکه این آموزش ۱ سال قبل نوشته شده است، لینک های سایت های خارجی ممکن است تغییراتی داشته باشد. نسخه مورد نیاز را سرچ کرده و جایگزین کنید.
سلام خانم مهندس
میشه لطف کنید، کد زیر رو که مربوط میشه به پالس سنسور بصورت خلاصه ، به زبان عام و تحت الفظی برام معنی کنید می خوام بدونم توی هر خط چه اتفاقی رخ می دهد.
سپاس
int sensor_pin = 0;
int led_pin = 13;
volatile int heart_rate;
volatile int analog_data;
volatile int time_between_beats = 600;
volatile boolean pulse_signal = false;
volatile int beat[10]; //heartbeat values will be sotred in this array
volatile int peak_value = 512;
volatile int trough_value = 512;
volatile int thresh = 525;
volatile int amplitude = 100;
volatile boolean first_heartpulse = true;
volatile boolean second_heartpulse = false;
volatile unsigned long samplecounter = 0; //This counter will tell us the pulse timing
volatile unsigned long lastBeatTime = 0;
void setup()
{
pinMode(led_pin,OUTPUT);
Serial.begin(115200);
interruptSetup();
}
void loop()
{
Serial.print(“BPM: “);
Serial.println(heart_rate);
delay(200); // take a break
}
void interruptSetup()
{
TCCR2A = 0x02; // This will disable the PWM on pin 3 and 11
OCR2A = 0X7C; // This will set the top of count to 124 for the 500Hz sample rate
TCCR2B = 0x06; // DON’T FORCE COMPARE, 256 PRESCALER
TIMSK2 = 0x02; // This will enable interrupt on match between OCR2A and Timer
sei(); // This will make sure that the global interrupts are enable
}
ISR(TIMER2_COMPA_vect)
{
cli();
analog_data = analogRead(sensor_pin);
samplecounter += 2;
int N = samplecounter – lastBeatTime;
if(analog_data (time_between_beats/5)*3)
{
if (analog_data thresh && analog_data > peak_value)
{
peak_value = analog_data;
}
if (N > 250)
{
if ( (analog_data > thresh) && (pulse_signal == false) && (N > (time_between_beats/5)*3) )
{
pulse_signal = true;
digitalWrite(led_pin,HIGH);
time_between_beats = samplecounter – lastBeatTime;
lastBeatTime = samplecounter;
if(second_heartpulse)
{
second_heartpulse = false;
for(int i=0; i<=9; i++)
{
beat[i] = time_between_beats; //Filling the array with the heart beat values
}
}
if(first_heartpulse)
{
first_heartpulse = false;
second_heartpulse = true;
sei();
return;
}
word runningTotal = 0;
for(int i=0; i<=8; i++)
{
beat[i] = beat[i+1];
runningTotal += beat[i];
}
beat[9] = time_between_beats;
runningTotal += beat[9];
runningTotal /= 10;
heart_rate = 60000/runningTotal;
}
}
if (analog_data 2500)
{
thresh = 512;
peak_value = 512;
trough_value = 512;
lastBeatTime = samplecounter;
first_heartpulse = true;
second_heartpulse = false;
}
sei();
}
با سلام
کاربر گرامی امکان تحلیل کد در کامنت ها وجود ندارد. در صورتیکه در خط هایی از برنامه ابهامی دارید، بپرسید تا راهنمایی شود.
سلام
خسته نباشید
می خواستم بدونم آیا الان قسمت دوم آموزش در سایت موجود هست؟
باتشکر
با سلام
از توجه شما ممنونم. در حال حاضر بخش دوم منتشر نشده است.
سلام وقت بخیر
میخواستم بدونم برای سنسورهای بیولوژیکی مثل ضربان قلب و الکتروکاردیوگرام و… بهتره از کدام برد آردوینو استفاده کنم؟ ممنون میشم راهنمایی بفرمایید
با سلام
تفاوتی در نوع برد آردوینو وجود ندارد و ماهیت همه ی آن ها یکسان است.
salam …in barname 2 steper mottor hast… in ro mikham az tarighe usb be hmi vasl konam… lotfan rahnamayi mifarmayid
const int StepX = 9;
const int DirX = 10;
const int StepY = 6;
const int DirY = 7;
void setup() {
pinMode(StepX,OUTPUT);
pinMode(DirX,OUTPUT);
pinMode(StepY,OUTPUT);
pinMode(DirY,OUTPUT);
}
void loop() {
digitalWrite(DirX, HIGH);
digitalWrite(DirY, HIGH);
for(int x = 0; x<200; x++) {
digitalWrite(StepX,HIGH);
delayMicroseconds(500);
digitalWrite(StepX,LOW);
delayMicroseconds(500);
}
delay(3000);
for(int x = 0; x<200; x++) {
digitalWrite(StepY,HIGH);
delayMicroseconds(500);
digitalWrite(StepY,LOW);
delayMicroseconds(500);
}
delay(3000); //
digitalWrite(DirX, LOW);
digitalWrite(DirY, LOW);
for(int x = 0; x<200; x++) {
digitalWrite(StepX,HIGH);
delayMicroseconds(500);
digitalWrite(StepX,LOW);
delayMicroseconds(500);
}
delay(3000);
for(int x = 0; x<200; x++) {
digitalWrite(StepY,HIGH);
delayMicroseconds(500);
digitalWrite(StepY,LOW);
delayMicroseconds(500);
}
delay(5000);
}
با سلام
امکان پیگیری کدهای متفرقه فراهم نیست.
salam …in barname 2 steper mottor hast… in ro mikham az tarighe usb be hmi vasl konam… lotfan rahnamayi mifarmayid
const int StepX = 9;
const int DirX = 10;
const int StepY = 6;
const int DirY = 7;
void setup() {
pinMode(StepX,OUTPUT);
pinMode(DirX,OUTPUT);
pinMode(StepY,OUTPUT);
pinMode(DirY,OUTPUT);
}
void loop() {
digitalWrite(DirX, HIGH);
digitalWrite(DirY, HIGH);
for(int x = 0; x<200; x++) {
digitalWrite(StepX,HIGH);
delayMicroseconds(500);
digitalWrite(StepX,LOW);
delayMicroseconds(500);
}
delay(3000);
for(int x = 0; x<200; x++) {
digitalWrite(StepY,HIGH);
delayMicroseconds(500);
digitalWrite(StepY,LOW);
delayMicroseconds(500);
}
delay(3000); //
digitalWrite(DirX, LOW);
digitalWrite(DirY, LOW);
for(int x = 0; x<200; x++) {
digitalWrite(StepX,HIGH);
delayMicroseconds(500);
digitalWrite(StepX,LOW);
delayMicroseconds(500);
}
delay(3000);
for(int x = 0; x<200; x++) {
digitalWrite(StepY,HIGH);
delayMicroseconds(500);
digitalWrite(StepY,LOW);
delayMicroseconds(500);
}
delay(5000);
}
..
با سلام
امکان پیگیری کدهای متفرقه فراهم نیست.
سلام.
اگر با پایتون بر روی برد کد بنویسیم ایا امکان استفاده از کتابخانه های آماده پردازش تصویر و هوش مصنوعی و غیره ی پایتون هست یا خیر؟
با سلام استف
در این خصوص بایستی از میکروپایتون و بردهای پردازش تصویر مانند m5 , maixduino استفاده کنید.
https://daneshjookit.com/311-ai-iot