ዝርዝር ሁኔታ:

በእውነቱ ፈታኝ ሁኔታ - 5 ደረጃዎች
በእውነቱ ፈታኝ ሁኔታ - 5 ደረጃዎች

ቪዲዮ: በእውነቱ ፈታኝ ሁኔታ - 5 ደረጃዎች

ቪዲዮ: በእውነቱ ፈታኝ ሁኔታ - 5 ደረጃዎች
ቪዲዮ: 5 የሚማግጡ ሰዎች ባህሪያት 2024, ሀምሌ
Anonim
Image
Image
ደረጃ 1: ወረዳውን ያሽጡ
ደረጃ 1: ወረዳውን ያሽጡ

ዘመናዊው ዓለም ሰዎች ከአካላዊው ወጥተው በዲጂታል ውስጥ እንዲኖሩ ይጠይቃል።

በአል መልክ እና የቴክኖሎጂ መስፋፋት ሰዎች በማሽኑ ላይ በጣም ብዙ እምነት ይጥሉ እና ሁል ጊዜ ትክክል ነው ብለው ያምናሉ።

“በእውነት” የሐሰት የውሸት መመርመሪያ ሙከራ በመፍጠር ይህንን የሐሰት መተማመንን ለማናወጥ የታሰበ ነው። ሰዎች በእውነት እየሰራ መሆኑን በቀላሉ ያምናሉ ፣ ግን የሐሰት መልሶች ሲሰጡ በቴክኖሎጂ ላይ ያላቸውን ዕውር እምነት ያናውጣል።

ደረጃ 1: ደረጃ 1: ወረዳውን ያሽጡ

ሥራዎቼ አንድ ብርሃን ብቻ ስላላቸው ለመሸጥ በጣም ቀላል ነው። ዋናው ችግር መጀመሪያ ላይ ነው ፣ ሁለት ብርሃንን እሸጣለሁ ፣ ግን የመጋለጥ ክፍልን ወዲያውኑ አልሸፈንም። ስለዚህ ሁለቱ ሽቦዎች አንድ ላይ ሲነኩ። አጭር ነው።

ደረጃ 2 - ደረጃ 2 - ኮዱን ይፃፉ

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; የመስመር ቁመት-15.0 ፒክስል; ቅርጸ ቁምፊ: 12.0 ፒክስል ጊዜያት; ቀለም: #000000; የጀርባ ቀለም-#ffffff}

p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; የመስመር ቁመት-15.0 ፒክስል; ቅርጸ ቁምፊ: 12.0 ፒክስል ጊዜያት; ቀለም: #000000; የጀርባ ቀለም-#ffffff; ደቂቃ ቁመት ፦ 14.0px} span.s1 {font-kerning: none}

ደረጃ 2 - ኮዱን ይፃፉ

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

ይህ ለእኛ nRF52 ለተመሰረቱ የብሉፍ ፍሬ LE ሞጁሎች ምሳሌ ነው

በአዳፍ ፍሬ ሱቅ ውስጥ ዛሬ አንዱን ይምረጡ!

አዳፍሩት ይህንን ክፍት ምንጭ ኮድ በመስጠት ጊዜን እና ሀብቶችን ያጠፋል ፣

እባክዎን Adafruit እና ክፍት ምንጭ ሃርድዌር በመግዛት ይደግፉ

ምርቶች ከአዳፍ ፍሬ!

የ MIT ፈቃድ ፣ ለተጨማሪ መረጃ LICENSE ን ይመልከቱ

ከላይ ያለው ጽሑፍ ሁሉ ፣ እና ከታች የሚረጭ ማያ ገጽ ውስጥ መካተት አለበት

ማንኛውም እንደገና ማሰራጨት

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

/ ይህ ንድፍ ከ NeoPixel መቆጣጠሪያ ጋር ለመጠቀም የታሰበ ነው

// ወለል በአዳፍ ፍሬዝ ብሉፍሪት LE አገናኝ የሞባይል መተግበሪያ ውስጥ።

/

/ - ይህንን ንድፍ ወደ nRF52 ላባ ያጠናቅቁ እና ያብሩ

// - የ Bluefruit LE አገናኝ መተግበሪያን ይክፈቱ

// - ወደ NeoPixel መገልገያ ይቀይሩ

// - ግንኙነት ለመመስረት ‹ተገናኝ› የሚለውን ቁልፍ ጠቅ ያድርጉ እና

// ስለ ፒክሴል አቀማመጥ ሜታ-ውሂብን ይላኩ

// - በመሣሪያዎ ላይ ፒክሴሎችን ለማዘመን የ NeoPixel መገልገያውን ይጠቀሙ

* */

#ያካትቱ

#ያካትቱ

#ያካትቱ

#NEOPIXEL_VERSION_STRING "Neopixel v2.0" ን ይግለጹ

#ጥራት ፒን 16 / * ፒን ኒኦፒክስሎችን ለመንዳት ያገለገለ * /

#ዋና ዋና ጉዳዮችን መለየት 4

uint8_t *pixelBuffer = NULL;

uint8_t ስፋት = 0;

uint8_t ቁመት = 0;

uint8_t መራመድ;

uint8_t ክፍሎች እሴት;

bool is 400Hz;

uint8_t ክፍሎች = 3; // 3 እና 4 ብቻ ትክክለኛ እሴቶች ናቸው

Adafruit_NeoPixel neopixel = Adafruit_NeoPixel ();

// BLE አገልግሎት

BLEDfu bledfu;

BLEDis bledis;

BLEUart bleuart;

ባዶነት ማዋቀር ()

{

Serial.begin (115200);

((ተከታታይ)) መዘግየት (10); // ለ nrf52840 ከአገር usb ጋር

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

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

Serial.println ();

Serial.println ("እባክዎን የብሉፍ ፍሬን አገናኝ 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.setManupacturer ("Adafruit Industries");

bledis.setModel ("Bluefruit Feather52");

bledis.begin ();

// የ BLE UART አገልግሎትን ያዋቅሩ እና ይጀምሩ

bleuart.begin ();

// አዋቅር እና ማስታወቂያ ጀምር

startAdv ();

}

ባዶ ጀምር አድቪ (ባዶ)

{

// የማስታወቂያ ፓኬት

Bluefruit. Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);

Bluefruit. Advertising.addTxPower ();

// bleuart 128-bit uuid ን ያካትቱ

Bluefruit. Advertising.addService (bleuart);

// የሁለተኛ ደረጃ ቅኝት ምላሽ ፓኬት (አማራጭ)

// በማስታወቂያ ፓኬት ውስጥ ለ ‹ስም› ቦታ ስለሌለ

Bluefruit. ScanResponse.addName ();

/* ማስታወቂያ ይጀምሩ

* - ግንኙነቱ ከተቋረጠ የራስ ማስታወቂያዎችን ያንቁ

* - ክፍተት: ፈጣን ሁኔታ = 20 ሚሴ ፣ ቀርፋፋ ሁኔታ = 152.5 ሚ.ሜ

* - ለፈጣን ሞድ ጊዜ ማብቂያ 30 ሰከንዶች ነው

* - ይጀምሩ (ጊዜ ማብቂያ) ከእረፍት ጊዜ ጋር = 0 ለዘላለም ያስተዋውቃል (እስኪገናኝ)

*

* ለተመከረ የማስታወቂያ ክፍተት

*

*/

Bluefruit. Advertising.restartOnDisconnect (እውነት);

ብሉፍ ፍሬ ማስታወቂያ.setInterval (32, 244); // በ 0.625 ሚ.ሜ

Bluefruit. Advertising.setFastTimeout (30); // በሰከንዶች ቁጥር በፍጥነት ሁነታ

Bluefruit. Advertising.start (0); // 0 = ማስታወቂያ ከ n ሰከንዶች በኋላ አያቁሙ

}

ባዶ ግንኙነት connect_callback (uint16_t conn_handle)

{

// የአሁኑን ግንኙነት ማጣቀሻ ያግኙ

BLEConnection* ግንኙነት = Bluefruit. Connection (conn_handle);

char central_name [32] = {0};

ግንኙነት-> getPeerName (central_name ፣ sizeof (central_name));

Serial.print ("ተገናኝቷል");

Serial.println (ማዕከላዊ_ስም);

Serial.println ("እባክህ 'የ Neopixels' ትርን ምረጥ ፣ 'አገናኝ' ን ጠቅ አድርግ እና ተዝናና");

}

ባዶነት loop ()

{

// ኢኮ የተቀበለው መረጃ

ከሆነ (Bluefruit.connected () && bleuart.notifyEnabled ())

{

int ትዕዛዝ = bleuart.read ();

ቀይር (ትዕዛዝ) {

case 'V': {// ስሪት ያግኙ

ትዕዛዝVersion ();

ሰበር;

}

ጉዳይ 'S': {// የማዋቀሪያ ልኬቶች ፣ አካላት ፣ ርምጃ…

commandSetup ();

ሰበር;

}

case 'C': {// በቀለም ያፅዱ

commandClearColor ();

ሰበር;

}

ጉዳይ 'ለ' ፦ {// ብሩህነት ያዘጋጁ

CommandSetBrightness ();

ሰበር;

}

case 'P': {// ፒክስልን አዘጋጅ

commandSetPixel ();

ሰበር;

}

ጉዳይ ‹እኔ› ፦ {// አዲስ ምስል ይቀበሉ

CommandImage ();

ሰበር;

}

}

}

}

ባዶ ስዋፕ ቡፋሪዎች ()

{

uint8_t *base_addr = pixelBuffer;

int pixelIndex = 0;

ለ (int j = 0; j <height; j ++)

{

ለ (int i = 0; i <ስፋት; i ++) {

ከሆነ (አካላት == 3) {

neopixel.setPixelColor (pixelIndex, neopixel. Color (*base_addr, *(base_addr+1), *(base_addr+2)));

}

ሌላ {

neopixel.

}

base_addr+= ክፍሎች;

pixelIndex ++;

}

pixelIndex += መራመድ - ስፋት; // ፒክስል ኢንዴክስን ወደ ቀጣዩ ረድፍ ያንቀሳቅሱ (እርምጃውን ከግምት ውስጥ ያስገቡ)

}

neopixel.show ();

}

ባዶ ትዕዛዝVersion () {

Serial.println (ኤፍ ("ትዕዛዝ: የስሪት ቼክ"));

ላክ መልስ (NEOPIXEL_VERSION_STRING);

}

ባዶ ትዕዛዝ ትዕዛዝ () {

Serial.println (ኤፍ ("ትዕዛዝ: ማዋቀር"));

ስፋት = bleuart.read ();

ቁመት = bleuart.read ();

መራመድ = bleuart.read ();

componentsValue = bleuart.read ();

is400Hz = bleuart.read ();

neoPixelType pixelType;

pixelType = ክፍሎችValue + (is400Hz? NEO_KHZ400: NEO_KHZ800);

ክፍሎች = (componentsValue == NEO_RGB || componentsValue == NEO_RBG || componentsValue == NEO_GRB || componentsValue == NEO_GBR || componentsValue == NEO_BRG || componentsValue == 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" ፣ ክፍሎች);

ከሆነ (pixelBuffer! = NULL) {

ሰርዝ pixelBuffer;

}

uint32_t መጠን = ስፋት*ቁመት;

pixelBuffer = አዲስ uint8_t [መጠን*ክፍሎች];

neopixel.updateLength (መጠን);

neopixel.updateType (pixelType);

neopixel.setPin (ፒን);

// ተከናውኗል

sendResponse ("እሺ");

}

ባዶ ትዕዛዝ SetBrightness () {

Serial.println (ኤፍ ("ትዕዛዝ: SetBrightness"));

// እሴት ያንብቡ

uint8_t ብሩህነት = bleuart.read ();

// ብሩህነት ያዘጋጁ

neopixel.set ብሩህነት (ብሩህነት);

// ፒክስሎችን ያድሱ

swapBuffers ();

// ተከናውኗል

sendResponse ("እሺ");

}

ባዶ ትዕዛዝClearColor () {

Serial.println (ኤፍ ("ትዕዛዝ: 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 ("እሺ");

}

ባዶ ትዕዛዝ SetPixel () {

Serial.println (ኤፍ ("ትዕዛዝ: 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 <ክፍሎች;) {

ከሆነ (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));

}

ሌላ {

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 ("እሺ");

}

ባዶ ትዕዛዝ ምስል () {

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 መረጃ ጠቋሚ = i*ክፍሎች;

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

}

*/

}

// መጋዘኖችን ይቀያይሩ

Serial.println (ኤፍ ("ምስል ተቀብሏል"));

swapBuffers ();

// ተከናውኗል

sendResponse ("እሺ");

}

ባዶነት sendResponse (char const *ምላሽ) {

Serial.printf ("ምላሽ ላክ %s / n" ፣ ምላሽ);

bleuart.write (ምላሽ ፣ strlen (ምላሽ)*መጠን (ቻር));

}

ደረጃ 3: ደረጃ 3: አምፖሎችን መግዛት

ደረጃ 3: አምፖሎችን መግዛት
ደረጃ 3: አምፖሎችን መግዛት
ደረጃ 3: አምፖሎችን መግዛት
ደረጃ 3: አምፖሎችን መግዛት

ደረጃ 4 - ደረጃ 4 - ሁሉንም በአንድ ላይ ይጎትቱ

የሚመከር: