HTG2.club

Home Theater Guide webboard => มุม Thai DIY Audio => ข้อความที่เริ่มโดย: Jakaman ที่ 27 ธันวาคม, 2012, 12:25:37 pm

หัวข้อ: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 27 ธันวาคม, 2012, 12:25:37 pm
พื้นฐานไมโครคอนโทรลเลอร์ด้วย Arduino
ไมโครคอนโทรลเลอร์คืออะไร
ไมโครคอนโทรลเลอร์ คือ อุปกรณ์ที่มีหน่วยประมวลผลและความจำขนาดเล็กภายในตัวเอง สามารถรับ-ส่ง ข้อมูลได้ทั้งแบบดิจิตอลและอนาล็อก ใช้พลังงานน้อย ทำให้เป็นที่นิยมในการใช้งานในรูปแบบที่เรียกว่า Embedded เช่น เครื่องใช้ไฟ้าอัจฉริยะทั้งหลาย

Arduino คืออะไร
Arduino (อ่านว่า อา-ดู-อิ-โน่ หรือจะเรียกว่า อาดุยโน่ ก็ได้) คือ ไมโครคอนโทรลเลอร์ ชนิดหนึ่ง ซึ่งเป็นแบบที่เรียกว่า Open Hardware กล่าวคือ Arduino อุปกรณ์ที่มีแบบส่วนป...ระกอบเป็นมาตรฐานที่เปิดเผย หมายความว่า เราสามารถทำเองโดยใช้แบบที่มีการเปิดเผยทั่วไปก็ได้ หรือสามารถซื้อหาได้ง่าย มีราคาถูก มีซ๊อพต์แวร์ให้ใช้งานฟรี สามารถนำไปใช้งานทั่วไปหรือแบบธุรกิจได้โดยไม่ต้องเสียค่าลิขสิทธิ์ เป็นรูปแบบที่มีข้อมูลมากที่สุดบนอินเตอร์เน็ต การพัฒนาก็ง่าย เพราะมีตัวอย่างมากมาย และไม่ต้องเขียนโปรแกรมในรูปแบบ Low Level หมายความว่า เราสามารถใช้คำสั่งเขียนโปรแกรมได้เสมือนโปรแกรมภาษาชั้นสูงทั่วไป

แนวทางประยุกต์ใช้
- เปิดปิดเครื่องใช้ไฟฟ้าผ่าน Serial port หรือ USB
- ทำไฟวิ่งหลายรูปแบบ
- วงจรหน่วงเวลาสำหรับป้องกันลำโพง
- ทำ Display บอกสถานะต่างๆเช่นแรงดันตกคร่อมเครื่องเสียงของเรา
- หุ่นยนต์
- CNC
- โอ้ย...อีกเยอะ

วิธีการเขียน Arduino เบื้องต้น
กำหนดฟังก์ชั่นขึ้นมาสองตัวคือ
void setup()
{
}
void loop()
{
}
ซึ่ง setup() เป็นเหมือนกับ Constructor ของคลาสไว้สำหรับกำหนดค่าเบื้องต้นในครั้งแรกให้กับตัวแปรต่างๆหรือเป็นการกำหนด pinMode ให้เป็น OUTPUT หรือ INPUT
ส่วน loop() จะเป็นส่วนของโปรเซสที่เราต้องการให้ทำงาน โดยที่เมื่อทำงานจนถึง } (ปีกาปิด) แล้วมันจะย้อนกลับขึ้นไปทำงานที่ { (ปีกาเปิด) ใหม่อีกครั้งเป็น loop ที่ทำงานไม่มีวันจบ

วันหลังผมมาต่อเรื่องพื้นฐานของ Pin และคำสั่งเบื้องต้นครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 27 ธันวาคม, 2012, 12:27:06 pm
รูปตัวอย่างบอร์ด Arduino ของผมครับ อันนี้เป็นรุ่น Mega 2560 ครับ จัดว่าเป็นรุ่นใหญ่ของ Arduino เลยและมีพอร์ตค่อนข้างมากครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 27 ธันวาคม, 2012, 12:28:01 pm
ส่งรูปใหม่ (มันไม่ยอมมา)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Ratto ที่ 27 ธันวาคม, 2012, 01:02:00 pm
น่าสนใจนะครับ น่าเอามาลองทำดูบ้าง ปูสื่อนั่งรอดูตอนถัดไปครับ  :kicking
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: มาดถาน ที่ 27 ธันวาคม, 2012, 01:34:51 pm
เคยได้ยินมาครับ รู้สึกว่าฝรั่งจะใช้ตัวนี้เยอะน่ะครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Goda Takeshi ที่ 27 ธันวาคม, 2012, 01:54:43 pm
ผมเกือบจะซื้อตอนนัฐพงษ์ลดประจำปี แต่บอร์ดมันไม่ได้อยู่ในโปรเลยไม่ได้ซื้อ ว่าจะสั่งจาก ebay มาลองเล่นดูเหมือนกันครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: aphiphot ที่ 27 ธันวาคม, 2012, 02:09:42 pm
เห็นเอาไปทำอากาศยานขึ้นลงทางดิ่งแบบMulti Rotorกันเยอะเหมือนกันนะครับ คำสั่งใช้เหมือนภาษาซีหรือเปล่าครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: อวยพร ที่ 27 ธันวาคม, 2012, 07:24:18 pm
รอเทพๆมาสอนให้เล่นอยู่ครับ อิอิ ผมดอง mega2560 ไว้อยู่บอร์ดนึงแล้วครับ ทำอะไรเล่นสะดวกดี  d_d
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 27 ธันวาคม, 2012, 10:00:04 pm
ผมก็ไม่ได้เทพอะไรนะครับ พอดีลองซื้อบอร์ดมาเล่นลองเขียนโปรแกรมดูเลยเอามาโพสต์เป็นวิทยาทานเผื่อว่าท่านใดจะเอาไปต่อยอดได้อีก งั้นก็เริ่มเลยรึกันครับ

Pin คืออะไร
ในการใช้งาน Microcontroler หรือเรียกสั้นๆว่า MCU นั้นหลักพื้นฐานก็คือเราใช้ MCU เพื่อควบคุม PORT ต่างๆให้สามารถทำงานได้ตามที่ต้องการนั้นเอง โดยปกติแล้ว PORT 1 PORT นั้นจะสามารถกำหนดให้เป็น INPUT หรือ OUTPUT ก็ได้ครับ โดยที่ MCU ทั่วไปจะกำหนดชื่อ PORT เป็น A,B,C,... ซึ่ง PORT นึงก็จะแบ่งออกเป็น 8 ขา ยกตัวอย่าง PORT A จะประกอบไปด้วย A0-A7 เป็นต้น แต่บอร์ด Arduino นั้นไม่ได้เรียกเป็น PORT แต่ใช้การเรียกในระดับ PIN แทนซึ่งก็แล้วแต่รุ่นว่าจะมี PIN กี่ PIN อย่างรุ่นที่ผมให้ดูรูปคือ MAGA 2560 นั้นมี PIN ทั้งหมด 53 PIN โดย PIN นั้นแบ่งประเภทได้สองแบบคือ
1. แบบอนาล็อก คือสามารถกำหนดการรับหรือส่งค่าได้ตั้งแต่ 0-5V ซึ่งหากเทียบค่าแล้วจะได้เท่ากับ 0-1023 นั้นเอง เช่น 2.5V จะได้ค่า 511 เทียบตามบัญญัติตระยางครับ
2. แบบดิจิตอล คือกำหนดให้มีสองสถานะคือ HIGH (5V) กับ LOW (0V)

ทีนี้หากเราต้องการเริ่มใช้งานบอร์ดเพื่อลองเขียนโปรแกรมในเบื้องต้น ซึ่งเมื่อเราได้บอร์ดมาแล้ว ให้ทำการโหลดตัวพัฒนาซึ่งสามารถหาได้จาก arduino.cc ครับ ล่าสุดที่ผมเขียนบทความนี้คือ 1.0.3 ครับ จากนั้นแตกไฟล์ที่ได้จะเห็นโฟลเดอร์ชื่อว่า driver ให้เราเสียบบอร์ดกับ USB ของคอมพิวเตอร์ให้เรียบร้อย จากนั้นให้ติดตั้ง driver ผ่านโฟลเดอร์ดังกล่าวครับ ซึ่งมีครบทุกรุ่นแน่นอน

โปรแกรมแรก
เบื้องต้นอยากให้ทุกท่านทราบว่าใน PIN หมายเลข 13 นั้นจะต่อกับ LED บนบอร์ดอยู่แล้ว เราสามารถลองเขียนโปรแกรมแรกเพื่อทดสอบการทำงานของบอร์ดได้จาก PIN 13 ได้เลยครับ
void setup()
{
  //กำหนดให้ PIN หมายเลข 13 เป็นประเภท OUTPUT
  pinMode(13,OUTPUT);
}
void loop()
{
  //ให้ PIN ที่ 13 มีสถานะเป็น HIGH ในที่นี้คือจะมีแรงดัน 5V ออกมาที่ PIN ฉะนั้น LED จะติด
  digitalWrite(13,HIGH);
  //ให้รอเป็นเวลา 1 วินาที โดยที่ 1000 มีค่าเท่ากับ 1 วินาทีครับ
  delay(1000);
  //ให้ PIN ที่ 13 มีสถานะเป็น LOW ในที่นี้คือจะมีแรงดัน 0V ออกมาที่ PIN ฉะนั้น LED จะดับ
  digitalWrite(13,LOW);
  //รอ 1/2 วินาที
  delay(500);
}

จะเห็นว่าเบื้องต้นหากเราต้องการเขียนโปรแกรม Arduino นั้นจะต้องบังคับให้มี Function อย่างน้อยสองฟังก์ชั่นนี้นะครับ ซึ่ง Arduino จะเริ่มทำงานที่ setup() ก่อนหลังจากนั้นเมื่อพ้นเครื่องหมายปีกาปิด } มันถึงจะไปทำ loop() ต่อ และเมื่อโปรแกรมทำจนสิ้นสุดเครื่องหมายปีกาปิดของ loop() แล้วมันจะทำการเีรียกฟังก์ชั่น loop() ตัวเองต่อไปไม่มีที่สิ้นสุดครับ

งวดหน้ามาว่ากันต่อครับ ลองซื้อบอร์ดมาลองเีขียนกันก่อนนะครับ ลองแปลงโปรแกรมเล่นๆดูก่อนได้ครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 27 ธันวาคม, 2012, 10:09:36 pm
เพิ่มเติม

คำสั่ง pinMode เป็นคำสั่งที่กำหนดประเภทให้ PIN โดยรูปแบบในการใช้งานมีดังนี้

pinMode([PIN number], [OUTPUT หรือ INPUT]);

ตัวอย่าง

pinMode(5,OUTPUT);
pinMode(4,INPUT);

คำสั่ง digitalWrite คือคำสั่งที่กำหนดให้ PIN ในแบบดิจิตอลมีค่าเป็น LOW หรือ HIGH รูปแบบมีดังนี้

digitalWrite(([PIN number], [HIGH หรือ LOW]);

ตัวอย่าง

digitalWrite(5,HIGH);
digitalWrite(4,LOW);
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: ออดิโอแมน ที่ 28 ธันวาคม, 2012, 08:40:15 am
ขอบคุณ และติดตามครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: มาดถาน ที่ 28 ธันวาคม, 2012, 03:56:49 pm
ผมก็ไม่ได้เทพอะไรนะครับ พอดีลองซื้อบอร์ดมาเล่นลองเขียนโปรแกรมดูเลยเอามาโพสต์เป็นวิทยาทานเผื่อว่าท่านใดจะเอาไปต่อยอดได้อีก งั้นก็เริ่มเลยรึกันครับ

Pin คืออะไร
ในการใช้งาน Microcontroler หรือเรียกสั้นๆว่า MCU นั้นหลักพื้นฐานก็คือเราใช้ MCU เพื่อควบคุม PORT ต่างๆให้สามารถทำงานได้ตามที่ต้องการนั้นเอง โดยปกติแล้ว PORT 1 PORT นั้นจะสามารถกำหนดให้เป็น INPUT หรือ OUTPUT ก็ได้ครับ โดยที่ MCU ทั่วไปจะกำหนดชื่อ PORT เป็น A,B,C,... ซึ่ง PORT นึงก็จะแบ่งออกเป็น 8 ขา ยกตัวอย่าง PORT A จะประกอบไปด้วย A0-A7 เป็นต้น แต่บอร์ด Arduino นั้นไม่ได้เรียกเป็น PORT แต่ใช้การเรียกในระดับ PIN แทนซึ่งก็แล้วแต่รุ่นว่าจะมี PIN กี่ PIN อย่างรุ่นที่ผมให้ดูรูปคือ MAGA 2560 นั้นมี PIN ทั้งหมด 53 PIN โดย PIN นั้นแบ่งประเภทได้สองแบบคือ
1. แบบอนาล็อก คือสามารถกำหนดการรับหรือส่งค่าได้ตั้งแต่ 0-5V ซึ่งหากเทียบค่าแล้วจะได้เท่ากับ 0-1023 นั้นเอง เช่น 2.5V จะได้ค่า 511 เทียบตามบัญญัติตระยางครับ
2. แบบดิจิตอล คือกำหนดให้มีสองสถานะคือ HIGH (5V) กับ LOW (0V)

ทีนี้หากเราต้องการเริ่มใช้งานบอร์ดเพื่อลองเขียนโปรแกรมในเบื้องต้น ซึ่งเมื่อเราได้บอร์ดมาแล้ว ให้ทำการโหลดตัวพัฒนาซึ่งสามารถหาได้จาก arduino.cc ครับ ล่าสุดที่ผมเขียนบทความนี้คือ 1.0.3 ครับ จากนั้นแตกไฟล์ที่ได้จะเห็นโฟลเดอร์ชื่อว่า driver ให้เราเสียบบอร์ดกับ USB ของคอมพิวเตอร์ให้เรียบร้อย จากนั้นให้ติดตั้ง driver ผ่านโฟลเดอร์ดังกล่าวครับ ซึ่งมีครบทุกรุ่นแน่นอน

โปรแกรมแรก
เบื้องต้นอยากให้ทุกท่านทราบว่าใน PIN หมายเลข 13 นั้นจะต่อกับ LED บนบอร์ดอยู่แล้ว เราสามารถลองเขียนโปรแกรมแรกเพื่อทดสอบการทำงานของบอร์ดได้จาก PIN 13 ได้เลยครับ
void setup()
{
  //กำหนดให้ PIN หมายเลข 13 เป็นประเภท OUTPUT
  pinMode(13,OUTPUT);
}
void loop()
{
  //ให้ PIN ที่ 13 มีสถานะเป็น HIGH ในที่นี้คือจะมีแรงดัน 5V ออกมาที่ PIN ฉะนั้น LED จะติด
  digitalWrite(13,HIGH);
  //ให้รอเป็นเวลา 1 วินาที โดยที่ 1000 มีค่าเท่ากับ 1 วินาทีครับ
  delay(1000);
  //ให้ PIN ที่ 13 มีสถานะเป็น LOW ในที่นี้คือจะมีแรงดัน 0V ออกมาที่ PIN ฉะนั้น LED จะดับ
  digitalWrite(13,LOW);
  //รอ 1/2 วินาที
  delay(500);
}

จะเห็นว่าเบื้องต้นหากเราต้องการเขียนโปรแกรม Arduino นั้นจะต้องบังคับให้มี Function อย่างน้อยสองฟังก์ชั่นนี้นะครับ ซึ่ง Arduino จะเริ่มทำงานที่ setup() ก่อนหลังจากนั้นเมื่อพ้นเครื่องหมายปีกาปิด } มันถึงจะไปทำ loop() ต่อ และเมื่อโปรแกรมทำจนสิ้นสุดเครื่องหมายปีกาปิดของ loop() แล้วมันจะทำการเีรียกฟังก์ชั่น loop() ตัวเองต่อไปไม่มีที่สิ้นสุดครับ

งวดหน้ามาว่ากันต่อครับ ลองซื้อบอร์ดมาลองเีขียนกันก่อนนะครับ ลองแปลงโปรแกรมเล่นๆดูก่อนได้ครับ

ดูๆแล้วรู้สึกจะเขียนง่ายกว่า PIC MCS เยอะเลยน่ะครับ พอจะมีหนังสือแนะนำไหมครับ ขอบคุณครับสำหรับตัวอย่างโปรแกรมครับ  :good :good :good :good :good :good :good
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: gapong2512 ที่ 28 ธันวาคม, 2012, 04:25:22 pm
เข้ามาปูเสื่อดูอีกคนครับ สนใจอยู่ครับ อยากทราบว่าตอนนี้ บอร์ดมีขายที่ไหนบ้างราคาเท่าไร และถ้าจะหาซื้อทำไงครับ แบบว่าอยู่ต่างจังหวัดครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Goda Takeshi ที่ 28 ธันวาคม, 2012, 04:56:46 pm
ผมเพิ่งสั่งจาก ebay เป็น mega แต่ต่อกับ android ADK ได้ ราคาประมาณ 53 us

ถ้าเป็น mega ธรรมดา ก็ 18-20+ us ครับ

หนังสือ http://www.futurlec.com/Arduino_Books.shtml เห็นเล่มนี้ฝรั่งอ้างถึงบ่อยๆครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Johnney_por ที่ 28 ธันวาคม, 2012, 06:08:26 pm
ตอนนี้กำลังศึกษาอยู่ครับ เกิดความสนใจที่เห็นเค้าเอามาทำเป็นนาฬิกากัน เลยอยากลองทำเป็นตัวหนังสือมั่ง แต่ตอนนี้ยังไม่คืบหน้าเพราะว่ายังไม่ว่างเลยไม่มีเวลาศึกษาต่อ เข้ามาขอคำแนะนำครับ...... c)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: makham ที่ 29 ธันวาคม, 2012, 07:31:54 am
ลองดูของคนไทยดูครับ ที่น้องๆที่ทำงานใช้อยู่
http://www.ett.co.th/product2009/ET-AVR/ET-EASY-AVR-LCD.html
 ^-^
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 29 ธันวาคม, 2012, 11:08:03 am
ดีใจจังมีคนอยากเล่นเหมือนกัน เล่นคนเดียวเหงามานานแล้วเลยหาเพื่อนร่วมแก๊งครับ งั้นมาต่อกันเลยนะครับ

คำสั่ง

คำว่าคำสั่งนั้นแบ่งออกเป็นสองประเภทคือ
1. คำสั่งภายใน
2. คำสั่งภายนอก

คำสั่งภายนอกส่วนใหญ่จะเขียนสำเร็จรูปไว้แล้ว ทั้งใน Complier เองและในการอ้างมาจากที่อื่น(จาก CLass)ซึ่งจะอยู่ในรูปแบบของ Function นั้นเองครับ

ตัวอย่างการอ้างมาจากข้างนอก
#include <LiquidCrystal.h>
สั่งเกตุว่าเราจะใช้คำสั่ง #include แล้วตามด้วยไฟล์ที่อยู่ใน Folder ชื่อ Libraries นั้นเอง

วิธีการเพิ่ม Library ลงใน Arduino
หากเราต้องการให้ Arduino มีความสามารถมากขึ้นให้เราก๊อป Lib folder มาจากที่อื่น แล้วให้เอามาวางลงใน Folder นี้แล้วรีสตาร์ท IDE มันก็จะเข้ามาอยู่ในเมนูทั่ง File->Example และ Sketch->Import Library แล้วครับ

Class และ Object
ก่อนอื่นผมจะออกตัวก่อนว่าจะบรรยายเพียงวิธีการนำไปใช้งานเท่านั้นนะครับ แต่คงไม่กล่าวถึงการสร้างคลาสเพราะยาวมากครับ คงต้องเชียนหนังสือเป็นเล่มแน่ๆกว่าจะเข้าใจกัน
Class คือพิมพ์เขียว Object ครับ หมายถึง Class ไม่สามารถนำเอาไปใช้ได้ทันที จะต้องนำไปสร้างเป็น Object ก่อนถึงจะสามารถใช้ได้ครับ ยกตัวอย่างของการผลิตรถ คลาสรถก็คือพิมพ์เขียวและงานออกแบบต่างๆซึ่งจะบอกว่ารถคันนั้นมีคุณสมบัติอย่างไร ทำงานอย่างไรคงไม่มีใครเอากระดาษพิมพ์เขียวมาขับจริงมั้ยครั้บ จากนั้นเราก็จะนำพิมพ์เขียวต่างๆเข้าในโรงงาน(Factory) แล้วสร้างตามแบบที่ออกแบบเอาไว้สุดท้ายก็จะออกมาเป็นรถยนต์ตามที่ต้องการ (Object) นั้นเอง
การสร้าง Object ทำได้ดังนี้

[ชื่อ Class] [ชื่อ Object];

หรือกรณีมีตัวแปรเริ่มต้น(Constructor) ให้กำหนดแบบนี้

[ชื่อ Class] [ชื่อ Object](param1,param2...);

ตัวอย่าง

BettleCar car1;

หรือแบบมี Constructor

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

เท่านี้เราก็สามารถที่จะเอา Object ไปใช้งานได้เลยครับ

วิธีการใช้งาน Object

[ชื่อ Object].[ชื่อ Function](Parameter,..,..);

ซึ่งชื่อ Function จะเป็นอะไรนั้นก็ขึ้นอยู่กับผู้ที่เขียนคลาสครับ เราสามารถดูได้จากเวปต่างๆที่เราไปก๊อปคลาสนั้นมาใช้งานครับ หรือไม่ก็ให้ดูใน *.h ที่เราก๊อปมาก็ได้ครับ

ตัวอย่างการนำไปใช้งานคือ

car1.Run(30);

วันนี้ไม่ไหวแล้วครับพิมพ์เหมื่อยมากเลย ขอตัวไปอาบน้ำก่อนครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: nut_ty ที่ 29 ธันวาคม, 2012, 11:11:23 am
ถ้าจำไม่ผิด Arduino สามารถเขียน Code ลงไปให้เป็นอุปกรณ์ USB to I2S ได้ใช่มั้ยครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: audiomania ที่ 29 ธันวาคม, 2012, 12:38:12 pm
ถ้าจำไม่ผิด Arduino สามารถเขียน Code ลงไปให้เป็นอุปกรณ์ USB to I2S ได้ใช่มั้ยครับ
Arduino ตัวปกติยังไม่ได้ครับ AVR ตัวนี้ยังไม่แรงและมีกลไกฮาร์ดแวร์ยังไม่เพียงพอที่จะทำงานได้ครับ
อย่างตอนนี้ตัวที่ผมเล่นอยู่เป็นบอร์ด Unicon (Arduino Leonardo compatible) ที่เป็น ATMega32U4 ที่มี USB Interface ในตัวก็ตาม ทำหน้าที่เป็น Composite device แบ่งเป็น CDC Compunication Device (Virtual COM port) และ HID Human Interface Device ไว้ทำคีย์บอร์ด เมาส์ จอยสติ๊ก หรือทำเป็น I/O interface ความเร็วไม่สูงนักน่ะครับ

ยังไม่ถึงกับทำ Isochronous ที่จัดการงานด้านเสียงได้แม่นยำดีเหมือนกับชิพแรงๆ แบบ ARM ตัวใหม่ อย่างเช่น Arduino Due ตัวใหญ่ หรือไม่ก็ข้ามไประดับไมโครพันธุ์ไฮเปอร์อย่าง XMOS น่ะครับ แน่นอนที่สุดครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: gapong2512 ที่ 29 ธันวาคม, 2012, 12:51:16 pm
ตัวนี้เป็นไงบ้างครับ

(http://b.lnwfile.com/32l5xs.jpg)

จากเวปนี้ครับ

http://www.arduino.in.th/product/70/arduino-mega-adk-r3 (http://www.arduino.in.th/product/70/arduino-mega-adk-r3)

ราคา 1,450 บาทครับ

ไม่ทราบว่าต่างจากรุ่น mega 2560 R3 อย่างไรบ้างครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: audiomania ที่ 29 ธันวาคม, 2012, 01:04:07 pm
ADK จะต่างจากรุ่นอื่นๆพอดู ตรงที่เอาไว้เป็นบอร์ดต่อเชื่อมกับ Smart Device พวก Tablet , Android phone เพื่อเป็น I/O ให้กับ Android OS โดยหลักไม่ได้ทำงานแบบ stand alone ครับ

ส่วน Mega 2560 ข้อดีคือพอร์ตเยอะมาก แต่ยังไม่มี USB engine ในตัวครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: gapong2512 ที่ 29 ธันวาคม, 2012, 01:13:26 pm
ADK จะต่างจากรุ่นอื่นๆพอดู ตรงที่เอาไว้เป็นบอร์ดต่อเชื่อมกับ Smart Device พวก Tablet , Android phone เพื่อเป็น I/O ให้กับ Android OS โดยหลักไม่ได้ทำงานแบบ stand alone ครับ

ส่วน Mega 2560 ข้อดีคือพอร์ตเยอะมาก แต่ยังไม่มี USB engine ในตัวครับ

อืม..  ตรงนี้น่าสนนะครับ ถ้าต่อก้บพวก android ได้น่าจะมีอะไรให้เล่นเยอะ กำลังคิดก่อนว่าจะทำอะไรดีครับ  O0

แต่ราคามันต่างกันเท่าตัวเลยนะครับ mega 2560 ราคา 700 บาท
ขอบคุณมากครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 29 ธันวาคม, 2012, 03:27:46 pm
เริ่มคึกคักแล้วสิครับ แค่ Arduino ก็เอามาทำงานเครื่องเสียงได้บางอย่างแล้วครับ

เช่น โปรแกรมไล่ลำดับการเปิดปิดเครื่องเสียงเพื่อป้องกันลำโพงเสียหายครับ เช่น ตอนเปิด ไล่จาก ปรี เครื่องเล่น พาวเวอร์, ตอนปิดก็ พาวเวอร์ หน่วงไว้ 10 วินาที แล้วค่อยปิด ปรี และ Player ตามลำดับครับ มันจะได้ไม่มีเสียงตุ๊บๆเข้าลำโพงไงครับ หรือเอาส่วนขาลำโพงมาต่อกับรีเลย์อีกทีก็จะป้องกันลำโพงได้ดีมากเลยครับ

ถ้าพวก Andriod เอามาเป็น Display เพื่อบังคับผ่าน Wifi ก็ได้นะครับ เอามาต่อกับ Eternet shield W5100 เล่นอะไรได้อีกเยอะครับ  c)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: tewmax ที่ 29 ธันวาคม, 2012, 06:19:30 pm
http://tewmaxdiy.blogspot.com/2012/11/volume-selector-remote-control.html (http://tewmaxdiy.blogspot.com/2012/11/volume-selector-remote-control.html)

ผมใช้ arduino UNO ก็สะดวกดีครับโปรเจคเล็กๆ :)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: tewmax ที่ 29 ธันวาคม, 2012, 06:31:55 pm
อันนี้ลองเ่ล่นกะ iphone
http://www.youtube.com/v/g6GNJSE2XRk
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: tewmax ที่ 29 ธันวาคม, 2012, 06:44:19 pm
อันนี้ ก็ Arduino ผมทำใช้วัดอุณหภูมิ Amp Camp สั่งพัดลมทำงานเมื่ออุณหภูมิเกินที่ตั้งไว้ :)

http://www.youtube.com/v/rKe1AR-DJ6s
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 30 ธันวาคม, 2012, 12:27:51 am
คุณ tewmax เทพมากเลยครับ มีเทคนิคอะไรดีๆนำเสนอได้นะครับ กระทู้นี้เปิดเต็มที่เลยครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 30 ธันวาคม, 2012, 01:24:23 am
เพจสำหรับ Arduino ครับเอาไว้แลกเปลี่ยนข้อมูลข่าวสารเกี่ยวกับ Arduino ในประเทศไทยครับ

http://www.facebook.com/pages/Arduino-Thai-Project/205375546266456
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: tewmax ที่ 30 ธันวาคม, 2012, 08:28:25 am
คุณ tewmax เทพมากเลยครับ มีเทคนิคอะไรดีๆนำเสนอได้นะครับ กระทู้นี้เปิดเต็มที่เลยครับ

ผมยังอ่อนหัดนัก :) คุณJakaman ว่าต่อเลยครับ O0
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: nut_ty ที่ 30 ธันวาคม, 2012, 08:41:10 am
มีรุ่นน้องฝากให้ผมสั่ง robot control ไปตอนต้นปี เดี๋ยวนี้ 2000 กว่าๆ ก็มีของเล่นแหล่มๆ กันแล้ว สงสัยจะเอาไปทำโปรเจ็คต์จบ เด็กสมัยนี้ชอบเล่นทางลัด  ;D
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 31 ธันวาคม, 2012, 10:57:41 am
คุณ tewmax เทพมากเลยครับ มีเทคนิคอะไรดีๆนำเสนอได้นะครับ กระทู้นี้เปิดเต็มที่เลยครับ

ผมยังอ่อนหัดนัก :) คุณJakaman ว่าต่อเลยครับ O0

เขียนจากใจจริงครับ ตอนนี้ผมก็เอาเทคนิคตัวอักษรของน้ามาใช้ในงานผมด้วย ขอบคุณที่แบ่งปันสิ่งดีๆให้ครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 31 ธันวาคม, 2012, 11:00:51 am
มีรุ่นน้องฝากให้ผมสั่ง robot control ไปตอนต้นปี เดี๋ยวนี้ 2000 กว่าๆ ก็มีของเล่นแหล่มๆ กันแล้ว สงสัยจะเอาไปทำโปรเจ็คต์จบ เด็กสมัยนี้ชอบเล่นทางลัด  ;D

ต่อไป hardware ทุกอย่างจะเขียนโปรแกรมได้หมดแล้วครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Withaya ที่ 31 ธันวาคม, 2012, 01:01:17 pm
ราคา 1500-2000 พอๆกับบอร์ด raspberry pi เลยนะครับ แต่อันนั้นเป็น Linux
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: tewmax ที่ 01 มกราคม, 2013, 07:37:59 am
คุณ tewmax เทพมากเลยครับ มีเทคนิคอะไรดีๆนำเสนอได้นะครับ กระทู้นี้เปิดเต็มที่เลยครับ

ผมยังอ่อนหัดนัก :) คุณJakaman ว่าต่อเลยครับ O0

เขียนจากใจจริงครับ ตอนนี้ผมก็เอาเทคนิคตัวอักษรของน้ามาใช้ในงานผมด้วย ขอบคุณที่แบ่งปันสิ่งดีๆให้ครับ
ดีใจครับทึ่มีคนนำไปใช้ประโยชน์ได้ครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: -=(หวาก)=- ที่ 01 มกราคม, 2013, 07:21:48 pm
ดูๆวิธีเขียนโปรแกรมก็คล้ายๆกับ PICC นะครับเนี่ย เดี๋ยวว่างๆจะลองเอามาเล่นดูครับ  ;)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 01 มกราคม, 2013, 08:12:25 pm
ขออนุญาติเอาโค๊ดของคุณ tewmax มาต่อยอดเพื่อให้ใช้งานง่ายขึ้นอีกนิดครับ

โค๊ด: [Select]
#include <LiquidCrystal.h>

// initialize the interface pins
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

byte LT[8] =
{
  B00111,
  B01111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte UB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte RT[8] =
{
  B11100,
  B11110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte LL[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B01111,
  B00111
};
byte LB[8] =
{
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};
byte LR[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11110,
  B11100
};
byte MB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte block[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};



void custom0(int col)
{ // uses segments to build the number 0
  lcd.setCursor(col,0); // set cursor to column 0, line 0 (first row)
  lcd.write(8);  // call each segment to create
  lcd.write(1);  // top half of the number
  lcd.write(2);
  lcd.setCursor(col, 1); // set cursor to colum 0, line 1 (second row)
  lcd.write(3);  // call each segment to create
  lcd.write(4);  // bottom half of the number
  lcd.write(5);
}

void custom1(int col)
{
  lcd.setCursor(col,0);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(col,1);
  lcd.write(4);
  lcd.write(7);
  lcd.write(4);
}

void custom2(int col)
{
  lcd.setCursor(col,0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(4);
}

void custom3(int col)
{
  lcd.setCursor(col,0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(4);
  lcd.write(4);
  lcd.write(5);
}

void custom4(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(4);
  lcd.write(7);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void custom5(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(col, 1);
  lcd.write(4);
  lcd.write(4);
  lcd.write(5);
}

void custom6(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom7(int col)
{
  lcd.setCursor(col,0);
  lcd.write(1);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void custom8(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom9(int col)
{
  lcd.setCursor(col,0);
  lcd.write(3);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void clearnumber(int col)
{ // clears the area the custom number is displayed in
 lcd.setCursor(col,0);
 lcd.print("   ");
 lcd.setCursor(col,1);
 lcd.print("   ");
}
// loop counter
int count = 0;
  
void setup()
{
  lcd.clear();
  // assignes each segment a write number
  lcd.createChar(8,LT);
  lcd.createChar(1,UB);
  lcd.createChar(2,RT);
  lcd.createChar(3,LL);
  lcd.createChar(4,LB);
  lcd.createChar(5,LR);
  lcd.createChar(6,MB);
  lcd.createChar(7,block);  
  lcd.begin(16, 2);
}
void loop()
{
   printBigInt(analogRead(1),3);
   delay(500);
}

void printBigInt(int num,int col)
{
  int data = num;
  String str = String(data);
  char inp[4];
  str.toCharArray(inp, 4);
  printBigNumber(inp[0],col);
  if(data>9){
    printBigNumber(inp[1],col+4);      
  }
  if(data>99){
    printBigNumber(inp[2],col+8);
  }
}
void printBigNumber(char num,int col)
{
  clearnumber(col);
  switch (num){
    case '1':
    custom1(col);
    break;
    case '2':
    custom2(col);
    break;  
    case '3':
    custom3(col);
    break;
     case '4':
    custom4(col);
    break;
     case '5':
    custom5(col);
    break;
     case '6':
    custom6(col);
    break;
     case '7':
    custom7(col);
    break;
     case '8':
    custom8(col);
    break;
     case '9':
    custom9(col);
    break;
     case '0':
    custom0(col);
    break;  
  }
}

จากโค๊ดสามารถเรียกใช้ฟังก์ชั่น printBigInt(int num,int col) ได้เลยครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 01 มกราคม, 2013, 08:13:46 pm
 8) = 8 ) นะครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: harn ที่ 01 มกราคม, 2013, 10:10:00 pm
ชอบจริงกระทู้นี้  d_d  ผมยังใช้PIC877   อยู่ครับเล่นแบบบ้านๆ เดี๋ยวมาเป็นสาวกเล่นตัว Arduino ด้วยคนครับ like

หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: audiomania ที่ 01 มกราคม, 2013, 10:21:22 pm
ขออนุญาตจัดแท็ก CODE อีกทีครับ

โค๊ด: [Select]
#include <LiquidCrystal.h>

// initialize the interface pins
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

byte LT[8] =
{
  B00111,
  B01111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte UB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte RT[8] =
{
  B11100,
  B11110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte LL[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B01111,
  B00111
};
byte LB[8] =
{
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};
byte LR[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11110,
  B11100
};
byte MB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte block[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};



void custom0(int col)
{ // uses segments to build the number 0
  lcd.setCursor(col,0); // set cursor to column 0, line 0 (first row)
  lcd.write(8);  // call each segment to create
  lcd.write(1);  // top half of the number
  lcd.write(2);
  lcd.setCursor(col, 1); // set cursor to colum 0, line 1 (second row)
  lcd.write(3);  // call each segment to create
  lcd.write(4);  // bottom half of the number
  lcd.write(5);
}

void custom1(int col)
{
  lcd.setCursor(col,0);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(col,1);
  lcd.write(4);
  lcd.write(7);
  lcd.write(4);
}

void custom2(int col)
{
  lcd.setCursor(col,0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(4);
}

void custom3(int col)
{
  lcd.setCursor(col,0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(4);
  lcd.write(4);
  lcd.write(5);
}

void custom4(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(4);
  lcd.write(7);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void custom5(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(col, 1);
  lcd.write(4);
  lcd.write(4);
  lcd.write(5);
}

void custom6(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom7(int col)
{
  lcd.setCursor(col,0);
  lcd.write(1);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void custom8(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom9(int col)
{
  lcd.setCursor(col,0);
  lcd.write(3);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void clearnumber(int col)
{ // clears the area the custom number is displayed in
 lcd.setCursor(col,0);
 lcd.print("   ");
 lcd.setCursor(col,1);
 lcd.print("   ");
}
// loop counter
int count = 0;
 
void setup()
{
  lcd.clear();
  // assignes each segment a write number
  lcd.createChar(8,LT);
  lcd.createChar(1,UB);
  lcd.createChar(2,RT);
  lcd.createChar(3,LL);
  lcd.createChar(4,LB);
  lcd.createChar(5,LR);
  lcd.createChar(6,MB);
  lcd.createChar(7,block); 
  lcd.begin(16, 2);
}
void loop()
{
   printBigInt(analogRead(1),3);
   delay(500);
}

void printBigInt(int num,int col)
{
  int data = num;
  String str = String(data);
  char inp[4];
  str.toCharArray(inp, 4);
  printBigNumber(inp[0],col);
  if(data>9){
    printBigNumber(inp[1],col+4);     
  }
  if(data>99){
    printBigNumber(inp[2],col+8);
  }
}
void printBigNumber(char num,int col)
{
  clearnumber(col);
  switch (num){
    case '1':
    custom1(col);
    break;
    case '2':
    custom2(col);
    break;   
    case '3':
    custom3(col);
    break;
     case '4':
    custom4(col);
    break;
     case '5':
    custom5(col);
    break;
     case '6':
    custom6(col);
    break;
     case '7':
    custom7(col);
    break;
     case '8':
    custom8(col);
    break;
     case '9':
    custom9(col);
    break;
     case '0':
    custom0(col);
    break;   
  }
}
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Diy Project Seeker © ที่ 02 มกราคม, 2013, 10:33:01 am
น่าสนใจมากๆครับ  O0
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 02 มกราคม, 2013, 04:53:50 pm
ชอบจริงกระทู้นี้  d_d  ผมยังใช้PIC877   อยู่ครับเล่นแบบบ้านๆ เดี๋ยวมาเป็นสาวกเล่นตัว Arduino ด้วยคนครับ like



เมื่อก่อนใช้ PIC มาเหมือนกันครับ พอมาเจอ AVR ก็ถูกใจเลยเปลี่ยน ตอนหลังมาเจอ Arduino คราวนี้รักเลย เพราะฟังก์ชั่นในการใช้งานง่ายสุดๆ แต่ก็ยังแอบใช้ AVR เพียวๆอยู่บ้างเวลาที่ต้องการ Speed ในการเขียนแบบ Multi sesstion ครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: tewmax ที่ 02 มกราคม, 2013, 05:15:54 pm
ขออนุญาติเอาโค๊ดของคุณ tewmax มาต่อยอดเพื่อให้ใช้งานง่ายขึ้นอีกนิดครับ




 O0 ผมขออนุญาตนำไปใช้นะครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: audiomania ที่ 02 มกราคม, 2013, 05:46:25 pm
จริงๆ แล้วเบื้องหลัง Arduino IDE ก็เป็น avr-gcc ตัวเดียวกันครับ จะเขียนเข้ารีจิสเตอร์ลึกๆ แบบที่ทำใน Eclipse + AVR เพื่อเขียน C/C++ ก็ได้ครับ ไม่ต้องเรียกฟังก์ชัน build-in ของ arduino ก็ได้ คือจะเรียกผสมกันแบบนี้ได้เลยครับ ฟรีสไตล์มากๆ
โค๊ด: [Select]
//
// PORTD 8 LED Demo
// connect 8 LED to PD0-PD7 (active LOW)
// Arduino : direct PORT register
//

void setup() {                
  PORTD=0xff; // initial PORTD OUT register "1"
  DDRD=0xff;  // config port as OUTPUT
}

void loop() {
  unsigned int i;
  for (i=0;i<7;i++){
    PORTD=~(0x01<<i);
    delay(200);               // wait for 0.2 seconds
  }
}
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: อวยพร ที่ 02 มกราคม, 2013, 07:35:29 pm
เห็นโค้ทแล้วจะเป็นลม 5555 (ไม่เคยเขียนจริงจังขนาดนี้)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Saroj63 ที่ 02 มกราคม, 2013, 07:53:18 pm
เพื่งเข้ามาครับ น่าสนใจมาก เอนกประสงค์จริงๆ คงต้องเริ่มศึกษาบ้างแล้หละครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: headjoke ที่ 02 มกราคม, 2013, 08:58:51 pm
ผมซื้อรุ่นแรกมานานแล้ว ยังไม่มีโอกาสหยิบมาเล่นเลย
แต่เห็นมีเพื่อนที่สนใจเหมือนกัน ขอกดไลค์ให้ครับ  like

*ปกติงานผมจะใช้ pic หรือ avr อยู่แล้ว ตอนแรกกะว่าจะเอา arduino มาช่วยลดเวลาในการพัฒนา
หรือเทสไอเดีย แต่ด้วยความขี้เกียจเลยใช้ pic หรือ avr ทำไปเลย  ;D ;D ;D
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 05 มกราคม, 2013, 01:19:11 pm
โปรแกรม Timer เปิดปิดเครื่องใช้ไฟฟ้า เอาไปต่อกับวงจรรีเลย์หรือคอนเทรคเตอร์ควบคุมอุปกรณ์ได้หลายตัวครับ เพิ่งเขียนเสร็จหมาดๆ แต่ในโปรแกรมผมใช้ LCD Shield ต่อกับแผง LED เพื่อทดสอบการทำงานครับ

โค๊ด: [Select]
//Timer controls by Kongphat

#include <LiquidCrystal.h>

// initialize the interface pins
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
byte LT[8] =
{
  B00111,
  B01111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte UB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte RT[8] =
{
  B11100,
  B11110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte LL[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B01111,
  B00111
};
byte LB[8] =
{
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte LR[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11110,
  B11100
};
byte MB[8] =
{
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte block[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};



void custom0(int col)
{ // uses segments to build the number 0
  lcd.setCursor(col,0); // set cursor to column 0, line 0 (first row)
  lcd.write(8);  // call each segment to create
  lcd.write(1);  // top half of the number
  lcd.write(2);
  lcd.setCursor(col, 1); // set cursor to colum 0, line 1 (second row)
  lcd.write(3);  // call each segment to create
  lcd.write(4);  // bottom half of the number
  lcd.write(5);
}

void custom1(int col)
{
  lcd.setCursor(col,0);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(col,1);
  lcd.write(4);
  lcd.write(7);
  lcd.write(4);
}

void custom2(int col)
{
  lcd.setCursor(col,0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(4);
}

void custom3(int col)
{
  lcd.setCursor(col,0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(4);
  lcd.write(4);
  lcd.write(5);
}

void custom4(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(4);
  lcd.write(7);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void custom5(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(col, 1);
  lcd.write(4);
  lcd.write(4);
  lcd.write(5);
}

void custom6(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom7(int col)
{
  lcd.setCursor(col,0);
  lcd.write(1);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void custom8(int col)
{
  lcd.setCursor(col,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom9(int col)
{
  lcd.setCursor(col,0);
  lcd.write(3);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(col+2, 1);
  lcd.write(7);
}

void clearnumber(int col)
{ // clears the area the custom number is displayed in
 lcd.setCursor(col,0);
 lcd.print("   ");
 lcd.setCursor(col,1);
 lcd.print("   ");
}
// loop counter
int count = 0;
int adc_key_val[5] ={50, 200, 400, 600, 800 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;

// Convert ADC value to key number
int get_key(unsigned int input)
{
    int k;
  
    for (k = 0; k < NUM_KEYS; k++)
    {
      if (input < adc_key_val[k])
      {
            return k;
      }
   }
  
    if (k >= NUM_KEYS)k = -1;  // No valid key pressed
    return k;
}

void setup()
{
  lcd.clear();
  // assignes each segment a write number
  lcd.createChar(8,LT);
  lcd.createChar(1,UB);
  lcd.createChar(2,RT);
  lcd.createChar(3,LL);
  lcd.createChar(4,LB);
  lcd.createChar(5,LR);
  lcd.createChar(6,MB);
  lcd.createChar(7,block);  
  lcd.begin(16, 2);
  pinMode(39,OUTPUT);
  pinMode(41,OUTPUT);
  pinMode(43,OUTPUT);
  pinMode(45,OUTPUT);
  digitalWrite(39,LOW);
  digitalWrite(41,LOW);
  digitalWrite(43,LOW);
  digitalWrite(45,LOW);  
}
void loop()
{
   //printBigInt(analogRead(1),3);
   for(int h=0;h<24;h++)
   {
     lcd.clear();
     for(int m=0;m<60;m++)
     {
       for(int s=0;s<60;s++)
       {
         adc_key_in = analogRead(0);
         key = get_key(adc_key_in);          
         if(key==1){ //UP
           h+=1;
           if(h>23) h=0;
           printNum2Len(h,0);
         }
         if(key==2){ //DOWN
           h-=1;
           if(h<0) h=23;
           printNum2Len(h,0);
         }  
         if(key==3){ //LEFT
           m-=1;
           if(m<0) m=59;
           printNum2Len(m,7);
         }        
         if(key==0){ //RIGHT
           m+=1;
           if(m>59) m=0;
           printNum2Len(m,7);
         }    
         if(key==4){ //SELECT
           digitalWrite(39,LOW);
           digitalWrite(41,LOW);
           digitalWrite(43,LOW);
           digitalWrite(45,LOW);        
         }          

         lcd.setCursor(13,0);
         lcd.print("SEC");
         lcd.setCursor(14,1);
         lcd.print("  ");
         lcd.setCursor(14,1);
         lcd.print(s);        

         if(h==6 && m==0)
         {
           digitalWrite(39,LOW);
           digitalWrite(41,LOW);
           digitalWrite(43,LOW);
           digitalWrite(45,LOW);
         }
         if(h==18 && m==0)
         {
           digitalWrite(39,HIGH);
           digitalWrite(41,LOW);
           digitalWrite(43,LOW);
           digitalWrite(45,LOW);
         }    
         if(h==20 && m==30)
         {
           digitalWrite(39,LOW);
           digitalWrite(41,HIGH);
           digitalWrite(43,HIGH);
           digitalWrite(45,LOW);
         }            
         if(h==0 && m==0)
         {
           digitalWrite(39,HIGH);
           digitalWrite(41,HIGH);
           digitalWrite(43,HIGH);
           digitalWrite(45,HIGH);
         }            
         if(s==0){
           lcd.setCursor(6,0);
           lcd.print("o");
           lcd.setCursor(6,1);
           lcd.print("o");          
           printNum2Len(h,0);
           printNum2Len(m,7);
         }
        
         delay(1000);
       }
     }
   }
}
void printNum2Len(int num,int col)
{
  int space = 3;
  clearnumber(col);
  clearnumber(col+space);
  printBigInt(0,col,space);
  printBigInt(0,col+space,space);
  if(num<10) printBigInt(num,col+space,space);
  if(num>9) printBigInt(num,col,space);
}
void printBigInt(int num,int col,int space)
{
  int data = num;
  String str = String(data);
  char inp[4];
  str.toCharArray(inp, 4);
  printBigNumber(inp[0],col);
  if(data>9){
    printBigNumber(inp[1],col+space);      
  }
  if(data>99){
    printBigNumber(inp[2],col+(space*2));
  }
}
void printBigNumber(char num,int col)
{
  clearnumber(col);
  switch (num){
    case '1':
    custom1(col);
    break;
    case '2':
    custom2(col);
    break;  
    case '3':
    custom3(col);
    break;
     case '4':
    custom4(col);
    break;
     case '5':
    custom5(col);
    break;
     case '6':
    custom6(col);
    break;
     case '7':
    custom7(col);
    break;
     case '8':
    custom8(col);
    break;
     case '9':
    custom9(col);
    break;
     case '0':
    custom0(col);
    break;  
  }
}
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: nattawat ที่ 05 มกราคม, 2013, 01:33:06 pm
แจ่มเลยครับชอบๆ ขอบคุณที่นำมาแบ่งปันนะครับ :clap :clap :clap :clap
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 05 มกราคม, 2013, 01:35:18 pm
ผมซื้อรุ่นแรกมานานแล้ว ยังไม่มีโอกาสหยิบมาเล่นเลย
แต่เห็นมีเพื่อนที่สนใจเหมือนกัน ขอกดไลค์ให้ครับ  like

*ปกติงานผมจะใช้ pic หรือ avr อยู่แล้ว ตอนแรกกะว่าจะเอา arduino มาช่วยลดเวลาในการพัฒนา
หรือเทสไอเดีย แต่ด้วยความขี้เกียจเลยใช้ pic หรือ avr ทำไปเลย  ;D ;D ;D

Arduino มันดีตรงที่มันมี Shield นี่แหละครับ ลดขั้นตอนในการพัฒนา Hardware ไปได้เยอะ มันมี Lib สำหรับเอาไว้เรียกใช้งานง่ายๆเลยครับ ต่างกับ MCU เพียวๆ ยกตัวอย่างถ้าเราจะพัฒนา MCU ให้เป็น Web server มันจะยุ่งยากมากๆ แต่ Arduino ทำบอร์ด Eternet Shield (W5100) ออกมาแล้วเขียนฟังก์ชั่นต่างๆเอาไว้บนบอร์ด เราเพียงเรียกใช้อย่างเดียวทำให้ลดขั้นตอนพัฒนาไปได้เยอะทีเดียว ซึ่งตอนแรกผมทำตัวเปิดปิดเครื่องใช้ไฟฟ้าผ่านอินเตอร์เน็ตใช้เวลาพัฒนาตั้งแต่แกะซองห่อบอร์ดจากไปรษณีย์และไม่มีความรู้เรื่อง Arduino มาก่อนเลย แต่ใช้เวลาเรียนรู้และเขียนจนเสร็จแค่ 1 ชั่วโมงเท่านั้น!! นี่เลยเป็นเหตุผลที่เลิกใช้ PIC และ AVR ไปเลยครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 05 มกราคม, 2013, 07:07:46 pm
ต่อกันนิดหน่อยดีกว่าสำหรับผู้ที่ยังไม่เคยเขียนโปรแกรมนะครับ

คำสั่งภายใน

เป็นคำสั่งหลักที่จำเป็นต้องใช้ เช่นคำสั่งที่ใช้ในการวนลูป หรือ ใช้สำหรับตรวจสอบเงื่อนไขเป็นต้น

คำสั่งแรก for

for นั้นเป็นชนิดในการวนลูป รูปแบบคือ
โค๊ด: [Select]
for(int [ตัวแปร] = [ค่าเริ่มต้น];[ตัวแปร] [<,>] [ค่าสิ้นสุด]; [ตัวแปร] [++,+=,-=])
{
   ....
}

ตัวอย่าง
โค๊ด: [Select]
for(int i=0;i<10;i++)
{
   Serial.println(i);
}

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

แล้วจะใช้เมื่อใด
ผมขอยกตัวอย่างโปรแกรมนี้ครับ

โค๊ด: [Select]
Serial.println(1);
Serial.println(2);
Serial.println(3);
Serial.println(4);
Serial.println(5);
Serial.println(6);
Serial.println(7);
Serial.println(8);
Serial.println(9);
Serial.println(10);

จากโปรแกรมจะเห็นได้ว่าเราต้องการส่งค่าออกไปที่ Serial เป็นจำนวน 10 ครั้งและแต่ละครั้งเป็นเลขที่เรียงกัน ซึ่งเราต้องเขียนโปรแกรมถึง 10 บรรทัดเพื่อใช้ในการส่งค่า แล้วหากเราต้องส่งค่าตั้งแต่ 1-100 หรือ 1-1000 หล่ะ เราไม่ต้องเขียนโค๊ดยาวเยียดเลยใช่หรือไม่ครับ คงพิมพ์กันมือหงิกแน่ งั้นคราวนี้เรามาดูว่าจะใช้ลูปในการแก้ปัญหานี้อย่างไร

โค๊ด: [Select]
for(int i=1;i<=10;i++)
{
   Serial.println(i);  
}

เห็นมะครับ สั้นกว่าเยอะเลย แล้วกรณี 1-1000 หล่ะ โอ้วต้องเขียนโค๊ดยาวขึ้นมั้ย ไม่เลยครับ ลองดูนี่

โค๊ด: [Select]
for(int i=1;i<=1000;i++)
{
   Serial.println(i);  
}

เห็นมะครับ แค่เปลี่ยนจาก 10 เป็น 1000 เท่านี้เอง อยากได้เท่าไหร่ก็ใส่ไปตามนั้น

คราวนี้่ถ้าโจทย์คือให้ส่งค่าไม่เริ่มต้นที่ 1 หล่ะ สมมุติว่าค่าเริ่มตั้งแต่ 5-15 จะเขียนยังไงมาดูครับ

โค๊ด: [Select]
for(int i=5;i<=15;i++)
{
   Serial.println(i);  
}

แค่นี้เองครับ แค่เปลี่ยนตัวเลขเริ่มต้นและสุดท้าย อ่ะโจทย์ใหม่ ถ้าผมต้องการส่งค่าเลขคี่ตั้งแต่ 1-15 โดยให้ส่งเป็นจำนวนคี่คือ 1,3,5,7,9,...15 ทำไงมาดูกัน
โค๊ด: [Select]
for(int i=1;i<=15;i+=2)
{
   Serial.println(i);  
}
ก็เปลี่ยนจากที่ i++ (แปลว่าบวกทีละ 1) เป็นบวกทีละ 2 ก็คือ i+=2 แค่นี้เองครับ ง่ายใช่มั้ยครับ

คราวนี้มาลองโจทย์การนับถอยหลังกันบ้างครับ สมมุติว่าถ้าต้องการนับถอยหลังตั้งแต่ 100-1 ทำไงมาดูกัน

โค๊ด: [Select]
for(int i=100;i>=1;i-=1)
{
   Serial.println(i);  
}

ก็ให้เซ็ตค่าเริ่มต้นเป็น 100 และค่าสิ้นสุดเป็น 1 จากนั้นให้ i-=1 คือให้ให้ 100 นับลดลงทีละ 1 แค่นี้เองครับ ถ้าต้องการให้นับเป็นเลขคู่ก็ i-=2 มันก็จะลดเป็นคู่แล้วครับ ง่ายใช่มั้ยครับ

ลองฝึกเปลี่ยนค่าดูนะครับ แล้วดูผลลัพท์ไปเกิดขึ้นใน Serial ดู จากนั้นลองเปลี่ยนค่าไปๆมาๆเพื่อเพิ่มความชำนาญและความเข้าใจครับ

การทดสอบผ่าน Arduino ให้ไปโหลดโปรแกรมที่ชื่อว่า Putty.exe ตามลิ้ง http://www.putty.org/ (http://www.putty.org/) ครับ

หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: headjoke ที่ 07 มกราคม, 2013, 09:03:26 am
ผมซื้อรุ่นแรกมานานแล้ว ยังไม่มีโอกาสหยิบมาเล่นเลย
แต่เห็นมีเพื่อนที่สนใจเหมือนกัน ขอกดไลค์ให้ครับ  like

*ปกติงานผมจะใช้ pic หรือ avr อยู่แล้ว ตอนแรกกะว่าจะเอา arduino มาช่วยลดเวลาในการพัฒนา
หรือเทสไอเดีย แต่ด้วยความขี้เกียจเลยใช้ pic หรือ avr ทำไปเลย  ;D ;D ;D

Arduino มันดีตรงที่มันมี Shield นี่แหละครับ ลดขั้นตอนในการพัฒนา Hardware ไปได้เยอะ มันมี Lib สำหรับเอาไว้เรียกใช้งานง่ายๆเลยครับ ต่างกับ MCU เพียวๆ ยกตัวอย่างถ้าเราจะพัฒนา MCU ให้เป็น Web server มันจะยุ่งยากมากๆ แต่ Arduino ทำบอร์ด Eternet Shield (W5100) ออกมาแล้วเขียนฟังก์ชั่นต่างๆเอาไว้บนบอร์ด เราเพียงเรียกใช้อย่างเดียวทำให้ลดขั้นตอนพัฒนาไปได้เยอะทีเดียว ซึ่งตอนแรกผมทำตัวเปิดปิดเครื่องใช้ไฟฟ้าผ่านอินเตอร์เน็ตใช้เวลาพัฒนาตั้งแต่แกะซองห่อบอร์ดจากไปรษณีย์และไม่มีความรู้เรื่อง Arduino มาก่อนเลย แต่ใช้เวลาเรียนรู้และเขียนจนเสร็จแค่ 1 ชั่วโมงเท่านั้น!! นี่เลยเป็นเหตุผลที่เลิกใช้ PIC และ AVR ไปเลยครับ

ผมเห็นด้วยกับคุณ Jakaman ครับ และขอบคุณสำหรับความรู้ดีๆ ที่แบ่งปันให้กันครับ

ผมขอเสริมในมุมมองของผมนิดนึงครับ เนื่องจากลักษณะงานของผมเป็นงานผลิตสินค้าอิเล็กฯ ตามที่ลูกค้าต้องการ
ราคาจะมีผลต่อการตัดสินใจของลูกค้า ดังนั้นการออกแบบต้องปรับเปลี่ยน mcu ให้เหมาะสมกับราคาที่ลูกค้าต้องการ
ถ้าเป็นลูกค้าที่ต้องการงานด่วน ยอมรับสินค้าในราคาที่สูงกว่าได้ ผมเห็นว่าการใช้ arduino จะเหมาะสมกับเคสนี้เป็นอย่างมาก
แต่ถ้าลูกค้าที่ต้องการราคาต่ำ (มากๆ) การใช้ arduino อาจไม่เหมาะสม ถือว่าเป็นการแลกเปลี่ยนความคิดเห็นกันนะครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 10 มกราคม, 2013, 12:52:03 am
ผมซื้อรุ่นแรกมานานแล้ว ยังไม่มีโอกาสหยิบมาเล่นเลย
แต่เห็นมีเพื่อนที่สนใจเหมือนกัน ขอกดไลค์ให้ครับ  like

*ปกติงานผมจะใช้ pic หรือ avr อยู่แล้ว ตอนแรกกะว่าจะเอา arduino มาช่วยลดเวลาในการพัฒนา
หรือเทสไอเดีย แต่ด้วยความขี้เกียจเลยใช้ pic หรือ avr ทำไปเลย  ;D ;D ;D

Arduino มันดีตรงที่มันมี Shield นี่แหละครับ ลดขั้นตอนในการพัฒนา Hardware ไปได้เยอะ มันมี Lib สำหรับเอาไว้เรียกใช้งานง่ายๆเลยครับ ต่างกับ MCU เพียวๆ ยกตัวอย่างถ้าเราจะพัฒนา MCU ให้เป็น Web server มันจะยุ่งยากมากๆ แต่ Arduino ทำบอร์ด Eternet Shield (W5100) ออกมาแล้วเขียนฟังก์ชั่นต่างๆเอาไว้บนบอร์ด เราเพียงเรียกใช้อย่างเดียวทำให้ลดขั้นตอนพัฒนาไปได้เยอะทีเดียว ซึ่งตอนแรกผมทำตัวเปิดปิดเครื่องใช้ไฟฟ้าผ่านอินเตอร์เน็ตใช้เวลาพัฒนาตั้งแต่แกะซองห่อบอร์ดจากไปรษณีย์และไม่มีความรู้เรื่อง Arduino มาก่อนเลย แต่ใช้เวลาเรียนรู้และเขียนจนเสร็จแค่ 1 ชั่วโมงเท่านั้น!! นี่เลยเป็นเหตุผลที่เลิกใช้ PIC และ AVR ไปเลยครับ

ผมเห็นด้วยกับคุณ Jakaman ครับ และขอบคุณสำหรับความรู้ดีๆ ที่แบ่งปันให้กันครับ

ผมขอเสริมในมุมมองของผมนิดนึงครับ เนื่องจากลักษณะงานของผมเป็นงานผลิตสินค้าอิเล็กฯ ตามที่ลูกค้าต้องการ
ราคาจะมีผลต่อการตัดสินใจของลูกค้า ดังนั้นการออกแบบต้องปรับเปลี่ยน mcu ให้เหมาะสมกับราคาที่ลูกค้าต้องการ
ถ้าเป็นลูกค้าที่ต้องการงานด่วน ยอมรับสินค้าในราคาที่สูงกว่าได้ ผมเห็นว่าการใช้ arduino จะเหมาะสมกับเคสนี้เป็นอย่างมาก
แต่ถ้าลูกค้าที่ต้องการราคาต่ำ (มากๆ) การใช้ arduino อาจไม่เหมาะสม ถือว่าเป็นการแลกเปลี่ยนความคิดเห็นกันนะครับ

 K] K] K] โอ้ว...ลืมคิดถึงตรงนี้ไปเลยครับ  :giveup :giveup :giveup
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: headjoke ที่ 10 มกราคม, 2013, 11:27:46 pm
อย่าคิดมากครับ ชนแก้วกันดีกว่า  d_d
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Goda Takeshi ที่ 11 มกราคม, 2013, 12:18:43 am
ของผมเพิ่งมาถึง ยังไม่ได้แกะเลย ไว้งานหายยุ่งจะเอามาหัดเล่นดูครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Mr.so-nE ที่ 11 มกราคม, 2013, 03:22:22 am
ได้แต่ดูเขียนม่ายเป็น :black_eye
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jiang ที่ 11 มกราคม, 2013, 02:55:51 pm
นี่คือโปรเจ็คที่กำลังทำครับ... ;)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 11 มกราคม, 2013, 05:33:18 pm
อย่าคิดมากครับ ชนแก้วกันดีกว่า  d_d

 d_d
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Goda Takeshi ที่ 05 กุมภาพันธ์, 2013, 11:53:46 pm
ตั้งแต่ได้ auduino บอร์ดยังไม่ได้แกะออกมาลองเลย แต่ค้นไปค้นมาเจอ module สำหรับ bluetooth เข้าให้แล้ว

http://www.arduino.in.th/product/145/audio-bluetooth-speaker-module-ovc3860 (http://www.arduino.in.th/product/145/audio-bluetooth-speaker-module-ovc3860)
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: pisit ที่ 07 เมษายน, 2013, 12:43:11 am


    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: pisit ที่ 07 เมษายน, 2013, 12:56:17 am

เจอแล้ว โปรแกรมน่าจะถูกเขียนบนชิพบนบอร์ดเลย  Y]

ท่าทางจะดีนะ สมัยนู้นต้องเขียนเป็นโปรแกรมภาษาที่อ่านยาก ๆ   ;D



หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 07 เมษายน, 2013, 02:51:30 pm


    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 

ง่ายกว่า Z80 มากมายครับ เพราะเมื่อเราเขียนแอสแซมบลีเสร็จแล้วต้องมา Complile เป็น Machine code เองทีละบรรทัด แต่อันนี้เขียน C บนคอมพิวเตอร์แล้ว Complie มันก็จะวิ่งเข้าบอร์ดได้เลยครับไม่ยุ่งยาก แถมมี Library เพียบสำหรับการติดต่ออุปกรณ์เพียงรู้วิธีใช้คลาสแค่นั้นเองครับ
 
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: pisit ที่ 08 เมษายน, 2013, 10:44:36 am


    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 

ง่ายกว่า Z80 มากมายครับ เพราะเมื่อเราเขียนแอสแซมบลีเสร็จแล้วต้องมา Complile เป็น Machine code เองทีละบรรทัด แต่อันนี้เขียน C บนคอมพิวเตอร์แล้ว Complie มันก็จะวิ่งเข้าบอร์ดได้เลยครับไม่ยุ่งยาก แถมมี Library เพียบสำหรับการติดต่ออุปกรณ์เพียงรู้วิธีใช้คลาสแค่นั้นเองครับ
 

เคยลองเล่นกับ Module GSM ใหมครับ จะทดลองให้มันโทรออก เห็นมีขายอยู่สามพันกว่า

หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Jakaman ที่ 08 เมษายน, 2013, 08:02:05 pm


    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 


ง่ายกว่า Z80 มากมายครับ เพราะเมื่อเราเขียนแอสแซมบลีเสร็จแล้วต้องมา Complile เป็น Machine code เองทีละบรรทัด แต่อันนี้เขียน C บนคอมพิวเตอร์แล้ว Complie มันก็จะวิ่งเข้าบอร์ดได้เลยครับไม่ยุ่งยาก แถมมี Library เพียบสำหรับการติดต่ออุปกรณ์เพียงรู้วิธีใช้คลาสแค่นั้นเองครับ
 

เคยลองเล่นกับ Module GSM ใหมครับ จะทดลองให้มันโทรออก เห็นมีขายอยู่สามพันกว่า



SIM900 ส่วนใหญ่เอามาส่ง SMS ครับ แต่เรื่องโทรออกไม่แน่ใจ ถ้าโทรได้หล่ะเยี่ยมเลยครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Syslox ที่ 08 เมษายน, 2013, 08:44:27 pm
อ่านๆดูแล้วน่าสนใจดีครับ ต่อยอดได้อีกเยอะเลย สงสัยต้องหามาลองบ้างสักชุด  :clap
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: Withaya ที่ 09 เมษายน, 2013, 04:28:40 pm
ผมกำลังลองทำอยู่  เอามาคุมDAC เดี๋ยวถ้าเสร็จจะเอามาให้ดูกันครับ ขอ งมหาความรู้ก่อน
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: อวยพร ที่ 09 เมษายน, 2013, 07:42:34 pm
volt amp meter สำหรับมอนิเตอร์สวิตชิ่งเพาเวอร์ซัพพลายครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: pisit ที่ 10 เมษายน, 2013, 08:10:16 am


    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 


ง่ายกว่า Z80 มากมายครับ เพราะเมื่อเราเขียนแอสแซมบลีเสร็จแล้วต้องมา Complile เป็น Machine code เองทีละบรรทัด แต่อันนี้เขียน C บนคอมพิวเตอร์แล้ว Complie มันก็จะวิ่งเข้าบอร์ดได้เลยครับไม่ยุ่งยาก แถมมี Library เพียบสำหรับการติดต่ออุปกรณ์เพียงรู้วิธีใช้คลาสแค่นั้นเองครับ
 

เคยลองเล่นกับ Module GSM ใหมครับ จะทดลองให้มันโทรออก เห็นมีขายอยู่สามพันกว่า



SIM900 ส่วนใหญ่เอามาส่ง SMS ครับ แต่เรื่องโทรออกไม่แน่ใจ ถ้าโทรได้หล่ะเยี่ยมเลยครับ

กำลังหาข้อมูลอยู่ ดู ๆ แล้วน่าจะทำได้ครับ

 K)

หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: pisit ที่ 10 เมษายน, 2013, 08:12:16 am
ผมกำลังลองทำอยู่  เอามาคุมDAC เดี๋ยวถ้าเสร็จจะเอามาให้ดูกันครับ ขอ งมหาความรู้ก่อน

volt amp meter สำหรับมอนิเตอร์สวิตชิ่งเพาเวอร์ซัพพลายครับ


มีเพื่อนเล่นเยอะดีครับ   :clap

หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: XMan ที่ 11 เมษายน, 2013, 10:49:15 am
เทียบกับตอนเล่น MCS51 กับ PIC แล้ว ทำให้ชีวิตง่ายขึ้นเยอะเลยครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: เหลาFC ที่ 11 เมษายน, 2013, 12:00:00 pm
เทียบกับตอนเล่น MCS51 กับ PIC แล้ว ทำให้ชีวิตง่ายขึ้นเยอะเลยครับ
  :) คิดถึง8051 เเล้วน้ำตาจะไหล ตอนทำโปรเจคใช้ arduino นี่เเหละครับ เเต่เวลาไป set ค่า timer ในregister ของมันเองก็ต้องกลับเขียนคล้ายๆ51 เหมือนเดิม  ;D
 :drunk
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: XMan ที่ 12 เมษายน, 2013, 01:46:49 am
เทียบกับตอนเล่น MCS51 กับ PIC แล้ว ทำให้ชีวิตง่ายขึ้นเยอะเลยครับ
   :) คิดถึง8051 เเล้วน้ำตาจะไหล ตอนทำโปรเจคใช้ arduino นี่เเหละครับ เเต่เวลาไป set ค่า timer ในregister ของมันเองก็ต้องกลับเขียนคล้ายๆ51 เหมือนเดิม  ;D
 :drunk

ใช่ครับ ใช้งานแบบทั่วไปจะเหมาะมากสำหรับ Arduino แต่กับงานบางอย่่างที่ต้องเกี่ยวกับ Interupt ผมว่าพวกที่เขียนเองโต้งๆ อย่างเช่น 51 หรือ PIC ง่ายกว่า ไม่อ้อมค้อมดีครับ



    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 


ง่ายกว่า Z80 มากมายครับ เพราะเมื่อเราเขียนแอสแซมบลีเสร็จแล้วต้องมา Complile เป็น Machine code เองทีละบรรทัด แต่อันนี้เขียน C บนคอมพิวเตอร์แล้ว Complie มันก็จะวิ่งเข้าบอร์ดได้เลยครับไม่ยุ่งยาก แถมมี Library เพียบสำหรับการติดต่ออุปกรณ์เพียงรู้วิธีใช้คลาสแค่นั้นเองครับ
 

เคยลองเล่นกับ Module GSM ใหมครับ จะทดลองให้มันโทรออก เห็นมีขายอยู่สามพันกว่า



SIM900 ส่วนใหญ่เอามาส่ง SMS ครับ แต่เรื่องโทรออกไม่แน่ใจ ถ้าโทรได้หล่ะเยี่ยมเลยครับ

SIM900 เฉพาะโมดูลมันไม่แพงอย่างที่คิดครับ  ;D ราคาหารสามกว่าของที่ทำสำเร็จเลยครับ
หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: pisit ที่ 12 เมษายน, 2013, 09:57:21 am
เทียบกับตอนเล่น MCS51 กับ PIC แล้ว ทำให้ชีวิตง่ายขึ้นเยอะเลยครับ
   :) คิดถึง8051 เเล้วน้ำตาจะไหล ตอนทำโปรเจคใช้ arduino นี่เเหละครับ เเต่เวลาไป set ค่า timer ในregister ของมันเองก็ต้องกลับเขียนคล้ายๆ51 เหมือนเดิม  ;D
 :drunk

ใช่ครับ ใช้งานแบบทั่วไปจะเหมาะมากสำหรับ Arduino แต่กับงานบางอย่่างที่ต้องเกี่ยวกับ Interupt ผมว่าพวกที่เขียนเองโต้งๆ อย่างเช่น 51 หรือ PIC ง่ายกว่า ไม่อ้อมค้อมดีครับ



    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 


ง่ายกว่า Z80 มากมายครับ เพราะเมื่อเราเขียนแอสแซมบลีเสร็จแล้วต้องมา Complile เป็น Machine code เองทีละบรรทัด แต่อันนี้เขียน C บนคอมพิวเตอร์แล้ว Complie มันก็จะวิ่งเข้าบอร์ดได้เลยครับไม่ยุ่งยาก แถมมี Library เพียบสำหรับการติดต่ออุปกรณ์เพียงรู้วิธีใช้คลาสแค่นั้นเองครับ
 

เคยลองเล่นกับ Module GSM ใหมครับ จะทดลองให้มันโทรออก เห็นมีขายอยู่สามพันกว่า



SIM900 ส่วนใหญ่เอามาส่ง SMS ครับ แต่เรื่องโทรออกไม่แน่ใจ ถ้าโทรได้หล่ะเยี่ยมเลยครับ

SIM900 เฉพาะโมดูลมันไม่แพงอย่างที่คิดครับ  ;D ราคาหารสามกว่าของที่ทำสำเร็จเลยครับ

คิดว่าจะซื้อแน่ ชี้เป้าหน่อยครับ  :clap

หัวข้อ: Re: คุณรู้จัก Arduino กันหรือยัง
เริ่มหัวข้อโดย: XMan ที่ 12 เมษายน, 2013, 03:27:49 pm
เทียบกับตอนเล่น MCS51 กับ PIC แล้ว ทำให้ชีวิตง่ายขึ้นเยอะเลยครับ
   :) คิดถึง8051 เเล้วน้ำตาจะไหล ตอนทำโปรเจคใช้ arduino นี่เเหละครับ เเต่เวลาไป set ค่า timer ในregister ของมันเองก็ต้องกลับเขียนคล้ายๆ51 เหมือนเดิม  ;D
 :drunk

ใช่ครับ ใช้งานแบบทั่วไปจะเหมาะมากสำหรับ Arduino แต่กับงานบางอย่่างที่ต้องเกี่ยวกับ Interupt ผมว่าพวกที่เขียนเองโต้งๆ อย่างเช่น 51 หรือ PIC ง่ายกว่า ไม่อ้อมค้อมดีครับ



    เวลาใช้งานนี่ ตัวโปรแกรมนี่จะถูกเขียนลงบนบอร์ดเลยรึเปล่าครับ  หรือว่าต้องต่อกับคอมพิวเตอร์ด้วยครับ

    ไม่ได้เล่นมานานแล้วพวกนี้ หลังสุดที่ใช้ Z80   :D

 


ง่ายกว่า Z80 มากมายครับ เพราะเมื่อเราเขียนแอสแซมบลีเสร็จแล้วต้องมา Complile เป็น Machine code เองทีละบรรทัด แต่อันนี้เขียน C บนคอมพิวเตอร์แล้ว Complie มันก็จะวิ่งเข้าบอร์ดได้เลยครับไม่ยุ่งยาก แถมมี Library เพียบสำหรับการติดต่ออุปกรณ์เพียงรู้วิธีใช้คลาสแค่นั้นเองครับ
 

เคยลองเล่นกับ Module GSM ใหมครับ จะทดลองให้มันโทรออก เห็นมีขายอยู่สามพันกว่า



SIM900 ส่วนใหญ่เอามาส่ง SMS ครับ แต่เรื่องโทรออกไม่แน่ใจ ถ้าโทรได้หล่ะเยี่ยมเลยครับ

SIM900 เฉพาะโมดูลมันไม่แพงอย่างที่คิดครับ  ;D ราคาหารสามกว่าของที่ทำสำเร็จเลยครับ

คิดว่าจะซื้อแน่ ชี้เป้าหน่อยครับ  :clap



ลองดูที่นี่ครับ
http://www.es.co.th/search.asp?Word=gsm&PC=056005&Mode=2&tb=&stk=&pb=&view=Selection&pic=checked