Mündəricat:
- Addım 1: Lazım olan komponentlər
- Addım 2: Hardware Setup
- Addım 3: Arduino Kodu
- Addım 4: PC Tətbiq Kodu (C#. NET)
Video: Yuxu üçün Arduino Youtube Uzaqdan İdarəetmə (Leobot Electronics): 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Arduino Youtube Uzaqdan
Youtube -dan bir film və ya yatarkən izləmək üçün musiqi təmin etmək üçün istifadə etsəniz, yeni bir film başlayanda ya yük reklamı, ya da fərqli səs səviyyəsi ilə oyanardınız. Deməyə ehtiyac yoxdur, bu olduqca qıcıqlandırıcı ola bilər.
Beləliklə, burada özünüzə sübut etmək üçün sübut etdiyim həll yolu, Youtube ilə bir məsafədə qarşılıqlı əlaqə qurmaq üçün Arduino əsaslı uzaqdan idarəetmədir. Uzaqdan kompüterimin əsas səs səviyyəsini dəyişdirmək, Youtube -da reklamları atmaq və Youtube -da videoları atmaq lazımdır.
Ayrıca, dinamikin nə qədər yüksək olduğunu təyin etmək üçün bir səs səviyyəsi sensoru da var ki, bu da reklam kimi yüksək fasilələri aşkar etdikdə avtomatik olaraq səs səviyyəsini aşağı salmaq üçün istifadə edilə bilər.
Nəhayət, PC tətbiqində aşkar edilmiş səs səviyyələrini göstərmək üçün bir cədvəl əlavə etdim.
Həll daha yaxşı işlənə bilər, amma mənim üçün bu vəzifəni yerinə yetirir.
Addım 1: Lazım olan komponentlər
Bütün bu komponentlər Leobot Electronics tərəfindən təmin edilir (https://leobot.net)
1) Arduino UNO R3
leobot.net/viewproduct.aspx?id=530
2) 4 KANAL UZAKTAN (315MHZ) + Alıcı Modulu (315MHZ)
leobot.net/viewproduct.aspx?id=521
3) MİKROFON SƏSİ & SES ALGILAMA SENSÖRÜ MODÜLÜ (KY-037)
leobot.net/viewproduct.aspx?id=217
Proqram təminatı
1) Visual Studio
visualstudio.microsoft.com/
2) Arduino IDE
www.arduino.cc/en/main/software
Addım 2: Hardware Setup
1) 4 Kanallı qəbuledici modulu Arduinoya qoşun.
4 Kanallı Alıcı Pin-> Arduino Uno Pin
GND-> GND
5V-> 5V
D0-> Rəqəmsal 2
D1-> Rəqəmsal 3
D2-> Rəqəmsal 4
D3-> Rəqəmsal 5
2) Mikrofon KY-037 modulunu Arduino-ya qoşun
Mikrofon KY-037 Pin-> Arduino Uno Pin
GND-> GND
+-> 3.3V
A0-> Analog 3
Addım 3: Arduino Kodu
Baxış
Arduinonun təqib etməli olduğu məntiq aşağıdakı kimidir:
A) Alıcının hər hansı bir işarə verdiyini yoxlayın.
B) Siqnalın hansı IO portundan alınacağından asılı olaraq PC -yə hansı komanda göndəriləcək.
C) Bütün uzaqdan idarəetmə hərəkətləri edildikdən sonra mikrofonla səs səviyyəsini aşkar edin və PC-yə göndərin.
D) PC -yə göndərilən bütün əmrlər əvvəlcə bir xarakterə, sonra bir dəyərə (əgər ehtiyac olarsa) malik olan bir formata malikdir.
E) Arduinodan PC -yə göndərilən beş əmr var
a. "U" - Səsi artırın
b. "D" - Səs Azaltma
c. "S" - Əlavə et
d. "V" - Videonu atla
e. "A" - Səs səviyyəsi aşkar edildikdən sonra dəyər
Arduino Kodu:
Arduino Kodunu buradan yükləyin:
int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;
boş quraşdırma () {
Serial.begin (9600);
pinMode (A3, GİRİŞ);
pinMode (in1, GİRİŞ);
pinMode (in2, GİRİŞ);
pinMode (in3, GİRİŞ);
pinMode (in4, GİRİŞ);
}
boşluq döngəsi () {
əgər (digitalRead (in1))
{
Serial.println ("u");
gecikmə (100);
}
əgər (digitalRead (in2))
{
Serial.println ("d");
gecikmə (100);
}
əgər (digitalRead (in3))
{
Serial.println ("s");
gecikmə (100);
}
əgər (digitalRead (in4))
{
Serial.println ("v");
gecikmə (100);
}
int readVal = analogRead (A3);
Serial.println (String ("a")+ String (readVal));
gecikmə (50);
}
Addım 4: PC Tətbiq Kodu (C#. NET)
Tətbiq COM (USB) portunu dinləyəcək və hansı əmrin alındığına görə reaksiya verəcək. PC -də səsi yuxarı və aşağı çevirməyin ən sadə yolu, Windows OS ilə birbaşa danışmaq üçün Interrop xidmətlərindən istifadə etməkdir. Siçanı ekranda müəyyən bir vəziyyətə gətirmək və klikləmək üçün Interrop xidmətlərindən də istifadə edirik. Fərqli ekranlara və baxış ölçülərinə icazə vermək üçün istifadəçiyə atlama və atlama video düymələrinin yerini təyin etməyə icazə veririk.
Aldığımız hər hansı bir səs əmrini göstərmək üçün standart bir.net diaqramından istifadə edirik.
Windows Kodu:
Tam layihəni buradan yükləyin:
leobot.net/audioadjust.zip
Sistemdən istifadə;
System. Collections. Generic istifadə edərək;
System. ComponentModel istifadə edərək;
System. Data istifadə edərək;
System. Drawing istifadə edərək;
System. Linq istifadə edərək;
System. Text istifadə edərək;
System. Windows. Forms istifadə edərək;
System. Runtime. InteropServices istifadə;
System. IO. Ports istifadə etmək;
System. Threading istifadə edərək;
ad sahəsi AudioAdjust
{
ictimai qismən sinif Form1: Form
{
[DllImport ("User32. Dll")]
ümumi statik xarici uzun SetCursorPos (int x, int y);
[DllImport ("User32. Dll")]
ictimai statik xarici bool ClientToScreen (IntPtr hWnd, ref POINT nöqtəsi);
[DllImport ("user32.dll", CharSet = CharSet. Auto, CallingConvention = CallingConvention. StdCall)]
public static extern void mouse_event (uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
// Siçan hərəkətləri
xüsusi const int MOUSEEVENTF_LEFTDOWN = 0x02;
xüsusi const int MOUSEEVENTF_LEFTUP = 0x04;
xüsusi const int MOUSEEVENTF_RIGHTDOWN = 0x08;
xüsusi const int MOUSEEVENTF_RIGHTUP = 0x10;
[DllImport ("user32.dll")]
statik xarici boşluq keybd_event (bayt bVk, bayt bScan, uint dwFlags, int dwExtraInfo);
Random aRand = yeni Random ();
public int LastLevel = 0;
ictimai int MaxLevel = 255;
statik SerialPort _serialPort;
int adX = 1281;
int adY = 706;
int vidX = 250;
int vidY = 780;
bool enableAudioChange = yalan;
ictimai forma1 ()
{
InitializeComponent ();
}
şəxsi boşluq Form1_Load (obyekt göndərən, EventArgs e)
{
string adları = System. IO. Ports. SerialPort. GetPortNames ();
comboBoxPort. Items. AddRange (adlar);
comboBoxPort. SelectedIndex = 0;
}
int currentPoint = 0;
şəxsi boşluq düyməsi1_Click (obyekt göndərən, EventArgs e)
{
_serialPort = yeni SerialPort ();
_serialPort. DataReceived += yeni SerialDataReceivedEventHandler (_serialPort_DataReceived);
_serialPort. PortName = comboBoxPort. SelectedItem. ToString (); // COM lövhənizi qurun
_serialPort. BaudRate = 9600;
əgər (_serialPort. IsOpen) _serialPort. Close ();
başqa
{
_serialPort. Open ();
}
// keybd_event ((bayt) Keys. VolumeDown, 0, 0, 0); // həcmi azaldın
}
vser _serialPort_DataReceived (obyekt göndərən, SerialDataReceivedEventArgs e)
{
cəhd edin
{
string fullval = _serialPort. ReadLine ();
string com = fullval [0]. ToString ();
keçid (com)
{
hal "a":
{
{
// səs səviyyəsi
string val = fullval. Replace ("a", "");
int valInt = int. Parse (val);
AddData (valInt);
}
fasilə;
}
hal "u":
{
// səs artır
keybd_event ((bayt) Keys. VolumeUp, 0, 0, 0); // həcmi azaldın
fasilə;
}
hal "d":
{
// səs aşağı
keybd_event ((bayt) Keys. VolumeDown, 0, 0, 0); // həcmi azaldın
fasilə;
}
hal "s":
{
// skipAd
MoveCursorSkipAd ();
Mövzu Yuxu (10);
DoMouseClick ();
fasilə;
}
hal "v":
{
// skipAd
MoveCursorSkipVideo ();
Mövzu Yuxu (10);
DoMouseClick ();
fasilə;
}
}
}
tutmaq
{
}
// yeni NotImplementedException () atın;
}
özəl boşluq MoveCursorSkipAd ()
{
Cursor. Position = new Point (1140, 725);
Cursor. Position = yeni nöqtə (adX, adY);
}
şəxsi boşluq MoveCursorSkipVideo ()
{
Cursor. Position = new Point (1140, 725);
Cursor. Position = yeni nöqtə (vidX, vidY);
}
ictimai boşluq DoMouseClick ()
{
// İdxal olunan funksiyanı kursorun cari mövqeyi ilə çağırın
uint X = (uint) Cursor. Position. X;
uint Y = (uint) Cursor. Position. Y;
mouse_event (MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
mouse_event (MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}
etibarsız AddData (int səviyyəsi)
{
əgər (EnableAudioChange)
{
əgər (səviyyə> = MaxLevel)
{
keybd_event ((bayt) Keys. VolumeDown, 0, 0, 0); // həcmi azaldın
keybd_event ((bayt) Keys. VolumeDown, 0, 0, 0); // həcmi azaldın
keybd_event ((bayt) Keys. VolumeDown, 0, 0, 0); // həcmi azaldın
}
başqa
{
əgər (səviyyə <MaxLevel - 0)
{
keybd_event ((bayt) Keys. VolumeUp, 0, 0, 0); // həcmi azaldın
}
}
}
SetChart (səviyyə);
currentPoint ++;
}
etibarsız SetTextCallback (int val);
şəxsi boşluq SetChart (int val)
{
// InvokeRequired tələb olunan
// yaradılan iş parçacığının mövzu identifikatoruna mövzu çağırır.
// Bu mövzular fərqlidirsə, doğruya dönər.
əgər (this.chart1. InvokeRequired)
{
SetTextCallback d = yeni SetTextCallback (SetChart);
this. Invoke (d, yeni obyekt {val});
}
başqa
{
chart1. Series [0]. Points. AddXY (0, val);
əgər (currentPoint> = 10)
{
chart1. Series [0]. Points. RemoveAt (0);
}
}
}
şəxsi boş mətnBoxLevel_TextChanged (obyekt göndərən, EventArgs e)
{
cəhd edin
{
MaxLevel = int. Parse (textBoxLevel. Text);
}
tutmaq
{
textBoxLevel. Text = MaxLevel + "";
}
}
şəxsi boşluq düyməsiTestSkip_Click (obyekt göndərən, EventArgs e)
{
MoveCursorSkipAd ();
Mövzu Yuxu (10);
DoMouseClick ();
}
şəxsi boş mətnBoxXpos_TextChanged (obyekt göndərən, EventArgs e)
{
cəhd edin
{
adX = int. Parse (textBoxXpos. Text);
}
tutmaq
{
textBoxXpos. Text = adX + "";
}
}
şəxsi boş mətnBoxYpos_TextChanged (obyekt göndərən, EventArgs e)
{
cəhd edin
{
adY = int. Parse (textBoxYpos. Text);
}
tutmaq
{
textBoxYpos. Text = adY + "";
}
}
şəxsi boşluq düyməsiSkipVideo_Click (obyekt göndərən, EventArgs e)
{
MoveCursorSkipVideo ();
Mövzu Yuxu (10);
DoMouseClick ();
}
şəxsi boş mətnBoxXposVid_TextChanged (obyekt göndərən, EventArgs e)
{
cəhd edin
{
vidX = int. Parse (textBoxXposVid. Text);
}
tutmaq
{
textBoxXposVid. Text = vidX + "";
}
}
şəxsi boş mətnBoxYposVid_TextChanged (obyekt göndərən, EventArgs e)
{
cəhd edin
{
vidY = int. Parse (textBoxYposVid. Text);
}
tutmaq
{
textBoxYposVid. Text = vidY + "";
}
}
şəxsi boşluq checkBoxEnable_CheckedChanged (obyekt göndərən, EventArgs e)
{
enableAudioChange = checkBoxEnable. Checked;
}
}
[StructLayout (LayoutKind. Sequential)]
ictimai quruluş nöqtəsi
{
public int x;
ictimai int;
}
}
Tövsiyə:
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə - 433mhz ilə HT12E və HT12D istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: 5 addım
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə | HT12E və HT12D -dən 433mhz istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: Bu təlimatda sizə HT12E kodlu 433mhz ötürücü qəbuledici modulu istifadə edərək RADIO uzaqdan idarə etməyi göstərəcəyəm. HT12D kod deşifratoru IC. Bu təlimatda çox ucuz komponentləri istifadə edərək məlumat göndərə və ala bilərsiniz: HT
Amazon Fire Uzaqdan Uzaqdan TV Uzaqdan sürüşdürün: 3 Addım (Şəkillərlə birlikdə)
Amazon Fire Uzaqdan Uzaqdan TV Uzaqdan Sürüşdürün: Oh Amazon, Fire TV'niz çox gözəldir, niyə bizə pultunuzda səs idarəetməsini vermədiniz? Yaxşı ki, Amazon -da 5 dollardan aşağı qiymətə bu sevimli kiçik uzaqdan, güc, səssiz satın ala bilərsiniz. , həcmi və hamısı kiçik bir paketdə. 3d printerə daxil edin
Adi Uzaqdan İdarəetmə Dəsti Dörd Kanallı RC Oyuncaq Uzaqdan İdarəetmə Sisteminə Çevrildi: 4 Addım
Adi Uzaqdan İdarəetmə Dəsti Dörd Kanallı RC Oyuncaq Uzaqdan İdarəetmə Sisteminə Çevrildi: 如何 通用 遥控 器 套件 转换 为 玩具 中 中 遥控 采用 采用 6 6 6 6 6 6 6 6 2262 和 2272 和 433 模块 构建 构建改造 方法 简单。 只需 准备 一些 瓦楞纸 板 , 然后 按照
IR Uzaqdan Uzaqdan Uzaqdan Çevirin: 9 Addım (Şəkillərlə birlikdə)
IR Uzaqdan Uzaqdan Uzaqdan RF -yə çevirin: Bugünkü Təlimat kitabında, ümumi bir RF modulunu mikro nəzarətçi olmadan necə istifadə edə biləcəyinizi sizə göstərəcəyəm ki, nəticədə hər hansı bir cihazın IR uzaqdan idarəetmə cihazını RF -yə çevirə biləcəyiniz bir layihə hazırlayaq. Uzaqdan. Çevirmənin əsas üstünlüyü
PC Youtube və Netflix üçün uzaqdan idarəetmə: 9 addım (şəkillərlə birlikdə)
PC Youtube və Netflix üçün uzaqdan idarəetmə: Yatağımdan uzaq bir masaüstü kompüter sayğacım var, buna görə yatağımda rahatlıqla youtube və film izləməyi sevirəm. Hər dəfə yatanda səsimi tənzimləmək, bəzi səbəblərə görə videonu dayandırmaq və ya sadəcə videonu tamamilə atmaq lazım olduğunu görürəm