Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
Telekomandë Arduino Youtube
Nëse përdorni Youtube për t'ju siguruar një film ose muzikë për të parë gjatë gjumit, me siguri do të ishit zgjuar nga një reklamë e ngarkuar ose nivele të ndryshme të volumit kur të fillonte një film i ri. Eshtë e panevojshme të thuhet, kjo mund të jetë mjaft irrituese.
Pra, zgjidhja ime që unë ju dëshmoj këtu për të ndërtuar për veten tuaj është një telekomandë me bazë Arduino për të bashkëvepruar me Youtube në distancë. Telekomanda kërkohet të ndryshojë volumin kryesor të zërit të kompjuterit tim, të kalojë reklamat në Youtube dhe të kalojë video në Youtube.
Gjithashtu, përfshihet një sensor i nivelit audio për të përcaktuar se sa i zhurmshëm është në të vërtetë altoparlanti, i cili nga ana tjetër mund të përdoret për të ulur automatikisht nivelin e zërit me zbulimin e ndërprerjeve me zë të lartë, siç është një reklamë.
Së fundmi, shtova një tabelë në aplikacionin PC për të shfaqur nivelet e zbuluara të zërit.
Zgjidhja mund të rafinohet më mirë, por për mua ajo e përmbush detyrën.
Hapi 1: Përbërësit e nevojshëm
Të gjithë këta përbërës furnizohen nga Leobot Electronics (https://leobot.net)
1) Arduino UNO R3
leobot.net/viewproduct.aspx?id=530
2) 4 KANEL TEMOTE (315MHZ) + MODULE MARRS (315MHZ)
leobot.net/viewproduct.aspx?id=521
3) MODULI I SENSORIT TO ZORIT TIC ZORIT DHE ZGJIMIT TIC MIKROFONIT (KY-037)
leobot.net/viewproduct.aspx?id=217
Softuer
1) Studio vizuale
visualstudio.microsoft.com/
2) Arduino IDE
www.arduino.cc/en/main/software
Hapi 2: Konfigurimi i harduerit
1) Lidhni modulin e marrësit me 4 kanale me Arduino.
Pin i Marrësit me 4 Kanale-> Arduino Uno Pin
GND-> GND
5V-> 5V
D0-> Digital 2
D1-> Digital 3
D2-> Digital 4
D3-> Digital 5
2) Lidhni modulin e Mikrofonit KY-037 me Arduino
Mikrofoni KY-037 Pin-> Arduino Uno Pin
GND-> GND
+-> 3.3V
A0-> Analog 3
Hapi 3: Kodi Arduino
Vështrim i përgjithshëm
Logjika që Arduino duhet të ndjekë është si më poshtë:
A) Kontrolloni nëse marrësi po sinjalizon ndonjë kunj.
B) Në varësi të portës IO, sinjali është marrë se cila komandë do t'i dërgohet kompjuterit.
C) Pasi të keni përfunduar me të gjitha veprimet e telekomandës, zbuloni nivelin e zërit me mikrofonin dhe dërgojeni atë në kompjuter.
D) Të gjitha komandat e dërguara në PC kanë një format që së pari të ketë një karakter pastaj një vlerë (nëse nevojitet një vlerë).
E) Janë pesë komanda të dërguara nga Arduino në PC
a "U" - Volume Up
b "D" - Zbritja e vëllimit
c "S" - Kalo Shto
d "V" - Kalo videon
e "A" - Niveli i audios i zbuluar i ndjekur nga vlera
Kodi Arduino:
Shkarkoni Arduino Code këtu:
int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;
void setup () {
Serial.filloj (9600);
pinMode (A3, INPUT);
pinMode (in1, INPUT);
pinMode (in2, INPUT);
pinMode (in3, INPUT);
pinMode (in4, INPUT);
}
lak void () {
nëse (digitalRead (in1))
{
Serial.println ("u");
vonesë (100);
}
nëse (digitalRead (in2))
{
Serial.println ("d");
vonesë (100);
}
nëse (digitalRead (in3))
{
Serial.println ("s");
vonesë (100);
}
nëse (digitalRead (in4))
{
Serial.println ("v");
vonesë (100);
}
int readVal = analogRead (A3);
Serial.println (String ("a")+ String (readVal));
vonesë (50);
}
Hapi 4: Kodi i Aplikacionit për PC (C#. NET)
Aplikacioni do të dëgjojë përmes portës COM (USB) dhe do të reagojë në varësi të asaj komande që merret. Mënyra më e thjeshtë për ta kthyer zërin lart e poshtë në kompjuter është përdorimi i shërbimeve Interrop për të folur drejtpërdrejt me Windows OS. Ne gjithashtu përdorim shërbimet Interrop për të lëvizur miun në një pozicion të caktuar në ekran dhe klikoni. Për të lejuar ekranet dhe madhësitë e ndryshme të shikimit, ne i lejojmë përdoruesit të përcaktojë pozicionin e butonave të shtimit dhe kapërcimit të videos.
Ne përdorim një tabelë standarde.net për të shfaqur çdo komandë audio që marrim.
Kodi i Windows:
Shkarkoni projektin e plotë këtu:
leobot.net/audioadjust.zip
duke përdorur Sistemin;
duke përdorur System. Collections. Generic;
duke përdorur System. ComponentModel;
duke përdorur System. Data;
duke përdorur System. Drawing;
duke përdorur System. Linq;
duke përdorur System. Text;
duke përdorur System. Windows. Forms;
duke përdorur System. Runtime. InteropServices;
duke përdorur System. IO. Ports;
duke përdorur System. Threading;
hapësira e emrave AudioAdjust
{
klasa e pjesshme publike Form1: Forma
{
[DllImport ("User32. Dll")]
jashtme statike publike SetCursorPos gjatë (int x, int y);
[DllImport ("User32. Dll")]
publik statik i jashtëm bool ClientToScreen (IntPtr hWnd, ref pika POINT);
[DllImport ("user32.dll", CharSet = CharSet. Auto, CallingConvention = CallingConvention. StdCall)]
publiku statik i jashtëm i pavlefshëm miu_event (uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
// Veprimet e miut
konstrukt privat int MOUSEEVENTF_LEFTDOWN = 0x02;
konstituc privat int MOUSEEVENTF_LEFTUP = 0x04;
konstituti privat në MOUSEEVENTF_RIGHTDOWN = 0x08;
konstituc privat int MOUSEEVENTF_RIGHTUP = 0x10;
[DllImport ("user32.dll")]
zbrazëti statike e jashtme keybd_event (byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
Random aRand = e re Random ();
public int LastLevel = 0;
int int publike MaxLevel = 255;
SerialPort statik _serialPort;
int adX = 1281;
int adY = 706;
int vidX = 250;
int vidY = 780;
bool enableAudioChange = false;
Formulari publik 1 ()
{
InitializeComponent ();
}
zbrazëti private Form1_Load (dërguesi i objektit, EventArgs e)
{
string emrat = System. IO. Ports. SerialPort. GetPortNames ();
comboBoxPort. Items. AddRange (emrat);
comboBoxPort. SelectIndex = 0;
}
int currentPoint = 0;
butoni privat i zbrazëtisë1_Kliko (dërguesi i objektit, EventArgs e)
{
_serialPort = SerialPort i ri ();
_serialPort. DataReceived += serialDataReceivedEventHandler i ri (_serialPort_DataReceived);
_serialPort. PortName = comboBoxPort. SelectedItem. ToString (); // Vendosni bordin tuaj COM
_serialPort. BaudRate = 9600;
nëse (_serialPort. IsOpen) _serialPort. Mbyll ();
tjeter
{
_serialPort. Open ();
}
// keybd_event ((byte) Keys. VolumeDown, 0, 0, 0); // ul volumin
}
void _serialPort_DataReceived (dërguesi i objektit, SerialDataReceivedEventArgs e)
{
provo
{
string fullval = _serialPort. ReadLine ();
string com = fullval [0]. ToString ();
kaloni (com)
{
rasti "a":
{
{
// niveli audio
vargu val = fullval. Zëvendëso ("a", "");
int valInt = int. Parse (val);
AddData (valInt);
}
pushim;
}
rasti "u":
{
// audio lart
keybd_event ((byte) Çelësat. VolumeUp, 0, 0, 0); // ul volumin
pushim;
}
rasti "d":
{
// audio poshtë
keybd_event ((byte) Keys. VolumeDown, 0, 0, 0); // ul volumin
pushim;
}
rasti "s":
{
// kalo Shto
MoveCursorSkipAd ();
Fije. Gjumi (10);
DoMouseClick ();
pushim;
}
rasti "v":
{
// kalo Shto
MoveCursorSkipVideo ();
Fije. Gjumi (10);
DoMouseClick ();
pushim;
}
}
}
kap
{
}
// hidhni NotImplementedException të ri ();
}
zbrazëti private MoveCursorSkipAd ()
{
Kursori. Pozicioni = Pika e re (1140, 725);
Cursor. Position = pikë e re (adX, adY);
}
zbrazëti private MoveCursorSkipVideo ()
{
Kursori. Pozicioni = Pika e re (1140, 725);
Kursori. Pozicioni = Pika e re (vidX, vidY);
}
zbrazëti publike DoMouseClick ()
{
// Thirrni funksionin e importuar me pozicionin aktual të kursorit
uint X = (uint) Cursor. Position. X;
uint Y = (uint) Cursor. Position. Y;
ngjarja_mouse (MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
ngjarja_mouse (MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}
pavlefshme AddData (niveli int)
{
nëse (aktivizo ndryshimin audio)
{
nëse (niveli> = Niveli maksimal)
{
keybd_event ((byte) Keys. VolumeDown, 0, 0, 0); // ul volumin
keybd_event ((byte) Keys. VolumeDown, 0, 0, 0); // ul volumin
keybd_event ((byte) Keys. VolumeDown, 0, 0, 0); // ul volumin
}
tjeter
{
nëse (niveli <MaxLevel - 0)
{
keybd_event ((byte) Çelësat. VolumeUp, 0, 0, 0); // ul volumin
}
}
}
SetChart (niveli);
currentPoint ++;
}
delego void SetTextCallback (int val);
zbrazëti private SetChart (int val)
{
// InvokeRequired required krahason ID -në e thread -it të
// thirrja e fijes në ID -në e fillit të fillit krijues.
// Nëse këto fije janë të ndryshme, ai kthehet i vërtetë.
nëse (kjo. grafiku 1. InvokeRequired)
{
SetTextCallback d = i ri SetTextCallback (SetChart);
this. Invoke (d, objekt i ri {val});
}
tjeter
{
grafiku 1. Seritë [0]. Pikat. ShtoXY (0, val);
nëse (aktualePoint> = 10)
{
tabelë1. Seritë [0]. Pikat. HiqniAt (0);
}
}
}
teksti i pavlefshëm privatBoxLevel_TextChanged (dërguesi i objektit, EventArgs e)
{
provo
{
MaxLevel = int. Parse (textBoxLevel. Text);
}
kap
{
textBoxLevel. Text = MaxLevel + "";
}
}
butoni privat i zbrazëtisëTestSkip_Click (dërguesi i objektit, EventArgs e)
{
MoveCursorSkipAd ();
Fije. Gjumi (10);
DoMouseClick ();
}
tekst privat i pavlefshëmBoxXpos_TextChanged (dërguesi i objektit, EventArgs e)
{
provo
{
adX = int. Parse (textBoxXpos. Text);
}
kap
{
textBoxXpos. Text = adX + "";
}
}
teksti i pavlefshëm privatBoxYpos_TextChanged (dërguesi i objektit, EventArgs e)
{
provo
{
adY = int. Parse (textBoxYpos. Text);
}
kap
{
textBoxYpos. Text = adY + "";
}
}
butoni privat i zbrazëtisë SkipVideo_Click (dërguesi i objektit, EventArgs e)
{
MoveCursorSkipVideo ();
Fije. Gjumi (10);
DoMouseClick ();
}
teksti i pavlefshëm privatBoxXposVid_TextChanged (dërguesi i objektit, EventArgs e)
{
provo
{
vidX = int. Parse (textBoxXposVid. Text);
}
kap
{
textBoxXposVid. Text = vidX + "";
}
}
tekst privat i pavlefshëmBoxYposVid_TextChanged (dërguesi i objektit, EventArgs e)
{
provo
{
vidY = int. Parse (textBoxYposVid. Text);
}
kap
{
textBoxYposVid. Text = vidY + "";
}
}
kontroll i pavlefshëm privatBoxEnable_CheckedChanged (dërguesi i objektit, EventArgs e)
{
enableAudioChange = checkBoxEnable. Checked;
}
}
[StructLayout (LayoutKind. Sequential)]
struktura publike PIKA
{
publik int x;
int int publike;
}
}
Recommended:
SWD >> një pajisje për të fjetur mirë: 5 hapa
SWD >> a Pajisja Sleep Well: Një pajisje për të luajtur tingull të bukur p.sh. shi, valë, xhungël për të fjetur më mirë. Një pagesë do të luajë (e vendosur në një vëllim të moderuar) deri në 8 orë! Kjo është " si të " ndërtoni një MP3 player të vogël të rimbushshëm. Kutia që kam përdorur është 8.5 x 7 x 4 cm. Ideja ishte të ndërtoja
IRduino: Telekomandë Arduino - Imitoni një telekomandë të humbur: 6 hapa
IRduino: Telekomandë Arduino - Imitoni një telekomandë të humbur: Nëse e keni humbur ndonjëherë telekomandën për televizorin ose DVD player -in tuaj, e dini sa frustruese është të ecësh, të gjesh dhe të përdorësh butonat në vetë pajisjen. Ndonjëherë, këto butona nuk ofrojnë as të njëjtin funksionalitet si telekomanda. Merr
Macja e fjetur: 4 hapa
Macja e Fjetur: A nuk i lejon pronari juaj kafshët shtëpiake? A jeni aq të shqetësuar dhe ndjeni një lodhje që po zvarritet mbi ju sa që zgjidhja e vetme duket përqafimi i ngrohtë i vdekjes ose pamja dhe prania e një maceje të fjetur? Epo zemër, e kam projektin për ty! Me këtë
Roboti me telekomandë duke përdorur Arduino dhe T.V. Telekomandë: 11 hapa
Roboti me telekomandë duke përdorur Arduino dhe TV Telekomandë: Kjo makinë me telekomandë mund të lëvizet duke përdorur praktikisht çdo lloj telekomande si TV, AC etj. Përdor faktin që telekomanda lëshon IR (infra të kuqe). Kjo pronë përdoret duke përdorur një marrës IR, i cili është një sensor shumë i lirë. Në
Pan dhe telekomandë me telekomandë: 7 hapa
Pan i kontrolluar nga distanca dhe koka e pjerrët: Unë gjithmonë kam dashur një tigan të kontrolluar nga distanca dhe kokë të pjerrët. Ndoshta ishte për kamerën time video, një gjuajtës i gomës ose një gjuajtës me armë uji. Nuk ka shumë rëndësi se çfarë vendosni në kuvertën e sipërme (përderisa nuk është shumë e rëndë), me këtë projekt të vogël ju