خواندن کلید
DIGITAL INPUT.
یک ورودی دیجیتال فقط دو حالت دارد: روشن یا خاموش. با فشار کلید، برنامه وضعیت پایه را میخواند و LED را کنترل میکند.
کد را زنده امتحان کن ↓آردوینو چطور میفهمد کلید را فشار دادهای؟
مثل زنگ خانه است؛ تا وقتی کسی دکمه را نزده فقط منتظر میماند، و با فشار دکمه یک پیام واضح دریافت میکند.
UNO LAB
حالا کدش را بخوان.
مقاومت داخلی پولآپ پایه را در حالت عادی HIGH نگه میدارد. با اتصال کلید به زمین، مقدار LOW خوانده میشود؛ پس منطق کلید در کد معکوس است.
01const int buttonPin = 2;02const int ledPin = 13;03 04void setup() {05 pinMode(buttonPin, INPUT_PULLUP);06 pinMode(ledPin, OUTPUT);07}08 09void loop() {10 int pressed = !digitalRead(buttonPin);11 digitalWrite(ledPin, pressed);12}کجا به کار میآید؟
همین مفهوم ساده، پایهی رفتارهای بزرگتر در ربات و دستگاه واقعی است.
کلید شروع
آغاز یک حرکت یا آزمایش.
لیمیتسوئیچ
تشخیص رسیدن مکانیزم به انتهای مسیر.
بامپر ربات
فهمیدن برخورد با مانع.
فقط کار نکند؛
قابلفهم هم باشد.
در هر قطعه، مکانیزم و خط کد، علاوه بر عملکرد فنی به تجربه انسانی فکر میکنیم: کاربر باید وضعیت را ببیند، رفتار را پیشبینی کند و بدون پیچیدگی اضافه با سیستم ارتباط بگیرد.
هر فرمان باید تأیید فوری دیداری، صوتی یا حرکتی داشته باشد.
حالت قبل و بعد از فشار را واضح ولی آرام نمایش بده.
یک فشار، یک نتیجه؛ از رفتارهای پنهان چندمرحلهای دوری کن.
کلیدی برنامهریزی کن که دریافت فرمان را تأیید و فشار طولانی را جدا تشخیص دهد.
HRI × VISUAL × SIMPLEاگر کار نکرد، اینها را ببین.
- 01
ورودی بدون پولآپ یا پولداون ممکن است تصادفی تغییر کند.
- 02
در INPUT_PULLUP حالت فشرده LOW است.
- 03
جهش مکانیکی کلید میتواند چند فشار کاذب بسازد.
حالا نوبت ساختن است.
کلیدی برنامهریزی کن که دریافت فرمان را تأیید و فشار طولانی را جدا تشخیص دهد.