หน้าแรก ดูโปรเจกต์ทั้งหมด
Expert

โปรเจกต์ Arduino Based Phone

Arduino Based Phone ยังอยู่ระหว่างการพัฒนา โดย Code เป็นแบบ Open Source

โปรเจกต์ Arduino Based Phone

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

รายการอุปกรณ์และเครื่องมือ

1x Solder Wire, Lead Free
-
1x Soldering iron (generic)
-
1x Programming Cable, USB
🛒 สั่งซื้อ
1x Arduino Mega 2560
🛒 สั่งซื้อ
1x Hot glue gun (generic)
-
1x Flash Memory Card, SD Card
-

รายละเอียดและวิธีทำ



สวัสดีทุกคนครับ

วันนี้ใน 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 บรรทัด ดังนั้นควรตรวจสอบโค้ดตัวอย่างก่อนเป็นอันดับแรก

Step 1: Components

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

Step 2: Hardware Wiring

ขั้นแรกให้เชื่อมต่อ 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

Step 3: How to Find the Co-ordinates of the Icon (If You Want to Add Any Apps Only Then See This )

ก่อนทำสิ่งนี้ คุณต้องเตรียมการสามอย่าง หนึ่งคือฟอร์แมตของรูปภาพต้องเป็น ".bmp" สองคือชื่อของรูปภาพต้องยาวไม่เกิน 8 ตัวอักษร สามคือความละเอียดของรูปภาพต้องเป็น 320x480 เท่านั้น

ในการหาค่าพิกัด (co-ordinates) ของไอคอนบนหน้าจอ คุณต้องใช้โปรแกรม Windows Paint ซึ่งปกติจะมีให้ฟรีใน Windows ให้เปิดโปรแกรม Paint และเปิดไฟล์รูปภาพที่คุณต้องการหาพิกัด

ตรวจสอบให้แน่ใจว่าขนาดรูปภาพคือ 320x480 หากไม่ใช่ ให้ใช้ตัวเลือก resize เพื่อปรับขนาดรูปภาพ (หากคุณปรับขนาดรูปภาพ ให้เลือกตัวเลือก pixels แล้วพิมพ์ 320 ในช่องแรก และ 480 ในช่องที่สอง แล้วกด ok)

ทีนี้ ในการหาพิกัดและพื้นที่ของไอคอน ให้วางเมาส์ที่มุมบนซ้ายของไอคอน จากนั้นคลิกปุ่มซ้ายของเมาส์ค้างไว้แล้วลากเมาส์ให้คลุมไอคอน เมื่อคุณมองไปที่ด้านล่างของ Paint คุณจะเห็นพื้นที่ของไอคอน และหากต้องการดูพิกัดของไอคอน ให้วางเมาส์ที่มุมบนซ้ายแล้วมองที่มุมล่างซ้ายของโปรแกรม Paint คุณจะเห็นพิกัดของไอคอน อย่าเพิ่งขยับเมาส์ ให้จดพิกัดเหล่านั้นไว้ นี่คือวิธีหาพิกัดครับ

หากคุณต้องการหาพิกัด x1, y1 ด้วย ขั้นแรกให้หาความยาวของไอคอนในแนวนอน จากนั้นนำความยาวที่วัดได้ไปบวกกับพิกัด x ของไอคอน ผลลัพธ์ที่ได้คือพิกัด x1 ของคุณ และทำแบบเดียวกันเพื่อหาพิกัด y1 โดยวัดความยาวของไอคอนในแนวตั้งและนำไปบวกกับพิกัด y ของไอคอน ผลลัพธ์ที่ได้คือพิกัด y1

Step 4: Libraries

ดาวน์โหลด 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 ถูกเขียนไว้ในโค้ดแล้ว

Step 5: How to Set Date and Time

ก่อนอื่น ตรวจสอบให้แน่ใจว่าได้ติดตั้ง 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 บรรทัดที่เราเคยลบออกไป แล้วอัปโหลดโค้ดอีกครั้ง เพียงเท่านี้เวลา วันที่ และวันต่างๆ ก็จะถูกตั้งค่าเรียบร้อย และคุณจะเห็นเวลาที่ถูกต้อง

Step 6: Touch Calibration for Screen

ขั้นแรกเปิด Arduino IDE จากนั้นไปที่ file ไปที่ examples เลื่อนลงและค้นหา MCUFRIEND_KBV คลิกเข้าไปแล้วค้นหาโปรแกรม TouchScreen_Calibr_native และเปิดขึ้นมา อัปโหลดโค้ดไปยัง Arduino Mega และหลังจากอัปโหลดเสร็จให้เปิด serial monitor ดูที่หน้าจอแล้วสัมผัสหน้าจอเพื่อ calibrate ระบบสัมผัสตามที่ระบบแนะนำ หลังจากทำตามขั้นตอนเสร็จแล้ว ให้ดูที่ serial monitor และคัดลอกค่า calibration จากที่นั่นไปวางในโค้ดโทรศัพท์หรือโค้ดตัวอย่าง เพียงเท่านี้การ calibrate ระบบสัมผัสก็เสร็จสมบูรณ์

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนชื่อ driver ในโค้ดให้ตรงกับ driver ของหน้าจอที่คุณใช้

Step 7: Code of the Project

ลิงก์สำหรับโค้ดและรูปภาพอยู่ที่นี่: https://github.com/shiva1485/Arduino-Based-Phone....

หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้คัดลอกรูปภาพไปยัง root directory ของ SD card

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: arduino-based-phone-56d407
2560 บาท
PromptPay QR Code

ประเมิน Project

อยากได้งานคล้ายโปรเจคนี้? กดไปหน้าประเมินราคา

เอาฟอร์มยาวออกจากท้ายหน้า Project แล้ว เหลือเป็นปุ่มให้กดไปกรอกหน้าเดียว ตัวใหญ่ เว้นบรรทัดเยอะ อ่านง่ายกว่า

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...