рд╣рд╛рдп рдЕрдЬрдирдмреА!
рд▓рд╛рдЗрдЯрдкреИрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрдкрдбреЗрдЯ: рдЕрдкрд▓реЛрдб рдФрд░ рдЦреБрд▓рд╛
рдпрд╣ рдХрд╣рд╛рдиреА рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдкрд░ рдореЗрдЧрд╛ рд╕рд╕реНрддреЗ рдФрд░ рд╕рд░рд▓ рдЕрд╕реНрдкрд╖реНрдЯ рд░реЛрд╢рдиреА рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдХрдВрдбрдХреНрдЯрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ ATtiny44, рдФрд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░рд╛ 4 RGB-LED рд╣реЛрдВрдЧреЗред
рд░реБрдЪрд┐ рдЬрдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪрд┐рддреНрд░:
![](https://habrastorage.org/storage/habraeffect/d9/a7/d9a7fabe44841eb7f54ef13240660b8c.jpg)
![](https://habrastorage.org/storage/habraeffect/69/35/69356918f4f5a2e6b83c57cdc7b88525.jpg)
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА: "рдЪрд┐рддреНрд░реЛрдВ" (=) рдореЗрдВ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг
рдЕрджреНрдпрддрди: рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╡реАрдбрд┐рдпреЛ http://www.youtube.com/watch?v=tdp1QeS_JCg
UPDATE2: рднрд╛рдЧреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдирд╛рдо рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ (ATTINY44-20SSU)
UPDATE3: рдлрд╝реНрдпреВрдЬрд╝ рдЬреЛрдбрд╝рд╛ (рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрддрд╣рд╛рд╢рд╛ рдЦреЗрдж)
UPDATE4: рдирд┐рд╢реНрдЪрд┐рдд рдпреЛрдЬрдирд╛рдмрджреНрдз рдЖрд░реЗрдЦ (v2.1.3)
рдореБрдЭ рд╕реЗ рд▓реЗрдЦрдХ рдмрд╣реБрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЪрд▓реЛ рдмрд┐рдВрджреБ рдкрд░ рд╕рд╣реА рд╣реЛ:
рднрд╛рдЧреЛрдВ рдХреА рд╕реВрдЪреА
рдЕрдВрдЧ | рдХреЗрд╕ / рдЖрдХрд╛рд░ | рд╕рдВрдЦреНрдпрд╛ |
ATTINY44-20SSU
| SOIC | 1 |
74HC595
| SOIC | 2 |
RGB рдПрд▓рдИрдбреА
| рдПрд╕рдПрдордбреА 5x5 рдорд┐рдореА | 4 |
рд░реЗрд╕рд┐рд╕реНрдЯрд░ 10 рдХрд┐
| 0805 | 1 |
рд░реЗрд╕рд┐рд╕реНрдЯрд░ 1.5 рдХрд┐
| 0805
| 1 |
рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ 100R
| 0805
| 12 |
рд░реЗрд╕рд┐рд╕реНрдЯрд░ 68 рдЖрд░
| 0805
| 2 |
рд░реЗрд╕рд┐рд╕реНрдЯрд░ 0 рдЖрд░ | 1206 | 1 |
рдХреИрдк рдЯреИрдВрдЯрд▓рдо 4.7uF | 1206 | 1 |
рдХреИрдк рд╕рд┐рд░реЗрдорд┐рдХ 20 рдкреАрдПрдл | 0805 | 2 |
рдХреНрд╡рд╛рд░реНрдЯреНрдЬ 12Mhz | рдПрдЪрд╕реА -49 / рдпреВрдПрд╕ | 1 |
рдЬреЗрдирд░ рдбрд╛рдпреЛрдб 3.6 рд╡реА
| рдорд┐рдиреАрдореЗрд▓ (1206) | 2 |
MiniUSB | рдЯрд╛рдЗрдк рдмреА (рдПрд╕рдПрдордбреА)
| 1 |
PLS-40S
| DIP | 1 |
рдЧрд╛рдбрд╝реА | ~ 0.3 рдореА | 5 рддрд╛рд░
|
рдЧреНрд▓рд╛рд╕ рдлрд╛рдЗрдмрд░ | ~ 160x80 рдорд┐рдореА
| 1 |
рдбрдмрд▓ рдкрдХреНрд╖реАрдп рдЯреЗрдк | рдЧрд╛рдврд╝рд╛
| 1 |
рдХреБрд▓: 500 рд░реВрдмрд▓ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред
рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рджреЛ рддрд░рдлрд╛ рдЯреЗрдк рдкрд░ рд▓реИрдкрдЯреЙрдк рд╕реЗ тАЛтАЛрдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
![](https://habrastorage.org/storage/habraeffect/92/2d/922d5ee274eaf57c424230fd6bde5e00.gif)
рд╢рд╛рдпрдж рдмрд░реНрдл рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдореГрдд рд░рдЦрддрд╛ рд╣реИ, рдпреВрдПрд╕рдмреА рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмреЛрд░реНрдб рдкрдХрдбрд╝реЗ рдмрд┐рдирд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЫреАрд▓рддреЗ рд╣реИрдВ, рддреЛ рджрд╛рдЧ рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗ рдЬреЛ рдЖрд╕рд╛рдиреА
![](https://habrastorage.org/storage/habraeffect/d1/b3/d1b3136618af3f9d423d1c121db994fa.jpg)
![](https://habrastorage.org/storage/habraeffect/33/d2/33d22ac738c03156c1f9af4541a21a2d.jpg)
рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдиреАрдВрд╡ рдУрдмреНрджреЗрд╡ рд╕реЗ рд╡реА-рдпреВрдПрд╕рдмреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдЬрд╛рдБрдЪреА рдЧрдИ, рдкрд░реАрдХреНрд╖рдг рдХреА рдЧрдИ, рдФрд░ рддреБрд░рдВрдд рдХрд╛рдо рдХреА рдЧрдИ, рд╡рд╣ рд╡реА-рдпреВрдПрд╕рдмреА / рдЙрджрд╛рд╣рд░рдг / рдЫрд┐рдкреА-рдбреЗрдЯрд╛ рдереАред рдЫрд┐рдкрд╛рдИ рд╣рд░ рдЬрдЧрд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдбреНрд░рд╛рдЗрд╡рд░ рдорд╛рдирдХ рд╣реЛрддреЗ рд╣реИрдВ, рдпреВрдПрд╕рдмреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдХрд╛рдо рдкрд╣рд▓реЗ рд╣реА рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, hid-data рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЖрдк hiddata.c рдФрд░ hiddata.h рдлрд╛рдЗрд▓реЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд┐рдВрдбреЛрдЬрд╝ (рдЬреАрдд рдЖрдкреА) рдФрд░ рдпреВрдирд┐рдХреНрд╕ (рд▓рд┐рдмрд╕рдм) рдХреЗ рд▓рд┐рдП рдпреВрдПрд╕рдмреА рдЫрд┐рдкрд╛рдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдХреНрд░реАрди рдХреЗ 4 рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ 4 рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ, рдЗрд╕реЗ рд░реЗрдб, рдЧреНрд░реАрди, рдмреНрд▓реВ рдХреЗ рд░рдВрдЧ рдШрдЯрдХреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рд╕рднреА C ++, Qt рдФрд░ USB HID рдХреЗ рднреАрддрд░ред
![](https://habrastorage.org/storage/habraeffect/4f/82/4f82f57d2f2a1a11ace509ea5d5c09b5.png)
рд╣рдо AmbilightUSB.lay рдмреЛрд░реНрдб рдмрдирд╛рддреЗ рд╣реИрдВ (hw v2.1 рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг), рд╣рдо рдЗрд╕реЗ рдорд┐рд▓рд╛рдк рдХрд░рддреЗ рд╣реИрдВред
рдлрд░реНрдорд╡реЗрдпрд░ рдлрд╝реНрдпреВрдЬрд╝:
avrdude -pt44 -cusbasp -u -Ulfuse:w:0xee:m -Uhfuse:w:0xdf:m -Uefuse:w:0xff:m
рдФрд░ AmbilightUSB_v2.8.hex рдлрд░реНрдорд╡реЗрдпрд░ рднрд░реЗрдВ
avrdude -pt44 -cusbasp -u -Uflash:w:AmbilightUSB_v2.8.hex:a
рдХреЗрдмрд▓ USB A рдХреЛ miniUSB B рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
![](https://habrastorage.org/storage/habraeffect/a5/f0/a5f0f52dcbe67e43b8c39692e1312f39.jpg)
рдареАрдХ рд╣реИ, рд▓реЛрд╣рд╛ рддреИрдпрд╛рд░ рд╣реИ!
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрдирд╛, рд╕реЗрдЯрдЕрдк
рдпрджрд┐ рд╣рдо Win32 (Windows XP) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ Qt, gcc, mingw рд▓рд╛рдЗрдмреНрд░реЗрд░реА ( рдбрд╛рдЙрдирд▓реЛрдб ) рдФрд░ рдирд╡реАрдирддрдо рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг ( AmbilightUSB_v2.7.7.exe ) рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рджреМрдбрд╝реЗрдВ рдФрд░ рдЖрдирдВрдж рд▓реЗрдВ (=
Ubuntu x86_64 рдХреЗ рд▓рд┐рдП:
1) рдбрд╛рдЙрдирд▓реЛрдб AmbilightUSB_v2.7.7
2) Qt4 рдХреА рдЬрд╛рдБрдЪ /
$ sudo apt-get install libqt4-gui
рдХрд░реЗрдВ:
$ sudo apt-get install libqt4-gui
3) рд░рди:
./AmbilightUSB_v2.7.7
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рд▓реЙрдиреНрдЪ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЖрд╡реЗрджрди рдХреЛ рдЯреНрд░реЗ рдореЗрдВ рдЫреЛрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
![](https://habrastorage.org/storage/habraeffect/d8/f7/d8f7e1c6c5b6bd951ee95bcdc5702206.jpg)
рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрдЗрдХрди рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдирд╛
on/off
рд░рд╛рдЬреНрдп рдХреЛ
on/off
рд╣реИред
Ubuntu 10.04 (x86_64) рдФрд░ Windows XP (x86) рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛:
![](https://habrastorage.org/storage/habraeffect/9d/e8/9de8c7cbe5dc27c0447b117c56c43ce2.png)
рдХрдмреНрдЬрд╛ рдХрд┐рдП рдЧрдП рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЖрдк рдлрд┐рд▓реНрдо рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдореИрдВ рддреБрд░рдВрдд рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреВрдВрдЧрд╛ рдХрд┐ "рд╢реАрд░реНрд╖ рдкрд░ рдХреЛрдИ рдПрд▓рдИрдбреА рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ?", рд╕рднреА рдлрд┐рд▓реНрдореЗрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рд╡рд╛рдЗрдбрд╕реНрдХреНрд░реАрди рдФрд░ рдЕрдВрдзреЗрд░реЗ рд╕реНрдХреНрд░реАрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛ред рд╕рдЪ рд╣реИ, рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рдПрд▓рдИрдбреА рдЬреЛрдбрд╝рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реИред рд▓реЛрд╣реЗ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд░реНрдорд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рдЦрддреНрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ =)
![](https://habrastorage.org/storage/habraeffect/38/28/38283d35ab489d21d6bdcf0649da800f.jpg)
рд╕реНрд░реЛрдд рд╕реЗ рдмрдирд╛рдПрдБ (Qt4, gcc)
0) Qt4 рдХреА рдЬрд╛рдБрдЪ / рд╕реЗрдЯ рдХрд░реЗрдВ
$ sudo apt-get install libqt4-dev
$ sudo apt-get install libqt4-gui
1) рдЧреАрдереВрдм рд╕реЗ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
рднрдВрдбрд╛рд░ рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг: tar.gz рдпрд╛ рдЬрд╝рд┐рдк
рдпрд╛ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА:
$ git clone git@github.com:brunql/AmbilightUSB.git
2) tar.gz рдпрд╛ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ:
tar xzvf brunql-AmbilightUSB-v*.tar.gz
unzip brunql-AmbilightUSB-v*.zip
3) рд╡рд┐рдзрд╛рдирд╕рднрд╛:
$ cd {path/to/AmbilightUSB}/Software/
$ ./update_locales.sh
$ qmake AmbilightUSB.pro
$ make
4) рд▓реЙрдиреНрдЪ!
$ ./build/AmbilightUSB
рд▓реЙрдЧ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ:
Linux: ${HOME}/.AmbilightUSB.log
Windows: C:\Documents and Settings\UserName\.AmbilightUSB.log
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╣рд╛рдВ рд╕рд╣реЗрдЬреА рдЧрдИ рд╣реИрдВ:
Linux: ${HOME}/.config/brunql.dev/AmbilightUSB.ini
Windows: C:\Documents and Settings\UserName\Application Data\brunql.dev\AmbilightUSB.ini
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕
AmbilightUSB.ini
рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
рдЗрдВрдЯрд░рдлрд╝реЗрд╕:
English, Russian
GitHub рдкрд░ рд╕реНрд░реЛрдд , рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдбрд╛рдЙрдирд▓реЛрдб ред
рдЗрд╕реА рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ
рдЕрд░реНрджреЛрд▓рд╛рдЗрдЯ рдПрдореНрдмреАрд▓рд╛рдЗрдЯ рдЯреАрд╡реА рдмреИрдХрд▓рд╛рдЗрдЯ
MoMoLight: YouTube рдФрд░ рд╡рд┐рд╡рд░рдг ред
Ambilight 4PC
рд╣рдм рдкрд░: рдореИрдВ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдХреЗ рд▓рд┐рдП рдПрдВрдмреАрд▓рд╛рдЗрдЯ рдХреИрд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЖрдпрд╛
рд╣рдмрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрд░реНрдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж: рдЯреЙрд╕рд░ , рдЖрджрд┐ , рдХреНрд░реЗрдХ , рд╢рд╛рдкрд╛рдирдХреЛрд╡ , рдпреВрдПрдлрдУ
рд╕рднреА рдЪрд╢реНрдореЛрдВ рдХреЛ рдкреАрдПрдо, рдпрд╛ рдИ-рдореЗрд▓ рдкрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз: mike.shatohin [at] gmail.com