Nick Chung

Ảnh của Nick Chung

Điểm cộng đồng

  • Bài tập: 0
  • Bài viết: 1043
  • Bình luận: 11
Tổng điểm: 1054
Giới thiệu: 

Mình yêu thích arduino, muốn chia sẻ tình yêu với arduino cùng mọi người.

Xin chào các bạn mình tên Phùng Thái Sơn (Nick Chung),lý do đến với arduino-cũng như bao bạn trẻ khác, mong muốn có cơ hội học hỏi và chia sẻ kiến thức là mục tiêu của mình khi tham gia cộng đồng arduino.vn.

Email: [email protected]

Email: [email protected]

 

Đây là trang cá nhân của mình, một góc riêng trên arduino.vn.

Nơi đây tống hợp các bài viết của mình trên arduino.vn

 

Ở phiên bản này, máy hiện sóng AVR-OSCILLOSCOPE của mình có thể được hiển thị lên 2 lcd thông dụng là NOKIA5110 hoặc lcd ST7565 Homephone .

Đây là thiết bị hiện sóng đa năng, mạnh mẽ và vô cùng gọn nhẹ. Các bạn hoàn toàn tự làm nó ngay lại công xưởng chế tạo tại nhà của mình với giá thành cực rẻ (chưa đến 300k - tính luôn Arduino Uno). 

http://arduino.vn/tutorial/1441-avr-oscilloscope-tu-lam-may-hien-song-dien-tu-tren-nen-arduino-voi-gia-chua-den-300

Robot arm, robot nhện, robot múa.. hay các robot mini có sử dụng động cơ servo đều là những sản phẩm gây ấn tượng với những chuyển động đẹp mắt. Đúng như tiêu chí của ARDUINO, mình sẽ làm một dự án ROBOT tự học lệnh cực kì COOL.  

http://arduino.vn/tutorial/1393-lam-robot-tu-hoc-lenh-don-gian

 Việc điều khiển nhập/ xuất trên arduino bằng digitalRead/ Write hẳn đã quá quen thuộc . Hài lòng với tốc độ hiện có, vậy bạn có muốn tăng tốc độ đọc/ ghi lên gấp 14 lần,  điều khiển cả 8 pin cùng lúc chỉ với một dòng lệnh không. Hãy đọc ngay bài viết này.

Bấy lâu nay bạn đã sử dụng sai eeprom của arduino? ..Một ngày bạn sử dụng eeprom bao nhiêu lần? Có bao giờ bạn lo lắng tới tuổi thọ của EEPROM ?smiley

EEPROM là còn được hiểu như một thẻ nhớ có thể lưu trữ dữ liệu ngay cả khi mất điện.

Bộ nhớ EEPROM có sẵn của arduino có số lần ghi/xóa 100000 lần,  nếu dùng hết số lần ghi cho phép, eeprom sẽ hỏng. Để khắc phục điều này, chúng ta cần sử dụng một ic eeprom ngoại vi thay vì sử dụng eeprom của arduino.

 

LCD chip st7565 có kích thước màn hình 128x64 pixel, là loại lcd graphic đa dụng cho nhiều dự án. Ở nước ta việc mua mới lcd này khá khó do không được ưa chuộng, sở dĩ có chuyện này có lẽ là do thiếu các tài liệu và hướng dẫn liên quan. Hiện lcd loại này chỉ có thể vọc từ các điện thoại homephone hoặc mua cũ. Nếu bạn đang có trong tay lcd này, thì bài viết dưới sẽ giúp bạn sử dụng nó với arduino.

http://arduino.vn/tutorial/1319-st7565-huong-dan-su-dung-glcd-st7565-homephone-va-chia-se-thu-vien

Bộ thư viện ST7565 homephone có nhiều tính năng nổi bật, để sánh ngang tầm ưu việt, giờ đây lcd 84x48 NOKIA5110 đã có một phiên bản giống hệt như vậy. Cùng khám phá nào !!  

http://arduino.vn/tutorial/1345-nokia5110-huong-dan-su-dung-va-chia-se-thu-vien-hoang-sa

Bài viết này đi  sâu vào tìm hiểu cấu tạo, cách thức điều khiển động cơ step 2 pha lưỡng cực trong ổ DVD/VCD.

Bên cạnh đó là xây dựng một mạch lái (ic driver) và sử dụng thư viện STEP_2_PHASE. 

http://arduino.vn/tutorial/1385-dieu-khien-module-dong-co-step-2-pha-va-thu-vien

Đã có nhiều bài viết về cách làm rada hiển thị lên màn hình máy tính. Tương tự, mình cũng sẽ làm một chiếc rada cảnh báo hiển thị lên một vài LCD thông dụng hiện nay.

http://arduino.vn/tutorial/1373-xay-dung-rada-tren-board-arduino-va-hien-thi-tren-lcd-du-raduino

 

Lượt bình luận: 
77
Dự án đã thực hiện: 

Mình đến với arduino như một lựa chọn bắt buộc !

 

Arduino sử dụng vi điều khiển của AVR (atmega ), nó là thế hệ vi điều khiển mới nhất, kế thừa toàn bộ ưu điểm của các dòng vi điều khiển trước đó,  thậm chí có thể xem nó như một máy tính nhúng giá rẻ. Từ cấu trúc lưu trữ và truy cập dữ liệu, đến hỗ trợ ngôn ngữ bậc cao C/C++ (C++ là vua tốc độ của các ngôn ngữ thế hệ sau nó), lập trình đơn giản, cộng đồng lớn mạnh là ưu điểm tuyệt để học lập trình.

C++ - ngôn ngữ lập trình hướng đối tượng :

Ngôn ngữ lập trình C/C++ là một trong những ngôn ngữ lập trình hướng đối tượng mạnh và phổ biến hiện nay do tính mềm dẻo và đa năng của nó. Không chỉ các ứng dụng được viết trên C/C++ mà cả những chương trình hệ thống lớn đều được viết hầu hết trên C/C++.

Làm quen với arduino một thời gian dài, có lẽ  bạn đã quen với ngôn ngữ lập trình C trên arduino, nhắc tới C++ có lẽ bạn sẽ có suy nghĩ : “ Ồ , C++ cũng là lập trình C, nhưng sẽ khó hơn !!”.  Nhưng thực tế thì ngược lại !. C++ sẽ giúp bạn quản lí các biến chặt chẽ hơn rất nhiều, bạn (tự bản thân) sẽ loại bỏ nhiều tật xấu trong lập trình C , chương trình sẽ được viết với một dung lượng cực kì nhỏ nhưng vẫn đảm bảo thuật toán của C , sẽ không có hiện tượng khai báo thừa/thiếu biến,… Bạn thậm chí còn có thể học C++ trước cả C.

 

C++ - Vua tốc độ:

C++ là ngôn ngữ lập trình hướng đối tượng được phát triển trên nền tảng của C, không những khắc phục một số nhược điểm của ngôn ngữ C mà quan trọng hơn, C++ cung cấp cho người sử dụng một phương tiện lập trình theo kỹ thuật mới: lập trình hướng đối tượng. Đây là kỹ thuật lập trình được sử dụng hầu hết trong các ngôn ngữ mạnh hiện nay, đặc biệt là các ngôn ngữ hoạt động trong môi truờng Windows như Microsoft Access, Visual Basic, Visual Foxpro …

 

Người ta gọi C/C++ là ngôn ngữ lập trình dùng để viết lên các ngôn ngữ lập trình khác. Ở đâu cần tốc độ tối đa, ở đó phải dùng C/C++. Node.js được viết bằng C/C++. Các games 3D đỉnh cao phải viết bằng C/C++ (Unreal 3D, Cocos2D-X). Unity3D tuy cho lập trình viết mã bằng C# nhưng bản thân nó lại được viết bằng C++. Trình duyệt Chrome, Safari, FireFox, các phần mềm mã nguồn mở nổi tiếng như MySQL, Postgresql, Torrent, Unikey, VLCPlayer phải viết bằng C/C++ để cross platform và tối ưu tốc độ thực thi. So sánh tốc độ thực thi giữa Java với C++ hay C# với C++ đều cho thấy C/C++ luôn là vua tốc độ. Theo chỉ số Tiobet Index tháng 3/2015, C đứng vị trí số 1 còn C++ đứng vị trí số 4 về nhu cầu sử dụng trên thế giới.

Trên thế giới, tại nhiều nước ngôn ngữ lập trình C/C++ cũng được đưa vào giảng dạy trong hầu hết các trường Đại học, Cao đẳng để thay thế một số ngôn ngữ lập trình đã cũ như Fortran, Pascal…Ở Việt Nam, tại các trung tâm đào tạo lập trình viên như Stanford – dạy kinh nghiệm lập trình, ngôn ngữ C/C++ được chọn để dạy lập trình như là bước đệm để học tiếp các ngôn ngữ khác: C# hoặc Java.

<trích nguồn : http://stanford.com.vn/kien-thuc-lap-trinh/tin-chi-tiet/cagId/27/id/4380/hoc-kinh-nghiem-lap-trinh-cc-tai-stanford >

Samsung hãng sản xuất điện thoại thông minh hàng đầu thế giới , đã cung cấp  nền tảng có nhân có thể cấu hình vào  tháng 11 năm 2009 có tên "bada".

Mức trên của hệ lõi có Device, Service, và Framework Layers respectively. Device Layer cung cấp các chức năng cơ bản như đồ họa, giao thức, gọi điện, bảo mật.... Service Layer cung cấp các chức năng đặc trưng như SNS, bản đồ, mua ứng dụng. Để cung cấp các chức năng này, Samsung cung cấp các bộ điều hành bada ServerLớp trên cùng, Framework Layer, cung cấp các API viết bằng C++ cho các nhà phát triển.heartlaugh

bada cung cấp rất nhiều cách điều khiển giao diện người dùng cho nhà phát triển: gồm các UI cơ bản như Listbox, Color Picker, Tab, vv. Cả WebKit và Flash có thể nhúng vào bên trong các ứng dụng.

bada hỗ trợ khá nhiều các chức năng dựa trên phần cứng khác như: đa cảm biến, như cảm biến chậm, điều khiển rung,nhận diện khuôn mặt, cảm biến gia tốc, cảm biến từ trường,độ nghiêng, và GPS, có thể kết hợp với các ứng dụng, và đa cảm biến.

(trích nguồn Wiki : https://vi.wikipedia.org/wiki/Bada_(h%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh) )

 

Bạn biết Game này chứ ? Asphalt8 - một sản phẩm của GameLoft - và nó viết bằng C++ !

 

Và điều tuyệt vời nhất của dòng chip AVR là nó hỗ trợ loại ngôn ngữ này.

 

 

ARDUINO+GAME + C/C++ :

 

  • Cuộc cách mạng công nghiệp lần thứ 4 sẽ gắn liền với sự phát triển mạnh mẽ của tự động hóa, thiết bị thông minh.Arduino cũng sẽ góp mặt trong sự phát triển đó. Nó là bộ não trong mọi dự án từ nhỏ đến lớn, bộ não đó mạnh mẽ cỡ nào còn phụ thuộc vào những gì chúng ta dạy cho nó thông qua những dòng Code. Vậy học Arduino  chính xác là ta đang học lập trình !  Trong arduino, sau C, tầm cao nữa mà chúng ta phải với tới đó là ngôn ngữ C++.  Và lập trình Game là một lựa chọn tuyệt vời để thực hiện hóa các ý tưởng với C++ . Lập trình Game giúp ta hào hứng từ đầu đến cuối, nó thực sự đơn giản và không đòi hỏi thêm chi phí phần cứng,  mọi thứ chúng ta cần phải làm là viết Game với mức độ phức tạp thuật toán tăng dần trong C++ - hay đúng hơn là nâng cao tư duy lập trình C++ với sự hỗ trợ của ARDUINO. 
  • -Trong quá trình học C++ bạn sẽ được biết nhiều điều  về Cấp phát động,con trỏ, vùng nhớ, Class/Struct, đọc hiểu các thư viện arduino, tự viết thư viện cho riêng mình,  đọc mã nguồn của các dự án lớn với C++,..
  • -Khởi đầu là arduino : arduino có cấu hình “thấp bé nhẹ cân”, như arduino uno r3 chỉ có 32kb để lưu trữ Code, 2kb RAM, tốc độ xung nhịp 16mhz… , Tiết kiệm khai báo biến, tiết kiệm dung lượng code là vấn đề yêu cầu ta phải có những thuật toán sử lý thật sự tối ưu. Tối ưu rồi lại tối ưu hơn nữa  là  quá trình giúp bạn học được rất sâu hai chữ “ tiết kiệm “.
  • Va vấp và tìm cách khắc phục sự thiếu hụt về phần cứng là một trong những yêu cầu của các nhà tuyển dụng khi tuyển các Coder hoặc Developer .  
  • Sử dụng ARDUINO giống như  sinh ra từ nghèo khó, nó sẽ giúp ta sớm trưởng thành trong việc quản lí tài nguyên hạn hẹp của  ARDUINO. Điều mà các Coder trên Smartphone, PC hoặc Rabarry PI ít khi vấp phải  (Cấu hình mạnh mẽ của thiết bị họ đang sử dụng  khiến họ sống trong môi trường có nhiều hỗ trợ, họ ít khi phải bận tâm đến việc quay lại sửa Code sao cho thật tối ưu, lại càng hiếm khi gặp phải vấn đề  về dung lượng, chỉ cho đến khi họ nhận ra điều đó thì mọi thứ mới tốt hơn được angel), tốt nhất là chúng ta sẽ bắt đầu với Arduino, rồi sau đó mới lấn sân sang các dòng Smartphone / Rabarry....
  • -Làm Game: Đỉnh cao của lập trình có lẽ là viết Game. Với arduino, việc lập trình nhấp nháy LED (Blink), làm quay Servo chỉ cần đòi hỏi một chút kiến thức về C, nhưng trong Game mọi kiến thức về lập trình sẽ có thể được dùng đến.  Có nghĩa việc  lựa chọn lập trình Game sẽ giúp bạn chạm đến mọi ngóc ngách của ARDUINO nói riêng và của máy tính nói chung.
  • -Làm Game chỉ là cách chúng ta học lập trình, những kĩ năng mà nó đem lại sẽ rất có ích cho các bạn khi quay trở lại lập trình ARDUINO với các dự án ROBOT thông minh – những dự án đòi hỏi bàn tay và khối óc thông minh của bạn.

Sự hỗ trợ .

 

Arduino dễ mang vác đi mọi nơi, đi kèm với nó sẽ là một màn hình LCD nho nhỏ để thực hiện hóa các ý tưởng về GAME.

Lcd đen trắng : Nokia 5110  và Homephone ST7565 là hai dòng lcd dễ tìm mua với giá rất rẻ, sẽ là lựa chọn phổ thông cho các bạn.

Vì là lcd đen trắng nên bạn sẽ có cơ hội tìm hiểu về tập tin ảnh MONO BITMAP (dạng tập tin lưu trữ ảnh đơn giản nhất trên thế giới).

Thư viện đi kèm để lập trình đồ họa là :

Hai thư viện này đều do mình  và người em phát triển, nó đầy đủ chức năng và mạnh mẽ trong mọi yêu cầu lập trình đồ họa Game. (Mọi Game mình đều sử dụng thư viện này ).

Tất cả chỉ để phục vụ một nhu cầu sang trảnh : Làm Game và đồ họa với C++.

 

Có lẽ sau những dòng chia sẻ trên, bạn đọc mới hiểu được toàn bộ quá trình hoạt động trên arduino.vn của mình đang dần rõ ràng : đầu tiên là upload 2 thư viện  LCD -> upload các bài hướng dẫn về game với C++ ->  Upload các Game mình đã làm  ->  Quay lại chia sẻ tâm tư khi đã đủ bài  để các bạn có cơ hội bắt tay ngay vào nghiên cứu C++.

Bật mí : ‘Mình đã học lập trình rất nhanh chính là nhờ niềm đam mê lập trình Game với Arduino’.

 

 

Kết.

 

 

Vì arduino.vn không phải trang lập trình GAME , cũng chưa phải là trang dậy C++ . Nên mình đã cố gắng dồn trọng tâm sang ARDUINO nhiều nhất có thể. Từ lcd cho đến Game phải thật gần gũi, nho nhỏ, xinh xinh giống như chiếc arduino của chúng ta vậy.

Lập trình gì cũng được, không nhất thiết phải là GAME, miễn sao ta nâng cao trình độ là ngon rồi. 

Nhưng mình cũng hi vọng ý tưởng của mình sẽ được bạn đọc ủng hộ ! laughheartenlightenedyes

Với những ai muốn xin thêm  một vé về tuổi thơ giống mình thì hãy cùng khám phá các bài viết này nhé :

 

Program. 

Projects.

Các dự án Game trên arduino.vn của mình.

Các dự án về lập trình C++ của các thành viên:

http://arduino.vn/bai-viet/674-tu-lam-game-snake-ran-moi-voi-arduino-vi-du-ve-viec-su-dung-thu-vien-xu-ly-bat-dong-bo

http://arduino.vn/video/1265-thanh-qua-thanh-vien-2-tro-choi-flappy-bird-va-snake-tren-led-ma-tran-16x16-arduino-nano

http://arduino.vn/bai-viet/346-lam-game-flappy-bird

và cả thế giới game với arduino trên khắp thế giới :Result

Tác giả :

< Thái Sơn >

Lịch sử

Đã tham gia được
7 tháng 5 ngày
Những chia sẻ trên cộng đồng