الإعلانات

هل تمنيت أن يكون لديك سيارة Knight Industries Two Thousand (KITT) الخاصة بك - كما تعلمون ، من Knight Rider؟ اجعل حلمك أقرب إلى الواقع من خلال بناء ماسح ضوئي LED! ها هي النتيجة النهائية:

ماذا تحتاج

ليس هناك الكثير من الأجزاء اللازمة لهذا المشروع ، وقد يكون لديك الكثير منها بالفعل:

  • 1 x Arduino UNO أو ما شابه
  • 1 × اللوح
  • 8 مصابيح LED حمراء
  • 8 × 220 أوم مقاومات
  • 1 × 10 كيلو أوم فرق الجهد
  • ذكر لذكر توصيل الأسلاك

إذا كان لديك طقم اردوينو المبدئ ماذا يوجد في Arduino Starter Kit؟ [MakeUseOf يوضح]لقد قدمت سابقًا جهاز Arduino مفتوح المصدر هنا على MakeUseOf ، ولكنك ستحتاج إلى أكثر من مجرد Arduino الفعلي لبناء شيء منه والبدء بالفعل. "مجموعات بداية" اردوينو هي ... قراءة المزيد من المحتمل أن يكون لديك كل هذه الأجزاء (ماذا يمكنك أن تصنع مع مجموعة المبتدئين؟ 5 مشاريع Arduino الفريدة للمبتدئين يمكنك صنعها باستخدام مجموعة البداية فقط قراءة المزيد ).

سيعمل أي أردوينو تقريبًا ، بشرط أن يحتوي على ثمانية دبابيس متوفرة (لم تستخدم أردوينو من قبل؟ ابدأ هنا الشروع في العمل مع Arduino: دليل المبتدئينArduino هي منصة نماذج إلكترونية مفتوحة المصدر تعتمد على أجهزة وبرامج مرنة وسهلة الاستخدام. إنه مخصص للفنانين والمصممين والهواة وأي شخص مهتم بإنشاء كائنات أو بيئات تفاعلية.

instagram viewer
قراءة المزيد ). يمكنك استخدام سجل التحول برمجة Arduino - اللعب مع تسجيلات التحول (يُعرف أيضًا بمصابيح LED أكثر)اليوم سأحاول أن أعلمك قليلاً عن تسجيلات التحول. هذه جزء مهم إلى حد ما من برمجة Arduino ، وذلك لأنها توسع عدد المخرجات التي يمكنك استخدامها ، في مقابل ... قراءة المزيد للتحكم في مصابيح LED ، على الرغم من أن هذا ليس ضروريًا لهذا المشروع ، لأن Arduino يحتوي على دبابيس كافية.

خطة البناء

اردوينو نايت رايدر بقيادة الماسح الضوئي كاملة
انه مشروع سهل جدا. في حين أنه قد يبدو معقدًا من العدد الكبير من الأسلاك ، فإن كل جزء فردي بسيط للغاية. كل الصمام الثنائي الباعث للضوء (LED) متصل بدبوس Arduino الخاص به. هذا يعني أن كل مصباح LED يمكن تشغيله وإيقافه بشكل فردي. يتم توصيل مقياس الجهد بمقياس Arduino التناظري في الدبابيس ، والذي سيتم استخدامه لضبط سرعة الماسح الضوئي.

الدائرة

اردوينو نايت رايدر الدائرة
قم بتوصيل الدبوس الأيسر الخارجي (بالنظر إلى الأمام ، والدبابيس في الأسفل) لمقياس الجهد بالأرض. قم بتوصيل الدبوس الخارجي المعاكس بـ + 5 فولت. إذا لم تعمل بشكل صحيح ، قم بعكس هذه الدبابيس. قم بتوصيل دبوس الأوسط إلى Arduino analog في 2.

قم بتوصيل الأنود (الساق الطويلة) لكل LED بمشابك رقمية من واحد إلى ثمانية. قم بتوصيل الكاثود (ساق قصيرة) بأرض اردوينو.

الرمز

إنشاء رسم جديد وحفظه باسم "knightRider". إليك الرمز:

const int leds [] = {1،2،3،4،5،6،7،8} ؛ // دبابيس LED. const int totalLeds = 8 ؛ الوقت int = 50 ؛ // Default speed void setup () {// تهيئة جميع المخرجات لـ (int i = 0؛ i <= totalLeds ؛ ++ ط) {pinMode (المصابيح [i] ، OUTPUT) ؛ } } void loop () {for (int i = 0؛ i  0 ؛ --i) {// مسح من اليمين إلى اليسار الوقت = analogRead (2) ؛ الكتابة الرقمية (المصابيح [i] ، عالية) ؛ وقت التأخير)؛ الكتابة الرقمية (المصابيح [i - 1] ، عالية) ؛ وقت التأخير)؛ الكتابة الرقمية (المصابيح [i] ، LOW) ؛ } }

دعونا نحللها. يتم تخزين كل دبوس LED في صفيف:

const int leds [] = {1،2،3،4،5،6،7،8} ؛

المصفوفة هي في الأساس مجموعة من العناصر ذات الصلة. يتم تعريف هذه العناصر على أنها ثابتة ("const") ، مما يعني أنه لا يمكن تغييرها لاحقًا. لست مضطرًا إلى استخدام ثابت (سيعمل الرمز بشكل مثالي إذا قمت بإزالة "const") ، على الرغم من أنه يوصى به.

يتم الوصول إلى عناصر المصفوفة باستخدام الأقواس المربعة ("[]") وعدد صحيح يسمى الفهرس. تبدأ الفهارس عند الصفر ، لذا فإن "المصابيح [2]" ستعرض العنصر الثالث في المصفوفة - دبوس 3. تعمل المصفوفات على جعل الرمز أسرع في الكتابة وأسهل في القراءة ، فهي تجعل الكمبيوتر يقوم بالعمل الشاق!

يتم استخدام A for loop لإعداد كل دبوس كمخرج:

for (int i = 0؛ i <= totalLeds ؛ ++ ط) {pinMode (المصابيح [i] ، OUTPUT) ؛ }

يوجد هذا الكود داخل وظيفة "setup ()" ، حيث إنه يحتاج للتشغيل مرة واحدة فقط في بداية البرنامج. للحلقات مفيدة للغاية. تسمح لك بتشغيل نفس الرمز مرارا وتكرارا ، مع قيمة مختلفة في كل مرة. إنها مثالية للعمل مع المصفوفات. تم الإعلان عن عدد صحيح "i" ، ولا يمكن الوصول إلى هذا المتغير إلا رمز داخل الحلقة (وهذا ما يعرف بـ "نطاق"). تبدأ قيمة i عند الصفر ، وكل تكرار للحلقة ، يتم زيادة i بمقدار واحد. بمجرد أن تكون قيمة i أقل من أو تساوي متغير "totalLeds" ، فإن "فواصل" الحلقة (توقفات).

يتم استخدام قيمة i للوصول إلى مصفوفة "المصابيح". تصل هذه الحلقة إلى كل عنصر في المصفوفة وتقوم بتكوينه كمخرج. يمكنك كتابة "pinMode (pin، OUTPUT)" يدويًا ثماني مرات ، ولكن لماذا تكتب ثمانية أسطر بينما يمكنك كتابة ثلاثة؟

في حين أن بعض لغات البرمجة يمكن أن تخبرك بعدد العناصر الموجودة في مصفوفة (عادة باستخدام بناء جملة مثل array.length) ، فإن Arduino لا يجعلها بهذه البساطة (فهي تتضمن المزيد من الرياضيات). نظرًا لأن عدد العناصر في الصفيف معروف بالفعل ، فليس هذا مشكلة.

اردوينو نايت رايدر LEDS

داخل الحلقة الرئيسية (حلقة فارغة()) اثنان إضافيين للحلقات. يقوم الإعداد الأول بتعيين مصابيح LED على وضع التشغيل ثم إيقاف التشغيل من 1 إلى 8. تقوم الحلقة الثانية بتعيين مصابيح LED ON ثم إيقاف تشغيلها من 8 - 1. لاحظ كيفية تشغيل الدبوس الحالي ، ودبوس الدبوس الحالي مضافًا إليه أيضًا. وهذا يضمن وجود مصباحين LED دائمًا في نفس الوقت ، مما يجعل الماسح الضوئي يبدو أكثر واقعية.

في بداية كل حلقة ، تُقرأ قيمة الوعاء في متغير "time":

time = analogRead (2) ؛

يتم ذلك مرتين ، مرة واحدة داخل كل حلقة. يجب التحقق من ذلك وتحديثه باستمرار. إذا كان هذا خارج الحلقات ، فسيظل يعمل ، ولكن سيكون هناك تأخير بسيط - سيتم تشغيله فقط بمجرد انتهاء الحلقة. الأواني تناظرية ، وبالتالي لماذا يتم استخدام "analogRead (pin)". هذا يعيد القيم بين صفر (الحد الأدنى) و 1023 (الحد الأقصى). Arduino قادر على تحويل هذه القيم إلى شيء أكثر فائدة ، ومع ذلك فهي مثالية لحالة الاستخدام هذه.

يتم تعيين التأخير بين تغيير مؤشرات LED (أو سرعة الماسحة الضوئية) بالمللي ثانية (1/1000 ثانية) ، وبالتالي فإن الحد الأقصى للوقت يزيد قليلاً عن ثانية واحدة.

ماسح ضوئي متقدم

اردوينو- LEDs- خارج أزواج

الآن بعد أن تعرفت على الأساسيات ، فلنلقِ نظرة على شيء أكثر تعقيدًا. سيقوم هذا الماسح الضوئي بإضاءة مصابيح LED في أزواج بدءًا من الخارج والعمل فيها. ثم سيعكس هذا ويذهب من الداخل إلى أزواج خارجية. إليك الرمز:

const int leds [] = {1،2،3،4،5،6،7،8} ؛ // دبابيس LED. const int totalLeds = 8 ؛ const int halfLeds = 4 ؛ الوقت int = 50 ؛ // Default speed void setup () {// تهيئة جميع المخرجات لـ (int i = 0؛ i <= totalLeds ؛ ++ ط) {pinMode (المصابيح [i] ، OUTPUT) ؛ } } void loop () {for (int i = 0؛ i  0 ؛ --i) {// مسح داخل أزواج خارج الوقت = analogRead (2) ؛ الكتابة الرقمية (المصابيح [i] ، عالية) ؛ الكتابة الرقمية (المصابيح [[totalLeds - i) - 1] ، عالية) ؛ وقت التأخير)؛ الكتابة الرقمية (المصابيح [i] ، LOW) ؛ الكتابة الرقمية (المصابيح [[totalLeds - i) - 1] ، LOW) ؛ وقت التأخير)؛ } }

هذا الرمز أكثر تعقيدًا قليلاً. لاحظ كيف تنتقل الحلقتان من صفر إلى "halfLeds - 1" (3). هذا يجعل الماسح الضوئي أفضل. إذا انتقلت الحلقتان من 4 - 0 و 0 - 4 ، فستومض المصابيح نفسها مرتين في نفس التسلسل - وهذا لن يبدو جيدًا جدًا.

يجب أن تمتلك الآن ماسح ضوئي يعمل بتقنية Knight Rider LED! سيكون من السهل تعديل هذا لاستخدام المزيد من مصابيح LED أو أكبر ، أو تنفيذ نمطك الخاص. هذه الدائرة من السهل جدا نقلها إلى فطيرة التوت (جديد على Pi؟ أبدأ هنا Raspberry Pi: البرنامج التعليمي غير الرسميسواء كنت مالك Pi الحالي وتريد معرفة المزيد أو مالك محتمل لهذا الجهاز بحجم بطاقة الائتمان ، فهذا ليس دليلاً تريد تفويته. قراءة المزيد ) أو ESP8266 تعرف على Arduino Killer: ESP8266ماذا لو أخبرتك بوجود لوحة مطورة متوافقة مع Arduino مزودة بشبكة Wi-Fi مدمجة بأقل من 10 دولارات؟ حسنًا ، هناك. قراءة المزيد .

هل تبني نسخة طبق الأصل KITT؟ أود أن أرى كل الأشياء نايت رايدر في التعليقات.

جو خريج في علوم الكمبيوتر من جامعة لينكولن بالمملكة المتحدة. إنه مطور برامج محترف ، وعندما لا يطير بطائرات بدون طيار أو يكتب موسيقى ، يمكن العثور عليه غالبًا وهو يلتقط الصور أو ينتج مقاطع فيديو.