Mục lục:

Bộ tạo tông màu vải vi điều khiển trong mã C: 8 bước (có hình ảnh)
Bộ tạo tông màu vải vi điều khiển trong mã C: 8 bước (có hình ảnh)

Video: Bộ tạo tông màu vải vi điều khiển trong mã C: 8 bước (có hình ảnh)

Video: Bộ tạo tông màu vải vi điều khiển trong mã C: 8 bước (có hình ảnh)
Video: Mỏm đá kì lạ này thực chất là cá sấu ngụy trang 2024, Tháng bảy
Anonim
Bộ tạo tông màu vải vi điều khiển trong mã C
Bộ tạo tông màu vải vi điều khiển trong mã C

Vào cuối tháng 10 năm ngoái, người dùng carmitsu đã gửi cho tôi một tin nhắn sau khi nhìn thấy bảng tổng hợp hộp cơm trưa của tôi. Từ thông điệp của anh ấy: Tôi dạy nhạc ở trường tiểu học. Chúng tôi chơi rất nhiều loại nhạc máy ghi âm. tức là những đứa trẻ chơi sáo nhỏ …… Tôi có một vài đứa trẻ có nhu cầu đặc biệt có thể sử dụng những bảng áp phích màu đen này với những vòng tròn có tên của nốt nhạc trên chúng. Những học sinh này đẩy vào các vòng tròn có tên nốt cùng lúc các học sinh còn lại đang chơi một bài hát….. Hầu hết các em có nhu cầu đặc biệt đều có thể làm điều này khá tốt và đúng lúc với âm nhạc. Điều tôi đang hướng tới là chế tạo một máy phát âm thanh rất đơn giản để những đứa trẻ này có thể chơi cùng cao độ với âm thanh mà học sinh chơi trên máy ghi âm của chúng. Tôi sẽ chỉ là một vài cú ném. Tôi nghĩ mình có thể gắn một loại nút nhỏ nào đó vào dưới cùng của các vòng tròn tròn của chúng để khi chúng ấn vào, âm thanh sẽ phát ra từ một chiếc loa nhỏ, đủ lớn để chúng có thể nghe thấy. Có mẹ là giáo viên mà lại thích đi học thì làm sao mà cưỡng lại được? Sự thật mà nói, tôi không thể. Đây là khá nhiều biên niên sử của dự án và hướng dẫn về cách xây dựng của riêng bạn.

Bước 1: Bắt đầu hoặc tại sao tôi không thể dính vào Analog

Sự khởi đầu hoặc tại sao tôi không thể dính vào Analog
Sự khởi đầu hoặc tại sao tôi không thể dính vào Analog

Những thứ tốt bắt đầu ở trang tiếp theo. Nếu bạn muốn biết tôi đã kết thúc bằng cách nào khi sử dụng các phần tôi đã làm, hãy đọc tiếp. Có vẻ như một cách tốt để đi, nó chỉ là một piezo, một vi mạch 741 và một vài thành phần thụ động. Không có gì to tát phải không? Vâng, nó có 2 vấn đề, 1) khi bạn nhấn công tắc, bạn có thể thay đổi cao độ 2) gần như không thể điều chỉnh được. Đầu tiên có thể được khắc phục với một số công nghệ gỡ lỗi, mặc dù tôi không biết làm thế nào để làm điều đó mà không thêm một bộ đếm khác. Nó cũng có thể là một vấn đề với việc sử dụng piezo. Vấn đề thứ hai chỉ trở nên khó sử dụng khi bạn bắt đầu cố gắng đạt một cao độ nhất định. Còn chiếc 555 thì sao? Biểu dữ liệu hiển thị chức năng dlay thời gian dựa trên điện trở và tụ điện. Điều này thật tuyệt vời cho đến khi bạn bắt đầu nhập các giá trị thực tế của các bộ phận trong thế giới thực, đó là khi bạn sẽ thấy việc đạt được cao độ 440Hz bắt đầu gặp một chút khó khăn. Bạn có thể sử dụng chậu cắt để điều chỉnh nó, nhưng theo thời gian chúng có xu hướng di chuyển. Liên tục điều chỉnh nhạc cụ, được biên soạn dựa trên sự gia tăng nhanh chóng về chi phí và số lượng của các bộ phận, và vợ tôi đã làm cho âm độ thay đổi khi cô ấy nhấn nút đã giết chết 555 cho dự án này. op-amps từ trước khi tôi được sinh ra. Thật khó để tạo ra một bản thực sự đơn giản, với ít phần và ghi chú cụ thể? Khó hơn tôi nghĩ. Hầu hết các thiết kế hiện có rất phức tạp cho dự án này. Các nhà thiết kế Synth đang tìm ra dạng sóng / giai điệu hoàn hảo. Điều này mâu thuẫn trực tiếp với một dự án được cho là đủ rẻ cho ngân sách của trường học hoặc giáo viên. Xây dựng một bàn phím là đủ dễ dàng, nó chỉ là một loạt các điện trở và nguồn điện hoặc một loạt các điốt và nguồn. Đó là phần còn lại của thiết kế mạch và chi phí của pcb tùy chỉnh bắt đầu vượt quá tầm tay đối với một người ở trình độ điện tử mới bắt đầu. Định nghĩa lại dự án: Vì vậy, dự án đã được xác định lại trước khi tôi thực sự bắt đầu. Tôi cần một thứ gì đó có thể bật tắt một chân loa đúng lúc, chỉ bằng một nút bấm. Tôi không muốn phải thiết kế và mua một PCB. Điều này phải sử dụng ít thành phần nhất có thể và được lắp ráp như một bộ dụng cụ dành cho người mới bắt đầu. Nó đã nhìn chằm chằm vào mặt tôi suốt thời gian qua. Tât nhiên!! Vi điều khiển! Vi điều khiển: Vì vậy, sau khi mua cả bộ Arduino Modern Devices Bare Bones và Bảng mục tiêu đơn giản của Evil Mad Scientist và để chúng ngồi trên bàn của tôi trong nhiều tháng không được sử dụng, tôi đã có một dự án giới thiệu hoàn hảo. Tôi bắt đầu xem xét thời gian cần thiết để kết hợp cả hai, đường cong học tập cho mã, chi phí, các phần bổ sung cần thiết và làm cho nó làm những gì tôi muốn và ổn định trên bảng mục tiêu. Chi phí khá đồng đều, 15 đô la cộng với cáp FTDI 20 đô la cho Arduino, 12 đô la cộng với bộ lập trình USBtinyISP 22 đô la. Tôi đã biết C ++ từ trường đại học nhỏ, tôi có thể đứng và nghĩ rằng C cho vi điều khiển sẽ không tệ như vậy, trong khi ngoài việc nhấp nháy đèn để đảm bảo rằng tôi đã đặt bộ dụng cụ của mình đúng cách, tôi không có kinh nghiệm về Arduino. Cả hai đều có thể được gắn kết. Đó là một sự xáo trộn khá nhiều, vì vậy tôi quyết định chọn ít phần hơn trong hai phần, bảng mục tiêu.

Bước 2: Những gì bạn cần Rev 1

Những gì bạn cần Rev 1
Những gì bạn cần Rev 1

Chi phí bộ phận Bộ lập trình AVRUSBtinyISP (USB SpokePOV Dongle) v2.0 $ 22,00https://www.adafruit.com/index.php? Main_page = product_info & cPath = 16 & products_id = 46 Phòng thí nghiệm của Nhà khoa học Evil Mad ATmegaXX8 Bộ dụng cụ phát triển nhỏ $ 12 Đầu đọc, DIP 6 chân, 5 pk đô la 2,75 5) $ 3,49 (4 gói) https://www.radioshack.com/product/index.jsp?productId=2062539"AAA "Giá đỡ pin $ 1,79https://www.radioshack.com/product/index.jsp? ProductId = 2102735SPST Submini Slide Switch (tùy chọn cho công tắc nguồn) $ 2,69 (2 gói) https://www.radioshack.com/product/index.jsp?productId=2062490LED và điện trở (tùy chọn, nếu bạn muốn có đèn nguồn) $ sẽ miễn phí Nếu chúng nằm xung quanh thì Dây $ cũng nên nằm xung quanhBọc hàn (nếu thứ này đi đến bất cứ đâu gần trẻ em, bạn có lẽ không nên dùng chì, các bậc cha mẹ sẽ thấy khá kỳ lạ về thứ đó;)) Xoa rượu (để tái di chuyển thông lượng) Nếu bạn muốn một số nơi để tiết kiệm tiền, bạn không cần phải lấy các bộ phận từ RadioShack. Tôi đã làm vì chúng gần gũi và có thể đoán trước được.

Bước 3: Lắp ráp Rev 1

Assembly Rev 1
Assembly Rev 1
Assembly Rev 1
Assembly Rev 1

Đặt các bộ phận của bạn lại với nhau như được hiển thị. Hãy chắc chắn sử dụng cồn tẩy rửa và bàn chải trợ dung khi bạn hoàn tất để loại bỏ bất kỳ chất trợ chảy nào do quá trình hàn. D1 và R1 có thể là bất cứ thứ gì bạn muốn, nó chỉ là đèn nguồn. C1 chỉ để giúp làm cho sức mạnh ổn định hơn một chút. Tôi đã sử dụng 10uF. Sơ đồ này giống nhau đối với các phiên bản sau, chỉ cần hoán đổi các nút nhấn cho các công tắc vải. trong bản sửa đổi cuối cùng, tôi đã thêm các thiết bị chuyển mạch vào PC4 và PC5 hoặc các chân 27 và 28.

Bước 4: Những gì bạn cần Rev 2

Những gì bạn cần Rev 2
Những gì bạn cần Rev 2

Vì vậy, về cơ bản, bạn đang hoán đổi các nút Radio Shack cho các nút vải làm bằng tay. Bạn cần: Nhiều màu vải hoặc một màu nếu bạn muốn mọi nốt nhạc có cùng màu. Bộ phận chần bông của cửa hàng vải gần bạn nhất là nơi tốt nhất để mua loại vải này với giá rẻ. Quilting phần tư là $ 1,50 và bạn có thể nhận được một tấn công tắc từ một. Bạn có thể mua chúng ở hầu hết các cửa hàng vải với giá rẻ. JoAnn có công cụ và 25 cái với giá 2 đô la Bạn sẽ cần một cái búa để làm việc này. Dây, tôi đã sử dụng 22AWG, tôi khuyên bạn nên nhỏ hơn nếu bạn có. Sử dụng để làm cho vải màu và vải dẫn điện dính lại với nhau. Hỏi ở cửa hàng và có thể bạn sẽ mua được ngay tại sân. Điều này có lẽ sẽ hoạt động tốt, mặc dù tôi khuyên bạn nên hỏi ai đó Tôi đề nghị bạn chỉ cần thử một vài cái khác nhau cho đến khi bạn tìm thấy cái nào phù hợp nhất. nhiệt co các dây lại với nhau khi chúng đi qua nhau và chúng sẽ tốt hơn rất nhiều.

Bước 5: Lắp ráp Rev 2

Assembly Rev 2
Assembly Rev 2
Assembly Rev 2
Assembly Rev 2
Assembly Rev 2
Assembly Rev 2

Đặt các tấm vải nhiều màu lên nhau và cắt một hình vuông, nó không cần phải hoàn hảo. Ủi vải để có nếp gấp, xếp chúng chồng lên nhau một lần nữa và đảm bảo tất cả các mép đều khớp với nhau. Cắt bất kỳ cạnh nào không có. Cắt tròn trên và dưới, để các cạnh bên trái và bên phải thẳng. Bạn sẽ đảo ngược công tắc sau khi may, vì vậy đừng làm cho các cạnh tròn quá tròn và để đủ độ cao trên các mặt phẳng để dễ dàng đẩy công tắc qua khi bạn hoàn thành. Xoay tròn mặt phẳng của công tắc đầu tiên và cuối cùng, chuyển sang máy may của bạn và đặt hai trong số các vòng tròn lại với nhau sao cho mặt tốt quay vào nhau và may một đường may trên các phần phẳng. khâu, cắt hình vuông ra khỏi vải dẫn điện và cầu chì một bên. Cắt dây theo chiều dài và dải một đầu. hàn dây xung quanh một trong các khoen. (thuốc hàn có khả năng sẽ không dính vào lỗ xỏ dây) Cắt một khe nhỏ trên vải ở một góc và dùng búa đóng lỗ khoen để gắn vải và dây. tháo mặt sau khỏi quá trình nung chảy và nối vải dẫn điện vào mặt sau của vải màu. Lặp lại cho tất cả các công tắc. Để làm cho mọi thứ dễ dàng hơn, bạn có thể làm nóng ống co rút các dây lại với nhau bất cứ khi nào một dây đi qua dây cho công tắc tiếp theo. Lấy hoặc làm một mảnh vải bằng chiều dài của bộ công tắc và cắt một dải vải dẫn điện bằng chiều dài của nó. Không giống như các công tắc màu, đây là một mảnh dài. Đây sẽ là những gì các nút chạm vào để tạo kết nối. Cắt một khe nhỏ và gắn một chiếc dây vào nó bằng một cái khoen, giống như những chiếc công tắc màu ở trên. Nối nó vào mặt sau của phần vải dưới cùng, kéo phần trên và phần dưới cùng với phần vải dẫn điện hướng ra ngoài, dùng một chiếc que dài để đảo ngược bộ vải sau khi đã may xong. Cắt một vài lỗ nhỏ trên tấm vải, tôi dùng một chiếc đũa để lấy một vòng tròn sau đó chỉ cần lấy đũa ra và cắt. Cắt chúng theo hình dạng và lắp chúng vào công tắc. Đây là yếu tố giúp giữ cho lớp vải dẫn điện được tách biệt, có thể dễ dàng hơn việc chèn miếng đệm trong khi bạn đang đảo các công tắc thay vì sau đó. Những thứ tôi đã sử dụng bị rách khá tệ trong khi tôi đang lắp nó và tôi phải đánh các cách đánh bóng khác nhau. Cuối cùng, móc dây vào bảng mục tiêu và bạn đã sẵn sàng. Dải dài dưới cùng sẽ được mài.

Bước 6: Những gì bạn cần Rev 3

Những gì bạn cần Rev 3
Những gì bạn cần Rev 3

Trong Rev 3, tôi đã làm cho các công tắc độc lập với hệ thống dây điện. Điều này đã tiết kiệm rất nhiều thời gian. Tôi cũng thích giao diện của kết quả hoàn thiện hơn rất nhiều Vì vậy, đây là các phần mới bạn cần: Snaps, Just get them from JoAnn's. Họ đi kèm với một công cụ cài đặt không tồi với giá 7 đô la. Chỉ may sẽ là một giải pháp thay thế tốt, mặc dù chúng mất nhiều thời gian hơn để bám dính. Tôi phải chạy thật chậm trong máy của mình nếu không sợi chỉ sẽ bị đứt. Số dặm của bạn có thể thay đổi

Bước 7: Lắp ráp Rev 3

Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3

Bản sửa đổi này tốt hơn rất nhiều so với lần cuối cùng về thời gian cho đến khi được xây dựng. Thêm vào đó, việc có các công tắc có thể tháo rời đã giúp tôi tỉnh táo hơn một lần. Nó chỉ là một phần tư chần bông được gấp lại một nửa. Lót một lớp vải bạt lên trên và khâu lại, chừa một lỗ để úp. Đẩy vật này qua lỗ và về cơ bản bạn đã có một thứ kiểu gối. Tôi đã chần bông nó để dễ làm việc hơn. Sử dụng chỉ trơn và đai ốc. Tôi đã làm kim cương trên cái này, nhưng có thể lần sau tôi sẽ đặt lại một con rồng, hoặc một cái gì đó tuyệt vời. Tôi thích thiết kế này vì về cơ bản bạn có thể tạo ra rất nhiều thứ này trước thời hạn và chỉ cần sử dụng những gì bạn muốn. bắt đầu bằng cách sử dụng một mảnh bìa cứng, giấy hoặc vải vụn và cắt một hình quả lê từ đó. Sử dụng nó làm hướng dẫn để cắt một phần trên và dưới cho mỗi công tắc. Tôi cắt một màu cho mỗi phần dưới và một màu khác cho phần trên, nhưng bạn có thể sáng tạo và làm những gì bạn muốn. Kéo dài "cây gậy" để nó có thể quấn qua mép của "quả lê". Cắt hình dạng ra khỏi vải nung chảy và dẫn điện và nung chảy một mặt của vải dẫn điện. Tháo lớp nền khỏi vật liệu nung chảy và nung nó vào phần trên của vải sẽ ở dưới cùng và dưới cùng của vải sẽ ở trên. Quấn phần thừa xung quanh đầu. Đi đến máy may của bạn và đặt tấm vải có lỗ giữa vải trên và dưới. May bên ngoài vải dẫn điện và bỏ qua phần "dính" của công tắc. Tôi thấy rằng có thể may phần vải dẫn điện phía trên xuống phía dưới để tạo ra một đoạn ngắn. Tốt hơn là không nên may qua vải dẫn điện. Đính kèm snaps và chuyển đổi là xong. Tôi thấy việc sử dụng snap nam cho tất cả các kết nối dưới cùng / GND và snap nữ cho tất cả các kết nối dễ dàng hơn. Điều này làm cho tất cả các công tắc có thể hoán đổi cho nhau. Mạch: Vấn đề về việc cắt các vòng là bạn có rất nhiều bit thừa. Tôi lấy những mảnh vụn của mình, ghép những mảnh vải lớn nung chảy thành những mảnh vải dẫn điện lớn và dùng những mảnh vải đó để cắt ra những hình chữ nhật nhỏ hơn mà tôi dùng làm miếng đệm. Sắp xếp sơ bộ các công tắc của bạn và gắn các miếng đệm vào đế có đủ chỗ để khâu một đường vào chúng và có một cái chụp. Chân của chiếc máy may mà tôi đã sử dụng không thực sự gần gũi với cái chụp nhanh, vì vậy hãy ghi nhớ điều đó và dành cho mình một khoảng trống. Vì tôi có chỉ dẫn điện có thể đi vào máy may của mình nên tôi chỉ khâu một đường từ tấm lót này sang tấm lót khác và trở lại. Tôi phải đi chậm nếu không sợi chỉ sẽ đứt, nhưng nó nhanh hơn khâu tay cả tấn. Ngoài ra với chỉ dẫn điện trên suốt chỉ và kim, tôi đã có một kết nối chắc chắn thực sự tốt. Mọi thứ trở nên điên cuồng, nhưng một chút keo thủ công hoặc Elmers sẽ xóa sạch điều đó ngay lập tức. Cố gắng giữ các đường dây cách xa nhau và bạn sẽ không gặp bất kỳ vấn đề gì. Lắp ráp cuối cùng: Gắn vào tất cả các thiết bị chuyển mạch của bạn, kết nối bảng, tải mã và bạn đã hoàn tất. Tôi sử dụng dây để đi từ bảng đến miếng đệm và sau đó chỉ khâu dây vào đế bằng tay. Đối với phiên bản tiếp theo, tôi sẽ gắn bảng trong một hộp nhựa có gài để gắn vào đế để các ngón tay nhàn rỗi không kéo nó ra.

Bước 8: Mã

Mã số
Mã số

Nếu bạn chưa bao giờ lập trình chip trước đây, đây là một nhiệm vụ hơi khó khăn. Việc các công cụ bị bong tróc cũng không có ích gì và hầu hết thời gian bạn phải thực hiện cùng một thao tác nhiều lần. Hai tài nguyên tốt nhất mà tôi tìm thấy để hiểu những gì đang xảy ra là trang dành cho USBtinyISP, https://www.ladyada.net/make/usbtinyisp/ và khóa học về lập trình đồ chơi tiếng ồn, http: / /blog.makezine.com/archive/2008/05/noise_toy_crashcourse_in.html Những thứ này có thể giúp bạn bắt đầu.

Rất nhiều người thích Arduino vì mã hóa này và không có gì sai khi sử dụng nó, ngoại trừ tôi cảm thấy nó bổ sung rất nhiều thứ cho một chương trình bình thường đơn giản. Ngoài ra, tôi biết C và không biết Arduino. Có lẽ một ngày nào đó, nếu có thời gian.:) Mã: {{{#include // Dùng ghim để bật SPK /// Typedefs ////////// typedef unsigned char u8; int main (void) {u8 btnState0; u8 btnState1; u8 btnState2; u8 btnState3; u8 btnState4; u8 btnState5; u8 btnState6; DDRB = (1 << DDB6); // Đặt SPK cho đầu ra PORTD = (1 << PD0) | (1 << PD1) | (1 << PD2) | (1 << PĐ3) | (1 << PD4); // Đặt Nút Cao PORTC = (1 << PC4) | (1 << PC6); TCCR2B = (1 << CS21); // Thiết lập bộ hẹn giờ while (1) {btnState0 = ~ PINC & (1 << PC5); btnState1 = ~ PINC & (1 << PC4); btnState2 = ~ PIND & (1 << PD0); btnState3 = ~ PIND & (1 << PD1); btnState4 = ~ PIND & (1 << PD2); btnState5 = ~ PIND & (1 << PD3); btnState6 = ~ PIND & (1 << PD4); if (btnState0) {if (TCNT2> = 190) {PORTB ^ = (1 << PD6); // Lật SPK Pin TCNT2 = 0; }} if (btnState1) {if (TCNT2> = 179) {PORTB ^ = (1 << PD6); // Lật SPK Pin TCNT2 = 0; }} if (btnState2) {if (TCNT2> = 159) {PORTB ^ = (1 << PD6); // Lật SPK Pin TCNT2 = 0; }} if (btnState3) {if (TCNT2> = 142) {PORTB ^ = (1 << PD6); // Lật SPK Pin TCNT2 = 0; }} if (btnState4) {if (TCNT2> = 126) {PORTB ^ = (1 << PD6); // Lật SPK Pin TCNT2 = 0; }} if (btnState5) {if (TCNT2> = 119) {PORTB ^ = (1 << PD6); // Lật SPK Pin TCNT2 = 0; }} if (btnState6) {if (TCNT2> = 106) {PORTB ^ = (1 << PD6); // Lật SPK Pin TCNT2 = 0; }}}}}}} Các cao độ đến từ đâu? Một chút toán học là cần thiết. Đồng hồ hẹn giờ trên atmega 168 chạy ở tốc độ 1MHz. Đó là quá nhanh đối với âm thanh, vì vậy chúng tôi phải sử dụng bộ định mức / 8. Sau đó, vì chúng ta cần lật chân đầu ra lên cao rồi xuống thấp để tạo ra 1 chu kỳ, chúng ta cần chia câu trả lời cho 2 để đưa ra cao độ phù hợp. Công thức trông như thế này, Pitch để đặt trong mã = (1000000/8) / (Tần suất mục tiêu * 2) Đối với A (440), giá trị này sẽ là 125000/880 = 142.045 hoặc 142 cho mục đích của chúng tôi, vì giá trị phải là số nguyên. Tần số mục tiêu của các ghi chú có thể được tìm thấy ở bất kỳ đâu trên mạng và nói chung là tất cả đều giống nhau. Tôi vẫn muốn thêm một câu lệnh viết hoa thay vì sử dụng một loạt các If và sử dụng PWM để kiểm soát tốt hơn âm lượng và cao độ của người nói, nhưng hiện tại, điều này đã hoạt động.

Đề xuất: