Talaan ng mga Nilalaman:
- Hakbang 1: Mga Kinakailangan
- Hakbang 2: Pag-unawa sa Hardware at Software
- Hakbang 3: Pag-set up ng Mga Components
- Hakbang 4: Pag-coding
Video: Pagbabago ng Kulay ng Night Light Gamit ang Ardruino 101: 4 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Sa proyektong ito, gagawa ka ng isang lampara sa gabi gamit ang ardruino, Adafruit neo rgb Strips at isang 3D printer.
Tandaan na ang hindi maipapasok ay puro para sa proyekto ng aking paaralan. Ang code para sa proyektong ito ay batay sa ibang proyekto. Sa sinabi kong hindi ako dalubhasa pagdating kay Ardruino.
Hakbang 1: Mga Kinakailangan
Para sa proyektong ito kakailanganin mo ang sumusunod na hardware at mga tool
Hardware:
1 - Isang ardruino101 (sa US) o isang Genuino101 (para sa labas ng US).
2 - NeoPixel rgb led strips mula sa adafruit (5 volt).
3 - Isang ardruino usb konektor (i-type ang B sa Isang konektor).
4 - Isang software mula sa Ardruino, Ardruino IDE Sa tutorial na ito gagamitin namin ang 1.8.5 na bersyon. Ang mga kinakailangan sa library ng software ay: 101, Adafruit NeoPixel at Madgwick.
5 -At isang bagay na mailalagay ang iyong hardware. Sa kasong ito ay gumagamit ako ng isang 3D printer. Ang file para sa 3D print na ito ay matatagpuan sa mga paglalarawan na tinatawag na "Lamp Head". Tandaan na ang format ng file na ito ay hindi handa sa 3D print. Nakasalalay sa iyong mga 3D printer dapat mo munang patakbuhin ang itinalagang 3d print software sa 3D na object muna. Minsan ang laki ng naka-print na 3D ay i-reset. kaya siguraduhin na ang diameter ay nakatakda sa 11 cm ng 11 cm.
6 - Pangunahing soldering kit.
Hakbang 2: Pag-unawa sa Hardware at Software
Ardruin / Genuino101
Linawin lamang ang Ardruino101 at genuino101 ay exacly pareho sa tabi ng mga pangalan. Parehong may parehong pagtutukoy at gumagamit ng parehong software.
Ang Ardruino101 ay nagtataglay ng mga pangunahing panoorin tulad ng ardruino UNO at marami pa. Ang pangunahing tampok ng ardruino101 ay ang accelerometer at gyroscope na gagamitin namin sa aming proyekto. Gayundin ang ganitong uri ng ardruino ay mayroong natatanging library ng code na tinatawag na CurrieIMU (Panloob na Mga Yunit ng pagsukat) na kasama sa extension ng library 101.
Sa nasabing sinabi ay pinag-uusapan ang tungkol sa software.
Larware at aklatan
Ang Ardruino IDE ay gumagamit ng python dahil pangunahing source code ito. ito rin ang pangunahing code ng platvorm kung saan tumatakbo ang karamihan sa ardruino. Mayroong maraming mga tutorial sa online kung paano gamitin ang software na ito kaya inirerekumenda ko sa iyo na saliksikin ang mga iyon kung bago ka sa programe na ito.
Sinabi na ang mga ginagamit naming aklatan ay ang mga sumusunod:
Mula sa menu ng Sketch,> Isama ang Library> Pamahalaan ang Mga Aklatan … Sa uri ng kahon ng input ng teksto sa
- 101 Sa standart ang ardruino 101 ay hindi awtomatikong kasama sa ardruino IDE. Kailangan namin ang extension ng library na ito upang mai-code ang aming uri ng ardruino.
-Adafruit NeoPixel upang mai-code ang aming Neo pixel strips.
-Madgwick Upang mabasa ang hilaw na data at upang makalkula ang data na ito sa raw, pitch at roll.
Neo RGB strips
Ang uri na gagamitin ko ay isang 5 boltahe o 5v na uri. Sa 5v na ito hindi ko kailangan ng isang pinahabang mapagkukunan ng kuryente upang makontrol ang aking mga piraso. Sa halip ay gagamitin ko ang aking ardruino bilang mapagkukunan ng kuryente upang makontrol at magaan ang mga piraso.
Narito ang ilang mga tip na kailangan mong malaman bago ka magsimula sa mga strip na ito.
Una kailangan mo ng isang Neodigital RGB na humantong mga piraso mula sa adafruit. Ang ganitong uri ng mga piraso ay maaaring gamitin sa paggamit ng mga code. Susunod na kailangan mong malaman ay na mayroong isang backside at isang frontside sa mga strips na ito. Ang likod at harapang ito ay mahalaga para sa paghihinang. Tiyaking solder mo ang front side kung saan ang arrow key ay tumuturo ang layo mula sa tip.
Narito ang isang gabay sa kung paano gamitin ang mga ito.
Mayroong 3 solder point na kailangan mong tandaan Ang koneksyon sa lupa (GND), Koneksyon ng Boltahe (V) at Koneksyon ng Pin (DIN).
Hakbang 3: Pag-set up ng Mga Components
Una kailangan mong i-print ang 3d ng sangkap na maaari mong makita sa mga kinakailangan. Sa kasong ito, gagamitin ko ang PLA. Siguraduhin na ang diameter ng labis na bagay ay 11cm ng 11cm. Tinitiyak nito na ang ardruino at ang mga strip ay magkakasya sa shpere. Tandaan na ang bawat 3D printer ay gumagamit ng mga difrent softwares upang makalkula ang proseso ng pag-print. Sa sinabi na ang file na iyong ginagamit ay maaaring ma-scale nang difrently kaya't tandaan mo iyon.
Pangalawa pagkatapos ng pag-print siguraduhin na ang mga sangkap ay maaaring magsara. Ang 3D na mga kopya nang magkasama ay bumubuo ng isang globo. Dapat silang magkasya nang maayos. Kung ang componten ay mawawala pagkatapos ay mag-ad ng ilang mga tape sa panloob na bahagi kaya napunan ang takip. At kung ito ay makapal na paggamit ng papel de liha.
Pangatlo ang mga skematich para sa ardruino at ang mga piraso ay medyo madali. Gumagamit ka ng 3 mga wire upang ikonekta ang mga piraso sa ardruino. Tandaan na ang mga lugar lamang na ako na maghinang ay nasa mga piraso. hindi sa Ardruino mismo.
Ang GND ay pupunta sa GND
Ang DIN ay pupunta sa isang Pin (sa aming kaso pin6 sa ardruino)
Ang 5V ay pupunta sa 5V
Siguraduhin na ang halaga ng led strips na iyong ginagamit ay cap sa 30. Ano pa man pagkatapos at mabibigo itong maayos na maisagawa ang code. Maaari mo lamang i-cut ng anumang hindi kinakailangang mga piraso ng displayd na may markang gunting.
Ang ika-apat na Evrything ay dapat magkasya nang maayos sa globo. Maaari mong gawin akong gumawa ng isang intersection sa pagitan ng 1 ng 3d print upang makita ang labangan at ilagay ang isang makikita sa labangan ng plastik sa itaas.
Hakbang 4: Pag-coding
Kaya sa ngayon dapat ay mayroon ka ng lahat ng mga sangkap na kinakailangan sa iyong silid-aklatan.
Narito ang code na kakailanganin mo upang mapatakbo ang proyekto. Ang resulta ay dapat magmukhang link ng video na ipinapadala ko sa pahinang ito.
Ang mapagkukunan ng code na ito ay matatagpuan dito. Kasama rin sa proyektong ito ang mga mahihirap na hakbang upang mas maunawaan ang code at algaritme sa likod ng mga gamit.
# isama # isama # isama # isama
# tukuyin ang PIN 6 // 11 pixel na NeoPixel Strip
#define PIN1 7 // 1 pixel NeoPixel Strip #define NUMPIXELS 30 // Bilang ng mga píxels #define SAMPLE_RATE 25 // Sampling rate para sa accelerometer at gyroscope
// Madgwick configure
Madgwick filter; unsigned mahabang microsPerReading, microsPrevious; float accelScale, gyroScale;
// NeoPixel config
Adafruit_NeoPixel pixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixelStatus = Adafruit_NeoPixel (1, 7, NEO_GRB + NEO_KHZ800);
// Mga puwang ng kulay
RGBConverter rgbConverter; doble h = 1; doble s = 1; doble v = 1; byte rgb [3];
// Lampara ng Paggalaw ng Katayuan
// State 0 -> Select Hue - Pitch // State 1 -> Select saturation - Roll // State 2 -> Select Value - Yaw // State 3 -> Fix color pabagu-bago int statusLamp = 0;
walang bisa ang pag-setup () {
Serial.begin (9600);
// simulan ang IMU at filter
CurieIMU.begin (); CurieIMU.setGyroRate (SAMPLE_RATE); CurieIMU.setAccelerometerRate (SAMPLE_RATE); filter.begin (SAMPLE_RATE);
// Itakda ang saklaw ng accelerometer sa 2G
CurieIMU.setAccelerometerRange (2); // Itakda ang saklaw ng gyroscope sa 250 degree / segundo 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);
// ipasimula ang mga variable upang mag-bilis ng mga pag-update upang maitama ang rate
microsPerReading = 1000000 / SAMPLE_RATE; microsPrevious = micros ();
// Init NeoPixel 11
pix.begin (); pix.show ();
// Init NeoPixel 1
pixelStatus.begin (); pix.show ();
// Ipakita ang katayuan sa px
setStatusPixel (statusLamp); }
void loop () {
int aix, aiy, aiz; // accelerometer int gix, giy, giz; float ax, ay, az; float gx, gy, gz; float roll, pitch, yaw; static unsigned mahabang microsNow;
// suriin kung oras na upang basahin ang data at i-update ang filter
microsNow = micros (); kung (microsNow - microsPrevious> = microsPerReading) {
// basahin ang raw data mula sa CurieIMU
CurieIMU.readMotionSensor (aix, aiy, aiz, gix, giy, giz);
// convert mula sa hilaw na data patungo sa gravity at degree / second unit
palakol = convertRawAcceleration (aix); ay = convertRawAcceleration (aiy); az = convertRawAcceleration (aiz); gx = convertRawGyro (gix); gy = convertRawGyro (giy); gz = convertRawGyro (giz);
// i-update ang filter, na tumutukoy sa oryentasyon
filter.updateIMU (gx, gy, gz, ax, ay, az);
// print the heading, pitch and roll
roll = filter.getRoll (); pitch = filter.getPitch (); yaw = filter.getYaw ();
// pagtaas ng nakaraang oras, kaya pinapanatili namin ang tamang bilis
microsPrevious = microsPrevious + microsPerReading;
// Tanging kung baguhin ang Hue, saturation o Halaga
kung (statusLamp select Hue if (pitch> = -90 && pitch <= 90 && statusLamp == 0) {// Transform anggulo ng pitch = pitch + 90; // Nakakakuha ng mga cordinate ng kulay mula sa mga anggulo h = pitch / 180.0;}
// Mga paghihigpit sa Angles
// roll only -90º to 90º = 180º // State 1 -> piliin ang saturation kung (roll> = -90 && roll <= 90 && statusLamp == 1) {// Transform anggulo roll = roll + 90; // Nakakakuha ng mga cordinate ng kulay mula sa mga anggulo s = roll / 180.0; }
// State 2 -> piliin ang Halaga
kung (statusLamp == 2) {// yaw 0º hanggang 360º v = yaw / 360.0; }
// I-convert sa rgb
rgbConverter.hsvToRgb (h, s, v, rgb); / * Serial.print ("Kulay:"); Serial.print (h); Serial.print ("-"); Serial.print (s); Serial.print ("-"); Serial.print (v); Serial.println ("");
Serial.print ("Oryentasyon:");
Serial.print (yaw); Serial.print (""); Serial.print (pitch); Serial.print (""); Serial.println (roll); * /
// Baguhin ang kulay ng mga pixel
para sa (int px = 0; px <NUMPIXELS; px ++) {pix.setPixelColor (px, pix. Color (rgb [0], rgb [1], rgb [2])); pix.show (); }}
// Ipakita ang katayuan sa px
setStatusPixel (statusLamp); }}
float convertRawAcceleration (int aRaw) {
// dahil gumagamit kami ng 2G saklaw // -2g mga mapa sa isang hilaw na halaga ng -32768 // + 2g mga mapa sa isang hilaw na halaga ng 32767
float a = (aRaw * 2.0) / 32768.0;
ibalik a; }
float convertRawGyro (int gRaw) {
// dahil gumagamit kami ng saklaw na 250 degree / segundo // -250 na mga mapa sa isang hilaw na halagang -32768 // +250 na mga mapa sa isang hilaw na halaga ng 32767
float g = (gRaw * 250.0) / 32768.0;
bumalik g; }
static void eventCallback ()
{// Detect tap in all axis if (CurieIMU.getInterruptStatus (CURIE_IMU_TAP)) {Serial.print ("Tapikin ang napansin na statusLamp:"); Serial.println (statusLamp);
// Baguhin ang estado
statusLamp ++;
// Init state
kung (statusLamp> 3) {statusLamp = 0; }}}
void setStatusPixel (int statusPx)
{switch (statusPx) {case 0: pixelStatus.setPixelColor (0, pixelStatus. Color (150, 0, 0)); pixelStatus.show (); pahinga; case 1: pixelStatus.setPixelColor (0, pixelStatus. Color (0, 150, 0)); pixelStatus.show (); pahinga; case 2: pixelStatus.setPixelColor (0, pixelStatus. Color (0, 0, 150)); pixelStatus.show (); pahinga; case 3: pixelStatus.setPixelColor (0, pixelStatus. Color (0, 0, 0)); pixelStatus.show (); pahinga;
}
}
Inirerekumendang:
Tagapili ng Kulay ng Arduino RGB - Pumili ng Mga Kulay Mula sa Tunay na Mga Bagay sa Buhay: 7 Mga Hakbang (na may Mga Larawan)
Tagapili ng Kulay ng Arduino RGB - Pumili ng Mga Kulay Mula sa Mga Bagay na Tunay na Buhay: Madaling pumili ng mga kulay mula sa mga pisikal na bagay gamit ang tagapili ng kulay na RGB na batay sa Arduino, na nagbibigay-daan sa iyo upang muling likhain ang mga kulay na nakikita mo sa mga totoong bagay sa iyong pc o mobile phone. Itulak lamang ang isang pindutan upang i-scan ang kulay ng object gamit ang isang murang TCS347
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c
Mga Kulay ng Pagbabago ng Kulay ng Box na May LED-strips at Arduino: 5 Hakbang (na may Mga Larawan)
Mga Kulay ng Pagbabago ng Kulay ng Kahon Sa Mga LED-strip at Arduino: Nagsimula ito nang kailangan ko ng dagdag na imbakan sa susunod at sa itaas ng isang mesa, ngunit nais kong bigyan ito ng ilang espesyal na disenyo. Bakit hindi mo gamitin ang mga kamangha-manghang mga LED strip na maaaring isa-isang matugunan at kumuha ng anumang kulay? Nagbibigay ako ng ilang mga tala tungkol sa istante mismo sa
Mga Kulay ng Pagbabago ng Kulay at Demo ng Security ng Bluetooth: 7 Hakbang (na may Mga Larawan)
Mga Kulay ng Pagbabago ng Kulay at Demo ng Security ng Bluetooth: Sa Instructable na ito, ipapaliwanag ko kung paano lumikha ng isang pagpapalit ng ilaw na nagpapakita ng kulay na kontrolado nang malayuan sa pamamagitan ng Bluetooth gamit ang isang Android (Samsung, Google, atbp.) O Apple smartphone o tablet. Ito ay isang mura proyekto, mahusay para sa mga kabataan,
Pagbabago ng Kulay ng Shadowbox Light: 5 Hakbang (na may Mga Larawan)
Nagbabago ng Kulay ng Shadowbox Light: Pagkatapos ng bakasyon, natapos namin ang isang labis na timbang ng mga hindi nagamit na mga frame ng shadowbox mula sa Ikea. Kaya, napagpasyahan kong gumawa ng regalo sa kaarawan para sa aking kapatid sa isa sa kanila. Ang ideya ay upang makagawa ng isang tampok na pinagagana ng baterya, nag-iilaw na tampok sa logo ng kanyang banda at