
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51

Home System 3000 - бұл Arduino, температура сенсоры, пьезо -дыбыстық сигнал, оптикалық детектор/фототранзистор және үйдегі энергия тиімділігін жоғарылату жолдарын көрсететін серво пайдаланатын құрылғы.
1 -қадам: температура сенсоры

· Қуат пен жерге қосу сымдарын қосыңыз
нан тақтасының бүйіріндегі микроконтроллер
· Температура сенсорын нан тақтасына салыңыз және сәйкесінше қуат пен жерге қосу сымдарын қосыңыз
· Назар аударыңыз, температура сенсорында үш түйреуіш бар, ал ортаңғы түйісте «А0» портынан өтетін сым бар.
· Температура сенсорының коды:
answer = questdlg ('arduino мен servo іске қосу кодын іске қосыңыз', 'жауап', 'Ok', 'Ok')
prompt = 'Бастау үшін кез келген пернені басыңыз'
кідірту
prompt1 = 'Минималды температураны орнату'
x = енгізу (шақыру1)
prompt2 = 'Максималды температураны орнату'
y = енгізу (шақыру2)
prompt3 = 'бастау үшін кез келген пернені басыңыз'
кідірту
фигура
h = анимациялық желі;
ax = gca;
ax. YGrid = 'қосулы';
ax. YLim = [65 85];
тоқтату = жалған;
startTime = datetime ('қазір');
while ~ stop
% Ток кернеуінің мәнін оқу
v = readVoltage (a, 'A0');
% Кернеуден температураны есептеңіз (мәліметтер парағына негізделген)
TempC = (v - 0,5)*100;
TempF = 9/5*TempC + 32;
% Ағымдағы уақытты алыңыз
t = datetime ('қазір') - startTime;
% Анимацияға нүкте қосыңыз
қосылу нүктелері (h, datenum (t), TempF)
% Осьтерді жаңарту
ax. XLim = деректер датасы ([t-секунд (15) t]);
деректерді таңдау ('x', 'keeplimits')
сызылған
% Тоқтау күйін тексеріңіз
stop = readDigitalPin (a, 'D12');
2 -қадам: Дыбыстық сигнал

· Дыбыстық сигналдың жоғары немесе өте төмен температураның көрсеткішін беру үшін қолданылатын сымы
· Оң колонкадан дыбыстық сигналдың оң жағына дейін сым өтпейді
· Оның орнына дыбыстық сигналдың оң жағынан «11» деп белгіленген портқа дейін сым өтеді.
Бұл кейінірек дыбыстық сигналдың орналасқан жерін жазбаша кодқа шақыру үшін қолданылады.
· Дыбыстық сигналдың коды:
егер TempF> = y болса
дисп («есікті жабыңыз, бұл ыстық»)
playTone (a, 'D11', 500, 1)
elseif TempF <= x
дисп («есікті жабыңыз, ол суық»)
playTone (a, 'D11', 250, 1)
Соңы
Соңы
3 -қадам: оптикалық детектор/фототранзистор

· Бұл сенсор басқалардан айырмашылығы қарсыластарды қажет етеді
· Сымдарды қосқаннан кейін сенсордың барлық төрт ілгегі ілмекке қосылғанын тексеріңіз
· Сенсор қозғалысты білдіретін жарықтың өзгеруін анықтайды және оны кіріс ретінде жазады
· Оптикалық детектордың/фототранзистордың коды:
анық а
a = arduino ('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Кітапханалар', 'Серво');
prompt = 'Жарық деңгейінің шегін орнату'
z = енгізу (шақыру)
lightLevel = 0
lightLevel ~ = -1
lightLevel = readVoltage (a, 'A1')
егер lightLevel> = z
answer = questdlg ('айнымалы токты өзгерткіңіз келе ме?', 'Иә', 'Жоқ')
жауапты ауыстыру
жағдай «Иә»
answer2 = questdlg ('Айнымалы токты жоғарылату немесе төмендету?', 'жауап', 'Төмен', 'Жоғары', 'Жоғары')
жауапты ауыстыру2
«Төмен» жағдайы
s = серво (a, 'D10');
бұрыш үшін = 0:.1:.5
writePosition (лар, бұрыш);
current_position = readPosition (s);
current_position = current_position * 180;
Серво қозғалтқышының ағымдағы орнын басып шығару %
fprintf ('Ағымдағы позиция - %d / n', ағымдағы_позиция);
Серводаны орнында орналастыру үшін % кішкене кідіріс қажет
% бұрышы.
үзіліс (2);
Соңы
% қозғалтқышты 0 бұрыштық күйге қайтарады
writePosition (лар, 0);
анық с
prompt = 'Жалғастыру үшін кез келген пернені басыңыз'
questdlg ('айнымалы ток өшірілді', 'жауап', 'жақсы', 'жақсы')
«Жоғары» жағдайы
s = серво (a, 'D10');
бұрыш үшін =.5:.1: 1
writePosition (лар, бұрыш);
current_position = readPosition (s);
current_position = current_position * 180;
Серво қозғалтқышының ағымдағы орнын басып шығару %
fprintf ('Ағымдағы позиция - %d / n', ағымдағы_позиция);
Серводаны орнында орналастыру үшін % кішкене кідіріс қажет
% бұрышы.
үзіліс (2);
Соңы
4 -қадам: Серво

· Серво білдіреді
кондиционер және қозғалысты анықтау кірісінің шығысы болып табылады
· Ол үшін оң сым, жерге қосылған сым және «D9» портынан сервоприводқа дейін сым қажет
· Серво коды:
% қозғалтқышты 0 бұрыштық күйге қайтарады
writePosition (лар, 0);
анық с
prompt = 'Жалғастыру үшін кез келген пернені басыңыз'
questdlg ('айнымалы ток қосылды', 'жауап', 'жақсы', 'жақсы')
Соңы
Соңы
кідірту
үзіліс
Соңы
Соңы
*Ерекше ескерту: серво кодының бір бөлігі оптикалық детектордың/фототранзистордың кодымен біріктірілген.
Ұсынылған:
Нұсқауға болатын роботтық бамперлер: 5 қадам

Нұсқауға болатын робот-бамперлер: Мен робот-бамперлерді қалай жасау керектігін және оларды батареямен басқарылатын роботқа қалай қою керектігін көрсететін нұсқаулық құруды шештім. Біріншіден, сіз сымдардың дұрыс жерге қосылғанын тексергіңіз келеді. Цикл болмайды
Нұсқауға алынатын Ghost Zoetrope: 11 қадам (суреттермен)

Instructable Ghost Zoetrope: Елес ретінде киінген нұсқаулық робот Хэллоуинге басын жоғалтып ала жаздады! Шынайы өмірде сіз қара жолақтарды көрмейсіз (олар строб жарығын түсірудің нәтижесі). Arduino мотор қалқанын, биполярлық қадамды қозғалтқышты, жарықдиодты жіпті алыңыз және
Нұсқауға болатын USB -диск: 7 қадам (суреттермен)

Нұсқау берілетін роботты USB дискісі: Ешкім мұны ешқашан жасаған емес, сондықтан мен ойладым (күлімсіреді) Бұл нұсқаулыққа арналған робот USB дискісі (16 Gig), мен 2 сүйікті техниканы бір құрылғыға біріктіремін деп ойладым. ҚЫЗЫҚ
Нұсқауға болатын суреттердің өлшемі: 13 қадам

Нұсқауға болатын суреттердің өлшемі: сізде суреттерді дұрыс мөлшерде алуға қиындықтар бар ма? Сіздің суреттеріңіздің өлшемі тым үлкен бе және жоғарыдағыдай кадрдан асып кетеді ме? Бұл мәселені шешуге үйренгендерімді қорытындылауға тырысатын нұсқаулар
Нұсқауға болатын суреттерге қалқымалы мәтін жасаңыз: 7 қадам

Нұсқауға болатын суреттерде қалқымалы мәтін жасаңыз: Нұсқауға болатын суреттерде суреттердің тінтуірмен белгіленген аймақтарын жылжытқанда, олар мәтінді шығаратын мүмкіндік бар. Бұл суреттің ерекше қызықты бөліктерін белгілеу үшін қолданылады. Бұл өте жақсы функция, және біреу дәл сұрады