44
ھﯾﺎ ﻧﺻﻧﻊ أردوﯾﻧو ﻧﺎعّ ﻣﻠﺗﻘﻰ اﻟﺻ

ملتقى الصناع هيا نصنع أردوينو وندخل إلى خفاياه

Embed Size (px)

Citation preview

Page 1: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ھیا نصنع أردوینوملتقى الصناع

Page 2: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ما ھو المتحكم الدقیق؟ MCU أو microcontroller) المتحكم الدقیق

IC وغیرھا من األسماء) ھو رقاقة uC أوتحتوي معالج حاسوب عام األغراض محدود الذاكرة واإلمكانات ولھ عدد من المنافذ عامة األغراض GPIO وعدد من الملحقات مثل

المقارنة التناظریة analog comparator و DAC و ADC وغیرھا.

Page 3: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ما ھو المتحكم الدقیق؟یمكن للمتحكم الدقیق استقبال إشارات معینة (من بعض الحساسات) ومعالجتھا وتولید إشارات أخرى ویستفاد منھ في الكثیر من االمور

فھي قد تكون جزء من دارة أكبر أو تستخدم لقیادة أو التحكم في الرجال اآللیین سواء عند الھواة أو األذرع اآللیة في المصانع كذلك یستخدم داخل بعض السیارات (قد تحتوي من 6 إلى 70 متحكم) أو

أجھزة تشخیصھا وتعرف كلھا باسم األنظمة المنضدة embedded systems أو المدمجة لمحدودیتھا.

Page 4: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ما معنى محدودة؟ وإلى أي حد؟إمكانات المتحكم الدقیق تكون في الغالب محدودة مثال ذاكرة الفالش

(التي تحتوي البرنامج) قد تكون 8 كیلوبایت وذاكرة الرام بالكاد تصل إلى نصف كیلوبابت. سرعة المتحكم الدقیق بالكد تصل إلى

20 میغاھیرتز (وفي الغالب تستخدم على سرعات أقل بكثیر). لكن ھناك فائدة لتلك المحدودیة فبعض المتحكمات الدقیقة یقاس

استھالكھا للكھرباء بالنانو-واط.

Page 5: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ما قبل أردوینولبرمجة متحكم دقیق في السابق كنت تحتاج ألواح

تطویر مرتفعة الثمن ومعقدة وتحتاج أجھزة برمجة خارجیة وبرمجیات خاصة وربما تحتاج إلمام بلغة

التجمیع أو لغة اآللة.كانت بعض المبرمجات تعتمد على المنفذ التسلسلي

RS232 DE9 أو حتى منفذ الطابعة المتوازي .USB ونادرا ما كنت تجد جھاز برمجة

Page 6: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ما قبل أردوینو

Page 7: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ما ھو أردوینو؟ وما ھو أونو؟أردوینو ھو منصة نمذجة prototyping إلكترونیة

مفتوحة المصدر بالكامل (البرمجیات والعتاد)وھي تشمل عدد من األلواح أغلبھا یعمل بمتحكمات دقیقیة

من عائلة AVR مثل Atmega328p المستخدم في لوح أونو Uno األشھر واألبسط. وإن كان

.MIPS أو ARM Cortex-M3 بعضھا یستخدم

Page 8: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

كیف لم أردوینو شمل تلك العائالت؟دعك من كل الفروقات الجوھریة بین تلك المتحكمات وركز فیما ترید. إشارة عالیة على المنفذ رقم 13 وخذ مدخالت تناظریة من

الحساس على المنفذ رقم A1 وھكذا. أنت تبرمج بلغة سي/سي++ Upload ثم تنقر USB بطریقة عالیة المستوى تصل اللوحة عبر

وأردوینو تتكفل بالباقي

Page 9: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

Blink مثال

Page 10: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ماذا یمكنني أن أصنع؟مخیلتك ھي الحد! أردوینو بالنسبة لإللكترونیات مثل السكین السویسریة أو لعلي أقول مثل لعبة

اللیغو. یمكنھا أن تربطھ بمختلف أنواع المجسات والحساسات وأجھزة اإلدخال

sd واإلخراج والمحركات وبطاقات الذاكرةوغیرھا

Page 11: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ماذا یمكنني أن أصنع؟ آلیون!

Page 12: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ماذا یمكنني أن أصنع؟ األغطیة sheilds یمكن تركیب ما یعرف باألغطیة

على رأسیات headers أردوینو:

●GSM●GPS●VGA●Gameduino●Ethernet

●XBee●LCD

shieldlist.org

Page 13: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

لماذا AVR ولیس PIC؟المتحكمان AVR و PIC لھما العدید من الجوانب المشتركة من

حیث السعر والقدرات بل قد یكون المتحكم الدقیق من عائلة PIC16x84 األشھر خصوصا في األوساط الجامعیة إال أنھ لم

یناسب أردوینو. وإن جاز لي تخمین السبب فھو أنھ ال یحتوي على مكدس stack قابل للبرمجة مما یعني بلغة البشر صعوبة عمل

لغات عالیة المستوى لھ مثل سي أو سي++ (موجودة لكنھا مجرد جزء محدود من سي العیاریة وھي غیر حرة)

Page 14: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

لماذا AVR ولیس PIC؟●PIC

لشدة بساطتھ یمكن تعلم لغة ○اآللة الخاصة بھ (ولیس

التجمیع وال سي)كذا وثالثون تعلیمة فقط○مسجل واحد اسمھ w0 ضمني ○

في العملیات الثنائیة

●AVRیتوفر لھ دعم من مصنف ○

gcc سي/سي++ األشھر وھودعم جید من المكتبات ○

واألدوات الحرة مفتوحة المصدر

Page 15: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ASIC لماذا لیسقد تتساءل لماذا نكتب برنامج یعمل على معالج عام األغراض في

حین یمكننا عمل دارة تصنع خصیصا لتؤدي الوظیفة المطلوبة مباشرة. الجواب ببساطة أن تكلفة إنتاج ASIC ال تكون مجدیة إال بكمیات كبیرة جدا وفي أسواق مستقرة ألنھ ال یمكن التعدیل علیھا. وھذا ال یناسب التعلیم وعمل نماذج أولیة وتعدیلھا وھو الھدف من

أردوینو.

Page 16: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

لماذا لیس FPGA؟منظومة البوابات القابلة للبرمجة FPGA ھي رقاقة تبرمج (أو لنقل تعد) من خالل لغات وصف العتاد مثل VHDL و verilog وھي نفس اللغات التي تصف تصمیم الدارة ذات األھداف الخاصة ASIC والتي تقبلھا مصانع أشباه الموصالت. یعیبھا

أنھا مرتفعة الثمن وصعبة االستعمال وغالبا أدوات التطویر غیر حرة (لكنھا مجانیة). بیئة التطویر كبیرة جدا (أكثر من غیغابایت) وتحتاج أدوات خاصة.

Page 17: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

لماذا لیس FPGA؟

Basys2 أو papilio أو mojo إن كنت ترید البدایة فیھا انظر لوحأو Nexys2 فھي ال تحتاج مبرمج خارجي وقریبة من أردوینو.

EPROM أو FLASH و SDRAM تأكد من اختیار واحد فیھومبرمج ذاتي

Page 18: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

لماذا لیس Raspberry Pi؟ Single ھناك العدید من الحواسیب على لوحة واحدة

board computer (تستخدم رقاقة واحد تحتوي نظام كامل SoC یشمل CPU و GPU وغیرھا من

الوحدات) أشھرھا R/Pi من مؤسسة غیر ربحیة بسعر یبدأ من 25 دوالر. أھم ما یمیزھا ھو أنھا تحتوي منافذ عامة األغراض GPIO یمكن. ما یمیزھا عن أردوینو أنھا تعمل بسرعة أكثر من 700 میغاھیرتز ویمكن أن

Open توصل علیھا كامیرا وتشغل علیھا بایثون وComputer Vision

Page 19: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

لماذا لیس Raspberry Pi؟وھناك لوحات تحتوي منافذ عامة GPIO بمواصفات أعلى مثل

cubieboard3/cubietruck أو Radxa ھذه األخیرة بأربع أنویة بسرعة 1.6 غیغاھیرتز و2 غیغابایت من الرام. ھل حقا ال

تكفیك سرعة أردوینو ذي ال 16 میغاھیرتز وال ذاكرتھ ذات 2 كیلوبایت لقراءة الحساسة الفالني أو التحكم بالضوء العالني. إن كان مشروعك ال یتطلب معالجة صور (التعرف على الوجوه) فأردوینو

أكثر من كاف وما عدا ذلك تعقید لیس لھ مبرر.

Page 20: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

Blink أبسط مثال: تقلیب حالة الضوء setup الموجود في األمثلة والحظ الدالتین Blink تأمل المشروع

و loop. الحظ رفع فولتیة المنفذ 13 ثم ننتظر ثانیة تظل خاللھا الفولتیة مرفوعة ثم نخفض الفولتیة وننتظر ثانیة أخرى ثم من جدید.

عدل المثال لیقلب الفولتیة صعودا وھبوطا مرتین وبین كل مرة ننتظر 150 جزء من الثانیة ثم ننتظر ثانیة كاملة.

Page 21: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ما ھي مكونات أردوینو أونو؟●LED 4 أضویة

طاقة/إرسال/استقبال/للمستخدم○مذبذب 16 میغاھیرتز ×2●منظم فولتیة 5 فولت و 3.3 فولت●●RESET زرمكونات صماء مختلفة (مقاومات ●

ومكثفات ..إلخ)

رقاقة Atmega328p قابلة للنزع●رقاقة تحویل من USB إلى ●

تسلسلي (سابقا FTDI حالیا Atmega16u2 مع برنامج

مفتوح المصدر)رأسیات headers لوضع أسالك ●

في المنافذ دون لحام ولوضع أغطیة توسعة

Page 22: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

كیف یعمل أردوینو بھذه البساطة؟یحتوي أردوینو برنامج إقالع یعمل عند التشغیل

على انتظار أوامر البرمجة ویحاكي أجھزة البرمجة

الخارجیة فإن لم یتلقى أوامر ینتقل لبرنامج

المستخدم.

Page 23: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

كیف یعمل أردوینو بھذه البساطة؟یمكن إعادة تشغیل اللوحة عبر الضغط على زر RESET الذي

یخفض فولتیة السن األول من المتحكم الدقیق مما یحفز إعادة تشغیلھا فیبدأ برنامج اإلقالع بالعمل وعندھا یمكن إرسال البرنامج

الجدید وكأنك تملك جھاز برمجة خارجي. حالیا األمر یتم بشكل تلقائي بمجرد الضغط على زر التحمیل في الواجھة الرسومیة یتم

إرسال إشارة خاصة تؤدي إلى خفض فولتیة سن إعادة التشغیل.

Page 24: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

Atmega328p كیف یعمل أردوینو بھذه البساطة؟ صورة من نشرة

Page 25: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

كیف یعمل أردوینو بھذه البساطة؟برنامج محمل اإلقالع في أونو الجدید ھو optiboot وما یمیزه أنھ صغیر (حوالي نصف كیلوبایت) وفي السابق كان ھناك واحد آخر

حجمھ 2 كیلوبایت وكالھما یحاكیان المبرمج في لوح التطویر stk500 (للتفاصیل انظر وثیقة avr061). ویتم تحفیزه عبر إزالة عالمة DTR و RTS من خالل الوصلة التسلسلیة لمدة 100 میلي

.RESET ثانیة ثم إعادتھا مما یخفض سن

Page 26: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

كیف یعمل أردوینو بھذه البساطة؟لوح لیوناردو(مع المعالج المطبوع Atmega32u4 غیر القابل

للنزع) یستعمل محمل إقالع مختلف اسمھ كاترینا caterina وھو یستخدم بروتوكول avr109 للبرمجة (ولیس stk500) وھو ال یحتاج محول من usb إلى تسلسلي ویتم تحفیز محمل اإلقالع فیھ

بفتح المنفذ التسلسلي على سرعة 1200 بت في الثانیة ثم غلقھ مباشرة.

Page 27: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

avrdude التحدث مع المبرمج عبر

avrdude -p atmega328p -c arduino -b 115200 -P /dev/ttyACM0 -U flash:r:file.hex:iavrdude -p atmega328p -c arduino -b 115200 -P /dev/ttyACM0 -U flash:r:file.bin:r

األوامر التالیة تسحب البرنامج الموجود على لوح أونو. اضغط reset ثم انتظر قلیال ثم نفذھا

Page 28: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

أردوینو على لوح التجارب - الحد األدنىإن كنت ستنزع المحكم الدقیق من لوح أردوینو وتضعھ على لوح

التجارب فإلیك الحد األدنى الذي تحتاج إلیھ:لوح تجارب وحفنة من األسالك●مذبذب سیرامیكي ثالثي األرجل بتردد 16 میغاھیرتز●مقاومة رفع 10 كیلو أوم●ثنائیة ضویة LED ومقاومة صغیرة 500 أوم●مكثف 100 نانو فاراد●

Page 29: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

من أردوینو إلى لوح التجارب

أردوینو على لوح التجارب - الحد األدنى

Page 30: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

pins_arduino.h أردوینو على لوح التجارب - األسنان المرجع ھو

Page 31: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

أردوینو على لوح التجارب - البرمجةیمكن برمجتھ من خالل:

●ArduinoISP مبرمج خارجي مثل لوح أونو محمل ببرنامج○Adafruit Arduino ISP ھناك نسخة محسنة منھ ھي برنامج

●USB/Serial من خالل محمل اإلقالع عبر وصلة○FTDI أو كابل FTDI وحدة تحمل رقاقة○CP2102 وحدة تعتمد على دارة○PL2303 وحدة تعتمد على دارةمنفذي TX و RX في أردوینو○○V-USB من خالل متحكم دقیق آخر یستعمل

Page 32: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

adafruit arduino isp مبرمج

یمكن الحصول على المبرمج الخاص من الرابط

https://github.com/adafruit/ArduinoISP

Page 33: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ISP أردوینو كمبرمجنصل لوح أردوینو بلوح التجارب:

10 مع سن 1●11 مع سن 17 مقابل 12●12 مع سن 18 مقابل 11●13 مع سن 19 مقابل 10●اختیاري: 9 مع سن 9 (إن لم ●

یكن عندك مذبذب)

Page 34: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

ISP لیوناردو كمبرمج

Page 35: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

رفع محمل اإلقالع غیر معدلاختر Arduino Uno من قائمة األلواح ثم اختر المبرمج

Burn ثم من قائمة أدوات اختر Arduino as ISP.Bootloader

كما ذكرنا یعمل محمل اإلقالع عند إعادة التشغیل والتي یمكن تحفیزھا بخفض فولتیة السن األول لفترة بسیطة ثم رفعھا. نالحظ أن الضوء (سن 19 أو المنفذ الرقمي 13 في أردوینو) یرمش 3 مرات.قد یظل محمل اإلقالع ینتظر بدء البرمجة لمدة ثانیة (یمكن جعلھا 8

ثواني كحد أقصى) ثم ینھي عملھ.

Page 36: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

رفع البرنامج عبر محمل اإلقالع - یدويصل السن 2 و 3 بمنافذ RX و TX في محول USB التسلسلي

AvrISP وابدأ برفع البرنامج (حدد اللوحة أونو والمبرمج ھوMKII) وھذا سیمر بمرحلتین التصنیف والرفع. بأسرع وقت صل السن رقم 1 باألرض لخفض فولتیتھ (ھذا لن یحدث دارة قصیرة

بسبب مقاومة الرفع) ثم افصلھ عنھا یمكن عمل ذلك من خالل زر أو مالمسة أسالك. التوقیت مھم.

Page 37: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

رفع البرنامج عبر محمل اإلقالع - ذاتيلجعل عملیة الرفع آلیة بالكامل دون الحاجة للتدخل الیدوي. قم بوصل منفذ DTR أو RTS عبر مكثف 100 نانوفرد إلى سن رقم 1. وإن لم تعد تحتاج إعادة التشغیل الیدویة یمكنك التخلص من المقاومة علیھ.

Page 38: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

عمل لوحة خاصة بك / لماذا؟یمكنك عمل لوحة خاصة بك لتخصیص أي شيء فیھ

مجرد االسم●طریقة رفع البرامج وسرعتھا●استعمال محمل إقالع خاص●تردد مختلفة أو التخلي عن المذبذب●

Page 39: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

عمل لوحة خاصة بك / كیف؟ hardware اعمل مجلد جدید اسمھ sketchbook داخل مجلدواعمل مجلد سمھ ما شئت مثال myboard وضع فیھ نسخة من boards.txt وفرغھ باستثناء وصف لوح أونو (حتى نخصصھ

الحقا). واعمل فیھ مجلد اسمھ bootloaders حیث یمكنك وضع نسخ معدلة من محمالت اإلقالع.

Page 40: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

عمل لوح خاص بك

رابط یحتوي مثال على ألواح مخصصة ومحمل إقالع

خاص optiboot5 بسرعات مخصصة.

Page 41: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

عمل لوحة خاصة بكیمكنك عمل لوح یستعمل مذبذب خارجي أسرع 20 MHz أو تستغني عن المذبذب عبرالمذبذب الداخلي. baud rate كذلك یمكنك تغییر سرعة رفع البرامجمثال سرعة محمل اإلقالع Optiboot في أونو ھي

115200 وھذا ما یفسر حدوث بعض المشاكل العشوائیة أثناء رفع البرامج. قد ترغب في تغییرھا إلى

38400. (مالحظة avrdude ال یدعم 76800).تغیر سرعة الرفع تحتاج محمل إقالع مخصص

Page 42: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

عمل لوحة خاصة بك

عمل لوحة خاصة بك - األسرع لیس األفضل!

Page 43: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

رفع محمل إقالع مخصصقم بتعدیل boards.txt إلضافة وتخصیص محمل اإلقالع الذي

ترید والتردد وقیم المصھرات...إلخ. اختر ذلك اللوح ثم ارفع محمل .Burn Bootloader اإلقالع من خالل الضغط على

سنستعرض مشروع أردوینو ال یستعمل مذبذب بالكلیة وآخر یستعمل السرعة المخصصة التي تحدثنا عنھا وكالھما من خالل

Optiboot5 مع تخصیص خیارات البناء.

Page 44: ملتقى الصناع  هيا نصنع أردوينو وندخل إلى خفاياه

خاتمة

سبحانك اللھم وبحمدك أشھد أن ال إلھ إال أنت، أستغفرك وأتوب إلیك