Satura rādītājs:

Patiešām izaicinājums: 5 soļi
Patiešām izaicinājums: 5 soļi

Video: Patiešām izaicinājums: 5 soļi

Video: Patiešām izaicinājums: 5 soļi
Video: Eric Worre - 7 soļi, kā klūt par Tīkla Mārketinga profesionāli 2024, Jūlijs
Anonim
Image
Image
1. solis: pielodējiet ķēdi
1. solis: pielodējiet ķēdi

Mūsdienu pasaule pieprasa cilvēkiem iziet no fiziskā un dzīvot digitālajā vidē.

Līdz ar Al parādīšanos un tehnoloģiju izplatību cilvēki pārāk uzticas mašīnai un uzskata, ka tā vienmēr ir pareiza.

“Really” ir paredzēts, lai satricinātu šo viltus uzticību, izveidojot viltus melu detektora testu. Cilvēki viegli uzskatīs, ka Really darbojas, bet, sniedzot nepatiesas atbildes, tas satricinās viņu aklo uzticību tehnoloģijai.

1. darbība: 1. darbība: pielodējiet ķēdi

Tā kā maniem darbiem ir tikai viena gaisma, tāpēc to ir ļoti viegli lodēt. Galvenā problēma ir sākumā, es lodēju divas gaismas, bet es uzreiz neaizsedzu ekspozīcijas daļu. Tātad, kad abas vadu daļas saskaras kopā. Tas īss.

2. darbība: 2. darbība: uzrakstiet kodu

p.p1 {starpība: 0.0px 0.0px 0.0px 0.0px; līnijas augstums: 15,0 pikseļi; fonts: 12,0 pikseļi; krāsa: #000000; fona krāsa: #ffffff}

p.p2 {starpība: 0.0px 0.0px 0.0px 0.0px; līnijas augstums: 15,0 pikseļi; fonts: 12,0 pikseļi; krāsa: #000000; fona krāsa: #ffffff; min-height: 14.0px} span.s1 {font-kerning: none}

2. solis: uzrakstiet kodu

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

Šis ir piemērs mūsu uz nRF52 balstītajiem Bluefruit LE moduļiem

Paņemiet vienu šodien adafruit veikalā!

Adafruit iegulda laiku un resursus, nodrošinot šo atvērtā pirmkoda kodu, lūdzu, iegādājoties, atbalstiet Adafruit un atvērtā pirmkoda aparatūru

produkti no Adafruit!

MIT licence, lai iegūtu vairāk informācijas, pārbaudiet LICENCE

Ir jāiekļauj viss iepriekš minētais teksts un zemāk redzamais ekrāns

jebkāda pārdale

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

/ Šo skici paredzēts izmantot kopā ar NeoPixel vadīklu

// virsma Adafruit mobilajā lietotnē Bluefruit LE Connect.

/

/ - Apkopojiet un uzliesmojiet šo skici uz nRF52 Feather

// - Atveriet lietotni Bluefruit LE Connect

// - Pārslēdzieties uz utilītu NeoPixel

// - Noklikšķiniet uz pogas 'savienot', lai izveidotu savienojumu un

// nosūtīt metadatus par pikseļu izkārtojumu

// - Izmantojiet utilītu NeoPixel, lai atjauninātu ierīces pikseļus

/* PIEZĪME: Šai skicei bija nepieciešama vismaz Adafruit_Neopixel versija 1.1.0 !!! */

#iekļaut

#iekļaut

#iekļaut

#define NEOPIXEL_VERSION_STRING "Neopixel v2.0"

#define PIN 16 / * PIN, ko izmanto, lai vadītu NeoPixels * /

#define MAXCOMPONENTS 4

uint8_t *pixelBuffer = NULL;

uint8_t platums = 0;

uint8_t augstums = 0;

uint8_t solis;

uint8_t componentsValue;

bool ir 400Hz;

uint8_t komponenti = 3; // tikai 3 un 4 ir derīgas vērtības

Adafruit_NeoPixel neopixel = Adafruit_NeoPixel ();

// BLE pakalpojums

BLEDfu bledfu;

BLEDis bledis;

BLEUart bleuart;

anulēts iestatījums ()

{

Serial.begin (115200);

kamēr (! Sērijas) kavēšanās (10); // par nrf52840 ar vietējo USB

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

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

Sērijas.println ();

Serial.println ("Lūdzu, izveidojiet savienojumu, izmantojot lietojumprogrammu Bluefruit Connect LE");

// Konfigurēt neopikseļus

neopixel.begin ();

// Init Bluefruit

Bluefruit.begin ();

Bluefruit.setTxPower (4); // Pārbaudiet bluefruit.h, vai ir atbalstītās vērtības

Bluefruit.setName ("Bluefruit52");

Bluefruit. Periph.setConnectCallback (connect_callback);

// Lai būtu konsekventi, vispirms jāpievieno OTA DFU, ja tāds pastāv

bledfu.begin ();

// Ierīces informācijas pakalpojuma konfigurēšana un palaišana

bledis.setManufacturer ("Adafruit Industries");

bledis.setModel ("Bluefruit Feather52");

bledis.begin ();

// BLE UART pakalpojuma konfigurēšana un palaišana

bleuart.begin ();

// Iestatiet un sāciet reklāmu

startAdv ();

}

void startAdv (anulēts)

{

// Reklāmas pakete

Bluefruit. Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);

Bluefruit. Advertising.addTxPower ();

// Iekļaut bleuart 128 bitu uuid

Bluefruit. Advertising.addService (bleuart);

// Sekundārā skenēšanas atbildes pakete (pēc izvēles)

// Tā kā reklāmas pakotnē nav vietas vārdam “Vārds”

Bluefruit. ScanResponse.addName ();

/* Sāciet reklāmu

* - Iespējot automātisko reklāmu, ja tā ir atvienota

* - Intervāls: ātrais režīms = 20 ms, lēns režīms = 152,5 ms

* - ātrā režīma noildze ir 30 sekundes

* - Sākt (taimauts) ar taimautu = 0 tiks reklamēts uz visiem laikiem (līdz savienojumam)

*

* Par ieteicamo reklāmas intervālu

*

*/

Bluefruit. Advertising.restartOnDisconnect (true);

Bluefruit. Advertising.setInterval (32, 244); // vienībā 0,625 ms

Bluefruit. Advertising.setFastTimeout (30); // sekunžu skaits ātrajā režīmā

Bluefruit. Reklāma.start (0); // 0 = Nepārtrauciet reklāmu pēc n sekundēm

}

void connect_callback (uint16_t conn_handle)

{

// Iegūstiet atsauci uz pašreizējo savienojumu

BLEConnection* savienojums = Bluefruit. Connection (conn_handle);

simbols centrālais_nosaukums [32] = {0};

savienojums-> getPeerName (centrālais_nosaukums, lielums (centrālais_nosaukums));

Serial.print ("Savienots ar");

Serial.println (centrālais_nosaukums);

Serial.println ("Lūdzu, atlasiet cilni" Neopikseli ", noklikšķiniet uz" Savienot "un izklaidējieties");

}

tukša cilpa ()

{

// Echo saņēma datus

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

{

int komanda = bleuart.read ();

slēdzis (komanda) {

gadījums 'V': {// Iegūt versiju

commandVersion ();

pārtraukums;

}

gadījums 'S': {// Uzstādīšanas izmēri, komponenti, solis…

commandSetup ();

pārtraukums;

}

gadījums 'C': {// Skaidrs ar krāsu

commandClearColor ();

pārtraukums;

}

gadījums 'B': {// Iestatīt spilgtumu

commandSetBrightness ();

pārtraukums;

}

gadījums 'P': {// Set Pixel

commandSetPixel ();

pārtraukums;

}

gadījums 'es': {// Saņemt jaunu attēlu

commandImage ();

pārtraukums;

}

}

}

}

void swapBuffers ()

{

uint8_t *base_addr = pixelBuffer;

int pixelIndex = 0;

par (int j = 0; j <augstums; j ++)

{

par (int i = 0; i <platums; i ++) {

ja (sastāvdaļas == 3) {

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

}

cits {

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

}

base_addr+= komponenti;

pixelIndex ++;

}

pixelIndex += solis - platums; // Pārvietot pixelIndex uz nākamo rindu (ņem vērā soli)

}

neopixel.show ();

}

void commandVersion () {

Serial.println (F ("Komanda: versijas pārbaude"));

sendResponse (NEOPIXEL_VERSION_STRING);

}

void commandSetup () {

Serial.println (F ("Komanda: iestatīšana"));

platums = bleuart.read ();

augstums = bleuart.read ();

solis = bleuart.read ();

komponentiVērtība = bleuart.read ();

is400Hz = bleuart.read ();

neoPixelType pixelType;

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

komponenti = (komponentiVērtība == NEO_RGB || komponentiVērtība == NEO_RBG || komponentiVērtība == NEO_GRB || komponentiVērtība == NEO_GBR || komponentiVērtība == NEO_BRG || komponentiVērtība == NEO_BGR)? 3: 4;

Serial.printf ("\ tsize: %dx %d / n", platums, augstums);

Serial.printf ("\ tstride: %d / n", solis);

Serial.printf ("\ tpixelType %d / n", pixelType);

Serial.printf ("\ tkomponenti: %d / n", komponenti);

ja (pixelBuffer! = NULL) {

dzēst pixelBuffer;

}

uint32_t izmērs = platums*augstums;

pixelBuffer = jauns uint8_t [izmērs*komponenti];

neopixel.updateLength (izmērs);

neopixel.updateType (pixelType);

neopixel.setPin (PIN);

// Gatavs

sendResponse ("Labi");

}

void commandSetBrightness () {

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

// Lasīt vērtību

uint8_t spilgtums = bleuart.read ();

// Iestatiet spilgtumu

neopixel.setBrightness (spilgtums);

// Atsvaidzināt pikseļus

swapBuffers ();

// Gatavs

sendResponse ("Labi");

}

void commandClearColor () {

Serial.println (F ("Komanda: ClearColor"));

// Lasīt krāsu

uint8_t color [MAXCOMPONENTS];

par (int j = 0; j <komponenti;) {

ja (bleuart.available ()) {

krāsa [j] = bleuart.read ();

j ++;

}

}

// Iestatiet visas gaismas diodes krāsā

int izmērs = platums * augstums;

uint8_t *base_addr = pixelBuffer;

par (int i = 0; i <izmērs; i ++) {

par (int j = 0; j <komponenti; j ++) {

*base_addr = krāsa [j];

base_addr ++;

}

}

// Apmainīt buferus

Serial.println (F ("ClearColor pabeigts"));

swapBuffers ();

ja (sastāvdaļas == 3) {

Serial.printf ("\ t skaidrs (%d, %d, %d) n", krāsa [0], krāsa [1], krāsa [2]);

}

cits {

Serial.printf ("\ t skaidrs (%d, %d, %d, %d) n", krāsa [0], krāsa [1], krāsa [2], krāsa [3]);

}

// Gatavs

sendResponse ("Labi");

}

void commandSetPixel () {

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

// Lasīšanas pozīcija

uint8_t x = bleuart.read ();

uint8_t y = bleuart.read ();

// Lasīt krāsas

uint32_t pixelOffset = y*platums+x;

uint32_t pixelDataOffset = pixelOffset*komponenti;

uint8_t *base_addr = pixelBuffer+pixelDataOffset;

par (int j = 0; j <komponenti;) {

ja (bleuart.available ()) {

*base_addr = bleuart.read ();

base_addr ++;

j ++;

}

}

// Iestatiet krāsas

uint32_t neopixelIndex = y*solis+x;

uint8_t *pixelBufferPointer = pixelBuffer + pixelDataOffset;

uint32_t krāsa;

ja (sastāvdaļas == 3) {

krāsa = neopikselis. Krāsa (*pixelBufferPointer, *(pixelBufferPointer+1), *(pixelBufferPointer+2));

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

}

cits {

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, krāsa);

neopixel.show ();

// Gatavs

sendResponse ("Labi");

}

void commandImage () {

Serial.printf ("Komanda: attēls %dx %d, %d, %d / n", platums, augstums, sastāvdaļas, solis);

// Saņemt jaunu pikseļu buferi

int izmērs = platums * augstums;

uint8_t *base_addr = pixelBuffer;

par (int i = 0; i <izmērs; i ++) {

par (int j = 0; j <komponenti;) {

ja (bleuart.available ()) {

*base_addr = bleuart.read ();

base_addr ++;

j ++;

}

}

/*

ja (sastāvdaļas == 3) {

uint32_t indekss = i*komponenti;

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

}

*/

}

// Apmainīt buferus

Serial.println (F ("Attēls saņemts"));

swapBuffers ();

// Gatavs

sendResponse ("Labi");

}

void sendResponse (char const *response) {

Serial.printf ("Sūtīt atbildi: %s / n", atbilde);

bleuart.write (atbilde, strlen (atbilde)*sizeof (char));

}

3. darbība: 3. darbība: abažūra iegāde

3. darbība: abažūra iegāde
3. darbība: abažūra iegāde
3. darbība: abažūra iegāde
3. darbība: abažūra iegāde

4. solis: 4. solis: velciet to visu kopā

Ieteicams: