كسوف # تشمل

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

بادئ ذي بدء ، تحتاج إلى فهم ما هو الجدل. Arduino ليست فقط وحدات تحكم دقيقة يتم تعبئتها بشكل جميل من قبل الإيطاليين في لوحات الدوائر المطبوعة وصناديقها ، وليس فقط بيئة تطوير Arduino IDE. بادئ ذي بدء ، هذه مكتبات للتطوير السريع ، وفي رأيي أنها ذات قيمة أكبر. إذا نظرت إلى مخططات الدوائر لألواح Arduino ، فلن نرى أي شيء مثير للإعجاب بشكل خاص. بيئة التطوير ... دعنا نقول فقط أنها لا تصل إلى نموذج بورلاند سي ++ عام 1994 .
كما نعلم ، يتم توزيع هذه المكتبات بموجب ترخيص GNU ، ويمكن أخذها واستخدامها دون دفع إتاوات لمنشئيها. يتطلب نموذج العمل هذا كسب المال من شيء آخر غير الإتاوات. لذا فإنهم يكسبون من خلال إنتاج وبيع في حزمة جميلة مقابل 20 دولارًا ما سيشتريه مهندس إلكتروني مقابل 20 سنتًا.
والشيء المهم هنا ليس أنهم بورجوازيون جشعون ، يسرقون العاملون ويستحقون البشائر من كل البشرية التقدمية ، ولكن لماذا يمكنهم فعل ذلك. لأن:
  • كانوا في الوقت المناسب في المكان المناسب ورأوا الفرص الأولى التي لم يرها الآخرون.
  • لقد أتاحوا للمستهلك ما كان متاحًا من قبل لدائرة ضيقة من الأفراد المحدودين ؛
  • تم تعبئة كل شيء بشكل جميل وتقديمه للمستهلك في شكل جاهز للاستخدام.


الآن حول سبب وكيفية مزج إنجازات قطاع المستهلك في الإلكترونيات المسلية مع دورة تطوير مشروع تجاري. في هذه الدورة ، يمتلك النظام البيئي Arduino خاصية واحدة قيمة للغاية - سرعة التطوير.
السرعة هي نسبة المسافة المقطوعة إلى الوقت. كلما زادت سرعة، وأسرع سنقوم قيام بهذا العمل، أو تلك المستخدمة ل مزيد من العمل سنفعل في الوقت المحدد، ونحن كسب المزيد من المال نظريا لكل وحدة من الزمن.

تخيل أن العميل التفت إليك ، ولديه بعض الرغبات ، وليس لديك في صناديق الوطن ما يقرب من 86٪ مشروع منتهي بخصائص وظيفية مماثلة. لدى أي عميل سؤالان أساسيان:
  1. كم سيكلف؟
  2. متى ستكون جاهزة؟

(في كثير من الأحيان يحتاج إلى إجابة "أمس" على السؤال الثاني)
, , ., , . M X Y Z .

بناء على الخبرة التجارية ، أجرؤ على القول أن العميل سيختار مسار مدخن اردوينو.

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

كبيئة ، ضع في اعتبارك كسوف الشمس. فيما يلي مقال جيد جدًا حول كيفية تكوين Eclipse أولاً للعمل مع AVR Toolchain ، ثم توصيل مكتبات Arduino ووميض LED على Uno.وهنا أفضل ، ولكن باللغة الإنجليزية.
سوف أكملهم ببضعة أشواط التي خطوتها ، ربما هذا سيوفر شخصًا بضع ساعات من الوقت.
تم وصف كل ما يلي لنظامي التشغيل Linux و Leonardo. بالنسبة لنظام التشغيل Windows ، يجب عليك أولاً تثبيت MinGW / msys .

لبناء جميع المصادر المضمنة في قلب Arduino ، تحتاج إلى ضبط ثوابت المعالج المسبق بشكل صحيح. إذا نظرت إلى التعليمات البرمجية المصدر للمكتبات ، يمكنك أن ترى العديد من تراكيب الترجمة الشرطية #ifdef #else #endif. في مقال بالرجوع ، سجل المؤلف كل شيء عن طريق أخذ ملف جاهز. تم تجميعه بواسطة Arduino IDE. ولكن لا تقع جميع المكتبات في النواة ، على سبيل المثال ، لا تقع فيها SPI و Ethernet ، وتنتظرنا نفس النكات مع الترجمة الشرطية.
يمكن أن يكون التعرف على الثوابت وكيفية الضبط أمرًا بسيطًا للغاية.
  1. Arduino IDE
  2. ,
  3. — — —
  4. ,
    *** avr-g++ -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_LEONARDO -DARDUINO_ARCH_AVR  -DUSB_VID=0x2341 -DUSB_PID=0x8036 '-DUSB_MANUFACTURER="Unknown"' '-DUSB_PRODUCT="Arduino Leonardo"' ***
    

    , -D ( F_CPU, Eclipse ) Eclipse.


لكي يجد المترجم جميع ملفات .h التي نريد استخدامها في المشروع ، نحتاج إلى تحديد المسار لهم في الإعدادات. هناك طريقتان. يمكنك تحديد مسارات مطلقة لمجلدات Arduino IDE أو ربط المكتبة بالمشروع وتحديد المسار النسبي من {workspase} / {ProjName}. ستسمح لك الطريقة الثانية بتجميع النواة في Eclipse ، على الرغم من عدم وجود اختلاف جوهري ، وفي Arduino IDE و Eclipse ، فإن avr-g ++ مسؤول عن الترجمة.
بالإضافة إلى ذلك ، حدد المسار إلى pins_arduino.h للوحة التي نستخدمها في المشروع.

حتى لا ننتهك البنية المتناغمة لملفات مكتبة main.cpp ، لن نقوم بتحريرها. ما عليك سوى تضمينه كما هو من النواة في المشروع ، وسنسمي ملفنا باسم آخر. ليس من الضروري الإعلان عن وظيفة main () الموجودة فيها ، فهي موجودة بالفعل في main.cpp ، وتهيئ كل ما هو مطلوب وتستدعي وظيفة loop () في حلقة لا نهائية ، وسيقوم الرابط بجمع كل شيء كما ينبغي.

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

لملء كل من Arduino IDE و Eclipse ، استخدم أداة المبرمج AVRDude. إنها تعرف بالفعل لوحات مثل Uno تحت اسم "arduino" ، لكنها ترفض بشكل قاطع التعرف على الألواح الأرخص مثل Leonardo.
ننتقل إلى boards.txt ونكتشف أنه بالنسبة للمبرمج يُطلق على المبرمج في إعدادات AVRDude "أداة تحميل التمهيد Atmel AppNote AVR109" ، وهنا: الإزعاج البسيط هو أن Eclipse لن يفعل ذلك. سيتعين عليك الضغط على إعادة التعيين باستخدام الأقلام قبل التحميل. حسنًا ، في الختام ، تم تجميع نفس المشروع في Arduino IDE
leonardo.upload.protocol=avr109




leonardo.upload.use_1200bps_touch=true




28 432 (99%) . 28 672 .
1 254 (48%) , 1 306 . : 2 560 .

وفي Eclipse A trifle ، ولكن لإنهائه فهو مجرد رطل ولا يكفي.
Invoking: Print Size
avr-size --format=avr --mcu=atmega32u4 EthernetController.elf
AVR Memory Usage
----------------
Device: atmega32u4

Program: 27834 bytes (84.9% Full)
(.text + .data + .bootloader)

Data: 1257 bytes (49.1% Full)
(.data + .bss + .noinit)

Finished building: sizedummy

Source: https://habr.com/ru/post/ar390441/


All Articles