Satura rādītājs:
- 1. darbība. Prasības
- 2. darbība. Aparatūras un programmatūras izpratne
- 3. darbība: komponentu iestatīšana
- 4. solis: kodēšana
Video: Krāsu maiņas nakts gaisma, izmantojot Ardruino 101: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šajā projektā jūs izgatavosit nakts lampu, izmantojot ardruino, Adafruit neo rgb Strips un 3D printeri.
Ņemiet vērā, ka šis neatkārtojamais materiāls ir paredzēts tikai manam skolas projektam. Šī projekta kods ir balstīts uz citu projektu. Ņemot to vērā, es neesmu eksperts, runājot par Ardruino.
1. darbība. Prasības
Šim projektam jums būs nepieciešama šāda aparatūra un rīki
Aparatūra:
1 - ardruino101 (ASV) vai Genuino101 (ārpus ASV).
2 - NeoPixel rgb led sloksnes no adafruit (5 volti).
3 - Ardruino USB savienotājs (B tipa A savienotājs).
4 - programmatūra no Ardruino, Ardruino IDE Šajā apmācībā mēs izmantosim 1.8.5 versiju. Programmatūras bibliotēkas prasības ir šādas: 101, Adafruit NeoPixel un Madgwick.
5 -Un objekts, kurā ievietot aparatūru. Šajā gadījumā es izmantošu 3D printeri. Šīs 3D izdrukas fails atrodas aprakstos ar nosaukumu "Lamp Head". Ņemiet vērā, ka šis faila formāts nav gatavs 3D drukāšanai. Atkarībā no jūsu 3D printeriem vispirms 3D objektā vispirms jāpalaiž norādītā 3D drukas programmatūra. Dažreiz 3D drukas skala tiks atiestatīta. tāpēc pārliecinieties, ka diametrs ir iestatīts uz 11 cm līdz 11 cm.
6 - Pamata lodēšanas komplekts.
2. darbība. Aparatūras un programmatūras izpratne
Ardrūns/Genuino101
Tikai, lai precizētu, blakus nosaukumiem Ardruino101 un genuino101 ir vienādi. Abiem ir vienādas specifikācijas un tiek izmantota viena un tā pati programmatūra.
Ardruino101 ir tādas pamata specifikācijas kā ardruino UNO un citas. Ardruino101 galvenā iezīme ir akselerometrs un žiroskops, ko mēs izmantosim mūsu projektā. Arī šāda veida ardruino ir unikāla kodu bibliotēka ar nosaukumu CurrieIMU (iekšējās mērvienības), kas ir iekļauta bibliotēkas paplašinājumā 101.
Ņemot to vērā, runāsim par programmatūru.
Programmatūra un bibliotēkas
Ardruino IDE kā galveno avota kodu izmanto python. tas ir arī galvenais kods platvorm, kur skrien lielākā daļa ardruino. Tiešsaistē ir daudz pamācību par šīs programmatūras izmantošanu, tāpēc es iesaku vispirms izpētīt tās, ja esat šīs programmas lietotājs.
Ņemot to vērā, mūsu izmantotās bibliotēkas ir šādas:
Izvēlnē Skice izvēlieties> Iekļaut bibliotēku> Pārvaldīt bibliotēkas … Teksta ievades lodziņā ierakstiet
- 101 Standartā ardruino 101 netiek automātiski iekļauts ardruino IDE. Šis bibliotēkas paplašinājums mums ir nepieciešams, lai kodētu mūsu ardruino tipu.
-Adafruit NeoPixel, lai kodētu mūsu Neo pikseļu sloksnes.
-Madgwick Lai nolasītu neapstrādātus datus un aprēķinātu šos datus neapstrādātiem, soli pa solim.
Neo RGB sloksnes
I tips, kuru izmantošu, ir 5 sprieguma vai 5 V tips. Ar šo 5v man nav nepieciešams pagarināts strāvas avots, lai kontrolētu manas sloksnes. Tā vietā es izmantošu savu ardruino kā strāvas avotu, lai kontrolētu un apgaismotu sloksnes.
Šeit ir daži padomi, kas jums jāzina, pirms sākat lietot šīs sloksnes.
Vispirms jums būs nepieciešamas Neodigital RGB LED sloksnes no adafruit. Šāda veida sloksnes ir kodējamas, izmantojot kodus. Tālāk jums jāzina, ka uz šīm sloksnēm ir aizmugure un priekšpuse. Šī aizmugure un priekšpuse ir svarīga lodēšanai. Pārliecinieties, ka lodējat priekšējo pusi, kur bulttaustiņš ir vērsts prom no gala.
Šeit ir rokasgrāmata par to izmantošanu.
Jums ir jāpatur prātā 3 lodēšanas punkti Zemes savienojums (GND), Sprieguma savienojums (V) un Tapas savienojums (DIN).
3. darbība: komponentu iestatīšana
Vispirms jums būs jāizdrukā 3D sastāvdaļa, kuru varat atrast prasībās. Šajā gadījumā es izmantošu PLA. Pārliecinieties, vai kopējā objekta diametrs ir 11 cm līdz 11 cm. Tas nodrošina, ka ardruino un sloksnes iederas shpere. Ņemiet vērā, ka katrs 3D printeris drukāšanas procesa aprēķināšanai izmanto dažādas programmatūras. Ņemot to vērā, jūsu izmantotais fails var tikt mērogots atšķirīgi, tāpēc paturiet to prātā.
Otrkārt pēc drukāšanas pārliecinieties, vai sastāvdaļas var aizvērt. 3D izdrukas kopā veido sfēru. Viņiem vajadzētu labi iederēties. Ja kompozītmateriāls ir jāzaudē, piestipriniet līmlenti uz iekšpusi, lai vāciņš būtu piepildīts. Un, ja tas ir pārāk biezs, izmantojiet smilšpapīru.
Treškārt, ardruino un sloksņu skematichs ir diezgan viegli. Jūs izmantosit 3 vadus, lai savienotu sloksnes ardruino. Ņemiet vērā, ka vienīgās lodēšanas vietas ir uz sloksnēm. nevis uz paša Ardruino.
GND iet uz GND
DIN iet uz tapu (mūsu gadījumā pin6 uz ardruino)
5V iet uz 5V
Pārliecinieties, vai izmantoto LED sloksņu daudzums ir 30 griesti. Pēc tam vairs neizdosies pareizi izpildīt kodu. Jūs varat vienkārši izgriezt visas nesagrieztās sloksnes, kuras nav redzamas ar šķērveida zīmi.
Ceturtajam visam vajadzētu labi iederēties sfērā. Jums varētu patikt, ka es izveidoju krustojumu starp 1 no 3D drukas, lai redzētu tekni un uz augšu novietotu redzamu siles plastmasu.
4. solis: kodēšana
Tātad līdz šim jūsu bibliotēkā vajadzētu būt visiem nepieciešamajiem komponentiem.
Šeit ir kods, kas jums būs nepieciešams, lai palaistu projektu. Rezultātam vajadzētu izskatīties kā video saitei, ko es sūtu šajā lapā.
Šī koda avotu var atrast šeit. Šis projekts ietver arī nepabeigtos soļus, lai labāk izprastu kodu un aļģiju, kas ir lietošanas pamatā.
#iekļaut #iekļaut #iekļaut #iekļaut
#define PIN 6 // 11 pikseļi NeoPixel Strip
#define PIN1 7 // 1 pikseļu NeoPixel Strip #define NUMPIXELS 30 // Pikseļu skaits #define SAMPLE_RATE 25 // Akselerometra un žiroskopa paraugu ņemšanas ātrums
// Madgwick konfigurācija
Madgwick filtrs; neparakstīts garš microsPerReading, microsPrevious; float accelScale, gyroScale;
// NeoPixel konfigurācija
Adafruit_NeoPixel pikseļi = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixelsStatus = Adafruit_NeoPixel (1, 7, NEO_GRB + NEO_KHZ800);
// Krāsu telpas
RGBConverter rgbConverter; divkāršs h = 1; dubultā s = 1; dubultā v = 1; baits rgb [3];
// Statusa kustības lampa
// Stāvoklis 0 -> Atlasīt nokrāsu -piķis // Stāvoklis 1 -> Atlasīt piesātinājumu -rullītis // Stāvoklis 2 -> Atlasīt vērtību -Pagriezties // Stāvoklis 3 -> Labot krāsu gaistošs int statussLamp = 0;
void setup () {
Sērijas sākums (9600);
// palaidiet IMU un filtrējiet
CurieIMU.begin (); CurieIMU.setGyroRate (SAMPLE_RATE); CurieIMU.setAccelerometerRate (SAMPLE_RATE); filter.begin (SAMPLE_RATE);
// Iestatiet akselerometra diapazonu uz 2G
CurieIMU.setAccelerometerRange (2); // Iestatiet žiroskopa diapazonu uz 250 grādiem sekundē 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.interrupts (CURIE_IMU_TAP);
// inicializēt mainīgos, lai paātrinātu atjauninājumus, lai panāktu pareizu ātrumu
microsPerReading = 1000000 / SAMPLE_RATE; microsPrevious = micros ();
// Init NeoPixel 11
pikseļi.sākas (); pikseļi.parādīt ();
// Init NeoPixel 1
pixelsStatus.begin (); pikseļi.parādīt ();
// Rādīt statusu pikseļos
setStatusPixel (statusLamp); }
void loop () {
int aix, aiy, aiz; // akselerometrs int gix, giy, giz; pludiņš cirvis, ay, az; pludiņš gx, gy, gz; pludiņa rullis, piķis, pagriešanās; statisks neparakstīts garš microsNow;
// pārbaudiet, vai ir pienācis laiks lasīt datus un atjaunināt filtru
microsNow = micros (); if (microsNow - microsPrevious> = microsPerReading) {
// lasīt neapstrādātus datus no CurieIMU
CurieIMU.readMotionSensor (aix, aiy, aiz, gix, giy, giz);
// konvertēt no neapstrādātiem datiem uz gravitācijas un grādu/sekundes vienībām
ax = convertRawAcceleration (aix); ay = convertRawAcceleration (aiy); az = convertRawAcceleration (aiz); gx = convertRawGyro (gix); gy = convertRawGyro (giy); gz = convertRawGyro (giz);
// atjauniniet filtru, kas aprēķina orientāciju
filter.updateIMU (gx, gy, gz, ax, ay, az);
// izdrukāt virsrakstu, piķi un rullīti
roll = filter.getRoll (); piķis = filtrs.getPitch (); grieziens = filtrs.getYaw ();
// pieaugums iepriekšējā reizē, tāpēc mēs saglabājam pareizu tempu
microsPrevious = microsPrevious + microsPerReading;
// Tikai tad, ja tiek mainīta nokrāsa, piesātinājums vai vērtība
if (statusLamp izvēlieties nokrāsu, ja (piķis> = -90 && solis <= 90 && statusLamp == 0) {// Pārveidot leņķa piķi = piķis + 90; // Iegūst krāsu koordinātas no leņķiem h = piķis / 180,0;}
// Leņķu ierobežojumi
// ritināt tikai no -90º līdz 90º = 180º // 1. stāvoklis -> izvēlieties Piesātinājums, ja (rullis> = -90 && rullis <= 90 && statusLamp == 1) {// Pārveidot leņķa rullīti = rullis + 90; // Iegūst krāsu koordinātas no leņķiem s = roll / 180.0; }
// 2. stāvoklis -> atlasiet Vērtība
if (statusLamp == 2) {// pagriešanās no 0º līdz 360º v = pagriešanās / 360,0; }
// Pārvērst par rgb
rgbConverter.hsvToRgb (h, s, v, rgb); /* Serial.print ("Krāsa:"); Sērijas nospiedums (h); Serial.print (" -"); Sērijas nospiedums (-i); Serial.print (" -"); Sērijas nospiedums (v); Serial.println ("");
Serial.print ("Orientācija:");
Sērijas nospiedums (pagrieziens); Serial.print (""); Sērijas nospiedums (piķis); Serial.print (""); Serial.println (roll); */
// Mainīt pikseļu krāsu
par (int px = 0; px <NUMPIXELS; px ++) {pixels.setPixelColor (px, pixels. Color (rgb [0], rgb [1], rgb [2]))); pikseļi.parādīt (); }}
// Rādīt statusu pikseļos
setStatusPixel (statusLamp); }}
float convertRawAcceleration (int aRaw) {
// tā kā mēs izmantojam 2G diapazonu // -2g kartes līdz neapstrādātai vērtībai -32768 // +2g kartes līdz neapstrādātai vērtībai 32767
pludiņš a = (aRaw * 2.0) / 32768.0;
atgriezt a; }
float convertRawGyro (int gRaw) {
// tā kā mēs izmantojam 250 grādu/sekunžu diapazonu // -250 kartes līdz neapstrādātai vērtībai -32768 // +250 kartes līdz neapstrādātai vērtībai 32767
pludiņš g = (gRaw * 250,0) / 32768,0;
atgriešanās g; }
static void eventCallback ()
{// Atklāt pieskārienu visās asīs, ja (CurieIMU.getInterruptStatus (CURIE_IMU_TAP)) {Serial.print ("Pieskarieties konstatētajai statusa lampai:"); Serial.println (statusLamp);
// Mainīt stāvokli
statusLamp ++;
// Sākotnējais stāvoklis
ja (statusLamp> 3) {statusLamp = 0; }}}
void setStatusPixel (int statusPx)
{switch (statusPx) {case 0: pixelsStatus.setPixelColor (0, pixelsStatus. Color (150, 0, 0)); pixelsStatus.show (); pārtraukums; 1. gadījums: pixelsStatus.setPixelColor (0, pixelsStatus. Color (0, 150, 0)); pixelsStatus.show (); pārtraukums; 2. gadījums: pixelsStatus.setPixelColor (0, pixelsStatus. Color (0, 0, 150)); pixelsStatus.show (); pārtraukums; 3. gadījums: pixelsStatus.setPixelColor (0, pixelsStatus. Color (0, 0, 0)); pixelsStatus.show (); pārtraukums;
}
}
Ieteicams:
Krāsu maiņas LED gredzena gaisma: 11 soļi
Krāsu maiņas LED gredzena gaisma: Šodien mēs izgatavosim 20 collu krāsu mainīgu LED gredzena gaismu. Es zinu, ka gredzenu gaismas parasti ir apļveida, bet šis būs kvadrāts, lai padarītu lietas nedaudz vieglākas. Šis mini projekts galvenokārt ir paredzēts fotogrāfiem, kuriem nepieciešams pumpurs
DIY krāsu maiņas neapstrādāta koka LED plaukts: 10 soļi (ar attēliem)
DIY krāsu maiņas neapstrādāta koka LED plaukts: šajā pamācībā es soli pa solim parādīšu, kā padarīt šo skaisto, unikālu krāsu mainīgu neapstrādāta koka LED plauktu. Šo projektu bija ļoti jautri uztaisīt, un esmu ļoti apmierināts ar gatavo produktu. Kopumā šis projekts nemaksās
Krāsu maiņas kastes plaukti ar LED sloksnēm un Arduino: 5 soļi (ar attēliem)
Krāsu maiņas kastes plaukti ar LED sloksnēm un Arduino: Tas sākās, jo man vajadzēja papildu krātuvi blakus un virs galda, bet es gribēju tam piešķirt īpašu dizainu. Kāpēc gan neizmantot šīs apbrīnojamās LED sloksnes, kuras var individuāli uzrunāt un uzņemt jebkuru krāsu? Es sniegšu dažas piezīmes par pašu plauktu
Kameras pārveidošana par “militāro nakts redzamību”, nakts redzamības efekta pievienošana vai nakts redzamības režīma izveide jebkurā kamerā !!!: 3 soļi
Kameras pārveidošana par “militāro nakts redzamību”, nakts redzamības efekta pievienošana vai nakts redzamības režīma izveide jebkurā kamerā !!! *Ja jums nepieciešama palīdzība, lūdzu, rakstiet uz e -pastu: [email protected] Es runāju angļu, franču, japāņu, spāņu valodā un zinu citas valodas, ja
RGB LED Lēta un vienkārša krāsu maiņas nakts gaisma: 3 soļi
RGB LED lēta un vienkārša krāsu maiņas nakts gaisma: šis projekts bija diezgan vienkāršs, kad es to izdomāju un izdomāju, un tas aizņēma kādu laiku. Ideja ir spēt mainīt krāsu ar slēdzi un arī LED aptumšošanas iespējas. Šie ir priekšmeti, kas jums būs nepieciešami, lai