Orodha ya maudhui:
- Hatua ya 1: Hatua ya 1: Solder the Circuit
- Hatua ya 2: Hatua ya 2: Andika Nambari
- Hatua ya 3: Hatua ya 3: Kununua Lampshade
- Hatua ya 4: Hatua ya 4: Vuta Yote Pamoja
- Hatua ya 5: Hatua ya 5: Kutengeneza Kadi za kucheza
Video: Changamoto Kweli: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Ulimwengu wa kisasa unahitaji wanadamu kutoka nje ya mwili na kuishi ndani ya dijiti.
Pamoja na kuonekana kwa Al na kuenea kwa teknolojia watu huamini sana mashine na wanaamini kuwa sahihi kila wakati.
"Kweli" inakusudiwa kutikisa uaminifu huu wa uwongo kupitia uundaji wa jaribio bandia la upelelezi wa uwongo. Watu wataamini kwa urahisi kuwa Kweli inafanya kazi lakini majibu ya uwongo yatakapotolewa itatikisa imani yao kipofu katika teknolojia.
Hatua ya 1: Hatua ya 1: Solder the Circuit
Kwa sababu kazi zangu zina nuru moja tu, kwa hivyo ni rahisi sana kutengeneza. Shida kuu ni mwanzoni, niliuza taa mbili, lakini sikufunika sehemu ya mfiduo mara moja. Kwa hivyo wakati waya mbili zinapogusana. Ni fupi.
Hatua ya 2: Hatua ya 2: Andika Nambari
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; urefu wa mstari: 15.0px; font: Nyakati 12.0px; rangi: # 000000; rangi ya asili: #ffffff}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; urefu wa mstari: 15.0px; font: Nyakati 12.0px; rangi: # 000000; rangi ya asili: #ffffff; urefu wa dakika: 14.0px} span.s1 {font-kerning: none}
Hatua ya 2: Andika Nambari
/*********************************************************************
Huu ni mfano kwa moduli zetu za nRF52 za Bluefruit LE
Chagua moja leo katika duka la matunda!
Adafruit huwekeza muda na rasilimali kutoa nambari hii wazi ya chanzo, tafadhali saidia Adafruit na vifaa vyenye chanzo kwa kununua
bidhaa kutoka Adafruit!
Leseni ya MIT, angalia LESENI kwa habari zaidi
Maandishi yote hapo juu, na skrini ya mwangaza hapa chini lazima ijumuishwe katika
ugawaji wowote
*********************************************************************
/ Mchoro huu unakusudiwa kutumiwa na udhibiti wa NeoPixel
// uso katika programu ya simu ya Adafruit Bluefruit LE Connect.
/
/ - Kusanya na uangaze mchoro huu kwa Manyoya ya nRF52
// - Fungua programu ya Bluefruit LE Connect
// - Badilisha kwa matumizi ya NeoPixel
// - Bonyeza kitufe cha 'unganisha' ili kuanzisha unganisho na
// tuma meta-data kuhusu mpangilio wa pikseli
// - Tumia huduma ya NeoPixel kusasisha saizi kwenye kifaa chako
/ * KUMBUKA: Mchoro huu ulihitaji angalau toleo 1.1.0 la Adafruit_Neopixel !!! * /
# pamoja
# pamoja
# pamoja
#fafanua NEOPIXEL_VERSION_STRING "Neopixel v2.0"
#fafanua PIN 16 / * Pini inayotumika kuendesha NeoPixels * /
#fafanua MAXCOMPONENTS 4
uint8_t * pixelBuffer = NULL;
uint8_t upana = 0;
uint8_t urefu = 0;
uint8_t hatua;
Vipengee vya uint8_thamini;
bool is400Hz;
vifaa vya uint8_t = 3; // 3 na 4 tu ni maadili halali
Adafruit_NeoPixel neopixel = Adafruit_NeoPixel ();
// Huduma ya BLE
BLEDfu bledfu;
Bledis bledis;
BLEUart bleuart;
kuanzisha batili ()
{
Serial. Kuanza (115200);
wakati (! Serial) kuchelewa (10); // kwa nrf52840 na usb asili
Serial.println ("Adafruit Bluefruit Neopixel Test");
Serial.println ("------------------------------------");
Serial.println ();
Serial.println ("Tafadhali unganisha kwa kutumia programu ya Bluefruit Connect LE");
// Sanidi Neopixels
neopixel.anza ();
// Init Bluefruit
Bluefruit. Kuanza ();
Bluefruit.setTxPower (4); // Angalia matunda ya bluu.h kwa maadili yanayoungwa mkono
Bluefruit.setName ("Bluefruit52");
Bluefruit. Periph.setConnectCallback (unganisha_callback);
// Kuwa sawa OTA DFU inapaswa kuongezwa kwanza ikiwa ipo
kuanza ();
// Sanidi na Anzisha Huduma ya Habari ya Kifaa
mtengenezaji wa bledis.set ("Viwanda vya Adafruit");
bledis.setModel ("Manyoya ya Bluefruit52");
bledis kuanza ();
// Sanidi na anza huduma ya BLE UART
kuanza ();
// Weka na uanze kutangaza
AnzaAdv ();
}
kuanza batili (bure)
{
// Pakiti ya Matangazo
Matunda ya Bluefruit. Matangazo. OngezaFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Matunda ya Bluefruit. Tangaza.addTxPower ();
// Jumuisha uuid ya biti 128
Matunda ya Bluefruit. Matangazo. AddService (bleuart);
// pakiti ya majibu ya skanari ya sekondari (hiari)
// Kwa kuwa hakuna nafasi ya 'Jina' katika pakiti ya Matangazo
Bluefruit. ScanResponse.addName ();
/ * Anza Kutangaza
* - Wezesha matangazo ya kiotomatiki ikiwa imetenganishwa
* - Muda: hali ya haraka = 20 ms, mode polepole = 152.5 ms
* - Kuisha kwa hali ya haraka ni sekunde 30
* - Anza (muda umekwisha) na muda wa kuisha = 0 utatangaza milele (hadi unganishwe)
*
* Kwa muda uliopendekezwa wa matangazo
*
*/
Matunda ya Bluefruit. Matangazo. Anzisha Kuondoa (kweli);
Bluefruit. Matangazo.setInterval (32, 244); // katika kitengo cha 0.625 ms
Matunda ya Bluefruit. Matangazo.setFestTimeout (30); // idadi ya sekunde katika hali ya haraka
Bluefruit. Kuanzisha.kuanzisha (0); // 0 = Usiache kutangaza baada ya sekunde n
}
batili connect_callback (uint16_t conn_handle)
{
// Pata kumbukumbu ya unganisho la sasa
Uunganisho wa BLE * unganisho = Bluefruit. Connection (conn_handle);
char central_name [32] = {0};
unganisho-> GetPeerName (jina la kati, saizi ya (jina_lo kuu));
Serial.print ("Imeunganishwa na");
Serial.println (jina la kati);
Serial.println ("Tafadhali chagua kichupo cha 'Neopixels', bonyeza 'Unganisha' na ufurahie");
}
kitanzi batili ()
{
// Echo ilipokea data
ikiwa (Bluefruit. imeunganishwa () && bleuart.notifyEnabled ())
{
amri ya int = bleuart.read ();
badilisha (amri) {
kesi 'V': {// Pata Toleo
amriVersion ();
kuvunja;
}
kesi 'S': {// Vipimo vya usanidi, vifaa, hatua…
amriSetup ();
kuvunja;
}
kesi 'C': {// Safi na rangi
amriClearColor ();
kuvunja;
}
kesi 'B': {// Weka Mwangaza
amriSetBrightness ();
kuvunja;
}
kesi 'P': {// Weka Pixel
amriSetPixel ();
kuvunja;
}
kesi 'I': {// Pokea picha mpya
amriImage ();
kuvunja;
}
}
}
}
ubadilishaji batiliBuffers ()
{
uint8_t * base_addr = pixelBuffer;
pixelIndex = 0;
kwa (int j = 0; j <urefu; j ++)
{
kwa (int i = 0; i <upana; i ++) {
ikiwa (vipengele == 3) {
neopixel.setPixelColor (pixelIndex, neopixel. Color (* base_addr, * (base_addr + 1), * (base_addr + 2)));
}
mwingine {
neopixel.setPixelColor (pixelIndex, neopixel. Color (* base_addr, * (base_addr + 1), * (base_addr + 2), * (base_addr + 3)));
}
msingi_addr + = vifaa;
pixelIndex ++;
}
pixelIndex + = stride - upana; // Sogeza pixelIndex kwenye safu inayofuata (kuzingatia hatua)
}
neopixel.show ();
}
utupu amriVersion () {
Serial.println (F ("Amri: Tazama toleo"));
tumaJibu (NEOPIXEL_VERSION_STRING);
}
amri batiliSetup () {
Serial.println (F ("Amri: Sanidi"));
upana = bleuart.read ();
urefu = bleuart.read ();
stride = bleuart.read ();
vipengeleValue = bleuart.read ();
is400Hz = bleuart. soma ();
Aina ya pikseli ya neoPixel;
pixelType = vipengeleV Thamani + (is400Hz? NEO_KHZ400: NEO_KHZ800);
vipengele = (vipengeleValue == NEO_RGB || vipengeleValue == NEO_RBG || vipengeleValue == NEO_GRB || vipengeleValue == NEO_GBR || vipengeleValue == NEO_BRG || vipengeleValue == NEO_BGR)? 3: 4;
Serial.printf ("\ tsize:% dx% d / n", upana, urefu);
Serial.printf ("\ tstride:% d / n", hatua);
Serial.printf ("\ tpixelType% d / n", aina ya pixel);
Serial.printf ("\ vijenzi:% d / n", vifaa);
ikiwa (pixelBuffer! = NULL) {
kufuta pixelBuffer;
}
uint32_t size = upana * urefu;
pixelBuffer = mpya uint8_t [vifaa vya ukubwa];
neopixel.updateLength (saizi);
aina ya neopixel.updateType (pixelType);
neopixel.setPin (PIN);
// Imefanywa
sendResponse ("Sawa");
}
batili amriSetBrightness () {
Serial.println (F ("Amri: SetBrightness"));
// Thamani ya kusoma
uint8_t mwangaza = bleuart.read ();
// Weka mwangaza
neopixel.setBrightness (mwangaza);
// Burudisha saizi
wabadilishaneBuffers ();
// Imefanywa
sendResponse ("Sawa");
}
batili commandClearColor () {
Serial.println (F ("Amri: ClearColor"));
// Soma rangi
rangi ya uint8_ [MAXCOMPONENTS];
kwa (int j = 0; j <vipengele;) {
ikiwa (bleuart haipatikani ()) {
rangi [j] = bleuart.read ();
j ++;
}
}
// Weka rangi zote
ukubwa wa int = upana * urefu;
uint8_t * base_addr = pixelBuffer;
kwa (int i = 0; i <size; i ++) {
kwa (int j = 0; j <vipengele; j ++) {
* base_addr = rangi [j];
msingi_addr ++;
}
}
// Kubadilisha bafa
Serial.println (F ("ClearColor imekamilika"));
wabadilishaneBuffers ();
ikiwa (vipengele == 3) {
Serial.printf ("\ tclear (% d,% d,% d) n", rangi [0], rangi [1], rangi [2]);
}
mwingine {
Serial.printf ("\ tclear (% d,% d,% d,% d) n", rangi [0], rangi [1], rangi [2], rangi [3]);
}
// Imefanywa
sendResponse ("Sawa");
}
batili commandSetPixel () {
Serial.println (F ("Amri: SetPixel"));
// Soma msimamo
uint8_t x = bleuart.read ();
uint8_t y = bleuart.read ();
// Soma rangi
uint32_t pixelOffset = y * upana + x;
uint32_t pixelDataOffset = vipengele vya pixelOffset *;
uint8_t * base_addr = pixelBuffer + pixelDataOffset;
kwa (int j = 0; j <vipengele;) {
ikiwa (bleuart haipatikani ()) {
* msingi_addr = bleuart.read ();
msingi_addr ++;
j ++;
}
}
// Weka rangi
uint32_t neopixelIndex = y * stride + x;
uint8_t * pixelBufferPointer = pixelBuffer + pixelDataOffset;
rangi ya uint32_t;
ikiwa (vipengele == 3) {
rangi = neopixel. Color (* pixelBufferPointer, * (pixelBufferPointer + 1), * (pixelBufferPointer + 2));
Serial.printf ("\ rangi (% d,% d,% d) n", * pixelBufferPointer, * (pixelBufferPointer + 1), * (pixelBufferPointer + 2));
}
mwingine {
rangi = neopixel. Color (* pixelBufferPointer, * (pixelBufferPointer + 1), * (pixelBufferPointer + 2), * (pixelBufferPointer + 3));
Serial.printf ("\ rangi (% d,% d,% d,% d) n", * pixelBufferPointer, * (pixelBufferPointer + 1), * (pixelBufferPointer + 2), * (pixelBufferPointer + 3));
}
neopixel.setPixelColor (neopixelIndex, rangi);
neopixel.show ();
// Imefanywa
sendResponse ("Sawa");
}
batili amriImage () {
Serial.printf ("Amri: Picha% dx% d,% d,% d / n", upana, urefu, vifaa, hatua);
// Pokea bafa mpya ya pikseli
ukubwa wa int = upana * urefu;
uint8_t * base_addr = pixelBuffer;
kwa (int i = 0; i <size; i ++) {
kwa (int j = 0; j <vipengele;) {
ikiwa (bleuart haipatikani ()) {
* msingi_addr = bleuart.read ();
msingi_addr ++;
j ++;
}
}
/*
ikiwa (vipengele == 3) {
uint32_t index = i * vifaa;
Serial.printf ("\ tp% d (% d,% d,% d) n", i, pixelBuffer [index], pixelBuffer [index + 1], pixelBuffer [index + 2]);
}
*/
}
// Kubadilisha bafa
Serial.println (F ("Picha imepokea"));
wabadilishaneBuffers ();
// Imefanywa
sendResponse ("Sawa");
}
batili sendResponse (jibu const * majibu) {
Serial.printf ("Tuma Jibu:% s / n", majibu);
andika (jibu, strlen (majibu) * sizeof (char));
}
Hatua ya 3: Hatua ya 3: Kununua Lampshade
Hatua ya 4: Hatua ya 4: Vuta Yote Pamoja
Ilipendekeza:
Jinsi ya kusanikisha Modeli za Shadi 1.16.5 Pamoja na Mistari ya Kweli ya Kweli: 6 Hatua
Jinsi ya kusanikisha modeli za Shader 1.16.5 Pamoja na Mistari ya Kweli ya Kweli: Halo marafiki wapendwa wa jamii ya Minecraft, leo nitakufundisha jinsi ya kusanikisha vivuli mod 1.16.5 na maandishi halisi ya kweli
Changamoto ya Mummybot Circuits: Hatua 6 (na Picha)
Changamoto ya Miti za Mummybot: Katika Utangulizi wangu kwa darasa la Roboti tumekuwa tukijifunza juu ya umeme na nyaya. Ili kuanzisha shughuli hiyo nilifanya onyesho fupi la slaidi (lililounganishwa) ambalo huchukua Mummybot wa JessyRatFink na kuongeza mizunguko ya msingi. Niliwapa wanafunzi changamoto
Changamoto ya 2 ya 3D KEVA: Kitanda: Hatua 3
Changamoto ya 3D KEVA 2: Kitanda: Karibu kwenye Changamoto ya 3D KEVA! Je! Umejitetea? Kila Changamoto ya 3D KEVA itawasilisha mwanafunzi na seti ya maoni 3 (Juu, Mbele, na Kulia). Kutumia maoni haya peke yake changamoto ni kuweka ubao wako wa KEVA kwa njia inayolingana na maoni
Njia 4 ya Bowling ya Njia ya Changamoto ya Roboti: Hatua 4
Njia 4 ya Bowling ya Njia ya Changamoto ya Roboti: Kwa programu yetu ya roboti ya majira ya joto ninafanya kazi kusasisha changamoto kadhaa ambazo tulifanya miaka kadhaa iliyopita na kuanzisha maoni mapya. Hili la kwanza ni moja ambalo tumefanya hapo awali, lakini sio kama hii. Hapo awali, tulikuwa tukitumia pini za kupigia mbao ambazo zilithibitisha pia
Kweli, Kweli Rahisi USB Motor !: 3 Hatua
Kweli, Kweli Rahisi USB Motor!: Mwishowe, 2 yangu yafundishika !!! Hii ni shabiki kwako au kompyuta yako ambayo inaendesha bandari yoyote ya USB inayoweza kuepukika. Ninaipendekeza kwa Kompyuta kwenye vifaa vya elektroniki, hadi kwa wataalam. Ni rahisi na ya kufurahisha, unaweza kutengeneza miniti tano halisi !!! HALISI