۱۴۰۴ مرداد ۹, پنجشنبه

در باب گشتاور

 

شاید یکی از مهمترین پارامترهایی که در طراحی بخش مکانیکال باید درنظر داشته باشیم محاسبه گشتاور مورد نیاز مجموعه هست. برای اینکه خودم نحوه محاسبات رو فراموش نکنم این مطلب رو اینجا مینویسم.

۱۴۰۴ تیر ۲۹, یکشنبه

اتصال مستقیم RPi به کامپیوتر



 من یک برد رزبری پای (Raspberry PI)  قدیمی (ورژن 1.2 نسخه B+ متعلق به سال 2014) از بین وسایلم پیدا کردم. با توجه به اینکه در حال حاضر از اینترنت موبایل استفاده میکنم و این برد فاقد آداپتور WiFi هست. تصمیم گرفتم یک راهی برای اتصال مستقیم برد رزبری پای به کامپیوترم پیدا کنم که بتونم همزمان اینترنت رو هم در اختیار بردم قرار بدهم.

این نوشته نتیجه کار من در این باره هست .

۱۴۰۳ مهر ۱۱, چهارشنبه

برنامه نویسی میکروکنترلر STM32 از ابتدا (From scratch) - تنظیمات کلاک قسمت دوم

 

در ادامه آموزش قبلی که در مورد درخت کلاک و نحوه تخصیص کلاک سیستم صحبت کردم، میخواهم کدهای مربوط به این بخش را کامل کنم و در یک فایل مجزا (و قابل تغییر) به پروژه اضافه کنم.

۱۴۰۳ مهر ۵, پنجشنبه

۱۴۰۳ مهر ۲, دوشنبه

برنامه نویسی میکروکنترلر STM32 از ابتدا (From scratch)


توی پست قبل درباره نوشتن اولین برنامه برای میکروکنترلر STM32F103 و برد BluePill مطالبی رو گفتم. استفاده از ویزارد برنامه STM32CubeIDE سرعت کار را بالا برده و با تنظیم (کانفیگ) متغیرها و توابع راحتی زیادی برای برنامه نویس و توسعه دهنده به ارمغان می‌آورد.

من میخواهم یک پروژه جدید بدون استفاده از ویزارد IDE بسازم و خودم فایلهاو دایرکتوری های مورد نیاز پروژه‌ام رو بهش الحاق کنم و کامپایلر را برای مسیرهای جدید تنظیم کنم. من میخوام یک پروژه رو بصورت from Scratch در STM32CubeIDE بسازم.

۱۴۰۳ شهریور ۲۶, دوشنبه

نمایش درختی دایرکتوری ها در Command Prompt ویندوز

برای نوشتن آموزش میکروکنترلر STM32 نیاز داشتم آرایش دایرکتوری رو هم نمایش بدم. برای همین منظور این آموزش کوتاه رو برای نمایش درختی دایرکتوری ها و محتویاتشون در cmd ویندوز نوشتم. 

۱۴۰۳ شهریور ۲۳, جمعه

۱۰ دلیل برای اینکه چرا باید به لینوکس Slackware فرصت بدهید

 


من علیرغم اینکه تقریبا بیست سال میشه که با لینوکس آشنا و کاربر لینوکس هستم ( سابقه آشنایی من با موجودی به اسم لینوکس به بیست و دو سه سال پیش میرسه) هیچ وقت به سمت نصب اسلکور نرفتم و فقط از بین دوستانم یک نفر از کاربران این توزیع هست (سلام میکنم به عیسای بزرگ که ...) بگذریم. من علاقه زیادی به عوض کردن توزیع ندارم. یعنی لینوکس صرفا برای من ابزاری برای مدیریت حافظه و برنامه هامه نه چیز بیشتر ( ویندوز هم همینه البته) اما یک مقاله درباره اینکه چرا باید این توزیع رو امتحان کرد خوندم و ترجیح دادم ترجمه این مقاله کوتاه رو به اشتراک بگذارم، شاید که کسی استفاده کرد و رستگار شد. (شاید در آینده جنتو رو امتحان کنم)

۱۴۰۳ شهریور ۱۸, یکشنبه

برنامه Blinky برای STM32 و کامپایلر STM32CubeIDE



در برنامه نویسی مرسومه که اولین قدم در یادگیری یک زبان جدید نوشتن برنامه Hello World  باشه. یک برنامه ساده که عبارت Hello World رو در کنسول چاپ میکنه.
در دنیای برنامه نویسی میکرو کنترلر معادل برنامه Hello World برنامه Blinky هست. یک برنامه ساده که باعث چشمک زدن (Blink) یک LED میشه.
میخواهم یک برنامه Blinky برای برد Blue Pill با تراشه STM32F103C8T6 بنویسم. برای این کار از کامپایلر موجود در IDE رایگان شرکت ST یعنی STM32CubeIDE استفاده میکنم.

۱۴۰۳ مرداد ۲۶, جمعه

نکاتی در باب طراحی برد مدار چاپی


 متاسفانه بدلایل کاری مجبورم مدتی از پردازش تصویر (Image Processing) و برنامه های مبتنی بر شناسایی تصویر(Image Recognition) دور باشم. توفیق اجباری شد که دوباره در زمینه مدارات الکترونیک، طراحی بردهای مدار چاپی و برنامه نویسی میکروکنترلرها فعالیت کنم.

در همین زمینه میخوام درباره بعضی اشکالات رایج در طراحی PCB کمی بررسی کنم و از تجربیات خودم و دیگران در اینجا صحبت کنم:

۱۴۰۳ خرداد ۱۰, پنجشنبه

تصحیح خطاهای STM32CubeIDE و نوشتن اولین برنامه



برنامه STM32CubeIDE بر روی سیستم من به درستی کار نمیکرد. در حقیقت بعد از تنظیم سیستم در بخش گرافیکی هیچ کدی ایجاد (جنریت) نمیشد.  در این پست میخوام دلیل مشکل و راه حلی که من بهش رسیدم رو توضیح بدهم.

۱۴۰۳ خرداد ۲, چهارشنبه

آپدیت Firmware پروگرمر ST Link ورژن ۲

 موقع استفاده از Keil برای پروگرم کردن میکروکنترلر STM32، با اتصال STLink یک پیام هشدار برروی برنامه نمایش داده میشه که Firmware پروگرمر رو آپدیت کنید. البته بدون آپدیت هم مشکلی نیست و به خوبی کار میکنه . اما من آپدیت کردم که از شر پیام هشدار خلاص بشم.

۱۴۰۳ اردیبهشت ۳۱, دوشنبه

میکروکنترلر STM32 - بخش اول (معرفی)

 من قبلا با میکروکنترلرهای ARM سری LPC محصول شرکت NXP کار کرده بودم ( که مدتها از اون زمان گذشته و باید دوباره آموخته هایم رو دوره و به روز رسانی کنم)، با توجه به فضای بازار کار و علاقه به میکروهای شرکت STM متوجه قیمت نازل این میکروهای ۳۲ بیتی شدم که در بعضی مدلها حتی از میکروکنترلرهای 8 بیتی هم ارزونتر هست. من شروع به یادگرفتن این خانواده کردم . شاید بعدا سلسله آموزشهایی درباره خانواده LPC هم در سایت قرار بدهم. اما فعلا نوشتن آموخته هام در اولویت هست تا هم برای خودم بمونه و هم اگر کسی لازم داشت استفاده کنه.

۱۴۰۲ آبان ۱۴, یکشنبه

ساخت فایل اجرایی از فایل منبع پایتونی

 

 

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

۱۴۰۲ آبان ۱۱, پنجشنبه

به سمت هوش مصنوعی

 بعد از مدتها سروکله زدن با شبکه های عصبی کانولوشنی و پیاده سازیشون در یک برنامه کامل که GUI مستقل داره و برنامه تجاری سازی شده درنظر دارم تجربیاتمو از این کار هم در زمینه جمع آوری و پیش پردازش دیتا و آماده سازی دیتا برای کار در شبکه CNN ، پیدا سازی معماری های مختلف مبتنی بر CNN  و در نهایت ساخت یک GUI برای برنامه کم کم در اینجا قرار بدم . بعد از پردازش دیتا در شبکه عصبی یک لایه پردازش دیتا برای آماده سازی نمایش برای کاربر هم وجود داره که متاسفانه کسی بهش نمیپردازه ولی بخش مهمی هست و عملا اگر این بخش رو نتونید از کار دربیارید ، برنامه شما بدرد نمیخوره و قابل استفاده نیست . که من سعی میکنم بر اساس تجربیاتم قسمت پردازش دیتا رو هم توضیح بدم . 

۱۴۰۲ تیر ۱۶, جمعه

رفع مشکل Permission# در دسترسی Arduino به پورت سریال


 

 اگر از مشتقات لینوکس ( من از آرچ لینوکس استفاده میکنم .) استفاده میکنید و برای برقراری اتصال برد آردوینو به پورت سریال خطای Permission میگیرید . میتوانید با تنظیم زیر  این مشکل را حل کنید :

sudo chmod a+rw /dev/ttyACM0

و اگر به جای ttyACM0 پورت USB در سیستم شما ttyUSB0 میباشد از دستور زیر استفاده نمایید :

sudo chmod a+rw /dev/ttyUSB0


۱۴۰۲ فروردین ۳, پنجشنبه

اضافه کردن قابلیت Syntax Highlighter Code به سیستم وبلاگ بلاگر

 syntax highlighter for blogger, Crayon syntax highlighter plugin

Syntax Highlighter Code در پست های بلاگر شما می تواند به خوانندگان کمک کند تا کدهای نوشته شده توسط شما را بهتر درک کنند. علاوه بر این، به‌طور خودکار یک دکمه کپی برای هر متن هایلایت شده ای اضافه می‌کند که خوانندگان می‌توانند روی آن کلیک کنند و سپس کد را در اسناد خود جای‌گذاری کنند. ویرایشگر Syntax Highlighter Code نیز قابل تنظیم است .

۱۴۰۱ اسفند ۱۴, یکشنبه

اجرای برنامه های گرافیکی در ارتباط از طریق ssh

xming x11

 

 شاید بخواهید از طریق پروتکل ssh به یک کامپیوتر لینوکسی متصل شوید . مثلا به برد رزبری پای ! این کار به راحتی توسط putty در ویندوز و استفاده از دستور ssh در لینوکس امکانپذیر است . اما درصورتیکه بخواهید در برد رزبری پای خود یک برنامه گرافیکی اجرا کنید ، به روش قبل نمیتوانید GUI برنامه را ببینید و حتما در روند اجرای برنامه خود به مشکل میخورید.

۱۴۰۱ بهمن ۳۰, یکشنبه

نوشتن اینترفیس سریال با زبان پایتون


 قصدم نوشتن یک اینترفیس سریال برای آزمایش قابلیتهای مختلف میکروکنترلرهای مرسوم (AVR , PIC , STM و ..) بود ، در واقع یک آزمایشگاه که بتونم داده های مختلف رو بصورت از پیش ساخته شده یا بصورت بدون فریم و کاملا منعطف به میکرو بفرستم و داده های برگشتی رو بخونم و در صورت نیاز پلات کنم و ... (شاید یکم شبیه به پروتئوس با کمی تفاوت ماهوی احتمالا)

این قدم اول از این پروژه سرگرمی من هست و به مرور زمان کامل میشه . با اینکه همین الان هم قابل استفاده است . 

۱۴۰۱ بهمن ۲۵, سه‌شنبه

ماژول تایمر در میکروکنترلرهای PIC

 


استفاده از دستور delay علیرغم سادگی دقت کافی را برای اندازه گیری زمان و ارتباط سریال با ماژولهای مختلف را ندارد.  خوشبختانه در میکروکنترلرهای مختلف واحد(های) تایمر 8 بیتی و گاهی 16 بیتی تعبیه شده است . با استفاده از ماژول تایمر میتوان دقت اندازه گیری زمان را افزایش د اد و به زمان واقعی برای ساخت تقویم و ساعت دسترسی پیدا کرد .
در سیستم های embedded  تایمر نقش اساسی بازی میکند . با استفاده از تایمر میتوانیم برنامه هایی مولتی تسک را بنویسیم و منابع سیستم را بین واحدهای مختلف تقسیم کنیم .