Съдържание:
- Стъпка 1: СТРАНИЦА НА МАТЕРИАЛИТЕ
- Стъпка 2: КРЪГ
- Стъпка 3: МАГНИТНА БАЗА - ГЪВКАВА РЪКА
- Стъпка 4: СЛЪНЧЕВА - ЗАРЯДНА АКУМУЛАТОРА
- Стъпка 5: СВЪРЗВАЙТЕ ВСИЧКО ЗАЕДНО
- Стъпка 6: ПРОГРАМА ЗА ИНТЕРАКТИВНО УПРАВЛЕНИЕ
- Стъпка 7: ПРОГРАМА ЗА БЕЗЖИЧНО КОНТРОЛ И АНДРОИДНО ПРИЛОЖЕНИЕ
- Стъпка 8: НЯКОИ СНИМКИ
Видео: СЛЪНЧЕВА БЕЗЖИЧНА ЛАМПА С МАГНИТНА ГЪВКАВА РЪКА: 8 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Този проект е направен от счупена лампа и 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 стъпки (със снимки)
Трета ръка ++: Многофункционална помощна ръка за електроника и други деликатни работи. Никога не успях да получа клиповете точно там, където ги исках, или ми отне повече време, отколкото наистина трябваше, за да се инсталира