فهرست مطالب:

واقعا چالش برانگیز: 5 قدم
واقعا چالش برانگیز: 5 قدم

تصویری: واقعا چالش برانگیز: 5 قدم

تصویری: واقعا چالش برانگیز: 5 قدم
تصویری: جلوپسره داشت لخت میشد😳😬🔞 این سکانس بینظیره⛔🧐اسم فیلم after 2019 ژانر /کمدی.درام‌.دیدنش پیشنهاد میشه🎥 2024, جولای
Anonim
Image
Image
مرحله 1: مدار را لحیم کنید
مرحله 1: مدار را لحیم کنید

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

با ظهور آل و گسترش فناوری ، مردم بیش از حد به دستگاه اعتماد می کنند و معتقدند که همیشه درست است.

هدف "واقعاً" این است که با ایجاد یک آزمایش دروغ سنج دروغین ، این اعتماد کاذب را متزلزل کند. مردم به راحتی باور خواهند کرد که واقعاً کار می کند اما وقتی پاسخ های غلط ارائه شود ، اعتماد کور آنها به فناوری را از بین می برد.

مرحله 1: مرحله 1: مدار را لحیم کنید

از آنجا که آثار من فقط یک چراغ دارند ، بنابراین لحیم کاری آنها بسیار آسان است. مشکل اصلی در ابتدا است ، من دو چراغ را لحیم کردم ، اما بلافاصله قسمت نوردهی را نپوشاندم. بنابراین وقتی دو سیم به هم متصل می شوند. کوتاه شد

مرحله 2: مرحله 2: کد را بنویسید

p.p1 {حاشیه: 0.0 پیکسل 0.0 پیکسل 0.0 پیکسل 0.0 پیکسل؛ ارتفاع خط: 15.0 پیکسل؛ font: 12.0px بار؛ رنگ: #000000؛ background-color: #ffffff}

p.p2 {حاشیه: 0.0 پیکسل 0.0 پیکسل 0.0 پیکسل 0.0 پیکسل؛ ارتفاع خط: 15.0 پیکسل؛ font: 12.0px بار؛ رنگ: #000000؛ background-color: #ffffff؛ حداقل ارتفاع: 14.0px} span.s1 {font-kerning: none}

مرحله 2: کد را بنویسید

/*********************************************************************

این یک مثال برای ماژول های Bluefruit LE مبتنی بر nRF52 است

امروز یکی را در مغازه adafruit تهیه کنید!

Adafruit با ارائه این کد منبع باز زمان و منابع خود را سرمایه گذاری می کند ،

لطفاً با خرید از Adafruit و سخت افزار منبع باز پشتیبانی کنید

محصولات Adafruit!

مجوز MIT ، برای اطلاعات بیشتر LICENSE را بررسی کنید

تمام متن بالا ، و صفحه چلپ چلوپ زیر باید در آن گنجانده شود

هرگونه توزیع مجدد

*********************************************************************

/ این طرح برای استفاده با کنترل NeoPixel در نظر گرفته شده است

// در برنامه تلفن همراه Adafruit's Bluefruit LE Connect ظاهر شوید.

/

/ - این طرح را کاملاً گردآوری کرده و روی پر nRF52 پر کنید

// - برنامه Bluefruit LE Connect را باز کنید

// - به ابزار NeoPixel بروید

// - برای ایجاد اتصال و "اتصال" را فشار دهید

// ارسال متا داده ها در مورد طرح پیکسل

// - از ابزار NeoPixel برای به روزرسانی پیکسل های دستگاه خود استفاده کنید

/* توجه: این طرح حداقل به نسخه 1.1.0 Adafruit_Neopixel نیاز دارد !!! */

#عبارتند از

#عبارتند از

#عبارتند از

#تعریف NEOPIXEL_VERSION_STRING "Neopixel v2.0"

#تعریف PIN 16 / * پین مورد استفاده برای رانندگی NeoPixels * /

#تعریف MAXCOMPONENTS 4

uint8_t *pixelBuffer = NULL؛

uint8_t عرض = 0؛

uint8_t ارتفاع = 0؛

uint8_t گام؛

uint8_t componentValue؛

bool is400Hz؛

اجزای uint8_t = 3 ؛ // فقط 3 و 4 مقادیر معتبر هستند

Adafruit_NeoPixel neopixel = Adafruit_NeoPixel ()؛

// سرویس BLE

BLEDfu bledfu؛

BLEDis bledis؛

BLEUart bleuart؛

void setup ()

{

Serial.begin (115200) ؛

در حالی که (! سریال) تاخیر (10) ؛ // برای nrf52840 با usb بومی

Serial.println ("تست نئوپیکسل آدافروت بلوفروت") ؛

Serial.println ("--------------------------------") ؛

Serial.println ()؛

Serial.println ("لطفاً با استفاده از برنامه Bluefruit Connect LE متصل شوید") ؛

// پیکربندی Neopixels

neopixel.begin ()؛

// Init Bluefruit

Bluefruit.begin ()؛

Bluefruit.setTxPower (4) ؛ // bluefruit.h را برای مقادیر پشتیبانی شده بررسی کنید

Bluefruit.setName ("Bluefruit52") ؛

Bluefruit. Periph.setConnectCallback (connect_callback) ؛

// برای سازگاری OTA DFU ابتدا باید در صورت وجود اضافه شود

bledfu.begin ()؛

// پیکربندی و راه اندازی سرویس اطلاعات دستگاه

bledis.setManufacturer ("صنایع Adafruit") ؛

bledis.setModel ("Bluefruit Feather52") ؛

bledis.begin ()؛

// سرویس BLE UART را پیکربندی و راه اندازی کنید

bleuart.begin ()؛

// تبلیغات را راه اندازی و شروع کنید

startAdv ()؛

}

void startAdv (void)

{

// بسته تبلیغاتی

Bluefruit. Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE) ؛

Bluefruit. Advertising.addTxPower ()؛

// شامل bleuart 128 بیتی uuid

Bluefruit. Advertising.addService (bleuart) ؛

// بسته پاسخ اسکن ثانویه (اختیاری)

// از آنجا که در بسته تبلیغات جایی برای "Name" وجود ندارد

Bluefruit. ScanResponse.addName ()؛

/* شروع به تبلیغات کنید

* - در صورت قطع ارتباط ، تبلیغات خودکار را فعال کنید

* - فاصله: حالت سریع = 20 میلی ثانیه ، حالت آهسته = 152.5 میلی ثانیه

* - مهلت زمانی برای حالت سریع 30 ثانیه است

* - شروع (مهلت زمانی) با timeout = 0 برای همیشه تبلیغ می شود (تا زمان اتصال)

*

* برای فاصله تبلیغات توصیه شده

*

*/

Bluefruit. Advertising.restartOnDisconnect (درست) ؛

Bluefruit. Advertising.setInterval (32 ، 244) ؛ // در واحد 0.625 میلی ثانیه

Bluefruit. Advertising.setFastTimeout (30)؛ // تعداد ثانیه در حالت سریع

Bluefruit. Advertising.start (0)؛ // 0 = بعد از n ثانیه تبلیغات را متوقف نکنید

}

void connect_callback (uint16_t conn_handle)

{

// مرجع اتصال فعلی را دریافت کنید

BLEConnection* اتصال = Bluefruit. Connection (conn_handle) ؛

char central_name [32] = {0}؛

connection-> getPeerName (نام مرکزی ، اندازه (نام مرکزی)) ؛

Serial.print ("متصل به") ؛

Serial.println (central_name)؛

Serial.println ("لطفاً برگه" Neopixels "را انتخاب کنید ، روی" Connect "کلیک کنید و از آن لذت ببرید))؛

}

حلقه خالی ()

{

// اکو داده ها را دریافت کرد

if (Bluefruit.connected () && bleuart.notifyEnabled ())

{

دستور int = bleuart.read ()؛

تغییر (فرمان) {

مورد 'V': {// دریافت نسخه

commandVersion ()؛

زنگ تفريح؛

}

case 'S': {// تنظیم ابعاد ، اجزاء ، گام…

commandSetup ()؛

زنگ تفريح؛

}

مورد 'C': {// پاک کردن با رنگ

commandClearColor ()؛

زنگ تفريح؛

}

مورد 'B': {// Brightness را تنظیم کنید

commandSetBrightness ()؛

زنگ تفريح؛

}

مورد 'P': {// تنظیم پیکسل

commandSetPixel ()؛

زنگ تفريح؛

}

case 'I': {// دریافت تصویر جدید

commandImage ()؛

زنگ تفريح؛

}

}

}

}

void swapBuffers ()

{

uint8_t *base_addr = pixelBuffer؛

int pixelIndex = 0؛

برای (int j = 0 ؛ j <ارتفاع ؛ j ++)

{

برای (int i = 0؛ i <width؛ i ++) {

if (اجزا == 3) {

neopixel.setPixelColor (pixelIndex ، neopixel. Color (*base_addr ، *(base_addr+1) ، *(base_addr+2))) ؛

}

دیگری {

neopixel.setPixelColor (pixelIndex ، neopixel. Color (*base_addr ، *(base_addr+1) ، *(base_addr+2) ، *(base_addr+3))) ؛

}

base_addr+= اجزا ؛

pixelIndex ++ ؛

}

pixelIndex += گام - عرض ؛ // انتقال pixelIndex به ردیف بعدی (گام برداشتن را در نظر بگیرید)

}

neopixel.show ()؛

}

void commandVersion () {

Serial.println (F ("فرمان: بررسی نسخه")) ؛

sendResponse (NEOPIXEL_VERSION_STRING) ؛

}

void commandSetup () {

Serial.println (F ("Command: Setup")) ؛

width = bleuart.read ()؛

height = bleuart.read ()؛

stride = bleuart.read ()؛

componentValue = bleuart.read ()؛

is400Hz = bleuart.read ()؛

neoPixelType pixelType؛

pixelType = componentsValue + (is400Hz؟ NEO_KHZ400: NEO_KHZ800) ؛

جزء = (componentsValue == NEO_RGB || اجزای ارزش == NEO_RBG || اجزای ارزش == NEO_GRB || اجزای ارزش == NEO_GBR || اجزای ارزش == NEO_BRG || اجزای ارزش == NEO_BGR)؟ 3: 4 ؛

Serial.printf ("\ tsize:٪ dx٪ d / n" ، عرض ، ارتفاع)؛

Serial.printf ("\ tstride:٪ d / n" ، گام به گام) ؛

Serial.printf ("\ tpixelType٪ d / n"، pixelType)؛

Serial.printf ("\ tcomponents:٪ d / n" ، اجزاء) ؛

if (pixelBuffer! = NULL) {

حذف pixelBuffer؛

}

uint32_t اندازه = عرض*ارتفاع؛

pixelBuffer = uint8_t جدید [اندازه*اجزا] ؛

neopixel.updateLength (اندازه) ؛

neopixel.updateType (pixelType) ؛

neopixel.setPin (PIN) ؛

// انجام شده

sendResponse ("OK") ؛

}

void commandSetBrightness () {

Serial.println (F ("Command: SetBrightness")) ؛

// خواندن مقدار

uint8_t brightness = bleuart.read ()؛

// تنظیم روشنایی

neopixel.setBrightness (روشنایی) ؛

// پیکسل ها را تازه کنید

swapBuffers ()؛

// انجام شده

sendResponse ("OK") ؛

}

void commandClearColor () {

Serial.println (F ("Command: ClearColor")) ؛

// رنگ را بخوانید

uint8_t رنگ [MAXCOMPONENTS] ؛

برای (int j = 0 ؛ j <اجزای ؛) {

if (bleuart.available ()) {

رنگ [j] = bleuart.read ()؛

j ++ ؛

}

}

// همه led ها را روی رنگ تنظیم کنید

int اندازه = عرض * ارتفاع؛

uint8_t *base_addr = pixelBuffer؛

برای (int i = 0؛ i <size؛ i ++) {

برای (int j = 0 ؛ j <اجزای ؛ j ++) {

*base_addr = رنگ [j] ؛

base_addr ++؛

}

}

// تعویض بافرها

Serial.println (F ("ClearColor کامل شد")) ؛

swapBuffers ()؛

if (اجزا == 3) {

Serial.printf ("\ tclear (٪ d،٪ d،٪ d) n"، رنگ [0]، رنگ [1]، رنگ [2])؛

}

دیگری {

Serial.printf ("\ t روشن (٪ d ،٪ d ،٪ d ،٪ d) n" ، رنگ [0] ، رنگ [1] ، رنگ [2] ، رنگ [3]) ؛

}

// انجام شده

sendResponse ("OK") ؛

}

void commandSetPixel () {

Serial.println (F ("Command: SetPixel")) ؛

// موقعیت خواندن

uint8_t x = bleuart.read ()؛

uint8_t y = bleuart.read ()؛

// رنگها را بخوانید

uint32_t pixelOffset = y*عرض+x؛

uint32_t pixelDataOffset = pixelOffset*اجزا ؛

uint8_t *base_addr = pixelBuffer+pixelDataOffset؛

برای (int j = 0 ؛ j <اجزای ؛) {

if (bleuart.available ()) {

*base_addr = bleuart.read ()؛

base_addr ++؛

j ++ ؛

}

}

// تنظیم رنگ ها

uint32_t neopixelIndex = y*گام+x ؛

uint8_t *pixelBufferPointer = pixelBuffer + pixelDataOffset؛

رنگ uint32_t ؛

if (اجزا == 3) {

color = neopixel. Color (*pixelBufferPointer ، *(pixelBufferPointer+1) ، *(pixelBufferPointer+2)) ؛

Serial.printf ("\ tcolor (٪ d،٪ d،٪ d) n"، *pixelBufferPointer، *(pixelBufferPointer+1)، *(pixelBufferPointer+2))؛

}

دیگری {

color = neopixel. Color (*pixelBufferPointer ، *(pixelBufferPointer+1) ، *(pixelBufferPointer+2) ، *(pixelBufferPointer+3)) ؛

Serial.printf ("\ tcolor (٪ d،٪ d،٪ d،٪ d) n"، *pixelBufferPointer، *(pixelBufferPointer+1)، *(pixelBufferPointer+2)، *(pixelBufferPointer+3))؛

}

neopixel.setPixelColor (neopixelIndex ، رنگ) ؛

neopixel.show ()؛

// انجام شده

sendResponse ("OK") ؛

}

void commandImage () {

Serial.printf ("فرمان: تصویر٪ dx٪ d ،٪ d ،٪ d / n" ، عرض ، ارتفاع ، اجزا ، گام)؛

// دریافت بافر پیکسل جدید

int اندازه = عرض * ارتفاع؛

uint8_t *base_addr = pixelBuffer؛

برای (int i = 0؛ i <size؛ i ++) {

برای (int j = 0 ؛ j <اجزای ؛) {

if (bleuart.available ()) {

*base_addr = bleuart.read ()؛

base_addr ++؛

j ++ ؛

}

}

/*

if (اجزا == 3) {

uint32_t index = i*اجزا ؛

Serial.printf ("\ tp٪ d (٪ d،٪ d،٪ d) n"، i، pixelBuffer [index]، pixelBuffer [index+1]، pixelBuffer [index+2])؛

}

*/

}

// تعویض بافرها

Serial.println (F ("تصویر دریافت شده")) ؛

swapBuffers ()؛

// انجام شده

sendResponse ("OK") ؛

}

void sendResponse (char const *respond) {

Serial.printf ("ارسال پاسخ:٪ s / n" ، پاسخ) ؛

bleuart.write (reply، strlen (reply)*sizeof (char))؛

}

مرحله 3: مرحله 3: خرید آباژور

مرحله 3: خرید آباژور
مرحله 3: خرید آباژور
مرحله 3: خرید آباژور
مرحله 3: خرید آباژور

مرحله 4: مرحله 4: همه را با هم بکشید

توصیه شده: