সুচিপত্র:

সত্যিই চ্যালেঞ্জ: 5 টি ধাপ
সত্যিই চ্যালেঞ্জ: 5 টি ধাপ

ভিডিও: সত্যিই চ্যালেঞ্জ: 5 টি ধাপ

ভিডিও: সত্যিই চ্যালেঞ্জ: 5 টি ধাপ
ভিডিও: ভূত দেখতে চান?।৫ টি ভয়ঙ্কর খেলা যা আপনাকে অন্য দুনিয়ায় নিয়ে যাবে। 5 Paranormal Games in Bengali 2024, জুলাই
Anonim
Image
Image
ধাপ 1: সার্কিট সোল্ডার
ধাপ 1: সার্কিট সোল্ডার

আধুনিক বিশ্বের মানুষের প্রয়োজন শারীরিক থেকে বেরিয়ে আসা এবং ডিজিটালের মধ্যে বসবাস করা।

আল এর উপস্থিতি এবং প্রযুক্তির বিস্তারের সাথে লোকেরা মেশিনের উপর খুব বেশি বিশ্বাস করে এবং বিশ্বাস করে যে এটি সর্বদা সঠিক।

একটি জাল মিথ্যা শনাক্তকারী পরীক্ষার মাধ্যমে এই মিথ্যা বিশ্বাসকে ঝেড়ে ফেলার উদ্দেশ্যে "সত্যিই"। মানুষ সহজেই বিশ্বাস করবে যে সত্যিই কাজ করছে কিন্তু যখন মিথ্যা উত্তর দেওয়া হবে তখন এটি প্রযুক্তির প্রতি তাদের অন্ধ বিশ্বাসকে নাড়া দেবে।

ধাপ 1: ধাপ 1: সার্কিট সোল্ডার

কারণ আমার কাজগুলিতে কেবলমাত্র একটি আলো রয়েছে, তাই এটি ঝালাই করা খুব সহজ। প্রধান সমস্যা শুরুতে, আমি দুটি আলো ঝালাই, কিন্তু আমি অবিলম্বে এক্সপোজার অংশ আবরণ না। সুতরাং যখন দুটি তারের অংশ একসাথে স্পর্শ করে। এটি সংক্ষিপ্ত।

ধাপ 2: ধাপ 2: কোড লিখুন

p.p1 {মার্জিন: 0.0px 0.0px 0.0px 0.0px; লাইন-উচ্চতা: 15.0px; ফন্ট: 12.0px টাইমস; রঙ: #000000; ব্যাকগ্রাউন্ড-কালার: #ffffff}

p.p2 {মার্জিন: 0.0px 0.0px 0.0px 0.0px; লাইন-উচ্চতা: 15.0px; ফন্ট: 12.0px টাইমস; রঙ: #000000; পটভূমি রঙ: #ffffff; min-height: 14.0px} span.s1 {font-kerning: none}

ধাপ 2: কোড লিখুন

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

এটি আমাদের nRF52 ভিত্তিক Bluefruit LE মডিউলগুলির জন্য একটি উদাহরণ

অ্যাডাফ্রুট শপে আজই একটি সংগ্রহ করুন!

Adafruit এই ওপেন সোর্স কোড প্রদান করে সময় এবং সম্পদ বিনিয়োগ করে, ক্রয় করে Adafruit এবং ওপেন সোর্স হার্ডওয়্যার সমর্থন করুন

Adafruit থেকে পণ্য!

এমআইটি লাইসেন্স, আরও তথ্যের জন্য লাইসেন্স চেক করুন

উপরের সমস্ত পাঠ্য, এবং নীচের স্প্ল্যাশ স্ক্রিনটি অবশ্যই অন্তর্ভুক্ত করতে হবে

কোন পুনর্বণ্টন

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

/ এই স্কেচটি নিওপিক্সেল নিয়ন্ত্রণের সাথে ব্যবহার করার উদ্দেশ্যে করা হয়েছে

// Adafruit এর Bluefruit LE Connect মোবাইল অ্যাপ্লিকেশনে পৃষ্ঠ।

/

/ - nRF52 পালক এই স্কেচ কম্পাইল এবং ফ্ল্যাশ

// - Bluefruit LE Connect অ্যাপটি খুলুন

// - নিওপিক্সেল ইউটিলিটিতে যান

// - একটি সংযোগ স্থাপন করতে 'সংযোগ' বোতামে ক্লিক করুন এবং

// পিক্সেল লেআউট সম্পর্কে মেটা-ডেটা পাঠান

// - আপনার ডিভাইসে পিক্সেল আপডেট করতে NeoPixel ইউটিলিটি ব্যবহার করুন

/* দ্রষ্টব্য: এই স্কেচের জন্য Adafruit_Neopixel এর কমপক্ষে 1.1.0 সংস্করণ প্রয়োজন !!! */

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#NEOPIXEL_VERSION_STRING "Neopixel v2.0" নির্ধারণ করুন

#ডিফাইন পিন 16 / * পিন নিওপিক্সেল চালানোর জন্য ব্যবহৃত হয় * /

#সর্বোচ্চ সংজ্ঞা 4

uint8_t *pixelBuffer = NULL;

uint8_t প্রস্থ = 0;

uint8_t উচ্চতা = 0;

uint8_t অগ্রসর;

uint8_t উপাদান মান;

বুল 400Hz;

uint8_t উপাদান = 3; // শুধুমাত্র 3 এবং 4 বৈধ মান

Adafruit_NeoPixel neopixel = Adafruit_NeoPixel ();

// BLE পরিষেবা

BLEDfu bledfu;

BLEDis bledis;

BLEUart bleuart;

অকার্যকর সেটআপ()

{

Serial.begin (115200);

যখন (! সিরিয়াল) বিলম্ব (10); // নেটিভ ইউএসবি সহ nrf52840 এর জন্য

Serial.println ("Adafruit Bluefruit Neopixel Test");

Serial.println ("--------------------------------");

Serial.println ();

Serial.println ("দয়া করে Bluefruit Connect LE অ্যাপ্লিকেশন ব্যবহার করে সংযোগ করুন");

// কনফিগ নিওপিক্সেল

neopixel.begin ();

// ইনিট ব্লুফ্রুট

Bluefruit.begin ();

Bluefruit.setTxPower (4); // সমর্থিত মানগুলির জন্য bluefruit.h চেক করুন

Bluefruit.setName ("Bluefruit52");

Bluefruit. Periph.setConnectCallback (connect_callback);

// সামঞ্জস্যপূর্ণ হতে হলে ওটিএ ডিএফইউ যোগ করা উচিত যদি এটি বিদ্যমান থাকে

bledfu.begin ();

// কনফিগার করুন এবং ডিভাইস তথ্য পরিষেবা শুরু করুন

bledis.setManufacturer ("Adafruit Industries");

bledis.setModel ("Bluefruit Feather52");

bledis.begin ();

// কনফিগার করুন এবং BLE UART পরিষেবা শুরু করুন

bleuart.begin ();

// সেট আপ করুন এবং বিজ্ঞাপন শুরু করুন

startAdv ();

}

শূন্য startAdv (অকার্যকর)

{

// বিজ্ঞাপন প্যাকেট

Bluefruit. Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);

Bluefruit. Advertising.addTxPower ();

// bleuart 128-bit uuid অন্তর্ভুক্ত করুন

Bluefruit. Advertising.addService (bleuart);

// সেকেন্ডারি স্ক্যান রেসপন্স প্যাকেট (alচ্ছিক)

// যেহেতু বিজ্ঞাপনের প্যাকেটে 'নাম' রাখার কোন জায়গা নেই

Bluefruit. ScanResponse.addName ();

/* বিজ্ঞাপন শুরু করুন

* সংযোগ বিচ্ছিন্ন হলে স্বয়ংক্রিয় বিজ্ঞাপন সক্ষম করুন

* - ব্যবধান: দ্রুত মোড = 20 ms, স্লো মোড = 152.5 ms

* - দ্রুত মোডের সময়সীমা 30 সেকেন্ড

* - শুরু (টাইমআউট) টাইমআউট = 0 চিরতরে বিজ্ঞাপন দেবে (সংযুক্ত না হওয়া পর্যন্ত)

*

* প্রস্তাবিত বিজ্ঞাপন ব্যবধানের জন্য

*

*/

Bluefruit. Advertising.restartOnDisconnect (সত্য);

Bluefruit. Advertising.setInterval (32, 244); // 0.625 ms এর ইউনিটে

Bluefruit. Advertising.setFastTimeout (30); // দ্রুত মোডে সেকেন্ডের সংখ্যা

Bluefruit. Advertising.start (0); // 0 = n সেকেন্ডের পরে বিজ্ঞাপন বন্ধ করবেন না

}

অকার্যকর সংযোগ_ কলব্যাক (uint16_t conn_handle)

{

// বর্তমান সংযোগের রেফারেন্স পান

BLEConnection* connection = Bluefruit. Connection (conn_handle);

char central_name [32] = {0};

সংযোগ-> getPeerName (central_name, sizeof (central_name));

সিরিয়াল.প্রিন্ট ("এর সাথে সংযুক্ত");

Serial.println (কেন্দ্রীয়_নাম);

Serial.println ("দয়া করে 'Neopixels' ট্যাব নির্বাচন করুন, 'সংযোগ করুন' ক্লিক করুন এবং মজা করুন");

}

অকার্যকর লুপ ()

{

// ইকো তথ্য পেয়েছে

যদি (Bluefruit.connected () && bleuart.notifyEnabled ())

{

int কমান্ড = bleuart.read ();

সুইচ (কমান্ড) {

কেস 'ভি': {// সংস্করণ পান

কমান্ড ভার্সন ();

বিরতি;

}

কেস 'এস': {// সেটআপ মাত্রা, উপাদান, স্ট্রাইড …

কমান্ডসেটআপ ();

বিরতি;

}

কেস 'সি': {// রঙ দিয়ে পরিষ্কার করুন

commandClearColor ();

বিরতি;

}

কেস 'বি': {// উজ্জ্বলতা সেট করুন

commandSetBrightness ();

বিরতি;

}

কেস 'পি': {// সেট পিক্সেল

commandSetPixel ();

বিরতি;

}

কেস 'আমি': {// নতুন ছবি গ্রহণ করুন

commandImage ();

বিরতি;

}

}

}

}

অকার্যকর swapBuffers ()

{

uint8_t *base_addr = pixelBuffer;

int pixelIndex = 0;

জন্য (int j = 0; j <উচ্চতা; j ++)

{

জন্য (int i = 0; i <width; i ++) {

যদি (উপাদান == 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 += স্ট্রাইড - প্রস্থ; // পরবর্তী সারিতে পিক্সেল ইন্ডেক্স সরান (অগ্রগতি বিবেচনা করুন)

}

neopixel.show ();

}

অকার্যকর কমান্ড ভার্সন () {

Serial.println (F ("কমান্ড: ভার্সন চেক"));

sendResponse (NEOPIXEL_VERSION_STRING);

}

void commandSetup () {

Serial.println (F ("কমান্ড: সেটআপ"));

প্রস্থ = bleuart.read ();

উচ্চতা = bleuart.read ();

stride = bleuart.read ();

উপাদান ভ্যালু = bleuart.read ();

is400Hz = bleuart.read ();

neoPixelType পিক্সেল টাইপ;

pixelType = ingredientsValue + (is400Hz? NEO_KHZ400: NEO_KHZ800);

উপাদানসমূহ 3: 4;

Serial.printf ("s tsize: %dx %d / n", প্রস্থ, উচ্চতা);

Serial.printf ("str tstride: %d / n", স্ট্রাইড);

Serial.printf ("\ tpixelType %d / n", পিক্সেল টাইপ);

Serial.printf ("\ tcomponents: %d / n", উপাদান);

যদি (pixelBuffer! = NULL) {

মুছে দিন পিক্সেল বাফার;

}

uint32_t আকার = প্রস্থ*উচ্চতা;

pixelBuffer = নতুন uint8_t [আকার*উপাদান];

neopixel.updateLength (size);

neopixel.updateType (পিক্সেল টাইপ);

neopixel.setPin (PIN);

// সম্পন্ন

sendResponse ("ঠিক আছে");

}

void commandSetBrightness () {

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

// মান পড়ুন

uint8_t উজ্জ্বলতা = bleuart.read ();

// উজ্জ্বলতা সেট করুন

neopixel.set উজ্জ্বলতা (উজ্জ্বলতা);

// পিক্সেল রিফ্রেশ করুন

swapBuffers ();

// সম্পন্ন

sendResponse ("ঠিক আছে");

}

void commandClearColor () {

Serial.println (F ("কমান্ড: ClearColor"));

// রঙ পড়ুন

uint8_t রঙ [MAXCOMPONENTS];

জন্য (int j = 0; j <উপাদান;) {

যদি (bleuart.available ()) {

রঙ [j] = bleuart.read ();

j ++;

}

}

// সব এলইডি রঙে সেট করুন

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 ();

যদি (উপাদান == 3) {

Serial.printf ("\ tclear (%d, %d, %d) n", কালার [0], কালার [1], কালার [2]);

}

অন্য {

Serial.printf ("\ tclear (%d, %d, %d, %d) n", কালার [0], কালার [1], কালার [2], কালার [3]);

}

// সম্পন্ন

sendResponse ("ঠিক আছে");

}

void commandSetPixel () {

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

// অবস্থান পড়ুন

uint8_t x = bleuart.read ();

uint8_t y = bleuart.read ();

// রং পড়ুন

uint32_t পিক্সেল অফসেট = y*প্রস্থ+x;

uint32_t pixelDataOffset = pixelOffset*উপাদান;

uint8_t *base_addr = pixelBuffer+pixelDataOffset;

জন্য (int j = 0; j <উপাদান;) {

যদি (bleuart.available ()) {

*base_addr = bleuart.read ();

base_addr ++;

j ++;

}

}

// রং সেট করুন

uint32_t neopixelIndex = y*stride+x;

uint8_t *pixelBufferPointer = pixelBuffer + pixelDataOffset;

uint32_t রঙ;

যদি (উপাদান == 3) {

রঙ = neopixel. Color (*pixelBufferPointer, *(pixelBufferPointer+1), *(pixelBufferPointer+2));

Serial.printf ("\ tcolor (%d, %d, %d) n", *pixelBufferPointer, *(pixelBufferPointer+1), *(pixelBufferPointer+2));

}

অন্য {

রঙ = 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 ("ঠিক আছে");

}

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 <উপাদান;) {

যদি (bleuart.available ()) {

*base_addr = bleuart.read ();

base_addr ++;

j ++;

}

}

/*

যদি (উপাদান == 3) {

uint32_t সূচক = আমি*উপাদান;

Serial.printf ("\ tp %d (%d, %d, %d) n", i, pixelBuffer [index], pixelBuffer [index+1], pixelBuffer [index+2]);

}

*/

}

// বাফার সোয়াপ করুন

Serial.println (F ("ছবি প্রাপ্ত"));

swapBuffers ();

// সম্পন্ন

sendResponse ("ঠিক আছে");

}

অকার্যকর SendResponse (char const *response) {

Serial.printf ("প্রতিক্রিয়া পাঠান: %s / n", প্রতিক্রিয়া);

bleuart.write (প্রতিক্রিয়া, strlen (প্রতিক্রিয়া)*sizeof (char));

}

ধাপ 3: ধাপ 3: ল্যাম্পশেড কেনা

ধাপ 3: ল্যাম্পশেড কেনা
ধাপ 3: ল্যাম্পশেড কেনা
ধাপ 3: ল্যাম্পশেড কেনা
ধাপ 3: ল্যাম্পশেড কেনা

ধাপ 4: ধাপ 4: এটি সব একসাথে টানুন

প্রস্তাবিত: