Përmbajtje:
- Hapi 1: Kërkesat
- Hapi 2: Kuptimi i Harduerit dhe Softuerit
- Hapi 3: Vendosja e Komponentëve
- Hapi 4: Kodimi
Video: Ndryshimi i ngjyrës së dritës së natës duke përdorur Ardruino 101: 4 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Në këtë projekt ju do të bëni një llambë nate duke përdorur ardruino, Adafruit neo rgb Strips dhe një printer 3D.
Vini re se kjo e pakuptueshme është thjesht për projektin tim shkollor. Kodi për këtë projekt bazohet në një projekt tjetër. Me atë që tha unë nuk jam ekspert kur bëhet fjalë për Ardruino.
Hapi 1: Kërkesat
Për këtë projekt ju do të keni nevojë për pajisjet dhe mjetet e mëposhtme
Hardware:
1 - Një ardruino101 (në SHBA) ose një Genuino101 (për jashtë SHBA).
2 - NeoPixel rgb led strips from adafruit (5 volt).
3 - Një lidhës ardruino usb (lidhësi i tipit B në A).
4 - Një softuer nga Ardruino, Ardruino IDE Në këtë tutorial ne do të përdorim versionin 1.8.5. Kërkesat për bibliotekën e softuerit janë: 101, Adafruit NeoPixel dhe Madgwick.
5 -Dhe një objekt për të vendosur pajisjet tuaja. Në këtë rast unë do të përdor një printer 3D. Skedari për këtë printim 3D gjendet në përshkrimet e quajtura "Koka e llambës". Vini re se ky format skedari nuk është gati për printim 3D. Në varësi të printerëve tuaj 3D, së pari duhet të ekzekutoni paraprakisht programin e caktuar të printimit 3D në objektin 3D. Ndonjëherë shkalla e printimit 3D do të rivendoset. prandaj sigurohuni që diametri të jetë vendosur në 11 cm me 11 cm.
6 - Kompleti bazë i saldimit.
Hapi 2: Kuptimi i Harduerit dhe Softuerit
Ardruin/Genuino101
Vetëm për të sqaruar Ardruino101 dhe genuino101 janë jashtëzakonisht të njëjta pranë emrave. Të dy kanë të njëjtat specifikime dhe përdorin të njëjtin softuer.
Ardruino101 posedon specifikimet themelore si ardruino UNO dhe më shumë. Karakteristika kryesore e ardruino101 është përshpejtuesi dhe xhiroskopi që ne do të përdorim në projektin tonë. Gjithashtu ky lloj ardruino ka bibliotekën e tij unike të kodit të quajtur CurrieIMU (Njësitë e brendshme të matjes) e cila përfshihet në zgjerimin e bibliotekës 101.
Me atë që tha, le të flasim për softuerin.
Software dhe biblioteka
Ardruino IDE përdor python si kodin e tij kryesor burimor. është gjithashtu kodi kryesor platvorm ku shkon shumica e ardruino. Ka shumë mësime në internet se si ta përdorni këtë softuer, kështu që unë ju rekomandoj që t'i hulumtoni së pari nëse jeni i ri në këtë program.
Me këtë tha se bibliotekat që ne po përdorim janë këto:
Nga menyja Sketch,> Përfshi Bibliotekën> Menaxhoni Bibliotekat … Në kutinë e futjes së tekstit shkruani
- 101 Në standard ardruino 101 nuk përfshihet automatikisht në ardruino IDE. Ne kemi nevojë për këtë shtesë të bibliotekës në mënyrë që të kodojmë llojin tonë ardruino.
-Adafruit NeoPixel për të koduar shiritat tanë të pixel Neo.
-Madgwick Për të lexuar të dhënat e papërpunuara dhe për të llogaritur këto të dhëna në papërpunim, katran dhe rrotull.
Shirita neo RGB
Lloji që do të përdor është një lloj 5 tension ose 5v. Me këtë 5v nuk kam nevojë për një burim energjie të zgjatur për të kontrolluar shiritat e mi. Në vend të kësaj unë do të përdor ardruino -n time si burim energjie për të kontrolluar dhe ndezur shiritat.
Këtu janë disa këshilla që duhet të dini para se të filloni me këto shirita.
Së pari ju do të keni nevojë për shirita Neodigital RGB të udhëhequr nga adafruit. Ky lloj shiritash mund të bashkëproblehet duke përdorur kode. Tjetra që duhet të dini është se ka një të pasme dhe një anë të përparme në këto shirita. Kjo e pasme dhe e përparme është e rëndësishme për bashkimin. Sigurohuni që të lidhni pjesën e përparme ku çelësi i shigjetës është drejtuar nga maja.
Këtu është një udhëzues se si t'i përdorni ato.
Ekzistojnë 3 pika lidhëse që duhet të keni parasysh lidhjen e tokëzimit (GND), lidhjen e tensionit (V) dhe lidhjen e kunjit (DIN).
Hapi 3: Vendosja e Komponentëve
Së pari ju duhet të printoni në mënyrë 3D përbërësin që mund të gjeni në kërkesat. Në këtë rast unë do të përdor PLA. Sigurohuni që diametri i objektit të përgjithshëm të jetë 11cm me 11cm. Kjo do të sigurojë që ardruino dhe shiritat të përshtaten në shpere. Vini re se çdo printer 3D përdor programe të ndryshme për të llogaritur procesin e printimit. Me këtë tha se skedari që përdorni mund të shkallëzohet ndryshe, kështu që mbani në mend.
Së dyti pas printimit sigurohuni që përbërësit të jenë në gjendje të mbyllen. Printimet 3D së bashku përbëjnë një sferë. Ata duhet të përshtaten bukur. Nëse komponenti do të humbasë, atëherë vendosni një shirit në anën e brendshme, në mënyrë që kapaku të mbushet. Dhe nëse është e trashë përdorni letër zmerile.
Së treti skematichs për ardruino dhe shiritat janë mjaft të lehtë. Ju do të përdorni 3 tela për të lidhur shiritat me ardruino. Vini re se vendet e vetme që bashkoj janë në shirita. jo në vetë Ardruino.
GND shkon në GND
DIN shkon në një kunj (në rastin tonë pin6 në ardruino)
5V shkon në 5V
Sigurohuni që sasia e shiritave led që përdorni është kapak në 30. Tashmë atëherë dhe nuk do të arrijë të ekzekutojë siç duhet kodin. Ju thjesht mund të shkurtoni çdo shirit të pangopur të shfaqur me një shenjë gërshërë.
Së katërti Çdo gjë duhet të përshtatet mirë në sferë. Ju mund të dëshironi që unë të bëj një kryqëzim midis 1 të printimit 3d në mënyrë që të shihni luginën dhe të vendosni një plastikë të parë në krye.
Hapi 4: Kodimi
Pra, tani ju duhet të keni të gjithë përbërësit e nevojshëm në bibliotekën tuaj.
Këtu është kodi që ju nevojitet për të drejtuar projektin. Rezultati duhet të duket si lidhja e videos që dërgoj në këtë faqe.
Burimi i këtij kodi mund të gjendet këtu. Ky projekt përfshin gjithashtu hapat jo të thjeshtë për të kuptuar më mirë kodin dhe algaritmën që qëndron pas përdorimeve.
#përfshi #përfshi #përfshi #përfshi
#përcaktoni PIN 6 // 11 piksela NeoPixel Strip
#përcakto PIN1 7 // 1 piksel NeoPixel Strip #përcakto NUMPIXELS 30 // Numri i pikselave #përcakto SAMPLE_RATE 25 // Shkalla e marrjes së mostrave për përshpejtues dhe xhiroskop
// Konfigurimi i Madgwick
Filtri Madgwick; mikro i gjatë i panënshkruarPerR leximi, mikrosparaprak; noton accelScale, gyroScale;
// Konfigurimi NeoPixel
Piksela Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixelsStatus = Adafruit_NeoPixel (1, 7, NEO_GRB + NEO_KHZ800);
// Hapësira me ngjyra
RGBConverter rgbConverter; dyshe h = 1; dyshe s = 1; dyshe v = 1; byte rgb [3];
// Llamba e Lëvizjes së Statusit
// Gjendja 0 -> Zgjidhni Ngjyrën -Katran // Gjendja 1 -> Zgjidhni Ngopjen -Rrotulloni // Gjendja 2 -> Zgjidhni Vlera -Yaw // Gjendja 3 -> Rregulloni ngjyrën e paqëndrueshme int statusLamp = 0;
void setup () {
Serial.filloj (9600);
// filloni IMU dhe filtroni
CurieIMU.filloj (); CurieIMU.setGyroRate (SAMPLE_RATE); CurieIMU.setAccelerometerRate (SAMPLE_RATE); filtër.filloj (SAMPLE_RATE);
// Vendosni diapazonin e përshpejtuesit në 2G
CurieIMU.setAccelerometerRange (2); // Vendosni gamën e xhiroskopit në 250 gradë/sekondë CurieIMU.setGyroRange (250);
CurieIMU.autoCalibrateAccelerometerOffset (X_AXIS, 0);
CurieIMU.autoCalibrateAccelerometerOffset (Y_AXIS, 0); CurieIMU.autoCalibrateAccelerometerOffset (Z_AXIS, 1); CurieIMU.autoCalibrateGyroOffset ();
CurieIMU.attachInterrupt (eventCallback);
CurieIMU.setDetectionThreshold (CURIE_IMU_TAP, 950); CurieIMU.ndërpret (CURIE_IMU_TAP);
// filloni variablat për të përshpejtuar azhurnimet në normën e saktë
microsPerReading = 1000000 / SAMPLE_RATE; microsPrecious = mikros ();
// Init NeoPixel 11
piksele.filloj (); piksele.shfaq ();
// Init NeoPixel 1
pixelsStatus.begin (); piksele.shfaq ();
// Shfaq statusin në px
setStatusPixel (statusLamp); }
lak void () {
int aix, aiy, aiz; // akcelerometër int gix, giy, giz; noton sëpatë, ay, az; noton gx, gy, gz; rrotull notash, katran, yaw; mikro të gjatë statike të panënshkruaraTani;
// kontrolloni nëse është koha për të lexuar të dhëna dhe azhurnuar filtrin
microsNow = micros (); nëse (microsNow - microsPrevious> = microsPerReading) {
// lexoni të dhëna të papërpunuara nga CurieIMU
CurieIMU.readMotionSensor (aix, aiy, aiz, gix, giy, giz);
// konvertohet nga të dhënat e papërpunuara në gravitet dhe gradë/njësi të dyta
ax = convertRawAcceleration (aix); ay = convertRawAcceleration (aiy); az = convertRawAcceleration (aiz); gx = convertRawGyro (gix); gy = convertRawGyro (giy); gz = convertRawGyro (giz);
// përditësoni filtrin, i cili llogarit orientimin
filter.updateIMU (gx, gy, gz, ax, ay, az);
// printoni titullin, katranin dhe rrotullimin
roll = filter.getRoll (); katran = filter.getPitch (); yaw = filter.getYaw ();
// rritje herën e mëparshme, kështu që ne mbajmë ritmin e duhur
microsPrevious = microsPrevious + microsPerReading;
// Vetëm nëse ndryshoni Ngjyra, Ngopja ose Vlera
if (statusLamp zgjidhni Hue if (pitch> = -90 && pitch <= 90 && statusLamp == 0) {// Transformoni këndin e katranit = katran + 90; // Merr kordine të ngjyrave nga këndet h = pitch / 180.0;}
// Kufizimet e këndeve
// rrotulloni vetëm -90º në 90º = 180º // Gjendja 1 -> zgjidhni Ngopjen nëse (rrotull> = -90 && rrotull <= 90 && statusLamp == 1) {// Transformoni këndin rrotull = rrotull + 90; // Merr kordina ngjyrash nga këndet s = roll / 180.0; }
// Gjendja 2 -> zgjidhni Vlera
nëse (statusLamp == 2) {// yaw 0º në 360º v = yaw / 360.0; }
// Shndërrohuni në rgb
rgbConverter.hsvToRgb (h, s, v, rgb); /* Serial.print ("Ngjyra:"); Serial.print (h); Serial.print (" -"); Serial.print (et); Serial.print (" -"); Serial.print (v); Serial.println ("");
Serial.print ("Orientimi:");
Serial.print (yaw); Serial.print (""); Serial.print (katran); Serial.print (""); Serial.println (roll); */
// Ndryshoni ngjyrën e pikselave
për (int px = 0; px <NUMPIXELS; px ++) {pixels.setPixelColor (px, pixels. Color (rgb [0], rgb [1], rgb [2])); piksele.shfaq (); }}
// Shfaq statusin në px
setStatusPixel (statusLamp); }}
float convertRawAcceleration (int aRaw) {
// meqenëse ne po përdorim gamën 2G // -2g harta në një vlerë të papërpunuar prej -32768 // +2g harta në një vlerë të papërpunuar prej 32767
noton a = (aRaw * 2.0) / 32768.0;
kthej a; }
float convertRawGyro (int gRaw) {
// pasi ne po përdorim diapazonin 250 gradë/sekonda // -250 harta në një vlerë të papërpunuar prej -32768 // +250 harta në një vlerë të papërpunuar prej 32767
noton g = (gRaw * 250.0) / 32768.0;
kthehu g; }
ngjarje statike e zbrazëtisëCallback ()
{// Zbuloni prekjen në të gjithë boshtin nëse (CurieIMU.getInterruptStatus (CURIE_IMU_TAP)) {Serial.print ("Prekni statusLamp të zbuluar:"); Serial.println (statusLamp);
// Ndrysho gjendjen
statusLamp ++;
// Gjendja fillestare
if (statusLamp> 3) {statusLamp = 0; }}}
void setStatusPixel (int statusPx)
{switch (statusPx) {case 0: pixelsStatus.setPixelColor (0, pixelsStatus. Color (150, 0, 0)); pixelsStatus.show (); pushim; rasti 1: pixelsStatus.setPixelColor (0, pixelsStatus. Color (0, 150, 0)); pixelsStatus.show (); pushim; rasti 2: pixelsStatus.setPixelColor (0, pixelsStatus. Color (0, 0, 150)); pixelsStatus.show (); pushim; rasti 3: pixelsStatus.setPixelColor (0, pixelsStatus. Color (0, 0, 0)); pixelsStatus.show (); pushim;
}
}
Recommended:
Ndryshimi i ngjyrës së dritës së unazës LED: 11 hapa
Ngjyra që Ndryshon Dritën e Unazës LED: Sot do të bëjmë një dritë unazë LED që ndryshon me ngjyra 20 inç. Unë e di që dritat unazore janë zakonisht në formë rrethore, por kjo do të jetë një shesh për t'i bërë gjërat pak më të lehta. Ky mini projekt është kryesisht për fotografët që kanë nevojë për bud
Ndryshimi i lehtë i ngjyrës LED "Qiri": 5 hapa (me fotografi)
Ndryshimi i lehtë i ngjyrës LED "Qiri": Kjo është një dritë e thjeshtë për ndryshimin e ngjyrës që është e shkëlqyeshme për fëmijët dhe të rriturit. Duket bukur në një dhomë me dritë të zbehtë, e mrekullueshme për pushimet dhe bën një dritë nate mjaft të ftohtë
Si të bëni një qark të thjeshtë automatik të dritës së natës duke përdorur LDR: 4 hapa
Si të bëni një qark të thjeshtë automatik të dritës së natës duke përdorur LDR: Përshëndetje, djema sot do t'ju tregoj se si të bëni një qark të thjeshtë automatik të dritës së natës duke përdorur një LDR (Rezistencë në varësi të dritës) dhe një mosfet, kështu që ndiqni dhe në hapat e ardhshëm, do të gjeni diagramin e qarkut automatik të dritës së natës, si dhe t
Bëni qark automatik të kalimit të dritës së natës duke përdorur Mosfet: 6 hapa (me fotografi)
Bëni qark Automatik të Ndriçimit të Dritës së Natës duke përdorur Mosfet: SI T M BAKNI NJ S ÇELWSIN AUTOMATIK TIGH DREJTS SIGH NETS ME MOSFE Mirë, miq në këtë projekt unë do t'ju tregoj një diagram qark të thjeshtë se si të bëni një ndërprerës automatik të aktivizuar gjatë natës duke përdorur një mosfet dhe disa përbërës të vegjël që kam arritur shpetim nga ar
Ndryshimi i ngjyrës së dritës USB: 5 hapa
Drita USB që Ndryshon Ngjyrën: Këtu është një dritë e bërë nga një shishe plastike, vijë peshkimi, një kabllo të vjetër USB dhe një ndryshim i ngadalshëm i ngjyrës RGB LED. Fije najloni (vija e peshkimit) nuk ka të njëjtin efekt si fijet optike të vërteta. Ka më shumë degradim të sinjalit të lehtë përgjatë tij