فهرست مطالب:
- مرحله 1: مونتاژ
- مرحله 2: ویژگی های مورد استفاده - سرور
- مرحله 3: مدار مورد استفاده
- مرحله 4: کد منبع: استاد
- مرحله 5: کد منبع: Slave
- مرحله 6: تجزیه و تحلیل: سخت افزار
- مرحله 7: نصب نرم افزار Saleae
- مرحله 8: پیکربندی محیط برای آزمایشات ما
- مرحله 9: پیکربندی محیط برای آزمایشات ما
- مرحله 10: پیکربندی محیط برای آزمایشات ما
- مرحله 11: پیکربندی محیط برای آزمایشات ما
- مرحله 12: پیکربندی محیط برای آزمایشات ما
- مرحله 13: ضبط: نمای کلی
- مرحله 14: ضبط: نتیجه تجزیه و تحلیل پروتکل
- مرحله 15: ضبط: کانال 0 و داده (SDA)
- مرحله 16: ضبط: کانال 1 و ساعت (SCL)
- مرحله 17: ضبط: کانال 2 و سریال (TX0)
- مرحله 18: پیکربندی محیط برای آزمایشات ما
- مرحله 19: ضبط: اسیلوسکوپ و آنالیز
- مرحله 20: ضبط: مشاهده یک شکست (نمونه ای از شکست سریال)
- مرحله 21: فایل ها را بارگیری کنید
تصویری: چشمان خود را باز کنید! تحلیل منطقی: 21 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
تجزیه و تحلیل منطقی تجسم شما را از قطار پالس ، که قطعاتی هستند که در خط ارتباطی حرکت می کنند ، تسهیل می کند. بنابراین ، چشمان شما را باز می کند تا یک مشکل احتمالی را شناسایی کنید. چرا این مهم است؟ این یک ابزار توسعه کارآمد و تشخیص خطا است که می تواند در وقت شما صرفه جویی کند. در این ویدئو امروز ، ما اهمیت تجزیه و تحلیل منطقی را ارزیابی می کنیم ، برخی پروتکل های روشهای معمول را هنگام استفاده از این دستگاه مشاهده می کنیم و یک شکست تشخیص را بدون کمک یک تجزیه و تحلیل منطقی مثال می زنیم.
در این ویدئو ، من از یک مدل نسبتاً ارزان (حدود 35 دلار) و کارآمد ، با رابط گرافیکی و نرم افزار رایگان استفاده کردم.
مرحله 1: مونتاژ
مرحله 2: ویژگی های مورد استفاده - سرور
• جامپر برای اتصالات
• 2 آردوینوس (ما از 2 مگا آردوینوس 2560 استفاده کردیم)
• تجزیه و تحلیل منطقی (ما از Saleae استفاده می کنیم)
• کابل های اتصال USB برای آردوینو و آنالیزور.
• اسیلوسکوپ (اختیاری)
• Protoboard
مرحله 3: مدار مورد استفاده
در اینجا ما شماتیک را داریم که نظارت بر سه پایه TX0 ، SDA و SCL را نشان می دهد. ما دو آردوینو داریم: یک ارباب و یک برده.
مرحله 4: کد منبع: استاد
در Setup ، ما کتابخانه ای برای ارتباطات i2c قرار می دهیم. ما به عنوان Master وارد شبکه شدیم و سریال 0 را راه اندازی کردیم. در حلقه ، برای ارتباط با شماره 8 آردوینو ، بایت داده های برده را درخواست کردیم ، همانطور که در مثال تعریف کردیم. ما در سریال ، که با تجزیه و تحلیل منطق ارزیابی می شود ، بایت های دریافتی را چاپ می کنیم.
#include // شامل یک کتابخانه برای comunicação I2C void setup () {Wire.begin ()؛ // Entra na redde como Mestre (endereço é opcional para o mestre) Serial.begin (115200)؛ // inicia یک سریال 0} void loop () {Wire.requestFrom (8، 6)؛ // requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes para receiber. به به char c = Wire.read ()؛ // Recebe cada byte e armazena como caracter Serial.print (c)؛ // envia o caracter pela serial (na verdade vai para o buffer)} تاخیر (500)؛ // aguarda meio segundo}
مرحله 5: کد منبع: Slave
در این کد برده ، من مجدداً کتابخانه ارتباطات i2c را وارد می کنم. من به عنوان برده با آدرس 8. وارد شبکه می شویم. ما رویداد درخواست را ثبت می کنیم و آن را با عملکرد "request" مرتبط می کنیم. نیازی به انجام کاری در حلقه ندارید ، فقط 0.1 ثانیه تأخیر بدهید.
در نهایت ، ما تابع request را داریم که وقتی رویداد درخواست توسط Master رخ می دهد ، که در Setup ثبت شده است ، اجرا می شود. در نهایت ، ما با پیامی از 6 بایت پاسخ می دهیم.
#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (8)؛ // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent) ؛ // registra o evento de requisiçao // e associa à função requestEvent} حلقه void () {تاخیر (100) ؛ // não faz nada no loop، apenas aguarda 0، 1 segundo} // função que será ekzada quando ocorrer o evento de Requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste") ؛ // responde com uma mensagem de 6 bytes}
مرحله 6: تجزیه و تحلیل: سخت افزار
میزان نمونه تا: 24 مگاهرتز
منطق: 5 ولت تا 5.25 ولت
آستانه سطح پایین 0.8 ولت
آستانه سطح بالا 2.0 ولت
امپدانس ورودی حدود 1 اهم یا بیشتر
مرحله 7: نصب نرم افزار Saleae
برنامه ای که داده های گرفته شده توسط تحلیلگر منطقی را دریافت کرده و بیت ها را رمزگشایی می کند ، می توانید در پیوند زیر بارگیری کنید:
مرحله 8: پیکربندی محیط برای آزمایشات ما
من رابط کاربری را در اینجا نشان می دهم ، زیرا من آن را بسیار دوست داشتم زیرا تمیز بود.
مرحله 9: پیکربندی محیط برای آزمایشات ما
در اینجا چند گزینه پیکربندی وجود دارد:
• با کلیک روی نام کانال ، می توانیم آن را تغییر دهیم.
• ما می توانیم تعیین کنیم که آیا یکی از کانال ها به عنوان محرکی برای ضبط و شکل تشخیص عمل می کند.
• با کلیک و نگه داشتن شماره کانال ، می توانید موقعیت خود را در لیست تغییر دهید.
• با کلیک بر روی چرخ دنده ، می توانیم تجسم کانال را پیکربندی کرده ، گسترش دهیم…
•… یا پنهان کردن کانال همه کانالهایی را که استفاده نمی کنیم پنهان می کنیم.
مرحله 10: پیکربندی محیط برای آزمایشات ما
با کلیک بر روی پیکان های دکمه "شروع" ، گزینه های Sampling Rate و مدت زمان ضبط وجود دارد.
به دلایلی ، اگر نرم افزار تشخیص دهد که نمی توان نرخ را حفظ کرد ، پیامی نمایش داده می شود و به طور خودکار نرخ را کاهش می دهد تا به یک مقدار عملکردی برسد.
مرحله 11: پیکربندی محیط برای آزمایشات ما
ما همچنین تجزیه کننده های پروتکل را نیز شامل خواهیم شد. ابتدا I2C است ، به دنبال تعاریف کتابخانه WIRE و ارتباط صحیح کانال ها. در نهایت ، ما آنالیزور را با سریال ناهمزمان آشنا می کنیم. ما باید مراقب باشیم تا پارامترها را با توجه به مجموعه به درستی پیکربندی کنیم.
مرحله 12: پیکربندی محیط برای آزمایشات ما
در برگه "پروتکل های رمزگشایی" ، باید بررسی کنیم که کدام تجزیه کننده های پروتکل فعال هستند. در آنجا ، داده ها ظاهر می شوند. در برگه "حاشیه نویسی" ، می توان برخی از نتایج را برای تجسم بهتر اضافه کرد. فقط روی نماد "افزودن اندازه گیری" کلیک کنید.
مرحله 13: ضبط: نمای کلی
در صفحه ضبط ، برنامه قطار پالس داده SDA ، SCL و TX0 را نمایش می دهد.
مرحله 14: ضبط: نتیجه تجزیه و تحلیل پروتکل
در اینجا ، ما نتیجه ضبط را می بینیم. در برگه "پروتکل های رمزگشایی" ، موارد زیر را داریم:
• درخواست سرور برای برده با شناسه 8.
• پاسخ برده ، شش کاراکتر: "t" ، "e" ، "s" ، "t" ، "e" و فاصله.
• هر کدام با یک بیت ACK (تصدیق) که نشان دهنده دریافت بایت صحیح است ، به جز کاراکتر فضای NACK (نه تصدیق) دنبال می شود.
• در مرحله بعد ، ما نتیجه رمزگشایی سریال TX0 را مشاهده می کنیم که نشان دهنده شخصیت های دریافت شده و ارسال شده به پایانه سریال Arduino IDE است.
مرحله 15: ضبط: کانال 0 و داده (SDA)
در این تصویر ، ما قطار نبض خط SDA را داریم. توجه داشته باشید که هر بایت منتقل شده قابل مشاهده است.
مرحله 16: ضبط: کانال 1 و ساعت (SCL)
اکنون ، ما در اینجا قطار نبض خط SCL را داریم. می توانید جزئیات بیشتری را به سادگی با قرار دادن ماوس روی سیگنال ، همانطور که در تصویر می بینید ، بررسی کنید. می بینیم که فرکانس ساعت 100 کیلوهرتز بود.
مرحله 17: ضبط: کانال 2 و سریال (TX0)
در مورد قطار پالس خط TX0 ، ما می توانیم بیت شروع و نقاط فریم هر بیت را ببینیم. ما یک بایت داریم که نشان دهنده شخصیت "e" است.
مرحله 18: پیکربندی محیط برای آزمایشات ما
در اینجا ما چندین گزینه برای خواندن داده ها داریم.
مرحله 19: ضبط: اسیلوسکوپ و آنالیز
به صفحه ای که از اسیلوسکوپ گرفته ام نگاه کنید. سیگنال تجزیه و تحلیل منطقی فقط تشخیص بالا و پایین را نشان می دهد ، اما کیفیت سیگنال را نشان نمی دهد. این را می توان به بهترین شکل در یک اسیلوسکوپ مشاهده کرد.
مرحله 20: ضبط: مشاهده یک شکست (نمونه ای از شکست سریال)
اکنون ، من یک نمونه از شکست سریال را نشان می دهم ، که در واقع برای من اتفاق افتاده است. من با یک مودم GPRS ، از نوع مورد استفاده در تلفن همراه ، سیم کارت ، سعی می کردم به ESP32 متصل شوم. اما فقط وصل نشد سپس منبع تغذیه ، سیم کشی را بررسی کردم و برد را عوض کردم. من همه کارها را انجام دادم ، اما هیچ چیز آن را برطرف نکرد. من تصمیم گرفتم یک تجزیه و تحلیل منطقی انجام دهم: متوجه شدم که سیگنال ESP در UART 115200 شروع به ناسازگاری می کند. یعنی ESP32 با سرعت متفاوت از این سرعت 115 ، 200 را پخش می کرد.
این خطا که توسط تجزیه کننده شناسایی شد ، با X به رنگ قرمز نمایش داده شد. به نظر من ، برنامه می گوید نقطه ای که چنین کمی دارد در زمان نیمه جابجا شده است. با افزایش این تغییر ، ممکن است زمانی برسد که همه چیز ناهماهنگ باشد ، به طوری که اطلاعات به طرف دیگر نرسد. معمولاً وارد می شود ، اما SIM800 حساس است و اگر دقیق نباشد ، اطلاعات به سر دیگر نمی رسد.
من نمی دانم که این چیزی است که اغلب اتفاق می افتد یا نه ، اما برای من اتفاق افتاده است ، بنابراین تصمیم گرفتم به این موضوع در اینجا بپردازم. پس من چیکار کردم؟ سرعتم را کم کردم. اگر 9 ، 600 ، 19 ، 200 ، تا 38 ، 400 قرار دهید ، کار می کند ، که در 115 ، 200 اتفاق نمی افتد.
مرحله 21: فایل ها را بارگیری کنید
من نه
توصیه شده:
UPS خود را Steam Punk کنید تا ساعتهای به روز برای روتر Wi-Fi خود دریافت کنید: 4 مرحله (همراه با تصاویر)
UPS شما Steam Punk می کند تا ساعتهای به روز برای روتر Wi-fi شما دریافت کند: در مورد اینکه UPS شما قدرت باتری 12 ولت DC خود را به برق AC 220 ولت تبدیل کند ، چیزی اساساً مخالف است تا ترانسفورماتورهای روتر و فیبر ONT شما بتوانند آن را دوباره به 12 ولت DC! شما همچنین با [معمولاً
هک باتری 12 ولت! چشمان خود را باور نخواهید کرد !!!!! (به روز شده): 7 مرحله
هک باتری 12 ولت! چشمان خود را باور نخواهید کرد !!!!! (به روز شده): با الهام از دستورالعمل Kipkay ، فکر کردم برخی از باتری های خود را با مارک متفاوت بر می دارم … و ، پسر ، من شگفت زده شدم
از ایده های خود محافظت کنید ، از کار خود محافظت کنید: 8 مرحله
از ایده های خود محافظت کنید ، از کار خود محافظت کنید: من چند روز پیش اطلاعات را در اثر خرابی رایانه از دست دادم. کار یک روز از بین رفت.:/ من داده های خود را در ابر ذخیره می کنم تا از نقص دیسک سخت جلوگیری شود. من از یک نرم افزار نسخه سازی استفاده می کنم تا بتوانم نسخه های قدیمی کار خود را بازیابی کنم. من هر روز یک نسخه پشتیبان تهیه می کنم. اما این بار من
OpenLH: سیستم باز کردن مایعات باز برای آزمایش خلاق با زیست شناسی: 9 مرحله (همراه با تصاویر)
OpenLH: سیستم باز کردن مایعات باز برای آزمایش خلاق با زیست شناسی: مفتخریم که این اثر را در کنفرانس بین المللی تعامل ملموس ، جاسازی شده و تجسم یافته (TEI 2019) ارائه می دهیم. تمپه ، آریزونا ، ایالات متحده | 17 تا 20 مارس. همه فایلهای مونتاژ و راهنماها در اینجا موجود است. آخرین نسخه کد در دسترس است
برد باز نئوپیکسل مدولار متن باز نان متن باز: 4 مرحله (همراه با تصاویر)
نورد نئوپیکسل مدولار متن باز نان ورودی: این دستورالعمل در مورد یک تخته شکست کوچک (8 میلی متر در 10 میلی متر) برای LED های Neopixel است که می توانند روی هم چیده و لحیم شوند ، همچنین استحکام ساختاری بیشتری نسبت به یک نازک دارد. نوار LED در شکل بسیار کوچکتری