Orodha ya maudhui:

TAI YA KIWANGO SIYO WALA ISIYO NA KIWANGO CHA MAGNETIC FLEXIBLE: Hatua 8 (zenye Picha)
TAI YA KIWANGO SIYO WALA ISIYO NA KIWANGO CHA MAGNETIC FLEXIBLE: Hatua 8 (zenye Picha)

Video: TAI YA KIWANGO SIYO WALA ISIYO NA KIWANGO CHA MAGNETIC FLEXIBLE: Hatua 8 (zenye Picha)

Video: TAI YA KIWANGO SIYO WALA ISIYO NA KIWANGO CHA MAGNETIC FLEXIBLE: Hatua 8 (zenye Picha)
Video: 5 УДИВИТЕЛЬНЫХ ЖИЗНЕННЫХ ХАКОВ # 2 2024, Julai
Anonim
Taa isiyokuwa na waya isiyokuwa na msukumo yenye mkono mwepesi wa MAGNETIC
Taa isiyokuwa na waya isiyokuwa na msukumo yenye mkono mwepesi wa MAGNETIC
Taa isiyokuwa na waya isiyokuwa na msukumo yenye mkono mwepesi wa MAGNETIC
Taa isiyokuwa na waya isiyokuwa na msukumo yenye mkono mwepesi wa MAGNETIC

Mradi huu ulifanywa kutoka kwa taa iliyovunjika & nodeMCU. Taa hii ya mapambo inaweza kubadilishwa kwa mwelekeo wowote na kushikamana na vifaa vya sumaku au kuweka mezani. Inaweza kudhibitiwa kwa njia mbili kama ifuatavyo:

- Njia ya kudhibiti bila waya, kama kiunga cha YouTube hapa chini:

- Njia ya kudhibiti maingiliano, kama kiungo cha YouTube hapa chini:

Hatua ya 1: BILI YA VIFAA

Orodha ya B. O. M:

Picha
Picha

Kwa hali ya maingiliano, ninatumia MPU6050 kupata data ya gyro kutoka NodeMCU kudhibiti rangi ya taa.

Picha ya vifaa vya mradi huu:

Picha
Picha

Hatua ya 2: MZUNGUKO

MZUNGUKO
MZUNGUKO

Huu ni mzunguko rahisi sana, kama Fritzing schematic hapo juu, na 1 RGB Led aina ya kawaida ya anode, kikomo cha tatu cha wapinzani wa sasa R100 & MPU6050.

Kiakisi hutumiwa kutoka kwa taa yoyote iliyovunjika & kushikamana na msingi wa nodeMCU kwa bolts 2 au kushikamana na gundi kali.

Kazi ya ufungaji:

Picha
Picha
Picha
Picha

Mpangilio hapa chini:

Picha
Picha

Hatua ya 3: BASE YA MAGNETIC - ARM FLEXIBLE

BASE YA MAGNETIC - ARLEXIBLE ARM
BASE YA MAGNETIC - ARLEXIBLE ARM

Mkono rahisi unaweza kutumiwa tena kutoka kwa bomba zilizovunjika za maji. Kitu kama hicho:

Picha
Picha

Kwa vidokezo kadhaa, tunajaribu kuwaunganisha kwa msingi wa sumaku wa kudumu chini ya mkono rahisi. Juu, tulitengeneza shimo la kuchimba kwa kuungana na bodi yetu ya mzunguko na chaja ya jua / betri. Kwa msingi huu, tunaweza kuweka taa juu ya uso kama meza, sakafu….; au inaweza kushikamana na vifaa vya sumaku kama nguzo ya chuma, muundo wa chuma.

Hatua ya 4: SOLAR - BATTERY CHARGER

SOLAR - KINATISHA BATARI
SOLAR - KINATISHA BATARI

Ilitoka kwa taa ya kuchaji iliyoharibiwa. Niliongeza swichi ya kuzima / kuzima na usambazaji wa nyaya za umeme kwa nodeMCU. Pia ina bandari moja ya bandari ya USB na kuziba moja kwa chaja ya betri.

Hatua ya 5: Unganisha wote pamoja

Unganisha wote pamoja
Unganisha wote pamoja

Kuunganisha sehemu zote: NodeMCU & tafakari, seli za jua na betri, mkono rahisi pamoja.

KUMALIZA

Picha
Picha

MODI YA KUSHAJI

Picha
Picha

Hatua ya 6: PROGRAMU YA UDHIBITI WA KIINGILIANO

Rangi itabadilishwa tunapobadilisha mkono rahisi au kuzungusha taa.

TAA YA KUINGILIANA

# pamoja
// Anwani ya Kifaa cha Watumwa cha MPU6050
const uint8_t MPU6050SlaveAddress = 0x68;
// Chagua pini za SDA na SCL kwa mawasiliano ya I2C - Bandika chaguo-msingi katika WIRE LIBRARY: SCL - D1 & SDA - D2 kwenye NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 anwani chache za rejista za usanidi
const uint8_t MPU6050_REGISTER_SMPLRT_DIV = 0x19;
const uint8_t MPU6050_REGISTER_USER_CTRL = 0x6A;
const uint8_t MPU6050_REGISTER_PWR_MGMT_1 = 0x6B;
const uint8_t MPU6050_REGISTER_PWR_MGMT_2 = 0x6C;
const uint8_t MPU6050_REGISTER_CONFIG = 0x1A;
const uint8_t MPU6050_REGISTER_GYRO_CONFIG = 0x1B;
const uint8_t MPU6050_REGISTER_ACCEL_CONFIG = 0x1C;
const uint8_t MPU6050_REGISTER_FIFO_EN = 0x23;
const uint8_t MPU6050_REGISTER_INT_ENABLE = 0x38;
const uint8_t MPU6050_REGISTER_ACCEL_XOUT_H = 0x3B;
const uint8_t MPU6050_REGISTER_SIGNAL_PATH_RESET = 0x68;
int16_t AccelX, AccelY, AccelZ, Joto, GyroX, GyroY, GyroZ;
usanidi batili () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Serial.anza (9600);
Mwanzo wa waya (SDA, SCL);
MPU6050_Init ();
}
kitanzi batili () {
uint16_t Shoka, Ay, Az, T, Gx, Gy, Gz;
uint16_t Nyekundu, Kijani, Bluu;
Soma_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Chukua thamani kamili
Shoka = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Wigo katika anuwai
Nyekundu = ramani (Ax, 0, 16384, 0, 1023);
Kijani = ramani (Ay, 0, 16384, 0, 1023);
Bluu = ramani (Az, 0, 16384, 0, 1023);
// Magazeti ya serial kuangalia
//Serial.print ("Nyekundu:"); Rangi ya serial (Nyekundu);
//Serial.print ("Kijani:"); Rangi ya serial (Kijani);
//Serial.print ("Bluu:"); Rangi ya serial (Bluu);
// Andika analog kwa LED
Analog Andika (R, Nyekundu); // R
Analogi Andika (G, Kijani); // G
AnalogWrite (B, Bluu); // B
kuchelewesha (200);
}
batili I2C_Write (uint8_t kifaaAdress, uint8_t regAdress, data uint8_t) {
Uwasilishaji wa waya (Anwani ya kifaa);
Andika waya (regAdress);
Andika waya (data);
Uwasilishaji wa waya ();
}
// Soma rejista zote 14
batili Read_RawValue (uint8_t kifaaAdress, uint8_t regAdress) {
Uwasilishaji wa waya (Anwani ya kifaa);
Andika waya (regAdress);
Uwasilishaji wa waya ();
Wire.requestFrom (kifaaAdress, (uint8_t) 14);
AccelX = (((int16_t) Wire.read () << 8) | Wire.read ());
AccelY = (((int16_t) Wire.read () << 8) | Wire.read ());
AccelZ = (((int16_t) Wire.read () << 8) | Wire.read ());
Joto = (((int16_t) Wire.read () << 8) | Wire.read ());
GyroX = (((int16_t) Wire.read () << 8) | Wire.read ());
GyroY = (((int16_t) Wire.read () << 8) | Wire.read ());
GyroZ = (((int16_t) Wire.read () << 8) | Wire.read ());
}
// Sanidi MPU6050
batili MPU6050_Init () {
kuchelewesha (150);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SMPLRT_DIV, 0x07);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_1, 0x01);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_2, 0x00);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_CONFIG, 0x00);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_GYRO_CONFIG, 0x00); // kuweka +/- 250 digrii / kiwango cha pili kamili
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // kuweka +/- 2g kiwango kamili
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_FIFO_EN, 0x00);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_INT_ENABLE, 0x01);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SIGNAL_PATH_RESET, 0x00);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_USER_CTRL, 0x00);
}
// Thamani kamili
kuelea myAbs (kuelea ndani) {
kurudi (ndani)> 0? (ndani):- (ndani);
}

tazama mbichi PROGRAMU YA LAMP BORA iliyohifadhiwa na ❤ na GitHub

Hatua ya 7: PROGRAMU YA UDHIBITI ISIYO NA waya NA MAOMBI YA ANDROID

PROGRAMU YA UDHIBITI ISIYO NA waya NA MAOMBI YA ANDROID
PROGRAMU YA UDHIBITI ISIYO NA waya NA MAOMBI YA ANDROID

Njia nyingine, tunaweza kutumia Programu ya Android kudhibiti RGB LED na Android katika Mtandao wa WiFi. Unganisha Programu ya Android: Udhibiti wa NODEMCU RGB LED APP

Kwa mpango wa Arduino, unaweza kutaja:

microcontrollerkits.blogspot.com/2016/05/es…

Baada ya kupakia programu kwa NodeMCU, mbio ya kwanza itatupa anwani ya IP ya NodeMCU kwenye uchapishaji wa serial. Kwa upande wangu, ni: 192.164.1.39 kwenye bandari 80.

Picha
Picha

Sasa, tunaweza kudhibiti taa isiyo na waya na kompyuta ndogo / kompyuta kibao / simu ya rununu kwa kuingiza anwani hapo juu kwenye mtafiti wa mtandao.

Picha
Picha

Au kutumia programu ya Android:

Picha
Picha

Hatua ya 8: BAADHI YA PICHA

Ilipendekeza: