ዝርዝር ሁኔታ:
- ደረጃ 1: ደረጃ 1: ወረዳውን ያሽጡ
- ደረጃ 2 - ደረጃ 2 - ኮዱን ይፃፉ
- ደረጃ 3: ደረጃ 3: አምፖሎችን መግዛት
- ደረጃ 4 - ደረጃ 4 - ሁሉንም በአንድ ላይ ይጎትቱ
- ደረጃ 5: ደረጃ 5 - የመጫወቻ ካርዶች መስራት
ቪዲዮ: በእውነቱ ፈታኝ ሁኔታ - 5 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
ዘመናዊው ዓለም ሰዎች ከአካላዊው ወጥተው በዲጂታል ውስጥ እንዲኖሩ ይጠይቃል።
በአል መልክ እና የቴክኖሎጂ መስፋፋት ሰዎች በማሽኑ ላይ በጣም ብዙ እምነት ይጥሉ እና ሁል ጊዜ ትክክል ነው ብለው ያምናሉ።
“በእውነት” የሐሰት የውሸት መመርመሪያ ሙከራ በመፍጠር ይህንን የሐሰት መተማመንን ለማናወጥ የታሰበ ነው። ሰዎች በእውነት እየሰራ መሆኑን በቀላሉ ያምናሉ ፣ ግን የሐሰት መልሶች ሲሰጡ በቴክኖሎጂ ላይ ያላቸውን ዕውር እምነት ያናውጣል።
ደረጃ 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: አምፖሎችን መግዛት
ደረጃ 4 - ደረጃ 4 - ሁሉንም በአንድ ላይ ይጎትቱ
የሚመከር:
Q -Bot - ክፍት ምንጭ የሩቢክ ኪዩብ ፈታኝ - 7 ደረጃዎች (ከስዕሎች ጋር)
ጥ -ቦት - ክፍት ምንጭ የሩቢክ ኪዩብ ፈታኝ - የተደባለቀ የሩቢክ ኩብ እንዳለዎት ያስቡ ፣ እንቆቅልሹ ሁሉም ሰው ያለው 80 ዎቹ መሆኑን ያውቃሉ ፣ ግን ማንም በትክክል እንዴት መፍታት እንዳለበት አያውቅም ፣ እና ወደ መጀመሪያው ዘይቤው ማምጣት ይፈልጋሉ። እንደ እድል ሆኖ በእነዚህ ቀናት የመፍትሄ መመሪያን ማግኘት በጣም ቀላል ነው
2-አዝራር ባለአራትዮሽ እኩልታ ፈታኝ-5 ደረጃዎች
2-የአራትዮሽ እኩልታ ፈታኝ-መግቢያ ወደ መጀመሪያው አስተማሪዬ እንኳን በደህና መጡ! የፕሮግራም እውቀቴን ለማራዘም ይህንን ፕሮጀክት ጀመርኩ። ብዙውን ጊዜ እርስዎ የሚፈልጉትን ፕሮግራም ለመፍጠር የተለያዩ የምንጭ ኮድን ያዋህዳሉ። ግቤ ከመሳሪያ ጋር ለመገናኘት የራሴን የፕሮግራም ኮድ መጻፍ ነበር።
ፎቶኒክስ ፈታኝ - ግልጽ 3 ዲ Volumetric POV (PHABLABS) 8 ደረጃዎች (ከስዕሎች ጋር)
ፎቶኒክስ ፈታኝ - ግልፅ 3 ዲ Volumetric POV (PHABLABS) - ከጥቂት ሳምንታት በፊት በኔዘርላንድስ ሳይንስ ማዕከል ዴልት ውስጥ በፓብላብስ ሃክቶን ውስጥ ለመሳተፍ የመጨረሻ ደቂቃ ግብዣ ደርሶኛል። እንደ እኔ ላሉት አፍቃሪ የትርፍ ጊዜ ማሳለፊያ ፣ በመደበኛነት ትንሽ ጊዜን ብቻ ለማጥበብ ለሚችል ፣ ይህንን እንደ
ሆሎግራፊክ ሳህኖች - ፎቶኒክስ ፈታኝ Hackathon PhabLabs: 6 ደረጃዎች
ሆሎግራፊክ ሳህኖች - ፎቶኒክስ ፈታኝ ሃክታቶን ፓብላብስ - በዚህ ዓመት መጀመሪያ ላይ በኔዘርላንድ የሳይንስ ማዕከል ዴልት ውስጥ በፓብላብስ ፎቶኒክስ ሃክቶን ውስጥ እንድሳተፍ ተጠየቅኩ። እኔ የተለመደውን ነገር ለመፍጠር የሚያገለግሉ ብዙ ማሽኖች ያሉት ጥሩ የሥራ ቦታ አላቸው
በእውነቱ ፣ በእውነቱ ቀላል የዩኤስቢ ሞተር! 3 ደረጃዎች
በእውነቱ ፣ በእውነቱ ቀላል የዩኤስቢ ሞተር !: በመጨረሻ ፣ የእኔ 2 ኛ አስተማሪ !!! ይህ ከማንኛውም ሊገኝ የሚችል የዩኤስቢ ወደብ ለሚያጠፋ ለእርስዎ ወይም ለኮምፒዩተርዎ አድናቂ ነው። ለጀማሪዎች በኤሌክትሮኒክስ ውስጥ እስከ ፕሮፌሰሩ ድረስ እመክራለሁ። እሱ ቀላል እና አስደሳች ነው ፣ ቃል በቃል አምስት ደቂቃዎችን ማድረግ ይችላሉ !!! እውነተኛ