مشاهده دسته‌بندی‌ها

افزونه آردوینو - محاسبات فیزیکی در اسکرچ

🔌 افزونه آردوینو - محاسبات فیزیکی در اسکرچ #

افزونه آردوینو دنیای واقعی الکترونیک و رباتیک را وارد اسکرچ می کند.
با استفاده از چند بلوک ساده می توانید ال ای دی ها، موتور ها، سروو ها و انواع سنسورها را کنترل کنید و پروژه های فیزیکی تعاملی بسازید.
این افزونه برای دانش آموزان، سازندگان (maker ها) و آموزش های STEM بسیار مناسب است. ✨


🌟 مرور کلی #

  • محاسبات فیزیکی (Physical Computing): کنترل سخت افزار واقعی مثل ال ای دی، موتور، سروو، سنسور و موارد بیشتر.
  • پشتیبانی آردوینو: سازگار با آردوینو Uno، Mega، Nano، Leonardo و بردهای دیگر سازگار.
  • اتصال: استفاده از ارتباط سریال و بلوتوث BLE در خود مرورگر. برای دیدن مراحل کامل اتصال، راهنما را در لینک زیر ببینید:
    نحوه اتصال افزونه‌های پیش.ای.آی اسکرچ به آردوینو، ربات‌ها و سایر سخت‌افزارها.
  • Standard Firmata: آردوینو با استفاده از پروتکل Firmata با اسکرچ ارتباط برقرار می کند.
  • بلوک های متنوع: بیش از ۴۰ بلوک برای ورودی و خروجی دیجیتال و آنالوگ، PWM، سروو، ال ای دی RGB، موتور، I2C و موارد دیگر.
  • کنترل بلادرنگ: بازخورد فوری - همزمان با اجرای کد در اسکرچ، واکنش سخت افزار را می بینید.

✨ ویژگی‌های کلیدی #

  • ورودی و خروجی دیجیتال: خواندن دکمه ها، کنترل ال ای دی ها، تشخیص سیگنال ها.
  • ورودی آنالوگ: خواندن سنسورها مثل نور، دما، فاصله، پتانسیومتر و غیره.
  • خروجی PWM: کنترل روشنایی ال ای دی، سرعت موتور و رنگ های RGB.
  • کنترل سروو: تنظیم زاویه سروو ها و ساخت حرکات رباتیک.
  • کنترل ال‌ای‌دی آرجی‌بی: ۱۳ رنگ از پیش تعریف شده، مقدار دهی دلخواه RGB، افکت های محو شدن و چشمک زدن.
  • کنترل موتور: کنترل سرعت و جهت موتور های DC با استفاده از درایور های H-bridge.
  • صدا و بوق: ۱۳ الگوی صوتی آماده برای بوق، هشدار، آلارم، SOS و غیره.
  • ارتباط I2C: پشتیبانی از سنسورها و ماژول‌های پیشرفته مبتنی بر I2C.
  • خواندن هوشمند پین: تشخیص خودکار این که پین باید دیجیتال خوانده شود یا آنالوگ.
  • بلوک های پیشرفته: تشخیص لبه سیگنال، نظارت بر آستانه‌ها و نگاشت مقادیر.

🚀 نحوه استفاده #

مرحله ۱ - نصب StandardFirmata #

برای استفاده از افزونه، باید فرم ور StandardFirmata روی آردوینوی شما نصب شده باشد.

✔ این راهنما را دنبال کنید:
نحوه نصب Standard Firmata روی آردوینو


مرحله ۲ - اتصال آردوینو به اسکرچ #

۱. باز کنید: pishi.ai/play
۲. افزونه آردوینو را به پروژه اضافه کنید.
۳. دکمه اتصال را کلیک کنید.
۴. درگاه (پورت) مربوط به آردوینوی خود را انتخاب کنید.

برای دیدن راهنمای کامل اتصال، مجوزها، پشتیبانی مرورگر و نکات مخصوص macOS، این صفحه‌ها را ببینید:


🧱 بلوک‌ها و توابع #

 

⚡ ورودی/خروجی اصلی - پین‌های دیجیتال #

نوشتن [0/1] روی پین دیجیتال [PIN]

این بلوک مقدار دیجیتال پین را تنظیم می کند. مقدار ۰ یعنی LOW و مقدار ۱ یعنی HIGH.
از این بلوک برای روشن و خاموش کردن ال ای دی ها، کنترل رله ها یا ارسال سیگنال دیجیتال استفاده کنید.

آرگومان‌ها:

  • [PIN] - شماره پین دیجیتال (مثلا ۲، ۳، ۱۳)
  • [0/1] - مقدار خروجی ۰ (LOW) یا ۱ (HIGH)

مثال: نوشتن [1] روی پین دیجیتال [13] ← ال ای دی داخلی آردوینو را روشن می کند.

 

خواندن پین دیجیتال [PIN]

این بلوک وضعیت فعلی یک پین دیجیتال را می خواند و ۰ یا ۱ برمی گرداند.
برای خواندن دکمه ها، کلید ها یا سنسور های دیجیتال از آن استفاده کنید.

خروجی: ۰ یا ۱

مثال: خواندن پین دیجیتال [2] ← مقدار ۰ یا ۱ را از پین ۲ برمی گرداند.


📊 ورودی/خروجی اصلی - آنالوگ و PWM #

نوشتن [VALUE] درصد روی پین pwm ‏[PIN]

این بلوک مقدار PWM را روی یک پین تنظیم می کند و برای کنترل روشنایی ال ای دی، سرعت موتور و خروجی شبه آنالوگ به کار می رود.
پین های PWM روی برد های آردوینو با علامت ~ مشخص می شوند (مثل پین های ۳، ۵، ۶، ۹، ۱۰ و ۱۱ روی Uno).

آرگومان‌ها:

  • [PIN] شماره پین PWM
  • [VALUE] درصد خروجی از ۰ تا ۱۰۰: ۰ = خاموش، ۱۰۰ = روشن با تمام توان

مثال: نوشتن [50] درصد روی پین pwm ‏[9] ← روشنایی ال ای دی را روی ۵۰ درصد تنظیم می کند.

 

خواندن پین آنالوگ [PIN]

این بلوک مقدار آنالوگ یک پین را می خواند. روی Uno پین های a0 تا a5 و روی Mega پین های a0 تا a15 در دسترس هستند.
خروجی عددی بین ۰ تا ۱۰۲۳ است که نشان دهنده ولتاژ از ۰ تا ۵ ولت است.

خروجی: عددی بین ۰ تا ۱۰۲۳

مثال: خواندن مقدار پتانسیومتر، سنسور نور، سنسور دما و سنسور های مشابه.

 

خواندن پین [PIN] (حالت تشخیص خودکار)

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

خروجی: مقدار پین - یا ۰ و ۱ دیجیتال یا مقدار آنالوگ ۰ تا ۱۰۲۳.

 


💡 کنترل LED #

روشن کردن ال ای دی روی پین [PIN]
خاموش کردن ال ای دی روی پین [PIN]

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

مثال:

  • روشن کردن ال ای دی روی پین [13] ← ال ای دی داخلی آردوینو را روشن می کند.
  • خاموش کردن ال ای دی روی پین [13] ← همان ال ای دی را خاموش می کند.

 

چشمک زدن ال ای دی روی پین [PIN] برای [TIMES] بار، روشن: [ON_TIME] خاموش: [OFF_TIME] میلی ثانیه

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

آرگومان‌ها:

  • [PIN] - شماره پین ال ای دی
  • [TIMES] - تعداد چشمک ها
  • [ON_TIME] - مدت روشن بودن بر حسب میلی ثانیه
  • [OFF_TIME] - مدت خاموش بودن بر حسب میلی ثانیه

مثال: چشمک زدن ال ای دی روی پین [13] برای [3] بار، روشن: [200] خاموش: [500] میلی ثانیه ← سه بار آهسته چشمک می‌زند.

 


🌈 کنترل LED RGB #

تنظیم rgb با پین قرمز:[RPIN] سبز:[GPIN] آبی:[BPIN] به r:‏[RED]‏ g:‏[GREEN]‏ b:‏[BLUE]

با این بلوک می توانید ال ای دی RGB را با مشخص کردن سه مقدار قرمز، سبز و آبی از ۰ تا ۲۵۵ کنترل کنید.
با ترکیب سه رنگ قرمز، سبز و آبی، هر رنگ دلخواهی بسازید.

آرگومان‌ها:

  • [RPIN/GPIN/BPIN] - پین های PWM برای رنگ های قرمز، سبز و آبی
  • [RED/GREEN/BLUE] - شدت هر رنگ بین ۰ تا ۲۵۵

مثال: تنظیم rgb با پین قرمز:[9] سبز:[10] آبی:[11] به r:‏[255]‏ g:‏[0]‏ b:‏[0] ← قرمز خالص

 

تنظیم rgb با پین قرمز:[RPIN] سبز:[GPIN] آبی:[BPIN] به رنگ [COLOR]

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

رنگ های در دسترس:

  • خاموش، قرمز، سبز، آبی، سفید، زرد، فیروزه ای، سرخابی، نارنجی، بنفش، صورتی، لیمویی، نیلی.

مثال: تنظیم rgb با پین قرمز:[9] سبز:[10] آبی:[11] به رنگ [زرد]

 

چشمک زدن rgb با پین قرمز:[RPIN] سبز:[GPIN] آبی:[BPIN] بین [COLOR1] و [COLOR2] برای [TIMES] در [DELAY] میلی ثانیه

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

مثال: چشمک زدن rgb با پین قرمز:[9] سبز:[10] آبی:[11] بین [قرمز] و [آبی] برای [5] در [300] میلی ثانیه ← بین رنگ قرمز و آبی ۵ بار چشمک می‌زند.

 

افزایش تدریجی نور rgb با پین قرمز:[RPIN] سبز:[GPIN] آبی:[BPIN] به رنگ [COLOR] در [DURATION] میلی ثانیه
کاهش تدریجی نور rgb با پین قرمز:[RPIN] سبز:[GPIN] آبی:[BPIN] از رنگ [COLOR] در [DURATION] میلی ثانیه

این بلوک ها نور ال ای دی RGB را به صورت نرم و تدریجی کم یا زیاد می کنند.
به این ترتیب جلوه های نوری حرفه ای ایجاد می گردد.

مثال: افزایش تدریجی نور rgb با پین قرمز:[9] سبز:[10] آبی:[11] به رنگ [سفید] در [1000] میلی ثانیه ← به تدریج در مدت ۱ ثانیه به رنگ سفید روشن درمی‌آید.

 


🔊 کنترل صدا/بوق #

بوق بزن روی پین [PIN]

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

 

بوق بزن روی پین [PIN] به مدت [DURATION] میلی ثانیه

بوق را با مدت زمان دلخواه پخش می کند و به شما امکان می دهد طول صدای بوق را دقیق تنظیم کنید.

مثال: بوق بزن روی پین [8] به مدت [500] میلی ثانیه ← بوق نیم ثانیه‌ای

 

پخش الگوی [PATTERN] روی پین [PIN]

با این بلوک می توانید از الگو های آماده بوق برای اعلان ها و هشدار ها استفاده کنید.

الگو های در دسترس:

  • بوق کوتاه – تک بوق سریع
  • بوق طولانی – تک بوق ممتد
  • دو بوق – دو بوق سریع
  • سه بوق – سه بوق سریع
  • موفقیت – بوق کوتاه + بلند (صدای موفقیت)
  • پیروزی – سکانس جشن سریع
  • خطا - صدای خطای نامنظم
  • هشدار - هشدار چند بوقی
  • ناکامی - دو بوق غمگین طولانی
  • آلارم - سه بوق بلند اضطراری
  • اعلان - صدای اعلان دوستانه
  • ضربان – بوق-مکث-بوق ریتمیک
  • sos - سیگنال اضطراری SOS با کد مورس

مثال: پخش الگوی [پیروزی] روی پین [8]

 

توقف بوق روی پین [PIN]
توقف بوق روی پین [PIN] به مدت [DURATION] میلی ثانیه

خروجی بوق را قطع می کند یا برای مدت معین متوقف می کند.

 


🤖 کنترل سروو #

تنظیم سروو روی پین [PIN] به زاویه [ANGLE]

این بلوک زاویه سروو را بین ۰ تا ۱۸۰ درجه تنظیم می کند.
برای بازو های رباتیک، پایه های pan-tilt و انواع مکانیزم های حرکتی مناسب است.

آرگومان‌ها:

  • [PIN] - پین سیگنال سروو (معمولا پین PWM)
  • [ANGLE] - زاویه سروو بین ۰ تا ۱۸۰ درجه

مثال: تنظیم سروو روی پین [9] به زاویه [90] ← سروو را در مرکز قرار می‌دهد.

 

حرکت سروو روی پین [PIN] از زاویه [ANGLE1] تا [ANGLE2] با سرعت [SPEED]

حرکت روان سروو - به تدریج از یک زاویه به زاویه دیگر با سرعت کنترل شده حرکت می‌کند.
حرکات رباتیک طبیعی و روان ایجاد می‌کند.

آرگومان‌ها:

  • [SPEED] - سرعت حرکت از ۱ تا ۱۰۰: سرعت ۱ کندترین و سرعت ۱۰۰ سریع‌ترین است.

مثال: حرکت سروو روی پین [2] از زاویه [0] تا [180] با سرعت [50]

 

توقف سروو روی پین [PIN]

سیگنال سروو را قطع می کند تا سروو آزاد شود یا از حرکت بایستد.

 


⚙️ کنترل موتور #

تنظیم موتور روی پین‌ [PIN1] و [PIN2] به سرعت: [SPEED] جهت: [DIRECTION]

این بلوک برای کنترل موتور های DC با درایور H-bridge مثل L298N یا L293D استفاده می شود
می توانید سرعت و جهت چرخش موتور را تنظیم کنید.

آرگومان‌ها:

  • [PIN1/PIN2] - پین های کنترل درایور H-bridge
  • [SPEED] - سرعت موتور از ۰ تا ۱۰۰ درصد
  • [DIRECTION] - جهت حرکت (جلو، عقب یا توقف)

مثال: تنظیم موتور روی پین‌ [9] و [10] به سرعت: [75] جهت: [جلو]

 

توقف موتور روی پین‌ [PIN1] و [PIN2]

با تنظیم هر دو پین روی ۰، موتور را متوقف و درایور را در حالت ترمز قرار می دهد.

 


🎯 بلوک‌های حسگر پیشرفته #

منتظر بمان تا پین دیجیتال [PIN] [0/1] شود

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

مثال: منتظر بمان تا پین دیجیتال [2] [1] شود ← منتظر فشار دکمه می‌ماند

 

پین دیجیتال [PIN] [0/1] است؟

بررسی حسگر از نوع بولین - اگر پین با وضعیت مشخص شده مطابقت داشته باشد، مقدار true را برمی‌گرداند.

مثال: پین دیجیتال [2] [1] است؟ ← اگر پین ۲ مقدار ۱ را بخواند، مقدار درست (true) را برمی‌گرداند.

 

[EDGE_TYPE] روی پین [PIN] تشخیص داده شد؟

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

انواع لبه:

  • بالا رونده - تشخیص زمانی که پین ​​از حالت LOW به HIGH می‌رود
  • پایین رونده - تشخیص زمانی که پین ​​از حالت HIGH به LOW می‌رود
  • تغییر - تشخیص در صورت تغییر وضعیت

مثال: [لبه بالا رونده] روی پین [2] تشخیص داده شد؟ ← وقتی پین ۲ از ۰ به ۱ تغییر کند، مقدار درست (true) را برمی‌گرداند.

 

مقدار پین آنالوگ [PIN] بین [MIN] و [MAX] است؟

بررسی می کند آیا مقدار خوانده شده از سنسور در بازه مشخصی قرار دارد یا خیر.

مثال: مقدار پین آنالوگ [a0] بین [300] و [700] است؟ ← وقتی مقدار آنالوگ روی a0 بین ۳۰۰ تا ۷۰۰ باشد، مقدار درست (true) را برمی‌گرداند.

 

منتظر بمان تا پین آنالوگ [PIN] [CONDITION] [THRESHOLD] شود

تا زمانی که مقدار سنسور از یک آستانه بالاتر، پایین تر یا مساوی نشود صبر می کند.

شرایط: بالاتر، پایین‌تر، مساوی

مثال: منتظر بمان تا پین آنالوگ [a0] [بزرگتر از] [0] شود ← منتظر می‌ماند تا سنسور > ۵۰۰ شود

 

پین آنالوگ [PIN] بیشتر از [SENSITIVITY] عدد تغییر کرده؟

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

مثال: پین آنالوگ [a0] بیشتر از [50] عدد تغییر کرده؟← یک تغییر بزرگ (بیش از ۵۰) در مقدار حسگر روی a0 تشخیص می‌دهد.

 


🔧 بلوک‌های پیکربندی #

تنظیم حالت پین [PIN] به [MODE]

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

حالت‌ها:

  • ورودی دیجیتال – ورودی دیجیتال ۰/۱ (دکمه‌ها، سوئیچ‌ها)
  • ورودی دیجیتال: پول‌آپ – ورودی دیجیتال با مقاومت پول‌آپ داخلی
  • خروجی: ۰ – خروجی دیجیتال در حالت LOW
  • خروجی: ۱ – خروجی دیجیتال در حالت HIGH
  • pwm – خروجی PWM
  • سروو – خروجی سروو RC
  • ورودی آنالوگ – ورودی آنالوگ (۰-۱۰۲۳)

 

حالت پین [PIN]

حالت فعلی پین را به صورت متن برمی گرداند.

 

وضعیت پین [PIN]

مقدار فعلی پین را (بسته به حالت آن) برمی گرداند.

 


🔌 ارتباط I2C (پیشرفته) #

فعال کردن i2c با تأخیر [DELAY] میکروثانیه

برای استفاده از سنسورها و دستگاه های I2C ابتدا باید این بلوک را اجرا کنید.
روی آردوینو Uno پین های a4 برای SDA و a5 برای SCL استفاده می شوند.

 

نوشتن i2c به آدرس: [ADDRESS] مقدار: [DATA]

داده را به دستگاه I2C با آدرس مشخص می فرستد. این دستور برای تنظیم رجیستر ها یا ارسال فرمان ها استفاده می شود.

مثال: نوشتن i2c به آدرس: [0x48] مقدار: [0x00]

 

خواندن [BYTES] بایت از آدرس: [ADDRESS] رجیستر: [REGISTER] به صورت: [FORMAT]

از دستگاه I2C داده می خواند و آن را در قالب دلخواه برمی گرداند.

قالب‌ها: هگزادسیمال، دهدهی با یا بدون علامت، اعشاری یا متن ASCII

مثال: خواندن [2] بایت از آدرس: [0x48] رجیستر: [0x00] به صورت: [decimal: unsigned]

 

غیرفعال کردن i2c و آزادسازی پین ها

ارتباط I2C را می بندد و پین های I2C را برای استفاده دیگر آزاد می کند.

 

i2c فعال است؟

بررسی می کند که آیا I2C در حال حاضر فعال است یا نه.

 


📡 ارتباط Serial/BLE (پیشرفته) #

‏فعال کردن serial/ble روی rx: ‏[RX_PIN]‏ tx: ‏[TX_PIN]

این بلوک ارتباط سریال یا BLE را روی دو پین مشخص فعال می کند و آن ها را برای ارتباط با ماژول های خارجی رزرو می کند.
در برد هایی که بلوتوث داخلی ندارند، برای اتصال ماژول های BLE مثل HC-05، HC-06 و HM-10 به Scratch از این بلوک استفاده می شود.
با فرم ور StandardFirmataPishiAi یا سایر فرم ور های تغییر داده شده StandardFirmata سازگار است.

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

آرگومان‌ها

  • [RX_PIN] - پین دریافت (RX) برای ارتباط سریال
  • [TX_PIN] - پین ارسال (TX) برای ارتباط سریال

کاربرد اصلی

  • ماژول‌های اکسترنال BLE: از پین‌های سریال مورد استفاده برای ماژول‌های سریال یا BLE مانند HC-05، HC-06 و HM-10 محافظت می‌کند تا اسکرچ بتواند از طریق فرم ور StandardFirmataPishiAi متصل شود.

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

مثال:
‏فعال کردن serial/ble روی rx: ‏[4]‏ tx: ‏[7]

 

غیرفعال کردن serial/ble و آزادسازی پین ها

ارتباط Serial/BLE را غیر فعال می کند و پین های رزرو شده را دوباره آزاد می کند تا بتوانید آن ها را برای سنسور ها یا خروجی های دیگر استفاده کنید.
وقتی دیگر به اتصال BLE نیاز ندارید و می‌خواهید از پین‌ها برای سنسورها یا خروجی‌ها دوباره استفاده کنید، از این استفاده کنید.

 

serial/ble فعال است؟

بررسی می کند که آیا حالت حفاظت سریال یا BLE فعال است یا خیر.
در صورت فعال بودن مقدار true و در صورت غیرفعال بودن مقدار false را برمی‌گرداند.

 


📐 بلوک‌های کاربردی #

تبدیل مقدار [VALUE] از بازه [FROM_LOW]-[FROM_HIGH] به [TO_LOW]-[TO_HIGH]

این بلوک مقدار دریافتی را از یک بازه به بازه دیگر نگاشت می کند و برای کالیبره کردن سنسور ها بسیار مهم است.
رفتار آن مشابه تابع ()map در آردوینو است.

مثال: تبدیل مقدار [512] از بازه [0]-[1023] به [0]-[100] ← تقریباً مقدار ۵۰ را برمی گرداند و عدد آنالوگ را به درصد تبدیل می کند.

کاربردهای معمول:

  • تبدیل بازه سنسور آنالوگ (۰ تا ۱۰۲۳) به درصد (۰ تا ۱۰۰)
  • مقیاس کردن زاویه سروو و سرعت موتور
  • تنظیم بازه های خام سنسور به بازه های مناسب در پروژه

 

نسخه فرماتا

نسخه فرم ور Firmata روی آردوینو را برمی گرداند (مثلا "2.5").
این اطلاعات برای عیب یابی مشکلات ارتباطی مفید است.

 


🎓 کاربردهای آموزشی #

  • محاسبات فیزیکی - دانش آموزان یاد می گیرند که چگونه نرم افزار می تواند سخت افزار واقعی را کنترل کند و بین دنیای دیجیتال و فیزیکی پل بزنند.
  • آموزش مبانی الکترونیک - مفاهیمی مانند مدار، ولتاژ، جریان، دیجیتال در برابر آنالوگ و PWM را در عمل تجربه می کنند.
  • پروژه های STEM و STEAM - ساخت ربات، اتوماسیون، اینترنت اشیا و پایش محیطی.
  • تعامل مبتنی بر سنسور - پروژه هایی که به نور، صدا، حرکت، دما و فاصله واکنش نشان می دهند.
  • آموزش رباتیک - ساخت و برنامه نویسی ربات ها با استفاده از سروو، موتور و سنسور.
  • فرهنگ میکر و ساختنی - یادگیری عملی، نمونه سازی سریع و حل خلاقانه مسئله.
  • پروژه های میان رشته ای - ترکیب برنامه نویسی، مهندسی، هنر و علوم در یک پروژه واحد.

🎮 پروژه‌های نمونه #

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

🧩 خودتان امتحان کنید: pishi.ai/play

 


🔧 نکات و عیب‌یابی #

 

🔌 نکات ویژه آردوینو #

  • اتصال برقرار نمی شود؟ مطمئن شوید برای اتصال USB فرم ور StandardFirmata و برای بلوتوث فرم ور StandardFirmataBLE (یا فرم ور سازگار) روی برد نصب شده است.
  • درگاه USB دیده نمی شود؟ پنجره Serial Monitor در Arduino IDE را ببندید، چون پورت را اشغال می کند. اگر لازم بود کابل USB را یک بار جدا و دوباره وصل کنید.
  • سازگاری مرورگر برای USB: از Chrome ، Edge ، Opera یا سایر مرورگر های مبتنی بر Chromium روی دسکتاپ استفاده کنید. Safari و Firefox معمولا از WebUSB پشتیبانی نمی کنند.
  • سازگاری مرورگر برای BLE: بلوتوث BLE در مرورگر Chrome و Edge روی دسکتاپ پشتیبانی می شود. Safari و Firefox معمولا BLE را پشتیبانی نمی کنند.
  • پین کار نمی کند؟ سیم کشی را دوباره بررسی کنید، شماره پین را چک کنید و مطمئن شوید پین مورد نظر از قابلیت مربوطه (PWM، آنالوگ و غیره) پشتیبانی می کند.
  • ال ای دی روشن نمی شود؟ حتما از مقاومت 220 اهم تا 1 کیلو اهم برای محافظت ال ای دی استفاده کنید و پلاریته آن را چک کنید (معمولا پایه بلند مثبت است).
  • سروو می لرزد؟ برای سروو ها از منبع تغذیه جدا استفاده کنید. توان USB آردوینو معمولا برای چند سروو کافی نیست.
  • خواندن آنالوگ نویز دارد؟ یک خازن کوچک حدود ۰٫۱ میکروفاراد بین خروجی سنسور و زمین قرار دهید تا مقدار پایدار تر شود.
  • موتور کار نمی کند؟ موتور های DC به منبع تغذیه جدا و درایور H-bridge نیاز دارند. هرگز موتور را مستقیم به پین آردوینو وصل نکنید.
  • مشکل نسخه Firmata؟ آخرین نسخه StandardFirmata را از منوی Examples در Arduino IDE روی برد آپلود کنید.
  • چند آردوینو به صورت همزمان؟ هر آردوینو باید به صورت جداگانه متصل شود. برای سوئیچ کردن بین برد ها، اتصال یکی را قطع و دیگری را وصل کنید.
  • رنگ های اشتباه در ال ای دی RGB؟ بررسی کنید ال ای دی شما از نوع آند مشترک است یا کاتد مشترک. در نوع آند مشترک ممکن است لازم باشد منطق معکوس شود.
    همچنین ممکن است برای هر رنگ به مقاومت متفاوتی نیاز باشد تا روشنایی آن ها مشابه شود.
  • I2C کار نمی کند؟ از مقاومت های پول آپ 4.7 کیلو اهم روی خطوط SDA و SCL استفاده کنید و آدرس دستگاه را با یک اسکچ I2C Scanner بررسی کنید.

⚡ اطلاعات پین‌ها #

- آردوینو Uno / Nano (کلاسیک) #

  • پین‌های دیجیتال: 0 تا 13 (اگر از Serial استفاده می کنید بهتر است از پین های 0 و 1 استفاده نکنید)
  • پین‌های PWM:‏ 3, 5, 6, 9, 10, 11
  • ورودی‌های آنالوگ: a0 تا a5 (همچنین قابل استفاده به عنوان دیجیتال 14 تا 19)
  • I2C:‏ پین های a4 برای SDA و a5 برای SCL
  • ال ای دی داخلی: پین 13

- آردوینو Mega 2560 #

  • پین‌های دیجیتال: 0–53
  • پین‌های PWM:‏ 2–13, 44–46
  • ورودی‌های آنالوگ: a0–a15
  • I2C:‏ پین های 20 (SDA) و 21 (SCL)

- آردوینو Micro / Leonardo #

  • پین‌های دیجیتال: 0 تا 13 به علاوه پین های 14 تا 21
  • پین‌های PWM:‏ 3, 5, 6, 9, 10, 11, 13
  • ورودی‌های آنالوگ: a0 تا a5 و در برخی نسخه ها a6 تا a11
  • I2C:‏ 2 (SDA), 3 (SCL)
  • ال ای دی داخلی: پین 13

- آردوینو Nano 33 BLE / BLE Sense #

  • پین‌های دیجیتال: 0–13
  • پین‌های PWM:‏ 3, 5, 6, 9, 10, 11, 12
  • ورودی‌های آنالوگ: a0–a7
  • I2C:‏ پین های a4 برای SDA و a5 برای SCL
  • نکات: این برد فقط با ولتاژ 3.3 ولت کار می کند.

- آردوینو MKR WiFi 1010 #

  • پین‌های دیجیتال: 0–13
  • پین‌های PWM:‏ 0–8
  • ورودی‌های آنالوگ: a0–a6
  • I2C:‏ پین 11 (SDA) و 12 (SCL)
  • نکات: منطق 3.3 ولت دارد و از BLE و WiFi پشتیبانی می کند.

- آردوینو Uno WiFi Rev2 #

  • پین‌های دیجیتال: 0–13
  • پین‌های PWM:‏ 3, 5, 6, 9, 10, 11
  • ورودی‌های آنالوگ: a0–a5
  • I2C:‏ پایه های SDA/SCL روی پین های اختصاصی
  • ال ای دی داخلی: پین 13

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

 


🔒 نکات ایمنی #

  • محدودیت جریان: هر پین آردوینو حداکثر حدود 40 میلی آمپر جریان را تحمل می کند. برای بارهای پرمصرف از ترانزیستور، رله یا درایور استفاده کنید.
  • محدودیت ولتاژ: بردهای Uno و Mega با 5 ولت و برخی بردها فقط با 3.3 ولت کار می کنند. هرگز ولتاژ بالاتر را مستقیم به پین ها وصل نکنید.
  • مقاومت سری برای ال ای دی: همیشه در مدار ال ای دی از مقاومت 220 اهم تا 1 کیلو اهم استفاده کنید تا از سوختن ال ای دی جلوگیری شود.
  • تغذیه موتور: موتور های DC، سروو ها و بارهای پرمصرف به منبع تغذیه جدا نیاز دارند. زمین آن منبع را با زمین آردوینو مشترک کنید.
  • پلاریته اشتباه: قبل از وصل کردن منبع تغذیه، مثبت و منفی را دوباره چک کنید. برعکس وصل کردن می تواند به برد و قطعات آسیب بزند.
  • اتصال کوتاه: از اتصال کوتاه بین پین ها و تغذیه خودداری کنید، چون ممکن است باعث آسیب به آردوینو یا درگاه USB رایانه شود.
  • گرمایش: قطعات قدرتی را مدت طولانی در حداکثر جریان استفاده نکنید، چون ممکن است داغ شوند و عمر آن ها کم شود.

🧪 اطلاعات فنی #

  • پروتکل: StandardFirmata و نسخه های آن (مثل StandardFirmataBLE) بر پایه پروتکل Firmata
  • اتصال: USB از طریق مرورگر یا BLE از طریق مرورگر (بدون نیاز به درایور جداگانه)
  • بردهای پشتیبانی شده: آردوینو Uno، Mega، Nano، Leonardo و بردهای سازگار
  • سرعت ارتباط (Baud Rate): مقدار پیش فرض استاندارد فرماتا (۵۷۶۰۰)
  • حداقل نسخه استاندارد فرماتا: 2.0
  • پین‌های دیجیتال: مقادیر ۰ و ۱ (LOW و HIGH)
  • بازه آنالوگ: ۰ تا ۱۰۲۳ با مبدل ۱۰ بیتی
  • بازه PWM: از ۰ تا ۱۰۰ درصد (داخلی به ۰ تا ۲۵۵ تبدیل می شود)
  • بازه سروو: زاویه ۰ تا ۱۸۰ درجه
  • مقادیر رنگ RGB: از ۰ تا ۲۵۵ برای هر کانال
  • بازه آدرس I2C: از 0x08 تا 0x77
  • پشتیبانی مرورگر: کروم، اج، اپرا و سایر مرورگرهای کرومیوم روی دسکتاپ

🔗 افزونه‌های مرتبط #

  • 🔌 افزونه های سخت افزاری – Arduino, micro:bit, PRB, Pbot, Lego Boost, Lego WeDo 2.0, EV3
  • 🧠 افزونه های هوش مصنوعی - تشخیص صورت، تشخیص دست، تشخیص بدن، یاد دادت تصاویر، تشخیص گفتار، ChatGPT، گفتار به متن، متن به گفتار

📚 اطلاعات بیشتر #


پیمایش به بالا