โปรเจกต์ Arduino Based Phone
Arduino Based Phone ยังอยู่ระหว่างการพัฒนา โดย Code เป็นแบบ Open Source
Arduino Based Phone ยังอยู่ระหว่างการพัฒนา โดย Code เป็นแบบ Open Source
▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์
สวัสดีทุกคนครับ
วันนี้ใน instructable นี้ เราจะมาดูเกี่ยวกับโทรศัพท์ที่สร้างจาก Arduino โทรศัพท์เครื่องนี้เป็นเครื่องต้นแบบ (prototype) และยังอยู่ระหว่างการพัฒนา ซอร์สโค้ดเป็นแบบ opensource ซึ่งทุกคนสามารถนำไปแก้ไขโค้ดได้
ฟีเจอร์ในโทรศัพท์: 1. เพลง
2. วิดีโอ
3. บันทึก (Notes)
4. นาฬิกา
5. รูปภาพ
6. แผนที่
7. การโทร
8. วิทยุ
9. การตั้งค่า
10. เครื่องคิดเลข
โปรแกรมของโปรเจกต์นี้ใช้หน่วยความจำน้อย คุณยังสามารถขยายฟีเจอร์ของโทรศัพท์ได้ เช่น การเพิ่ม: fingerprint sensor, ข้อความ, GPS........และอื่นๆ
หัวใจหลักของโทรศัพท์เครื่องนี้คือ Arduino Mega 2560 โดยรูปภาพจะถูกเก็บไว้ใน SD card และถูกดึงมาแสดงผลบนหน้าจอ คุณสามารถใช้ SD card ขนาด 16GB หรือ 32GB ได้
หากคุณต้องการแก้ไขโค้ด ให้ดูโค้ดตัวอย่างก่อนแล้วจึงค่อยลองแก้ไข เพราะโค้ดมีความยาวเกือบ 2,000 บรรทัด ดังนั้นควรตรวจสอบโค้ดตัวอย่างก่อนเป็นอันดับแรก

1. Arduino Mega 2560 x1
2. SD card module x1
3. Voltage sensor หรือ current sensor 25v x1
4. 3.5 inch mcu friend tft display x1
5. Df Player Mini x1
6. GSM 800L x1
7. Audio amplifier x1
8. speakers x2
9. 2N3904 NPN transistor x1
10. 1k ohm resistor x2
11. Programmer for arduino x1
12. Mic amplifier x1
13. Male to Female jumper wire x40 (โดยประมาณ)
14. SD Card 16GB หรือ 32GB x2
15. LED x1
16. Power Bank x1
17. P55NFO6 MOSFET x1
18. IRF9540N MOSFET x1
19. Slide on/off switch x1
20. 300k ohm resistor x1
21. 10k ohm resistor x1
22. Male headers x10 (โดยประมาณ)
23. Prototyping board 18x30cm x1
24. Tactile push button x1
25. Female headers x10 (โดยประมาณ)
26. Stylus
27. DS3231


ขั้นแรกให้เชื่อมต่อ Arduino Mega 2560 เข้ากับ 3.5 inch mcu tft shield จากนั้นเชื่อมต่อ SD card module เข้ากับ Arduino Mega pins SPI อย่าลืมเสียบ SD card ใน SD card breakout module และเชื่อมต่อสาย 5V และ GND ให้เป็นเส้นกราวด์ร่วมกัน ตอนนี้ให้เชื่อมต่อ DS3231 เข้ากับ Arduino Mega pins I2C เชื่อมต่อ Voltage sensor เข้ากับ Arduino Mega pin A5 และเชื่อมต่อ LED เข้ากับ Arduino Mega pin 47
หมายเหตุ: โทรศัพท์เครื่องนี้มีปัญหาหลักอย่างหนึ่งคือเรื่องกระแสไฟฟ้า โทรศัพท์เครื่องนี้กินกระแสค่อนข้างมาก โดยต้องการกระแสเกือบ 2.1 Amps ซึ่งเกิดจากหน้าจอที่กินกระแสเกือบ 400ma หากคุณสามารถควบคุมความสว่างของ backlight ของหน้าจอได้ ปัญหาเรื่องพลังงานนี้ก็จะสามารถแก้ไขได้SD Card --> Arduino Mega 2560 :
CS -- pin 53
SCK -- pin 52
MOSI -- pin 51
MISO -- pin 50
VCC -- 5V
GND -- GND
-------------------------------------------------------------------------------------------------------
Arduino Mega 2560 --> Voltage module 25V :
A5 -- พิน output ของ module
GND -- GND ของ module
JACK +ve -- + ของ module
JACK-ve -- - ของ module
-----------------------------------------------------------------------------------------------------
Arduino Mega 2560 --> DS3231 :
SDA -- SDA ของ Arduino mega
SCL -- SCL ของ Arduino mega
VCC -- 5V
GND -- GND
-------------------------------------------------------------------------------------------------------
Arduino Mega 2560 --> Df Player Mini :
TX1 ของ Serial1port -- RX (หมายเหตุ: ให้เพิ่ม 1k ohm resistor คั่นระหว่าง TX1 กับ RX)
RX1 ของ Serial1port -- TX
GND ของ Arduino mega -- GND
5V -- VCC
Speaker + -- spk1
Speaker- -- spk2
---------------------------------------------------------------------------------------------------
Arduino Mega 2560 --> LED :
pin 47 -- +ve ของ led
GND -- -ve ของ led (ใส่ 1k ohm resistor คั่นระหว่าง gnd ของ arduino mega และ -ve ของ led)
-----------------------------------------------------------------------------------------------------
Arduino Mega 2560 --> 2N3904 NPN transistor : (การเชื่อมต่อนี้คือการรีเซ็ต Arduino ผ่านโค้ด)
GND --> Emitter
pin 48 --> Base ของ npn (หมายเหตุ: เพิ่ม 1k ohm resistor คั่นระหว่าง pin 49 ของ arduino และ base ของ transistor)
RESET --> Collecter
----------------------------------------------------------------------------------------------------
Arduino Mega 2560 --> GSM 800l
TX3 ของ Serial3port ของ arduino mega 2560 --> RX ของ GSM
RX3 ของ Serial3port ของ arduino mega 2560 --> TX ของ GSM
GND --> GND
5V --> VCC
---------------------------------------------------------------------------------------------------
Mic Amplifier --> GSM :
MIC+ --> MIC+ ของ GSM
MIC- --> MIC- ของ GSM
GND ของ mic --> GND ของ arduino mega
VCC ของ mic --> 5V ของ arduino mega
--------------------------------------------------------------------------------------------------
Audio Amplifier --> GSM :
Left --> Spk- ของ GSM
Right --> Spk+ ของ GSM
VCC --> 5V ของ arduino mega
GND --> GND ของ arduino mega
Spk+ --> Speaker+
Spk- --> Speaker-
-------------------------------------------------------------------------------------------------
ShutDown Circuit :
ดูในรูปภาพด้านบน
เชื่อมต่อ ctrl (พินควบคุม) เข้ากับ pin 49 ของ arduino mega




ก่อนทำสิ่งนี้ คุณต้องเตรียมการสามอย่าง หนึ่งคือฟอร์แมตของรูปภาพต้องเป็น ".bmp" สองคือชื่อของรูปภาพต้องยาวไม่เกิน 8 ตัวอักษร สามคือความละเอียดของรูปภาพต้องเป็น 320x480 เท่านั้น
ในการหาค่าพิกัด (co-ordinates) ของไอคอนบนหน้าจอ คุณต้องใช้โปรแกรม Windows Paint ซึ่งปกติจะมีให้ฟรีใน Windows ให้เปิดโปรแกรม Paint และเปิดไฟล์รูปภาพที่คุณต้องการหาพิกัด
ตรวจสอบให้แน่ใจว่าขนาดรูปภาพคือ 320x480 หากไม่ใช่ ให้ใช้ตัวเลือก resize เพื่อปรับขนาดรูปภาพ (หากคุณปรับขนาดรูปภาพ ให้เลือกตัวเลือก pixels แล้วพิมพ์ 320 ในช่องแรก และ 480 ในช่องที่สอง แล้วกด ok)
ทีนี้ ในการหาพิกัดและพื้นที่ของไอคอน ให้วางเมาส์ที่มุมบนซ้ายของไอคอน จากนั้นคลิกปุ่มซ้ายของเมาส์ค้างไว้แล้วลากเมาส์ให้คลุมไอคอน เมื่อคุณมองไปที่ด้านล่างของ Paint คุณจะเห็นพื้นที่ของไอคอน และหากต้องการดูพิกัดของไอคอน ให้วางเมาส์ที่มุมบนซ้ายแล้วมองที่มุมล่างซ้ายของโปรแกรม Paint คุณจะเห็นพิกัดของไอคอน อย่าเพิ่งขยับเมาส์ ให้จดพิกัดเหล่านั้นไว้ นี่คือวิธีหาพิกัดครับ
หากคุณต้องการหาพิกัด x1, y1 ด้วย ขั้นแรกให้หาความยาวของไอคอนในแนวนอน จากนั้นนำความยาวที่วัดได้ไปบวกกับพิกัด x ของไอคอน ผลลัพธ์ที่ได้คือพิกัด x1 ของคุณ และทำแบบเดียวกันเพื่อหาพิกัด y1 โดยวัดความยาวของไอคอนในแนวตั้งและนำไปบวกกับพิกัด y ของไอคอน ผลลัพธ์ที่ได้คือพิกัด y1

ดาวน์โหลด Library จากด้านล่างและเพิ่มเข้าไปใน Arduino IDE ของคุณ
1. DS3231 : http://www.rinkydinkelectronics.com/library.php?id...
2. Adafruit_GFX Library : https://github.com/adafruit/Adafruit-GFX-Library.g...
3. MCU Friend Library: https://github.com/prenticedavid/MCUFRIEND_kbv.git
4. Adafruit_TouchScreen Libary: https://github.com/adafruit/Adafruit_TouchScreen.g...
ดาวน์โหลดเฉพาะ Library เหล่านี้เท่านั้น ไม่จำเป็นต้องดาวน์โหลด DF player mini library, SD card library และ SPI library
SPI และ SD card library มีติดตั้งไว้ล่วงหน้าใน Arduino IDE อยู่แล้ว และโปรแกรมสำหรับ DF player mini ถูกเขียนไว้ในโค้ดแล้ว


ก่อนอื่น ตรวจสอบให้แน่ใจว่าได้ติดตั้ง DS3231 library ใน Arduino IDE แล้ว
ขั้นแรกเปิด Arduino IDE คลิกไปที่ file จากนั้นไปที่ examples ค้นหา DS3231 เปิด DS3231 และเลือก Arduino แล้วเปิดตัวอย่าง DS3231_Serial_Easy จากนั้นเลื่อนลงไปที่บรรทัดที่ 57 ของโค้ด และลบเครื่องหมาย comment (uncomment) ตั้งแต่บรรทัดที่ 57 ถึง 59 แล้วตั้งค่าวันปัจจุบัน เวลาปัจจุบัน และวันที่ปัจจุบัน จากนั้นอัปโหลดโค้ดไปยัง Arduino Mega เปิด serial monitor และตั้งค่า baud rate เป็น 115200 คุณจะเห็นวันที่ เวลา วัน และข้อมูลต่างๆ ทีนี้ให้ปิด monitor และใส่เครื่องหมาย comment บรรทัดที่เราเคยลบออกไป แล้วอัปโหลดโค้ดอีกครั้ง เพียงเท่านี้เวลา วันที่ และวันต่างๆ ก็จะถูกตั้งค่าเรียบร้อย และคุณจะเห็นเวลาที่ถูกต้อง




ขั้นแรกเปิด Arduino IDE จากนั้นไปที่ file ไปที่ examples เลื่อนลงและค้นหา MCUFRIEND_KBV คลิกเข้าไปแล้วค้นหาโปรแกรม TouchScreen_Calibr_native และเปิดขึ้นมา อัปโหลดโค้ดไปยัง Arduino Mega และหลังจากอัปโหลดเสร็จให้เปิด serial monitor ดูที่หน้าจอแล้วสัมผัสหน้าจอเพื่อ calibrate ระบบสัมผัสตามที่ระบบแนะนำ หลังจากทำตามขั้นตอนเสร็จแล้ว ให้ดูที่ serial monitor และคัดลอกค่า calibration จากที่นั่นไปวางในโค้ดโทรศัพท์หรือโค้ดตัวอย่าง เพียงเท่านี้การ calibrate ระบบสัมผัสก็เสร็จสมบูรณ์
หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนชื่อ driver ในโค้ดให้ตรงกับ driver ของหน้าจอที่คุณใช้
ลิงก์สำหรับโค้ดและรูปภาพอยู่ที่นี่: https://github.com/shiva1485/Arduino-Based-Phone....
หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้คัดลอกรูปภาพไปยัง root directory ของ SD card
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้
ประเมิน Project
เอาฟอร์มยาวออกจากท้ายหน้า Project แล้ว เหลือเป็นปุ่มให้กดไปกรอกหน้าเดียว ตัวใหญ่ เว้นบรรทัดเยอะ อ่านง่ายกว่า
รีวิวจากคนใช้งานจริง
ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย
ยังไม่มีรีวิวบนหน้านี้ ถ้าเคยใช้งานหรือมีข้อเสนอแนะ เขียนเป็นคนแรกได้เลย