Satura rādītājs:
- 1. darbība: 1. darbība: pielodējiet ķēdi
- 2. darbība: 2. darbība: uzrakstiet kodu
- 3. darbība: 3. darbība: abažūra iegāde
- 4. solis: 4. solis: velciet to visu kopā
- 5. darbība: 5. darbība: spēļu kārtis
Video: Patiešām izaicinājums: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
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
4. solis: 4. solis: velciet to visu kopā
Ieteicams:
Kā izveidot patiešām lētus spiediena sensorus: 6 soļi (ar attēliem)
Kā izgatavot patiešām lētus spiediena sensorus: pēdējā laikā esmu aizrāvies ar slēdžu izgatavošanu no parastajiem sadzīves priekšmetiem, un es nolēmu izgatavot savu spiediena sensoru par budžetu no dažiem sūkļiem, kas man bija gulējuši. Iemesls, kāpēc tas atšķiras no citām budžeta spiediena sensoru versijām, ir
Raspberry Pi NAS, kas patiešām izskatās kā NAS: 13 soļi (ar attēliem)
Raspberry Pi NAS, kas patiešām izskatās kā NAS: Kāpēc Raspberry Pi NAS Nu, es meklēju skaistu, taču vietu ietaupošu Raspberry Pi NAS no interneta, un es neko neatradu. Es atradu kādu NAS dizainu ar Raspberry Pi, kas pielīmēts pie koka, bet tas nav tas, ko es vēlos. Es gribu
Izveidojiet patiešām foršu matricu programmā Python !: 6 soļi
Izveidojiet patiešām foršu matricu Python !: Sveiki puiši! Šī pamācība iemācīs jums izveidot matricu programmā Python! Parasti cilvēki Batch veidotu matricu, jo tas ir vienkārši. Bet šoreiz es jums parādīšu, kā izveidot matricu vienā no spēcīgajām datoru valodām
Izveidojiet savu * patiešām * lēts interferometrs: 5 soļi (ar attēliem)
Izveidojiet savu * patiešām * lētu interferometru: Sveiki visiem! Laipni lūdzam citā Inovāciju instrukcijā. Šajā pamācībā es jums palīdzēsim izveidot patiešām lētu interferometru. Uzsvars uz " tiešām lētu " daļa, jo tur ir daudz dārgu komplektu
Patiešām vienkāršs/vienkāršs/nesarežģīts veids, kā cilvēkiem/cilvēkiem/dzīvniekiem/robotiem likt izskatīties tā, it kā viņiem būtu patiešām vēsa/spilgta siltuma redze (jūsu izvēlētā krāsa), izmantojot GIMP: 4 soļi
Patiešām vienkāršs/vienkāršs/nesarežģīts veids, kā likt cilvēkiem/cilvēkiem/dzīvniekiem/robotiem izskatīties tā, it kā viņiem būtu patiešām vēsa/spilgta siltuma redze (jūsu izvēlētā krāsa), izmantojot GIMP: Lasiet … nosaukumu