
Სარჩევი:
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50


ეს პროექტი გაკეთდა გატეხილი ნათურისა და nodeMCU– სგან. ეს დეკორატიული ნათურა შეიძლება მორგებული იყოს ნებისმიერი მიმართულებით და მიმაგრდეს მაგნიტურ მასალებზე ან დადოთ მაგიდაზე. მისი კონტროლი შესაძლებელია ორ რეჟიმში შემდეგნაირად:
- უკაბელო კონტროლის რეჟიმი, როგორც YouTube ბმული ქვემოთ:
- ინტერაქტიული კონტროლის რეჟიმი, როგორც YouTube ბმული ქვემოთ:
ნაბიჯი 1: მასალების ანგარიში
B. O. M სია:

ინტერაქტიული რეჟიმისთვის, მე ვიყენებ MPU6050– ს, რომ მივიღო გირო მონაცემები NodeMCU– დან ნათურის ფერის გასაკონტროლებლად.
მასალები ამ პროექტისთვის:

ნაბიჯი 2: წრე

ეს არის ძალიან მარტივი წრე, როგორც ზემოთ მოყვანილი სქემა, 1 RGB Led საერთო ანოდის ტიპით, სამი ლიმიტის დენის რეზისტორებით R100 & MPU6050.
რეფლექტორი გამოიყენება ნებისმიერი გატეხილი ნათურისგან და დაკავშირებულია nodeMCU ბაზასთან 2 ჭანჭიკით ან მიამაგრეთ ისინი ძლიერი წებოთი.
სამონტაჟო სამუშაოები:


სქემატური ქვემოთ:

ნაბიჯი 3: მაგნიტური ბაზა - მოქნილი იარაღი

მოქნილი მკლავი შეიძლება გამოყენებულ იქნას გატეხილი მოქნილი წყლის ონკანებიდან. Რაღაც მაგდაგვარი:

რამდენიმე რჩევით, ჩვენ ვცდილობთ დავაკავშიროთ ისინი მუდმივი მაგნიტის ბაზასთან მოქნილი მკლავის ბოლოში. თავზე, ჩვენ გავაკეთეთ საბურღი ხვრელი ჩვენს მიკროსქემთან და მზის/ბატარეის დამტენთან დასაკავშირებლად. ამ ბაზის საშუალებით შეგვიძლია ზედაპირზე დავდოთ ნათურა, როგორც მაგიდა, იატაკი….; ან ის შეიძლება დაერთოს მაგნიტურ მასალებს, როგორიცაა ფოლადის სვეტი, ფოლადის კონსტრუქცია.
ნაბიჯი 4: SOLAR - ბატარეის დამტენი

ის დაზიანებული დამტენი ნათურისგან მოვიდა. NodeMCU- ს დავამატე ჩართვის/გამორთვის შეცვლა და დენის მავთულის მიწოდება. მას ასევე აქვს ერთი USB პორტი და ერთი დანამატი ბატარეის დამტენისთვის.
ნაბიჯი 5: დაუკავშირდით ყველას ერთად

ყველა ნაწილის დაკავშირება: NodeMCU და ამრეკლი, მზის და ბატარეის უჯრედები, მოქნილი მკლავი ერთად.
დასრულება

დატენვის რეჟიმი

ნაბიჯი 6: ინტერაქტიული საკონტროლო პროგრამა
ფერი შეიცვლება მოქნილი ხელის მორგების ან ნათურის როტაციის დროს.
ინტერაქტიული ნათურა
#ჩართეთ |
// MPU6050 მონა მოწყობილობის მისამართი |
const uint8_t MPU6050SlaveAddress = 0x68; |
// აირჩიეთ SDA და SCL ქინძისთავები I2C კომუნიკაციისთვის - ნაგულისხმევი Pin WIRE ბიბლიოთეკაში: SCL - D1 & SDA - D2 NODEMCU– ზე |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 რამდენიმე კონფიგურაციის რეგისტრაციის მისამართი |
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, ტემპერატურა, GyroX, GyroY, GyroZ; |
void setup () { |
pinMode (R, OUTPUT); |
pinMode (G, OUTPUT); |
pinMode (B, OUTPUT); |
// სერიული.დაწყება (9600); |
Wire.begin (SDA, SCL); |
MPU6050_Init (); |
} |
ბათილი მარყუჟი () { |
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
uint16_t წითელი, მწვანე, ლურჯი; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// მიიღეთ აბსოლუტური მნიშვნელობა |
Ax = myAbs (AccelX); |
Ay = myAbs (AccelY); |
Az = myAbs (AccelZ); |
// მასშტაბი დიაპაზონში |
წითელი = რუკა (ცული, 0, 16384, 0, 1023); |
მწვანე = რუკა (Ay, 0, 16384, 0, 1023); |
ლურჯი = რუკა (Az, 0, 16384, 0, 1023); |
// სერიული ბეჭდვა შესამოწმებლად |
// სერიული. ბეჭდვა ("წითელი:"); სერიული. ბეჭდვა (წითელი); |
//Serial.print(" მწვანე: "); Serial.print (მწვანე); |
// სერიული. ბეჭდვა ("ცისფერი:"); Serial.print (ლურჯი); |
// დაწერე ანალოგი LED- ზე |
analogWrite (R, წითელი); // რ |
analogWrite (G, მწვანე); // გ |
analogWrite (B, ლურჯი); // ბ |
დაგვიანება (200); |
} |
ბათილია I2C_Write (uint8_t მოწყობილობის მისამართი, uint8_t regAddress, uint8_t მონაცემები) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.write (მონაცემები); |
Wire.endTransmission (); |
} |
// წაიკითხეთ ყველა 14 რეგისტრი |
ბათილია Read_RawValue (uint8_t მოწყობილობის მისამართი, uint8_t regAddress) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.endTransmission (); |
მავთული. მოთხოვნა (მოწყობილობიდან მისამართი, (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 ()); |
ტემპერატურა = ((((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 ()); |
} |
// MPU6050 კონფიგურაცია |
ბათილია MPU6050_Init () { |
დაგვიანება (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); // მითითებული +/- 250 გრადუსი/მეორე სრული მასშტაბი |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g სრული მასშტაბი |
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); |
} |
// აბსოლუტური მნიშვნელობა |
float myAbs (float in) { |
დაბრუნება (in)> 0? (in):-(in); |
} |
ნედლეული INTERACTIVE LAMP პროგრამის ნახვა hosted ერთად GitHub
ნაბიჯი 7: უკაბელო კონტროლის პროგრამა და ანდროიდის აპლიკაცია

სხვა გზით, ჩვენ შეგვიძლია გამოვიყენოთ Android აპლიკაცია RGB LED– ის Android– ით WiFi ქსელში გასაკონტროლებლად. დააკავშირეთ Android აპლიკაცია: NODEMCU კონტროლის RGB LED აპლიკაცია
Arduino პროგრამისთვის შეგიძლიათ მიმართოთ:
microcontrollerkits.blogspot.com/2016/05/es…
NodeMCU– ზე პროგრამის ატვირთვის შემდეგ, პირველი გაშვება მოგვცემს NodeMCU– ს IP მისამართს სერიულ ბეჭდვაზე. ჩემს შემთხვევაში, ეს არის: 192.164.1.39 80 პორტში.

ახლა ჩვენ შეგვიძლია ვაკონტროლოთ უკაბელო ნათურა ლეპტოპით/ ტაბლეტით/ მობილური ტელეფონით, ზემოთ მოყვანილი მისამართის შეყვანისას Internet Explorer– ში.

ან Android პროგრამის გამოყენებით:

ნაბიჯი 8: ზოგიერთი სურათი
გირჩევთ:
ადამიანის ზომის ტელეპრეზენტაციის რობოტი მკლავით: 5 ნაბიჯი (სურათებით)

ადამიანის ზომის ტელეპრეზენტაციის რობოტი Gripper Arm- ით: ჩემმა მანიფესტაციამ დამპატიჟა ჰელოუინის წვეულებაზე (30+ ადამიანი) პანდემიის დროს, ასე რომ მე ვუთხარი, რომ დავესწრებოდი და განვიცდიდი ტელეპრეზენტაციის რობოტის შემუშავებას, რომელიც ზიანს აყენებდა ჩემს წვეულებაზე ადგილი. თუ თქვენ არ იცით რა ტელევიზია
მზის ამოსვლის სიმულატორი ნათურა: 7 ნაბიჯი (სურათებით)

მზის ამოსვლის სიმულატორი ნათურა: მე შევქმენი ეს ნათურა, რადგან დავიღალე ზამთარში სიბნელეში გაღვიძებით. მე ვიცი, რომ თქვენ შეგიძლიათ შეიძინოთ პროდუქტები, რომლებიც იმავეს აკეთებენ, მაგრამ მე მომწონს იმის განცდა, რომ ვიყენებ რაღაცას, რაც მე შევქმენი. ნათურა ახდენს მზის ამოსვლის სიმულაციას თანდათანობით გაზრდით
როგორ შეაკეთოთ გატეხილი ან მოწყვეტილი მოქნილი / მოქნილი კაბელები .: 5 ნაბიჯი

როგორ შეაკეთოთ გატეხილი ან მოწყვეტილი მოქნილი / მოქნილი კაბელები .: კაბელის რეალური ზომა იყო 3/8 ინჩის სიგანე
ხელმისაწვდომი ხედვის გადაწყვეტა რობოტის მკლავით არდუინოს საფუძველზე: 19 ნაბიჯი (სურათებით)

ხელმისაწვდომი ხედვის გადაწყვეტა Robot Arm– ით დაფუძნებული Arduino– ზე: როდესაც ვსაუბრობთ მანქანების ხედვაზე, ის ყოველთვის ჩვენთვის ასე მიუწვდომელია. მიუხედავად იმისა, რომ ჩვენ გავაკეთეთ ღია ხედვის დემო, რომლის გაკეთება ყველასთვის ძალიან ადვილი იქნებოდა. ამ ვიდეოში, OpenMV კამერით, სადაც არ უნდა იყოს წითელი კუბი, რობოტი
უკაბელო მზის დამტენი: 5 ნაბიჯი (სურათებით)

უკაბელო მზის დამტენი: ყველა სტუდენტმა იცის ბრძოლა, რომ იპოვოს განყოფილება თავისი ტელეფონის დასატენად. ამ ყოველდღიურმა ბრძოლამ მოგვცა შემოქმედებითი გადაწყვეტის პოვნა. ჩვენ გვინდოდა შევქმნათ დამტენი მოწყობილობა, რომელიც არ საჭიროებს გამოსავალს ნებისმიერ გარემოებებში და ასევე აქვს