
زمانی که در صفحه گوگل کروم هستید، اگر اینترنت قطع شود و در وضعیت آفلاین قرار گیرید، تصویر یک دایناسور خاکستری بر روی صفحه نقش میبندد. این یک بازی مخفی است که t-rex run نام دارد و در اوایل سال ۲۰۱۴ میلادی، در سبک پیکسل آرت و توسط ادوارد یونگ، سباستین گابریل و آلن بِتِس طراحی شده است.

اگر کلید «فاصله» کیبورد را فشار دهید، دایناسور شروع به دویدن می کند. باید مراقب باشید که با موانع برخورد نکنید و به موقع جا خالی دهید. برای پرش از روی موانعی که در مسیر شما قرار می گیرند از کلید «فاصله» استفاده کنید و با فشردن کلید «فلش پایین» از زیر موانع رد شوید. این بازی آفلاین، بی پایان است و پس از کسب امتیاز ۹۹۹۹۹ بازی دوباره از ابتدا شروع می شود. هرچند این بازی آفلاین است و برای زمانی طراحی شده که اینترنت شما قطع است، اما نسخه آنلاین آن نیز از طریق آدرس https://chrome/dino در دسترس است.
در اینجا می خواهیم با استفاده از یک حسگر نوری و یک سروو موتور، بــــــــازی t-rex run را به صورت اتوماتیک و توسط آردوینو انجام دهیم.
| حسگر نوری یا فتوسل |
|
| مقاومت ۱۰ کیلو اهم |
|
| سروو موتور |
|
قطعات را شبیه شکل زیر به هم وصل کنید.

| 5V | فتوسل |
| A0 | فتوسل و مقاومت |
| GND | مقاومت |
| GND | قهوهای سروو موتور |
| 5V | قرمز سروو موتور |
| 9 | نارنجی سروو موتور |
پایه های فتوسل تفاوتی ندارند ولی سیم های سروو با هم تفاوت دارند که به صورت زیر به آردوینو وصل می شوند:

کد زیر را روی آردوینو بریزید:
# include
Servo myservo;
void setup() {
pinMode(A0, INPUT);
myservo.attach(9);
Serial.begin(9600);
}
void loop() {
int senseValue = analogRead(A0);
Serial.println(senseValue);
if (senseValue > 600)
{
myservo.write(0);
}
else
{
myservo.write(100);
delay(150);
}
}
گوگل کروم را بر روی کامپیوتر باز کنید. اینترنت را قطع کنید تا بازی بر روی مانیتور ظاهر شود. فتوسل را با چسب نواری در فاصله ۱ سانتیمتری مقابل دایناسور بچسبانید. سروو موتور را هم روی کلید فاصله (space) کیبورد بچسبانید:

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

سپس آردوینو به سروو موتور دستور میدهد که به صورت مکانیکی، کلید space را فشار دهد تا دایناسور از روی موانع پرش کند. ویدیوی نهایی را اینجا ببینید.
https://electronicsmith.com/dinosaur-game-hack-google-chrome-games/ :منبع

"سریال پلاتر" شبیه "سریال مانیتور" است ولی به جای کلمات، خروجی را رسم میکند.
دسترسی به سریال پلاتر:
Tools --> Serial Plotter

مثال: ترسیم منحنی های سینوس و کسینوس در آردوینو:
void setup() {
Serial.begin(9600);
}
void loop() {
for (float j = 0; j < 360.00; j=j+2) {
Serial.print(sin(j * (PI / 180.00)));
Serial.print(" ");
Serial.println(cos(j * (PI / 180.00)));
}
}

عدد 9600 مقدار baud rate است که بیانگر سرعت انتقال است.
برای پلات چند نوع خط، باید بین دستورهاحتما یک خط خالی به شکل زیر اضافه شود:
Serial.print(دستور اول);
Serial.print(" ");
Serial.println(دستور دوم);
(www.electronicwings.com منبع: سایت)
ساده ترین برنامه که میتوان در محیط آردوینو نوشت بصورت زیر است:
void setup()
{
//put your setup code here to run once
}
void loop()
{
//put your main code here to run repeatedly
}
هربرنامه ساده یا پیچیده آردوینو، باید دارای 2 تابع ویژه به نامهای setup و loop باشد:
دستوری که برایش تعریف می کنیم را «فقط یکبار انجام می دهد».
دستوری که برایش تعریف می کنیم را «آن قدر تکرار میکند تا بگوییم کافی است».

دو پرانتز که به صورت () بعد از کلمات setup و loop آمده است یعنی setup و loop کلمات عادی نیستند بلکه «تابع» هستند:
تابع یعنی چیزی که مانند یک دستگاه، کار مشخصی را که برایش تعریف کرده ایم انجام میدهد یعنی داده ای را از ما میگیرد وسپس عملیاتی را روی داده انجام میدهد و در آخر نتیجه را به ما برمیگرداند.
مجدداً به متن برنامه مراجعه کنید:
void setup()
{
//put your setup code here to run once
}
void loop()
{
//put your main code here to run repeatedly
}
یک علامت به شکل } بعد از کلمه setup قرارگرفته است. علامت } نشانه شروع محدوده ای است که هر دستوری داخل این محدوده نوشته شود، توسط تابع setup اجرا میشود. انتهای این محدوده را با علامتی برعکس، به شکل { نشان میدهیم. بطور خلاصه، دستوراتی که بین دو علامت } و { بیایند، به ترتیب و از بالا به پایین، «فقط یک بار» توسط تابع setup اجرا میشوند. به محدوده بین {} بدنه تابع می گوییم.
بعد از تابع loop نیز علایم } و { دیده میشوند: نقش آنها مثل قبل است و محدوده شروع و پایان دستوراتی را نشان میدهند که توسط تابع loop اجرا میشوند. دستوراتی که بین دو علامت } و { بیایند، به ترتیب و از بالا به پایین، «به دفعات نامحدود» توسط تابع loop اجرا میشوند.
بنابراین تفاوت اصلی تابع loop با تابع setup آن است که:
تابع setup دستورات داخل { } را فقط یک بار اجرا میکند ولی تابع loop دستورات داخل { } را نه فقط یک بار، بلکه آنقدر تکرار میکند که بگوییم کافی است.
(منبع: کتاب کلید آردوینو)