Alex Tech
290 subscribers
27 photos
2 files
30 links
Got questions or suggestions about the channel? Reach out to me: @Alixahedi
Download Telegram
سلام 👋

امروز می‌خوایم یه نگاه کلی به سری‌های مختلف میکروکنترلر STM32 بندازیم و ببینیم هر کدومش کجا به کار میاد تا موقع انتخاب دیگه گیج نشید:

• STM32F0
– پروژه‌های خیلی ساده و ارزون: راه‌اندازی یه LED یا نمایشگر ۷Segment، ترازوی دیجیتال با دقت معمولی.

• STM32F1
– کارای عمومی متوسط: کنترل موتور DC/سروو، نمایشگر LCD کاراکتری، روبات مبتدی، خونه هوشمند با چند سنسور.

• STM32F3
– وقتی سیگنال آنالوگ مهمه: سنجش دقیق ولتاژ/جریان، کنترل موتور BLDC با فیدبک، فلومترها و پروژه‌های پزشکی سبک.

• STM32F4
– پردازش سنگین DSP و صوت/تصویر: پخش MP3، فیلتر دیجیتال، رباتیک پیشرفته، دوربین دیجیتال سبک.

• STM32F7 / H7
– رابط گرافیکی لمسی و Edge AI: داشبورد لمسی، یادگیری ماشین لبه (تشخیص اشیا ساده)، محاسبات سنگین.

• STM32L0 / L1 / L4
– مصرف فوق‌العاده کم: حسگرهای باتری‌محور، ساعت هوشمند ساده، پوشیدنی‌ها، IoT کم‌مصرف.

• STM32G0 / G4
– ترکیب مصرف و کارایی: درگاه‌های صنعتی سبک، پروتکل‌های سفارشی، کنترلر موتور متوسط با DSP مختصر.

• STM32WB / WL
– بی‌سیم حرفه‌ای: بلوتوث LE/Mesh یا LoRa؛ برای IoT، ردیاب‌ها و دستگاه‌های هوشمند متصل.

موفق باشید و پروژه‌هاتون همیشه بی باگ 🚀
❤‍🔥6❤3
سلام!

یه فکت باحال از دنیای هوش مصنوعی روی میکروکنترلر STM32 دارم:

با ابزار STM32Cube.AI می‌تونید مدل‌های یادگیری عمیق مثل TensorFlow رو به کد C تبدیل کنید و مستقیم روی STM32 اجرا کنید. یعنی بدون نیاز به سخت‌افزار سنگین، روی میکروکنترلر سبک‌وزن، کارهای ساده مثل تشخیص عدد یا تشخیص حضور انسان انجام بدین.

چطوری؟

1. مدل‌تون (مثلا MNIST یا Mobilenet) رو صادر می‌کنید.
2. ابزار Cube.AI خودش مدل رو کم‌حجم (quantization/pruning) می‌کنه.
3. کد C/C++ تحویل میده که تو STM32 برنامه‌ریزی می‌شه.
4. روی برد STM32 (مثلا سری F4/F7/H7) فلش‌ش می‌کنید و می‌بینید چقدر باحاله بدون نیروی پردازش اضافی کار می‌کنه!

مثال‌های آماده

- تشخیص عدد دست‌نویس (MNIST): مدل فشرده‌شده حجمش میشه چند ده کیلوبایت.
- تشخیص انسان تو تصویر (Person Detection): میگه «آدم هست یا نیست».
- تشخیص کلمه کلیدی (Keyword Spotting): مثلا “بله/نه” یا “استارت” رو می‌فهمه.
- تشخیص ژست با حسگر IMU یا حتی تشخیص چهره خیلی ساده.

چرا جذابه؟

- بدون نیاز به NPU یا کارت گرافیک اضافه
- مصرف انرژی خیلی کم؛ مناسب IoT و وسایل پوشیدنی
- مثال‌های آماده مثل “Hello AI World” که تشخیص تصویر و صدا رو یکجا نشون میده

اگر می‌خواید سریع تست کنید، بروید سراغ Hello AI World در STM32Cube.AI و روی برد F7 یا H7 تست کنید.

خلاصه دنیای TinyML روی STM32 باحاله، پیشنهاد می‌کنم امتحانش کنید! 🚀
❤11❤‍🔥2👍1😍1
سلام
اومدم 5 اشتباه رایج در استفاده از رزبری پای رو بهتون بگم؛

۱. پاور بی‌کیفیت = ناپایداری سیستم
استفاده از شارژر موبایل یا کابل نامناسب باعث ریست شدن، کندی یا حتی بالا نیومدن رزبری پای میشه. حتماً از منبع تغذیه ۵ ولت با جریان کافی (حداقل ۲.۵ آمپر برای Pi 3 و بالاتر برای Pi 4) استفاده کن.

dmesg | grep voltage
# Under-voltage detected!


۲. نصب دستی بدون مستندسازی
هر بار دستی یه سری پکیج نصب می‌کنی و تنظیماتی انجام می‌دی، ولی چیزی نمی‌نویسی. وقتی بخوای پروژه رو روی یه رزبری پای دیگه اجرا کنی، یادت نمیاد چی‌کار کرده بودی. همون اول یه اسکریپت نصب بنویس یا حداقل یه README درست کن.

۳. در نظر نگرفتن محدودیت سخت‌افزار
رزبری پای لپ‌تاپ نیست. وقتی چندتا پروسه سنگین اجرا می‌کنی یا زیاد لاگ می‌نویسی، کارت SD زود خراب میشه یا سیستم کند میشه. منابع سیستم رو مدام بررسی کن.

htop


۴. اتصال مستقیم به GPIO بدون محافظ
خیلیا سیم سنسور یا موتور رو مستقیم به GPIO وصل می‌کنن، بدون مقاومت یا ایزولاسیون. این کار می‌تونه پایه‌ها رو بسوزونه یا باعث نویز و ناپایداری بشه. حتماً از مقاومت، ترانزیستور یا ماژول محافظ استفاده کن.

۵. باز گذاشتن SSH و پورت‌ها بدون تنظیمات امنیتی
وقتی رزبری پای به شبکه وصله و SSH فعاله ولی رمز پیش‌فرض هنوز همونه، در واقع در رو باز گذاشتی برای هکر. حتی اگه فقط توی شبکه لوکالی، باز هم رمز قوی بذار و فایروال رو فعال کن.

sudo passwd
sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw enable
❤7❤‍🔥1
سلام

اگه با STM32 کار کرده باشی، مخصوصاً وقتی می‌خوای از FreeRTOS استفاده کنی و یه رابط کاربری گرافیکی سنگین با LVGL یا TouchGFX روی LCD بالا بیاری، حتماً با مشکل کمبود حافظه فلش داخلی برخورد کردی.

کل ماجرا اینه که کدی که مینویسیم، مخصوصاً با گرافیک و منابع LVGL یا TouchGFX، خیلی حجیم میشه و از ظرفیت فلش داخلی میکرو فراتر می‌ره. طبیعتاً اولین چیزی که به ذهن می‌رسه اینه که خب بزنیمش روی فلش خارجی، مثلاً QSPI Flash.
اما دقیقاً همینجاست که یه دردسر گنده شروع میشه!

کدی که از فلش خارجی اجرا میشه معمولاً با تأخیر اجرا میشه. یعنی دیگه real-time بودن برنامه زیر سوال میره. مثلاً یه ورودی از سنسور میاد، ولی چون CPU باید کد رو از فلش خارجی بخونه، یه لحظه مکث می‌کنه، و توی همون لحظه ممکنه دیتای بعدی رو از دست بدی یا دیر واکنش نشون بدی.

خب راه‌حل چیه؟

کدهایی که real-time هستن و نیاز دارن سریع اجرا بشن، مثل:

- بخش interrupt handlers
- بخش task های حساس در FreeRTOS
- بخش‌هایی که ورودی مستقیم می‌گیرن یا به سخت‌افزار واکنش فوری نشون می‌دن

باید روی فلش داخلی میکروکنترلر باقی بمونن.

بقیه‌ی کدها، مثلاً:

- فایل‌های منبع گرافیکی
- کدهای مربوط به UI که زمان اجرای حساس ندارن
- انیمیشن‌ها یا assetهای TouchGFX یا LVGL

اینا می‌تونن برن روی فلش خارجی.

چطوری این کار رو بکنیم؟

باید پروژه‌مون رو جوری تنظیم کنیم که فایل لینکر (Linker Script) مشخص کنه چه کدی کجا بره. یه مثال ساده از یه بخش از linker script:

/* برای فلش داخلی */
.text :
{
KEEP(*(.isr_vector))
*(.text*)
*(.rodata*)
} >FLASH_INTERNAL

/* برای فلش خارجی */
.ext_flash_section :
{
*(.ext_flash_code*)
} >FLASH_EXTERNAL


بعد توی سورس کدهامون می‌تونیم با Attribute مشخص کنیم یه تابع خاص بره توی فلش خارجی:

__attribute__((section(".ext_flash_code")))
void draw_ui_screen(void) {
// کدی که مربوط به رسم صفحه‌ی گرافیکی هست
}


یا حتی assetهای LVGL یا TouchGFX رو می‌تونیم طوری تنظیم کنیم که از QSPI Flash خونده بشن و نیازی به Load شدن توی RAM نداشته باشن (یعنی اجرای مستقیم از فلش – XIP: eXecute In Place).

نکته مهم!

اگه از QSPI Flash استفاده می‌کنی، باید حواست باشه که سیستم درایور QSPI رو درست توی startup راه‌اندازی کنه و تنظیمات کش مموری رو فعال کرده باشی. چون بدون کش، حتی دسترسی به کدهای ساده هم می‌تونه کند باشه.

در نهایت اینطوری می‌تونی هم از فضای فلش خارجی استفاده کنی، هم real-time بودن برنامه رو حفظ کنی. این یه تکنیک خیلی کاربردیه وقتی تو پروژه‌هات با رابط کاربری سنگین طرفی ولی هنوز می‌خوای سیستم سریع و دقیق جواب بده.
❤‍🔥13❤4
سلام
دوستان اگر کسی تا الان تونسته OpenCV رو با Cmake کامپایل کنه لطفا بهم پیام بده. ممنونم!🙏🌱
@Alixahedi
😈2😱1🦄11
سلام!
امروز می‌خوام درباره یه میکروکنترلر جدید از سری STM32 براتون توضیح بدم که خیلی سر و صدا کرده: STM32N6. اگه اهل پروژه‌های الکترونیکی و برنامه‌نویسی هستی، این متن رو حتماً تا آخرش بخون.

میکروکنترلر STM32N6 چی هست اصلا؟
میکروکنترلر STM32N6 جدیدترین عضو خانواده STM32 هست که شرکت ST تولید کرده. این میکرو از هسته Cortex-M55 استفاده می‌کنه که سرعت پردازشش تا ۸۰۰ مگاهرتز هم می‌رسه. حالا این یعنی چی؟ یعنی برای انجام کارایی مثل پردازش سیگنال‌ها، تصاویر و حتی داده‌های صوتی، دیگه لازم نیست کلی به خودت زحمت بدی و سراغ سیستم‌های قدرتمندتر بری. همه چیز روی همین میکرو قابل اجراست.

قدرت پردازش هوش مصنوعی
یه ویژگی جالب STM32N6 اینه که یه واحد پردازشی اختصاصی برای هوش مصنوعی (NPU) داره که تا ۶۰۰ گیگا عملیات در ثانیه رو انجام می‌ده. این یعنی روی خود چیپ، به راحتی می‌تونی شبکه‌های عصبی رو پیاده کنی. پس برای تشخیص تصویر، صدا، یا هوش مصنوعی لبه (Edge AI) کاملاً مناسبه.

حافظه زیاد و امکانات اضافی
STM32N6 یه حافظه داخلی 4.2 مگابایتی داره که واسه برنامه‌ها و داده‌ها خیلی خوبه. تازه، اگه اینم کم باشه می‌تونی حافظه‌های خارجی مثل رم و فلش رو به راحتی بهش وصل کنی. برای پروژه‌های بزرگی که حجم زیادی از داده‌ها رو دارن، این قابلیت خیلی به کار میاد.

پردازش تصویر و گرافیک حرفه‌ای
این میکرو از رابط دوربین MIPI CSI-2 پشتیبانی می‌کنه و یه پردازشگر تصویر (ISP) هم داره که می‌تونه تصاویر و ویدئو رو خیلی سریع و با کیفیت پردازش کنه. این قابلیت باعث میشه STM32N6 گزینه خوبی برای ساخت سیستم‌های نظارتی، دوربین‌های هوشمند و پروژه‌های بینایی ماشین باشه.

یه قابلیت دیگه‌ای هم که داره اینه که یه GPU داخلی داره که به اسم NeoChrom شناخته میشه. این GPU بهت اجازه می‌ده راحت رابط‌های گرافیکی با کیفیت بالا طراحی کنی. همچنین، انکودر ویدیویی H.264 هم تو خودش داره که می‌تونه ویدیوها رو فشرده کنه تا ذخیره‌سازی و ارسال راحت‌تر بشه.

امنیت پیشرفته و قابل اطمینان
یه نکته مهم دیگه امنیت هست. STM32N6 دارای استانداردهای امنیتی پیشرفته مثل SESIP و PSA Level 3 هست. یعنی از رمزنگاری سخت‌افزاری و TrustZone پشتیبانی می‌کنه که پروژه‌ها و داده‌های حساس رو از هر نوع دسترسی غیرمجاز محافظت می‌کنه. بنابراین، این میکرو برای کاربردهای حساس مثل تجهیزات پزشکی و سیستم‌های صنعتی گزینه خیلی مناسبی هست.

مناسب برای محیط‌های صنعتی و خاص
از نظر دمای کاری و پایداری هم STM32N6 حرف نداره. تو دمای بالا تا ۱۲۵ درجه سانتی‌گراد به خوبی کار می‌کنه و در بسته‌بندی‌های مختلف از ۱۶۹ تا ۲۶۴ پین عرضه می‌شه. این یعنی برای پروژه‌هایی که نیاز به دوام زیاد و کار در محیط‌های سخت صنعتی یا خودرو دارن، کاملاً جواب می‌ده.

کجا استفاده می‌شه؟
کاربردهای STM32N6 خیلی گسترده است، از اتوماسیون صنعتی و ربات‌ها گرفته تا سیستم‌های پزشکی و گجت‌های پوشیدنی هوشمند. خلاصه هر جایی که نیاز به هوش مصنوعی، سرعت بالا، امنیت قوی، و پردازش گرافیکی باشه، این میکرو حرف اول رو می‌زنه.

اگه دوست داری بیشتر درباره STM32N6 بدونی، اطلاعات دقیق‌تر و کامل‌تر رو توی لینک زیر می‌تونی پیدا کنی:
[اطلاعات رسمی STM32N6 از وبسایت STMicroelectronics](https://www.st.com/en/microcontrollers-microprocessors/stm32n6-series.html)

امیدوارم این معرفی به دردتون خورده باشه. سوالی داشتین بپرسین!
❤‍🔥5❤1👍1🏆1
روش‌های آپدیت کردن کد روی میکروکنترلر (مخصوصاً از راه دور)

وقتی می‌خوای یه دستگاه یا پروژه‌ی میکروبیس رو توی فیلد کنترل کنی، یکی از مهم‌ترین چیزا اینه که بتونی کدت رو از راه دور آپدیت کنی. اینجا مهم‌ترین روش‌ها رو برات آوردم:

۱. آپدیت با کابل (Bootloader/Debugger)
ساده‌ترین و سنتی‌ترین روشه. با کابل USB یا از طریق SWD/JTAG وصل میشی به میکروکنترلر و با نرم‌افزارهای مثل STM32CubeProgrammer یا avrdude کد رو فلش می‌کنی. اما خب فقط زمانی کاربرد داره که دسترسی فیزیکی به دستگاه داری.

۲. آپدیت از راه دور (OTA - Over The Air)
یکی از حرفه‌ای‌ترین روش‌ها. دستگاه به وای‌فای یا بلوتوث وصل میشه، خودش نسخه جدید رو از سرور می‌گیره، اعتبارسنجی می‌کنه و اگه معتبر بود فلش می‌کنه.
توی این روش معمولاً یه bootloader هوشمند داریم که کارای زیر رو انجام میده:
– بررسی نسخه جدید
– دانلود باینری جدید
– اعتبارسنجی با hash یا signature
– ری‌فلش حافظه
چیپ‌هایی مثل ESP32 و STM32 سری H7 و WB از OTA پشتیبانی دارن.

۳. آپدیت با GSM / LoRa / LTE-M
اگه دستگاهت توی مناطق دورافتاده نصبه و به اینترنت یا وای‌فای دسترسی نداره، می‌تونی از ماژول‌هایی مثل SIM800، SIM7600 یا حتی LoRa استفاده کنی. فایل باینری فریم‌ور از راه دور براش ارسال میشه، ذخیره میشه و سپس فلش میشه.
البته سرعت پایین‌تره، مصرف دیتا و هزینه ارتباط وجود داره، ولی برای شرایط خاص واقعاً کاربردیه.

۴. آپدیت با حافظه جانبی (SD Card یا USB Flash)
وقتی امکان ارتباط شبکه‌ای نیست ولی می‌تونی یه SD یا فلش به دستگاه بزنی، فایل به‌روزرسانی رو میریزی روش، دستگاه بعد از بوت بررسی می‌کنه، و در صورت وجود نسخه معتبر، خودش برنامه رو به‌روزرسانی می‌کنه. این روش برای دستگاه‌هایی که توسط کاربرهای غیر فنی استفاده می‌شن عالیه.

۵. آپدیت داخل شبکه (HTTP / MQTT)
توی پروژه‌هایی که چند تا دستگاه توی یه شبکه محلی دارن کار می‌کنن، می‌تونی یه سرور داخلی تعریف کنی. دستگاه‌ها به‌صورت دوره‌ای نسخه جدید رو از سرور می‌گیرن (مثلاً با پروتکل HTTP یا MQTT) و اگه نسخه جدید موجود بود، خودشون دانلود و نصب می‌کنن.
برای پروژه‌های صنعتی یا ساختمانی خیلی به درد می‌خوره.

۶. نکات امنیتی که نباید فراموش بشن
– حتماً از hash مثل SHA256 یا امضای دیجیتال استفاده کن
– مکانیزم rollback بذار که اگه فایل معیوب بود، دستگاه به نسخه قبلی برگرده
– بخش bootloader رو write-protect کن که کسی نتونه دستکاریش کنه
– اگه حجم آپدیت زیاده، می‌تونی از روش incremental update استفاده کنی (فقط بخش‌های تغییر یافته فلش میشن)

توی پست بعدی میخوام درباره اپدیت کد پایتون توی رزبری پای (از راه دور) بگم منتظر باشد!
❤‍🔥9❤8😍1
سلام دوستان

رزبری‌پای الان دو نسخهٔ اصلی از Raspberry Pi OS داره: Bullseye (دبیان ۱۱) و Bookworm (دبیان ۱۲). ظاهرشون یکیه ولی پشت‌صحنه تفاوت داره.

۱. نسخهٔ پایتون و کتابخونه‌ها
Bookworm پیش‌فرض پایتون ۳.۱۱ داره، Bullseye معمولاً ۳.۹؛ اسکریپتی که تو یکی بدون مشکل می‌چرخه ممکنه تو اون یکی ارور بده.

۲. ریپوهای APT و کرنل
مخازن و ورژن کرنل تو هر نسخه فرق می‌کنه. قبل هر apt install حتماً با

cat /etc/os-release


ببینید رو کدوم توزیع هستید.

۳. آموزش‌ها
خیلی از آموزش‌های وب هنوز مخصوص Bullseye هستن. اگه Bookworm دارید، یا آموزش سازگار پیدا کنید یا سیستم‌عامل رو به همون نسخهٔ آموزش تغییر بدید.

۴. پروژه‌های حساس
چیزهایی مثل Home Assistant یا پروژه‌های ML روی ورژن دقیق کتابخونه‌ها حساسن؛ اول داکیومنت رسمی رو چک کنید.

خلاصه: اول نسخهٔ سیستم‌عامل رو چک کنید، بعد پکیج یا آموزش مناسب همون ورژن رو بگیرید تا وقت و اعصابتون هدر نره.
❤5❤‍🔥2👍2
سلام
من پروژه‌های مرتبط با طراحی و ساخت سیستم‌های الکترونیکی و امبدد رو انجام می‌دم. زمینه کاری شامل:

○ طراحی و ساخت برد و PCB

○ برنامه‌نویسی میکروکنترلرها (STM32، AVR، Arduino، ESP32، ESP8266، Raspberry Pi)

○ طراحی و پیاده‌سازی سیستم‌های هوشمند و IoT (خانه هوشمند، شهر هوشمند)

○ توسعه نرم‌افزار و فریمور، کار با RTOS

○ طراحی رابط کاربری با LVGL و TouchGFX

○ پردازش تصویر و بینایی ماشین (OpenCV، PyQt)

○ پیاده‌سازی پروتکل‌های ارتباطی (UART، RS232، RS485، I2C، SPI، QSPI، CAN، Ethernet، Wi-Fi، Bluetooth، MQTT، HTTP)

○ اجرای پروژه‌های پزشکی و صنعتی

اگر پروژه‌ای در این زمینه‌ها دارید، خوشحال می‌شم همکاری کنیم.

@Alixahedi
❤6❤‍🔥4👍2👨‍💻1
برگزاری دوره‌های تخصصی الکترونیک و امبدد (پروژه‌محور)

• میکروکنترلر های STM32
• میکروکنترلر های AVR
• برد های Arduino
• زبان C
• طراحی PCB با Altium Designer

دوره‌ها به‌صورت خصوصی و نیمه‌خصوصی برگزار می‌شن و تمرکز روی تمرین عملی و خروجی پروژه‌ست.
برای دریافت سرفصل، زمان‌بندی و ثبت‌نام پیام بدید:
@Alixahedi
❤2❤‍🔥1
Alex Tech pinned «برگزاری دوره‌های تخصصی الکترونیک و امبدد (پروژه‌محور) • میکروکنترلر های STM32 • میکروکنترلر های AVR • برد های Arduino • زبان C • طراحی PCB با Altium Designer دوره‌ها به‌صورت خصوصی و نیمه‌خصوصی برگزار می‌شن و تمرکز روی تمرین عملی و خروجی پروژه‌ست. برای دریافت…»
سلام

وقتی می‌خوای برنامه‌ت رو به شکل فایل اجرایی بدی دست کاربر، دو اسم زود میاد وسط: PyInstaller و Nuitka. اولی بیشتر نقش «بسته‌بندی‌کننده» رو بازی می‌کنه، دومی واقعاً «کامپایل» می‌کنه. نتیجه؟ اگر کیفیت تحویل، سرعت اجرا و حس حرفه‌ای بودن برات مهمه، کفه‌ی ترازو معمولاً سمت Nuitka سنگین‌تره.

یک PyInstaller با یه نگاه ساده: همه‌چی (مفسر CPython + ماژول‌ها + کدت) رو می‌ذاره کنار هم و سریع بهت خروجی می‌ده. برای دیپلوی سریع و پروژه‌های دم‌دستی عالیه. ولی سرعت اجراش تقریباً مثل اجرای مستقیم پایتونه، خروجی معمولاً حجیم‌تره، و نسخه‌ی تک‌فایلی زمان شروعش کندتره چون باید فایل‌ها رو باز کنه.

دو Nuitka با یه نگاه ساده: کدت رو به C/C++ تبدیل می‌کنه و باینری native می‌سازه. این یعنی:

- اجرای معمولاً سریع‌تر مخصوصاً تو کارهای CPU-bound (حلقه‌ها، محاسبات، پردازش‌ها).
- استارتاپ روون‌تر نسبت به بسته‌های استخراجی.
- برگشت‌پذیری سخت‌تر (دی‌کامپایل مستقیم خیلی سخت‌تر می‌شه).
- گزینه‌های بهینه‌سازی مثل LTO و چندریسمانی موقع بیلد.
بله، بیلدش طولانی‌تره و لازمه کامپایلر داشته باشی (MSVC/GCC/Clang)، ولی برای تحویل جدی به کاربر نهایی، معمولاً ارزشش رو داره.

کی PyInstaller رو بردارم؟
- وقتی فقط می‌خوای «الان» یه خروجی بدی و درگیر پیچیدگی نشی.
- وقتی پروژه‌ت I/O-محوره و سرعت CPU خیلی مهم نیست.
- وقتی تیم/محیطت محدودیت نصب کامپایلر داره.

کی Nuitka می‌درخشه؟

- وقتی سرعت اجرا و حس چابکی برنامه مهمه.
- وقتی می‌خوای خروجی حرفه‌ای‌تر و سخت‌تر برای مهندسی معکوس بدی.
- وقتی برنامه‌ت محاسباتی/CPU-bound ـه یا استارتاپ سریع‌تر می‌خوای.

چند نکته‌ی اجرایی کوتاه:

- بهتره تو یه virtualenv تمیز خروجی بگیری.
- اگر با PyInstaller حجم اذیتت می‌کنه، onedir بهتر از onefile شروع می‌شه؛ اما برای کاربر نهایی، باینری روون Nuitka اغلب تجربه‌ی بهتریه.
- با Nuitka اگر پروژه بزرگه، از گزینه‌های بهینه‌سازی استفاده کن تا خروجی شسته‌رفته‌تر و سریع‌تر بشه.


نمونه‌ی خیلی کوتاه برای تست تفاوت سرعت (CPU-bound):

# app.py
s = 0
for i in range(1_000_00):
s += i % 7
print(s)


روی همون سیستم، خروجی PyInstaller معمولاً زمان اجراش نزدیک پایتونه؛ با Nuitka اغلب اجرای سریع‌تری می‌گیری، مخصوصاً وقتی مقیاس کار بزرگ‌تر می‌شه.


PyInstaller (نصب):

pip install pyinstaller


PyInstaller (ساخت تک‌فایل):

pyinstaller --onefile app.py


Nuitka (نصب):

pip install nuitka


Nuitka (ساخت استاندارد مستقل):

nuitka --onefile --standalone app.py


Nuitka (بیلد بهینه‌تر):

nuitka --onefile --standalone --lto=yes --jobs=4 app.py


اگر فقط «خروجی سریع» می‌خوای، PyInstaller کفایت می‌کنه. اگر «تحویل حرفه‌ای، اجرای تندتر و حس محصول نهایی» می‌خوای، Nuitka معمولاً برنده‌ست.
❤7❤‍🔥2
سلام 👋
من دارم دوره‌ی STM32 رو به صورت ویدیویی و پله‌پله ضبط می‌کنم. الان که وسطای کاریم، شما می‌تونید با تخفیف ویژه وارد دوره بشید، هم ویدیوهای منتشرشده رو ببینید هم هر جلسه‌ی جدیدی که ضبط می‌شه رو بلافاصله دریافت کنید.

استایل دوره به صورت پروژه محور هست و هر مبحث رو با مثال های عملی تست میکنیم.

فرصت تخفیف تا وقتی دوره در حال ضبطه فعاله.

برای اطلاعات بیشتر و ثبت نام:
@Alixahedi
4❤‍🔥3🔥1😍1
Alex Tech pinned «سلام 👋 من دارم دوره‌ی STM32 رو به صورت ویدیویی و پله‌پله ضبط می‌کنم. الان که وسطای کاریم، شما می‌تونید با تخفیف ویژه وارد دوره بشید، هم ویدیوهای منتشرشده رو ببینید هم هر جلسه‌ی جدیدی که ضبط می‌شه رو بلافاصله دریافت کنید. استایل دوره به صورت پروژه محور هست…»
می‌خوای از آردوینو فراتر بری و پروژه حرفه‌ای بسازی؟

🚀 از «صفر» تا ساخت اولین پروژه با STM32
🎯 تمرین‌های قدم‌به‌قدم + چک‌لیست‌ها
🎥 آموزش ویدیویی + دسترسی همیشگی + آپدیت رایگان
🧑‍💻 پشتیبانی مستقیم مدرس

💥 50% تخفیف مخصوص دانشجویان و دانش‌آموزان

برای ثبت‌نام همین الان به @Alixahedi تلگرام پیام بده.

#STM32 #میکروکنترلر #آموزش_الکترونیک #برنامه_نویسی #EmbeddedSystems #دوره_آموزشی #الکترونیک_عملی
5❤‍🔥4❤1⚡1😍1💯1
Alex Tech pinned a photo
کمپانی SECO پنل HMI صنعتی Pi Vision 10.1 CM5 را معرفی کرد؛

مبتنی بر Raspberry Pi Compute Module 5**، با بدنه آلومینیومی، نمایشگر لمسی ۱۰.۱ اینچ **1280×800 و IP66 از سمت جلو. نرم‌افزار از ابتدا با Raspberry Pi OS یا Clea OS (پشتیبانی OTA، مدیریت ناوگان) آماده است. قیمت طرح دسترسی زودهنگام از ۲۳۹ یورو اعلام شده.

خلاصه فنی: BCM2712 (۴× Cortex-A76 تا ۲.۴GHz)، تا ۸GB LPDDR4-ECC، GbE، USB 3.0، اسلات M.2 (PCIe x1) برای NVMe/شتاب‌دهنده‌های AI

ویدیو محصول:
https://youtu.be/r_qptW1bw6A

#Embedded #RaspberryPi #CM5 #HMI #IIoT #OTA #EdgeAI
❤‍🔥2❤1👍1
سلام
رزومه‌م رو به شکل یک سایت شخصی ساده و حرفه‌ای طراحی کردم تا به‌جای فایل و عکس، یک لینک مرتب و قابل اشتراک داشته باشم.
این مدل سایت هزینه هاست و دامنه نداره و در عین حال کاملاً حرفه‌ایه و برای اپلای دانشگاه و جاب‌های خارجی خیلی خوبه چون کارفرما/کمیته پذیرش راحت و سریع می‌تونه ببینتش (چون گیت هاب هست دردسر ای پی داخل و خارج ایران رو نداره).

نمونه:
https://alixahedi.github.io

اگر شما هم دوست دارید برای خودتون همچین رزومه‌سایتی داشته باشید، پیام بدید:
@Alixahedi
👍7❤‍🔥6❤3🔥1👌1🏆1🆒1
سلام

اومدم تجربه ای که امروز داشتم رو به اشتراک بزارم باهاتون!

من با رزبری زیرو از طریق وای‌فای و SSH کار می‌کردم و کلاً از راه دور همه چی رو پیش می‌بردم، تا اینکه یهو و بی‌هوا SSH قطع شد و دیگه هرچی می‌زدم وصل نمی‌شد. مشکل این بود که سیستم‌عاملم رابط گرافیکی نداشت، از اون بدتر USB رو هم قبلاً یه جوری تنظیم کرده بودم که دیگه نمی‌شد کیبورد و ماوس وصل کرد. یعنی رسماً هیچ راهی برای ورود به رزبری نداشتم.

اولین چیزی که به ذهنم رسید این بود که سیستم‌عامل رو عوض کنم، ولی این یعنی همه کارهایی که چند روز روش وقت گذاشته بودم می‌پرید. برای همین گفتم قبل از هر کاری باید فایل‌هام رو از توش دربیارم، مخصوصاً اون پوشه‌ای که همه دیتای مهمم توش بود.

یه کم سرچ کردم و فهمیدم ویندوز خودش نمی‌تونه فایل‌های اصلی رزبری رو ببینه، چون پارتیشنش لینوکسیه. اینجا بود که با یه نرم‌افزار به اسم DiskInternals Linux Reader کارم راه افتاد. با همین برنامه تونستم خیلی راحت پوشه‌ای که لازم داشتم رو مستقیم از روی SD کارت بردارم.

مراحل کار با DiskInternals Linux Reader

1. کارت SD رزبری رو درآوردم و با کارت‌خوان زدم به ویندوز.
2. برنامه DiskInternals Linux Reader رو باز کردم.
3. توی برنامه SD کارت رو پیدا کردم، خودش پارتیشن لینوکسی رو هم تشخیص داد.
4. رفتم داخل پارتیشن اصلی و پوشه‌ای که فایل‌هام توش بود رو پیدا کردم (معمولاً توی مسیر home هست).
5. روی پوشه راست‌کلیک کردم و گزینه Save یا Save Files رو زدم.
6. یه مسیر توی ویندوز انتخاب کردم تا پوشه همونجا برام کپی بشه.

به همین راحتی، بدون اینکه رزبری بالا بیاد یا مجبور بشم سیستم‌عامل رو عوض کنم، فایل‌هام رو از روی SD کارت نجات دادم.
❤13❤‍🔥2👏1🙏1👌1😍1