Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36
Този проект е направен от счупена лампа и nodeMCU. Тази декоративна лампа може да се регулира във всяка посока и да се прикрепи към магнитни материали или да се постави на масата. Може да се управлява в два режима, както следва:
- Режим на безжично управление, като връзката YouTube по -долу:
- Интерактивен режим на управление, като връзката YouTube по -долу:
Стъпка 1: СТРАНИЦА НА МАТЕРИАЛИТЕ
Списък на B. O. M:
За интерактивен режим използвам MPU6050, за да получавам жироскопични данни от NodeMCU, за да контролирам цвета на лампата.
Снимка на материалите за този проект:
Стъпка 2: КРЪГ
Това е много проста схема, както е описана по -горе на схемата на Fritzing, с 1 общ аноден тип RGB Led, три резистора за граничен ток R100 и MPU6050.
Отражателят се използва от всякакви счупени лампи и е свързан към основата на nodeMCU с 2 болта или ги залепва със силно лепило.
Монтажни работи:
Схемата по -долу:
Стъпка 3: МАГНИТНА БАЗА - ГЪВКАВА РЪКА
Гъвкавото рамо може да се използва повторно от счупени гъвкави кранове за вода. Нещо такова:
С някои съвети се опитваме да ги свържем към основата с постоянен магнит в долната част на гъвкавото рамо. Отгоре направихме пробивна дупка за свързване към нашата платка и слънчево/зарядно устройство за батерии. С тази основа можем да поставим лампа върху повърхност като маса, подове …; или може да бъде прикрепен към магнитни материали като стоманен стълб, стоманена конструкция.
Стъпка 4: СЛЪНЧЕВА - ЗАРЯДНА АКУМУЛАТОРА
Идва от повредена лампа за зареждане. Добавих превключвател за включване/изключване и захранване на проводници към nodeMCU. Той също така има един USB порт и един щепсел за зарядно устройство за батерии.
Стъпка 5: СВЪРЗВАЙТЕ ВСИЧКО ЗАЕДНО
Свързване на всички части: NodeMCU и рефлектор, слънчеви и акумулаторни клетки, гъвкаво рамо заедно.
ЗАВЪРШЕК
РЕЖИМ НА ЗАРЯВАНЕ
Стъпка 6: ПРОГРАМА ЗА ИНТЕРАКТИВНО УПРАВЛЕНИЕ
Цветът ще се промени, когато регулираме гъвкавото рамо или завъртим лампата.
ИНТЕРАКТИВНА ЛАМПА
| #включва |
| // MPU6050 Адрес на подчинено устройство |
| const uint8_t MPU6050SlaveAddress = 0x68; |
| // Изберете SDA и SCL щифтове за I2C комуникация - Пин по подразбиране в WIRE LIBRARY: 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); |
| //Serial.begin(9600); |
| Wire.begin (SDA, SCL); |
| MPU6050_Init (); |
| } |
| void loop () { |
| uint16_t Axe, 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); |
| // Мащаб в обхват |
| Червено = карта (Axe, 0, 16384, 0, 1023); |
| Зелено = карта (Ay, 0, 16384, 0, 1023); |
| Синьо = карта (Az, 0, 16384, 0, 1023); |
| // Сериен печат за проверка |
| //Serial.print(" Червено: "); Serial.print (червен); |
| //Serial.print(" Зелено: "); Serial.print (зелен); |
| //Serial.print(" Blue: "); Serial.print (Синьо); |
| // Запис на аналог към LED |
| analogWrite (R, червено); // R |
| analogWrite (G, Зелено); // G |
| analogWrite (B, синьо); // B |
| забавяне (200); |
| } |
| void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t данни) { |
| Wire.beginTransmission (deviceAddress); |
| Wire.write (regAddress); |
| Wire.write (данни); |
| Wire.endTransmission (); |
| } |
| // Прочетете всички 14 регистри |
| void Read_RawValue (uint8_t deviceAddress, uint8_t regAddress) { |
| Wire.beginTransmission (deviceAddress); |
| Wire.write (regAddress); |
| Wire.endTransmission (); |
| Wire.requestFrom (deviceAddress, (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 |
| void 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); // задайте +/- 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) { |
| return (in)> 0? (in):-(in); |
| } |
вижте rawINTERACTIVE LAMP PROGRAM, хоствана с ❤ от GitHub
Стъпка 7: ПРОГРАМА ЗА БЕЗЖИЧНО КОНТРОЛ И АНДРОИДНО ПРИЛОЖЕНИЕ
Друг начин е да използваме приложението за Android за управление на RGB LED с Android в WiFi мрежа. Свържете приложение за Android: NODEMCU управление RGB LED APP
За програмата Arduino можете да се обърнете към:
microcontrollerkits.blogspot.com/2016/05/es…
След качване на програма в NodeMCU, първото стартиране ще ни даде IP адреса на NodeMCU при сериен печат. В моя случай това е: 192.164.1.39 на порт 80.
Сега можем да контролираме безжичната лампа с лаптоп/ таблет/ мобилен телефон, като въведем адреса по -горе в Internet Explorer.
Или чрез приложение за Android:
Стъпка 8: НЯКОИ СНИМКИ
Препоръчано:
FLEXBALL - гъвкава PCB топка със сто пиксела с WiFi: 6 стъпки (със снимки)
FLEXBALL - сто пикселна гъвкава топка за печатни платки с WiFi: Здравейте производители, това е производител moekoe! Flexball е базиран на гъвкава платка, която е оборудвана със 100 WS2812 2020 адресируеми светодиода. Той се управлява от ESP8285-01f - най -малкият ESP базиран модул от Espressif. Освен това има ADXL345 акселерометър
Махнете с ръка, за да контролирате роботизираната ръка на OWI Без прикачени низове: 10 стъпки (със снимки)
Махнете с ръка, за да контролирате роботизираната ръка на OWI … Без прикачени низове: ИДЕЯТА: Има поне 4 други проекта на Instructables.com (към 13 май 2015 г.) около модифицирането или контрола на роботизираната ръка на OWI. Не е изненадващо, тъй като това е толкова страхотен и евтин роботизиран комплект за игра. Този проект е подобен в
Магнитна трета ръка: 5 стъпки (със снимки)
Магнитна трета ръка: Всеки, който играе заобиколен от електроника, знае колко важна е третата ръка. Той ви дава възможност да държите спойка в едната ръка, а поялника в другата и лесно да добавяте спойка към компонент. Използвах някои домашни трети ръце за сом
Роботизирана ръка с безжична ръкавица - NRF24L01+ - Arduino: 7 стъпки (със снимки)
Роботизирана ръка с безжична ръкавица | NRF24L01+ | Arduino: В това видео; Предлагат се 3D ръчен монтаж на роботи, серво управление, управление на гъвкав сензор, безжично управление с nRF24L01, приемник Arduino и изходен код на предавателя. Накратко, в този проект ние ще се научим как да управляваме ръката на робот с тел
Трета ръка ++: Многофункционална помощна ръка за електроника и друга деликатна работа .: 14 стъпки (със снимки)
Трета ръка ++: Многофункционална помощна ръка за електроника и други деликатни работи. Никога не успях да получа клиповете точно там, където ги исках, или ми отне повече време, отколкото наистина трябваше, за да се инсталира
