شاشة الإقلاع المخصّصة
يعرض العنقاء صورة بملء الشاشة عند إقلاعه. ويمكنك استبدالها بأي صورة — شعارك، أو تصميم خاصّ، أو ما تشاء. بلا تغييرات في الشيفرة؛ فقط ضع ملفّ PNG وشغّل سكربتًا واحدًا.
كيف يعمل
تُخزَّن شاشة الإقلاع مصفوفةَ بايتات PNG خام مضمّنة مباشرةً في البرنامج (splash_image.h). ويحوّل سكربت convert_splash.py أي PNG إلى تلك الصيغة تلقائيًّا، متولّيًا تغيير الحجم والترميز.
وعند الإقلاع، يقرأ البرنامج مصفوفة البايتات ويرسمها بكسلًا بكسل على شاشة 320×240 ST7789 قبل ظهور مِحثّ الأوامر.
استبدال شاشة الإقلاع
الخطوة 1 — جهّز صورتك
ضع ملفّ PNG في:
images/AL-ANQA-LOADING SCREEN.png
أي حجم يعمل — يغيّر السكربت حجمها إلى 320×240 تلقائيًّا (استيفاء ثنائي الخطّية). ولأحدّ نتيجة، ابدأ بصورة بنسبة 4:3 (مثل 1280×960 أو 1920×1440).
نمط الألوان: RGB أو RGBA أو تدرّج رمادي أو لوحة — كلّها مدعومة. وتُسقَط قناة الشفافية (البكسلات الشفّافة تصبح سوداء).
الخطوة 2 — شغّل المُحوّل
python convert_splash.py
الخطوة 3 — نزّل البرنامج
ابْنِ وارفع عاديًّا في VSCode / PlatformIO. فتُضمَّن الصورة الجديدة في البرنامج.
فرض إعادة التوليد
يتخطّى السكربت التوليد إن كان splash_image.h أحدث من PNG (لا-عمل سريع في البناءات المتكرّرة). ولفرض إعادة البناء:
python convert_splash.py --force
استعادة شاشة الإقلاع الافتراضية
شاشة الإقلاع الافتراضية (images/AL-ANQA-LOADING SCREEN.png) مضمّنة في المستودع. لاستعادتها بعد استبدالها:
git checkout images/"AL-ANQA-LOADING SCREEN.png"
python convert_splash.py --force
تفاصيل تقنية
| الخاصّية | القيمة |
|---|---|
| حجم الخرج | 320×240 بكسل |
| عمق الألوان | 16-bit RGB565 (عبر إعادة ترميز PNG) |
| خوارزمية التحجيم | استيفاء ثنائي الخطّية (بايثون خالص، بلا Pillow) |
| صيغة الخرج | مصفوفة C uint8_t في al-anqa-firmware/splash_image.h |
| أثر البناء | يعمل السكربت خطافَ بناء لـ PlatformIO لكنه يتخطّى إن كان الرأس محدَّثًا |
المُحوّل بايثون خالص (بلا اعتماديات خارجية — يستخدم os وzlib وstruct وsys من المكتبة القياسية فقط). ويعمل على أي جهاز يشغّل PlatformIO.
ملاحظات
- يعمل السكربت تلقائيًّا في أوّل بناء (أو حين يكون PNG أحدث من الرأس). والبناءات اللاحقة تتخطّاه.
splash_image.hمُودَع في المستودع فتُبنى النسخ الجديدة فورًا بلا تشغيل السكربت.- تُعرَض شاشة الإقلاع نحو 1.5 ثانية أثناء الإقلاع قبل ظهور مِحثّ الأوامر.