Mục lục:

Hướng dẫn lắp ráp AVR 11: 5 bước
Hướng dẫn lắp ráp AVR 11: 5 bước

Video: Hướng dẫn lắp ráp AVR 11: 5 bước

Video: Hướng dẫn lắp ráp AVR 11: 5 bước
Video: cách lắp bo avr ổn định điện áp máy phát lh 0982871662 2024, Tháng bảy
Anonim
Hướng dẫn lắp ráp AVR 11
Hướng dẫn lắp ráp AVR 11
Hướng dẫn lắp ráp AVR 11
Hướng dẫn lắp ráp AVR 11
Hướng dẫn lắp ráp AVR 11
Hướng dẫn lắp ráp AVR 11

Chào mừng đến với Hướng dẫn 11!

Trong hướng dẫn ngắn này, cuối cùng chúng ta sẽ xây dựng phần đầu tiên của dự án cuối cùng của chúng ta.

Điều đầu tiên bạn nên làm là đi đến bước cuối cùng của hướng dẫn này và xem video. Sau đó quay lại đây. [tạm dừng trong khi bạn làm điều đó….] Được rồi. Bây giờ tiến hành.

Nếu bạn chưa đoán, chúng tôi đang xây dựng trò chơi Craps! Tất nhiên, chỉ vì tôi đang xây dựng một trò chơi craps chắc chắn không có nghĩa là bạn phải làm vậy. Tôi hy vọng điều đó đi mà không cần nói. Trong mọi trường hợp, sử dụng bộ vi điều khiển để điều khiển các màn hình được phân đoạn, v.v. và giao tiếp với nhau sẽ rất hữu ích - đó chủ yếu là những gì chúng tôi đang làm ở đây. Bạn có thể viết mã để sử dụng chúng theo cách nào bạn thích. Hiện tại, tôi sẽ viết mã chúng để chơi craps mặc dù sau này tôi có thể quyết định chuyển mục đích sử dụng lại các màn hình được phân đoạn để làm việc khác.

Lý do tôi xây dựng cái này là vì tôi đang nghĩ rằng cuối cùng tôi có thể muốn có một bảng Vegas craps kích thước đầy đủ trong "hang động người" ở tầng hầm của ngôi nhà của tôi. Tuy nhiên, không ai trong số bạn bè của tôi có một chút ý tưởng nhỏ nhất về cách giải quyết, ghi điểm, hoặc thanh toán craps và cuộn. Vì vậy, tôi nghĩ sẽ rất tuyệt nếu bàn giao tất cả công việc của người chia bài cho chúng tôi! Khi chúng ta đặt cược trên bàn, chúng ta cũng có thể ấn một nút nhỏ bên cạnh hình vuông mà các chip của chúng ta đang hiển thị số tiền được đặt ở đó, sau đó bộ vi điều khiển có thể tính toán khoản thanh toán cho hình vuông đó sau khi tung xúc xắc và hiển thị nó. Mặc dù vậy, tôi vẫn không chắc mình sẽ tổ chức khía cạnh này như thế nào. Một suy nghĩ của tôi là mỗi người sẽ được yêu cầu đặt tất cả các cược của họ lần lượt để người điều khiển sẽ ghi lại số tiền của mỗi người trước khi ghi lại người chơi tiếp theo, v.v. Sau đó, sau khi cuộn, máy tính có thể hiển thị các khoản thanh toán trên mỗi ô vuông và cũng có thể giữ "tổng tiền mặt" đang hoạt động cho mỗi người chơi.

Đối với một trong những hình ảnh bìa của hướng dẫn này, tôi chỉ cần sử dụng hình ảnh tôi kéo 5 con át chủ bài trên bàn poker ở Vegas vào mùa hè này. Heheh. Thưởng thức tôi.

Đây là liên kết đến bộ sưu tập đầy đủ các hướng dẫn về trình biên dịch AVR của tôi:

Bước 1: Craps

Craps!
Craps!
Craps!
Craps!
Craps!
Craps!

Trong hướng dẫn này, chúng tôi sẽ chỉ xây dựng phần đơn giản nhất của trò chơi Craps cuối cùng. Đây được gọi là "Đường vượt qua" và bạn có thể đặt cược vào nó. Bạn có thể tìm hiểu mọi thứ bạn cần biết về phần "đường chuyền" của trò chơi bằng cách xem video hướng dẫn ngắn 2 phút mà tôi đã đính kèm ở bước này.

Chúng tôi sẽ xây dựng một màn hình 4 chữ số khác sẽ theo dõi Tiền mặt của nhà cái giống như cách mà màn hình 4 chữ số hiện tại của chúng tôi theo dõi Tiền mặt của người chơi. Nhà cái sẽ bắt đầu với 20 đô la và người chơi sẽ bắt đầu với 20 đô la (tổng số tiền có thể có trong trò chơi là 9999 đô la - mức tối đa của màn hình 4 chữ số của chúng tôi, nhưng chúng tôi sẽ chỉ cần 20 đô la cho phần đầu tiên của trò chơi hoặc nếu không sẽ rất tẻ nhạt trong cùng cực và khó có thể thắng hoặc thua trong một khoảng thời gian thích hợp). Nếu người chơi lấy hết tiền của nhà cái, người chơi sẽ thắng. Nếu người chơi thua hết tiền thì nhà cái thắng.

Làm thế nào để bạn thắng hoặc thua tiền? Chà, những ai đã từng chơi Craps, nhìn thấy mọi người "bắn xúc xắc" trên đường phố, hoặc thấy nó chơi với sòng bạc ở Vegas, sẽ biết. Đối với phần còn lại của bạn, hãy để tôi mô tả ngắn gọn về phần "đường chuyền" của trò chơi mà chúng ta sẽ viết mã ngày hôm nay.

Craps đã được chơi hàng trăm năm, có từ thời các cuộc thập tự chinh. Nó đã được chơi bởi quân đội trong chiến hào của Thế chiến thứ hai, nó được chơi trên đường phố, nó được chơi trong sòng bạc và sảnh đánh bạc. Nó bắt đầu chỉ với dòng pass và tất cả những thứ khác đã được thêm vào nó sau đó. Chúng tôi sẽ theo dõi tiến trình tương tự.

Cách thức hoạt động của đường chuyền là thế này. Bạn đặt cược và sau đó bạn tung xúc xắc. Cuộn đầu tiên được gọi là "cuộn ra". Nếu bạn nhận được 2 (mắt rắn), 3 (át chủ bài) hoặc 12 (ô tô) trong lần quay ra, bạn sẽ thua cược của mình và nó được gọi là "craps". Nếu bạn tung ra số 7 (tự nhiên) hoặc 11 (yo hoặc yo-leven), bạn sẽ thắng. Nếu bạn cuộn bất kỳ số nào khác thì số này sẽ trở thành "điểm" của bạn. Sau khi "điểm" được thiết lập, bạn tiếp tục tung xúc xắc với mục tiêu là đạt điểm một lần nữa trước khi tung điểm 7. Nếu bạn nhận được điểm của mình trước khi tung số 7, bạn sẽ thắng tiền chẵn. Vì vậy, đặt cược một đô la giúp bạn thắng một đô la từ nhà cái. Nếu bạn nhận được số 7 trước khi điểm của bạn được tung ra, điều này được gọi là "hết bảy" và bạn thua cược của mình cho nhà cái.

Sau đó bạn bắt đầu lại. Đặt cược vào đường chuyền và tung xúc xắc, 7 hoặc 11 thắng, 2, 3 hoặc 12 thua.

Có nhiều loại cược khác, "không vượt qua", "vượt qua tỷ lệ cược", "không vượt qua tỷ lệ cược", "đến đặt cược", "không đến đặt cược", "lĩnh vực", "còi", " cách khó ", v.v., v.v. Bạn có thể tìm thấy thông tin chi tiết tại đây:

en.wikipedia.org/wiki/Craps

Như tôi đã nói ở trên, hiện tại, chúng ta sẽ chỉ viết mã phần đường chuyền của trò chơi, đó là tất cả những gì chúng có trong ngày khi bọn trẻ ném xúc xắc vào tường để lấy tiền ăn trưa của nhau và vì vậy đây là nơi chúng ta sẽ bắt đầu.

Tuy nhiên, trước khi chúng ta bắt đầu viết mã, hãy xây dựng màn hình hiển thị tiền mặt của đại lý. Đối với điều này, tôi muốn sử dụng một trong những màn hình 4 chữ số lớn hơn mà bạn có thể lấy từ Sparkfun hoặc nơi khác. Từ bây giờ tôi sẽ không liệt kê tài liệu về các hướng dẫn này. Nếu bạn đã thực sự xây dựng tất cả mọi thứ cùng với tôi thì bạn đã biết nơi lấy tài liệu và chúng là gì. Thật vô nghĩa đối với tôi khi liệt kê chúng hoặc chúng có giá bao nhiêu.

Vì vậy, hãy lấy một trong các bảng tạo mẫu của chúng tôi, một màn hình 4 chữ số lớn, một ATmega328p khác để điều khiển màn hình đó và xây dựng nó giống như chúng ta đã làm với con lăn xúc xắc và màn hình trình phát trước đây. Chúng tôi cũng sẽ đính kèm các tiêu đề cho nguồn, cho lập trình và cho truyền thông TWI giống như những cái khác.

Bước 2: Hiển thị tiền mặt của đại lý

Hiển thị tiền mặt của đại lý
Hiển thị tiền mặt của đại lý
Hiển thị tiền mặt của đại lý
Hiển thị tiền mặt của đại lý
Hiển thị tiền mặt của đại lý
Hiển thị tiền mặt của đại lý

Chúng tôi xây dựng hiển thị đại lý giống như cách chúng tôi đã làm với hiển thị 4 chữ số của người chơi trong hướng dẫn trước. Sự khác biệt duy nhất là nó lớn hơn và có ít chân cắm hơn, vì vậy chúng tôi sẽ sắp xếp nó và đấu dây nó theo cách khác.

Tôi đã đính kèm một hình ảnh về hệ thống dây điện của màn hình này. Bạn có thể thấy rằng nó lớn hơn và có ít chân hơn so với màn hình playercash của chúng tôi. Hình ảnh là từ trang sparkfun nơi tôi nhận được màn hình và nó hiển thị chân nào là nguồn cho mỗi chữ số và chân nào điều khiển từng đoạn trong một chữ số.

Như thường lệ, bạn nên bắt đầu bằng cách cắm màn hình vào breadboard tạo mẫu của mình và kiểm tra từng đoạn để đảm bảo rằng bạn hiểu cách nó được nối dây. Sau đó, bạn nên kết nối nó với các chân của bộ vi điều khiển AVR trên breadboard của bạn và chạy nó từ đó cho đến khi tất cả mã của chúng ta hoạt động trong hướng dẫn này. Cuối cùng, cuối cùng, bạn nên xây dựng bo mạch bên ngoài và hàn nó vào. Sau đó, khi bạn kiểm tra sản phẩm cuối cùng, bạn sẽ biết rằng bất kỳ vấn đề nào đến từ công việc hàn và cắt của bạn chứ không phải do mã. Ngoài ra, đừng quên tiên đề nổi tiếng từ nghề mộc "đo hai lần và cắt một lần", hoặc trong trường hợp làm bảng mạch: "cắt hai lần, hàn một lần." Như bạn có thể thấy trong hình, cuối cùng tôi đã phá sản và mua một phần đính kèm Dremel hoàn hảo cho loại tác phẩm này. Một "Bộ Điểm Kim Cương". Nó có giá 5 đô la nhưng ít hơn rất nhiều so với chi phí của Liệu pháp quản lý cơn giận dữ đi kèm với việc thực hiện công việc cắt giảm của tôi quá nhiều lần liên tiếp.

Tôi đang sử dụng điện trở 330 ohm cho màn hình này. Các chân COM đi qua điện trở đến GND và nguồn đi đến bất kỳ đoạn nào bạn muốn hiển thị. Tôi sẽ sử dụng PC0 thông qua PC3 cho các chân COM và PB0, PB1, PB2, PB3, PB4, PD5, PD6 và PD7 cho các phân đoạn.

Đây là chìa khóa để tối đa hóa cơ hội của bạn làm đúng:

  1. vạch ra mạch
  2. cắt mạch
  3. kiểm tra hệ thống dây điện của bạn
  4. gắn các điện trở, nắp và bộ dao động tinh thể
  5. kiểm tra lại các kết nối và hệ thống dây điện
  6. gắn các dây bên ngoài
  7. gắn vi điều khiển
  8. kiểm tra lại hệ thống dây điện
  9. đính kèm màn hình 4 chữ số
  10. kiểm tra từng chữ số bằng một cặp dây từ breadboard
  11. Đặt nó sang một bên và viết mã, biết rằng bạn có thể sẽ phải chỉnh sửa mọi thứ sau này và hy vọng bạn không che đậy một kết nối cần phải cắt.

Tôi đã cho xem một loạt hình ảnh về công việc nối dây của mình. Hãy nhận ra rằng bạn có thể tự do nối dây theo bất kỳ cách nào bạn muốn. Rất có thể bạn có thể tìm thấy một bản đồ tốt hơn tôi đã làm và bạn nên sử dụng nó. Không có gì trong các hướng dẫn này phụ thuộc vào cách các thành phần của bạn được nối dây, miễn là chúng có các cổng đầu ra chính xác. Điều đó nhắc nhở tôi. Lưu ý rằng bây giờ có hai tiêu đề sẽ đến SDA và hai tiêu đề sẽ đến SCL? Tại sao bạn cho rằng chúng tôi đã làm điều đó?

Bây giờ, như bạn có thể thấy bằng mã đính kèm ở cuối hướng dẫn, tôi chỉ cần cắt và dán mã từ màn hình trình phát của hướng dẫn cuối cùng vào một tệp mới để hiển thị đại lý. Sau đó, tôi đã xem qua và thay đổi bảng tra cứu "phân đoạn" để tương ứng với bản đồ chân mới, lưu ý rằng đối với màn hình này, chân "com" được nối đất và chân phân đoạn là 5V chứ không phải ngược lại như đối với màn hình khác. Tôi cũng đã thay đổi việc khởi tạo các cổng để phản ánh hệ thống dây điện mới, tôi đã thay đổi địa chỉ của màn hình dealercash thành 0b1000000 để con lăn xúc xắc có thể nói chuyện với anh ta, tôi đã thay đổi chương trình con "chu kỳ" để nó tắt PC0 thông qua các chân "com" PC3 khi nó muốn cấp nguồn cho một phân đoạn cụ thể và tôi đã thay đổi "chữ số" được hiển thị vì hệ thống dây điện mới có các chữ số theo thứ tự ngược lại (nếu bạn để nguyên như vậy và cố gắng hiển thị 1234 nó thay vào đó sẽ hiển thị là 4321).

Đây là bản đồ đăng ký mới:

(PD7, PD6, PD5, PB4, PB3, PB2, PB1, PB0) = (dấu thập phân, c, g, b, f, a, e, d)

trong đó 1 là BẬT và 0 là TẮT.

Bây giờ hãy kiểm tra màn hình bằng cách đầu tiên đặt giá trị khởi tạo của màn hình thành các số khác nhau để khi bật nó sẽ hiển thị chúng. Điều này sẽ cho bạn biết nếu mọi thứ đang hoạt động chính xác.

Sau đó, sửa đổi mã con xúc xắc để nó sử dụng địa chỉ mới cho nô lệ, nối chúng lại với nhau và chạy nó. Nó sẽ hoạt động chính xác như những gì chúng tôi đã làm trong hướng dẫn trước, ngoại trừ việc các viên xúc xắc hiện hiển thị trên màn hình mới.

Tuyệt vời! Bây giờ chúng tôi đã sẵn sàng viết mã con lăn xúc xắc mới để nó giao tiếp với cả màn hình người chơi và màn hình đại lý.

Bước 3: Đề cương chương trình

Đề cương chương trình
Đề cương chương trình
Đề cương chương trình
Đề cương chương trình
Đề cương chương trình
Đề cương chương trình

Cách mã sẽ hoạt động cho trò chơi của chúng tôi là chúng tôi sẽ giữ con lăn xúc xắc làm chủ và thêm hiển thị đại lý làm nô lệ bổ sung. Con lăn xúc xắc sẽ điều khiển trò chơi và nó sẽ gửi những thay đổi kết quả bằng tiền mặt cho người chia bài và người chơi sẽ hiển thị sau mỗi lần quay. Hiện tại, chúng tôi sẽ chỉ đặt cược dòng vượt qua là 10 đô la mỗi lần, vì vậy chúng tôi không cần phải quá phức tạp khi người chơi thay đổi đặt cược của mình. Sau đó, khi chúng tôi đã có cơ chế hoạt động, chúng tôi sẽ thêm một bộ điều khiển khác sẽ là một bộ điều khiển bổ sung sẽ kiểm soát việc đặt cược và các khoản thanh toán và con lăn xúc xắc của chúng tôi sẽ vẫn là một bộ điều khiển nhưng chỉ được sử dụng để lăn xúc xắc. Điều này sẽ cho phép chúng tôi tham gia vào phân xử TWI, va chạm và các khía cạnh quan trọng khác của giao tiếp nối tiếp khi bạn có nhiều chủ và nô lệ. Chúng tôi cũng sẽ thêm một số màn hình 7 chữ số duy nhất với các nút nhấn bên dưới chúng sẽ cho phép chúng tôi đặt cược vào các loại cuộn khác, nhưng tất cả những điều đó sẽ có trong các bài hướng dẫn trong tương lai. Hiện tại, chúng tôi chỉ muốn con lăn xúc xắc là chủ và hai màn hình hiển thị là nô lệ. Khi chúng tôi nhấn nút, mã sẽ quyết định thanh toán tự nhiên, lấy tiền từ craps hoặc nhánh cho một loạt các cuộn "điểm" cho đến khi thắng hoặc thua bảy.

Đầu tiên chúng ta hãy viết các quy trình nô lệ. Đơn giản ở chỗ tất cả những gì họ sẽ làm là xem dòng SDA để biết địa chỉ của họ, nếu họ được gọi họ sẽ đọc số mới để hiển thị và hiển thị nó. Đó là tất cả! Họ thậm chí không phải nói chuyện lại với chủ vì người chủ sẽ theo dõi tổng số của họ và thực hiện tất cả các phép tính thanh toán trước khi cập nhật chúng. Trong các hướng dẫn trong tương lai, chúng tôi sẽ có các nô lệ viết lại cho chủ (ví dụ: khi chúng tôi có màn hình 7 chữ số duy nhất với các nút nhấn cho số tiền cá cược, họ sẽ phải cho chủ biết số tiền đang được đặt cược trên mỗi màn hình và vì vậy chúng tôi sẽ giải quyết chúng bằng một địa chỉ + cuộc gọi đọc với chính trong "chế độ nhận chủ") nhưng chúng tôi sẽ đến đó trong thời gian thích hợp.

Hiện tại, mọi thứ được thúc đẩy bởi lần nhấn nút cuộn xúc xắc, sau đó là phép tính hoặc các lần nhấn nút khác và cuối cùng là thông báo đến từng màn hình với tổng số mới của chúng. Sẽ có một bài kiểm tra sau mỗi lần thanh toán để xác định xem người chơi đã thắng hay đã thua, nói cách khác, nếu tiền của nhà cái trở thành 0 sau khi quay, hoặc nếu tiền của người chơi trở thành 0 sau khi quay (cả nhà cái hay người chơi đều không có thể chuyển sang số âm vì họ sẽ chỉ được phép đặt cược 10 đô la hoặc bất cứ thứ gì còn lại nếu nó nhỏ hơn 10 đô la).

Vì vậy, đó là cách nó sẽ hoạt động. Hãy viết mã.

Bước 4: Mã liên lạc chính

Mã liên lạc chính
Mã liên lạc chính

Bây giờ chúng ta có thể viết quy trình liên lạc của con lăn xúc xắc. Nó cũng gần giống với cái mà chúng tôi đã viết lần trước ngoại trừ việc chúng tôi sẽ giao tiếp với hai nô lệ khác nhau chứ không phải chỉ một. Lưu ý rằng đối với mỗi nô lệ, chúng tôi sử dụng một địa chỉ khác nhau. Bạn nên tự sửa đổi mã và sau đó chỉ cần kiểm tra nó với từng địa chỉ và đảm bảo rằng nó hoạt động giống như hướng dẫn cuối cùng ngoại trừ mỗi màn hình riêng biệt.

Tôi sẽ đính kèm mã cho mỗi thành phần chỉ hiển thị kết quả của cuộn để nó có thể được sử dụng để làm cho màn hình hoạt động bình thường và kiểm tra hệ thống dây điện.

Việc mã hóa trò chơi không có gì mới mẻ như các lệnh hợp ngữ hoặc các thành phần vi điều khiển AVR và vì vậy tôi không cảm thấy mình cần phải đọc từng dòng một. Bạn có thể đã nhận thấy rằng khi chúng tôi giới thiệu một cái gì đó mới, tôi đi qua từng dòng chi tiết đến mức khiến bạn bực mình nếu không đưa bạn vào giấc ngủ. Mặt khác, tôi sẽ không làm điều đó nếu không có gì mới được giới thiệu. Đó là trường hợp ngày nay. Vì vậy, tôi nghĩ rằng bạn đã chuẩn bị sẵn sàng để chơi với mã, đọc qua mã, phân tích mã, hiểu mã, chỉ trích mã, chế giễu mã, và cười anh chàng viết mã. Vì vậy, tôi sẽ để bạn đi trước và làm điều đó. Gần như chắc chắn rằng bạn sẽ tìm thấy nhiều chỗ mà bạn có thể cải thiện hoặc ít nhất là đơn giản hóa những gì tôi đã viết.

Như thường lệ, tôi đã đính kèm phiên bản cuối cùng của mã cho hai màn hình và máy xúc xắc trong bước tiếp theo cùng với một đoạn video tôi đang thử nghiệm thứ này.

Bước 5: Mã và video cuối cùng

Tôi đã đính kèm video và 3 chương trình. Bạn sẽ nhận thấy rằng bạn có thể ấn định tiền cược và người chia bài bắt đầu và tiền mặt của người chơi ở đầu chương trình bằng các câu lệnh.equ.

Trong hướng dẫn tiếp theo, chúng tôi sẽ thêm khả năng đặt cược vào những thứ khác nhau, điều này sẽ làm cho trò chơi trở nên thú vị hơn. Điều thú vị về Craps hiện đại là bạn có vô số cách khác nhau để đặt cược và cố gắng tối đa hóa tỷ lệ cược của mình. Trên thực tế, Craps là trò chơi có tỷ lệ cược cao nhất trong Sòng bạc! … NẾU bạn biết cách chơi nó. Mặt khác, nếu bạn không biết cách chơi thì nó sẽ trở thành một trong những trò chơi có tỷ lệ cược thấp nhất.

Khi chúng tôi có nhiều thứ để đặt cược tiền của mình thì tôi sẽ tăng tổng số tiền trong trò chơi.

Tôi nên vui vẻ!

Hẹn gặp lại các bạn trong lần sau!

Đề xuất: