Tôi viết loạt bài này chủ yếu cho bản thân mình hoặc ít nhất là cho ai đó đang cố gắng tạo ra thứ gì đó điện tử để bán. Nếu đó là bạn, thì tôi hy vọng điều này sẽ giúp ích cho bạn trên hành trình của mình! Nếu bạn chỉ muốn xem sản phẩm cuối cùng thì bạn có thể tìm thấy nó tại https://hortus.dev/products/social-battery .
Đây là một bài viết dài nên tôi đã chia nó thành nhiều phần để dễ hiểu hơn một chút. Đó là:
Tôi muốn thử nghiệm dịch vụ lắp ráp của JLC PCB - trong khi tôi đã thiết kế và sản xuất PCB trần trước khi đặt và hàn các bộ phận theo cách thủ công, tôi đã nghĩ đến một số dự án trong tương lai sẽ không thực tế nếu hàn bằng tay do cả số lượng và kích thước của các thành phần.
Thật đáng ngạc nhiên là dịch vụ này lại rẻ đến mức nào khi bạn nghĩ về những gì liên quan, nhưng nó vẫn đủ đắt để bạn có thể hơi nản lòng khi giao tiền của mình và sau đó chờ xem liệu bạn có phạm sai lầm nào sẽ làm hỏng công việc không. kết quả cuối cùng.
Tôi nghĩ mình sẽ bắt đầu với thứ gì đó đơn giản, thứ gì đó mà tôi có thể thử nghiệm không chỉ lĩnh vực lắp ráp PCB mà còn cả thương mại điện tử. Kế hoạch của tôi là nghĩ ra một mặt hàng nhỏ mà tôi có thể thiết kế và gửi đi sản xuất một cách thực tế trong vòng chưa đầy một ngày, sau đó hy vọng sẽ bán được một cách hợp lý dễ dàng trên một thị trường như Etsy.
Tôi đã mong đợi khía cạnh thiết kế và sản xuất của mọi thứ sẽ là phần khó khăn và việc liệt kê sản phẩm trên Etsy sẽ trở nên dễ dàng, nhưng mọi chuyện lại hoàn toàn ngược lại, bạn sẽ thấy nếu tiếp tục đọc!
Tôi đã quét nhanh Etsy để xem những mặt hàng mà mọi người đang bán thành công mà tôi có thể làm. Tôi đã tìm thấy một số ví dụ về cách mọi người làm huy hiệu ghim điện tử - một dự án hoàn hảo! Chúng chủ yếu bao gồm các đèn LED có kiểu nhấp nháy ngẫu nhiên hoặc được cài đặt sẵn trên một bảng có hình dạng mới lạ.
Đối với tôi, những thứ này có vẻ ổn, nhưng tôi muốn thử thứ gì đó tương tác và có ý nghĩa hơn một chút để tôi có thể bán đủ tiền để kiếm được lợi nhuận hợp lý trên một số lượng nhỏ đơn vị ban đầu.
Nhìn vào các huy hiệu ghim thông thường được bán trên Etsy, tôi thấy một loạt ghim 'Social Battery' tráng men có đèn báo trượt. Những điều này ngay lập tức khiến tôi chú ý như một điều gì đó mà a) tôi có thể nhận ra về mặt cá nhân (mọi người không ngừng nói đùa về pin xã hội của tôi…), b) sẽ thực sự thú vị khi là một phiên bản điện tử và c) sẽ dễ thiết kế - chỉ là một vài đèn LED, một công tắc và một bộ vi điều khiển để kết nối tất cả lại với nhau!
Tự tin vào kỹ năng của mình, tôi đã soạn ra một sơ đồ mạch nhanh trong Kicad. Tôi quyết định sử dụng ATtiny13A - chủ yếu là vì tôi đã có sẵn một vài chiếc từ dự án trước đó và vì tôi có khá nhiều kinh nghiệm với các con chip tương tự.
Nếu bạn chưa quen với nó thì ATtiny13A là bộ vi xử lý 8 bit nhỏ với 6 chân IO và là một phần của dòng MCU AVR. Nó tương tự như các chip ATmega trước đây là cốt lõi của hầu hết Arduinos, ngoại trừ khả năng của nó bị hạn chế hơn nhiều.
Lợi ích là dòng chip ATtiny nhỏ hơn và rẻ hơn, vì vậy nếu bạn không cần nhiều bộ nhớ hoặc thiết bị ngoại vi thì chúng rất tuyệt! (mặc dù hiện tại có thể hơi lỗi thời với vô số loại chip ARM hiện có).
Tôi đã bố trí PCB cho mạch của mình trong KiCad, sau đó yêu cầu nó nhổ các tập tin gerbers và khoan (được sử dụng để sản xuất PCB), cũng như danh sách vật liệu và tập tin vị trí (được sử dụng để lắp ráp các thành phần lên PCB) . Tôi đã gửi chúng cho JLC PCB để xem liệu họ có thể xử lý chúng một cách chính xác hay không.
BoM và các tệp vị trí cần chỉnh sửa một chút so với mặc định để có được chúng ở định dạng phù hợp (hóa ra tôi đã làm điều này một cách khó khăn và có một plugin dễ dàng hơn nhiều cho KiCad có thể thực hiện mọi thứ một cách hoàn hảo chỉ bằng một cú nhấp chuột).
JLC PCB duy trì một thư viện linh kiện khá lớn mà họ lưu giữ trong kho cho các đơn đặt hàng lắp ráp. Tuy nhiên, trong trường hợp của tôi, ATtiny13a không có sẵn nên tôi phải đặt hàng. Việc này khá đơn giản khi sử dụng dịch vụ tìm nguồn cung ứng toàn cầu của họ. Tôi đã có thể tìm được nhà cung cấp với mức giá tốt nhất cho số lượng tôi cần và sau đó để JLC PCB thay mặt tôi đặt hàng đến kho của họ.
Trong khi chờ đợi, tôi nghĩ rằng mình cũng có thể điều chỉnh thiết kế của mình và bắt đầu làm việc với mã, và tôi rất vui vì đã làm như vậy vì ngay lập tức tôi đã phát hiện ra một vấn đề! Thiết kế của tôi sử dụng năm chân IO có sẵn trên ATtiny13a để điều khiển trực tiếp các đèn LED (với chân thứ sáu được sử dụng để giám sát nút).
Điều mà tôi đã không nhận ra/nhớ từ lần cuối cùng tôi mắc lỗi này (vâng, nó đã từng xảy ra trước đây), đó là một trong những IO đó cũng là mã pin đặt lại. Bạn có thể sử dụng nó, nhưng nó không thể cung cấp nhiều dòng điện và bằng cách buộc nó xuống đất thông qua một đèn LED, tôi đã giữ con chip ở trạng thái thiết lập lại vĩnh viễn.
Một cách để giải quyết vấn đề này là đốt một cầu chì trên chip để vô hiệu hóa vĩnh viễn chức năng thiết lập lại của chân biến nó thành IO thông thường. Tuy nhiên, vấn đề với điều này là bạn chỉ có thể lập trình chip một lần (trừ khi bạn sở hữu một lập trình viên điện áp cao, điều mà tôi không có) và với xu hướng học mọi thứ một cách khó khăn của tôi, điều đó dường như khá lãng phí!
Tùy chọn khác là tìm cách làm được nhiều việc hơn với ít chân hơn để có thể giữ nguyên chân đặt lại. Điều này có thể đạt được bằng cách sử dụng một kỹ thuật gọi là charlieplexing , cho phép bạn xử lý nhiều đèn LED hơn số lượng chân có sẵn.
Sau đó, bạn có thể quét qua các đèn LED này, bật và tắt chúng riêng lẻ ở tốc độ cao để làm cho nó trông như thể nhiều đèn LED đang bật cùng lúc thông qua khả năng hiển thị liên tục .
Trong trường hợp của tôi, tôi đang điều khiển bốn đèn LED màu xanh lá cây từ 3 chân và đèn LED màu đỏ có một chân chuyên dụng. Đây không phải là ví dụ hiệu quả nhất về charlieplexing, vì tôi có thể điều khiển tất cả các đèn LED từ ba chân, nhưng việc giữ màu đỏ trên một chân chuyên dụng cho phép mã đơn giản hơn khi lập trình.
Tôi đã sửa lại sơ đồ mạch và thiết kế PCB của mình, sau đó xuất lại các tệp cần thiết và gửi chúng đến JLC PCB để sản xuất và lắp ráp bộ năm nguyên mẫu ban đầu.
Hơn một tuần sau, tôi nhận được nguyên mẫu của mình và tôi thực sự hài lòng với chúng! Có một số điều tôi thấy mình cần phải thay đổi:
Tôi thực sự chưa lên kế hoạch lập trình bảng mạch như thế nào. Tôi vừa phá vỡ các chân lập trình AVR và hy vọng điều tốt nhất. Điều này phù hợp với năm nguyên mẫu vì tôi có thể gắn các dây lập trình bằng một mối hàn nhỏ nhất, nhưng điều này sẽ rất nhanh chóng trở nên tẻ nhạt trên quy mô lớn.
Mũi nhọn của dây buộc ở mặt sau được hàn vào một tấm đệm nền. Điều này sẽ ổn nếu ngoại trừ khối lượng nhiệt của mũi nhọn và mặt phẳng nền trên bảng khiến việc kết nối tốt trở nên khó khăn. Nó cũng nhô ra rất gần với lồng kim loại dương của ngăn chứa pin, điều đó có nghĩa là rất có thể xảy ra hiện tượng đoản mạch nếu mọi người đặt/gắn huy hiệu lên/vào các bề mặt dẫn điện.
Điểm tiếp xúc âm của pin không đủ nổi bật nên tôi phải thêm một miếng hàn vào pin để tạo kết nối tốt. Một lần nữa - không phải là ngày tận thế đối với một số lượng nhỏ nguyên mẫu, mà là thật khó khăn nếu tôi phải làm điều này với số lượng lớn.
Đây đều là những cách khắc phục đơn giản để thực hiện. Tôi đã thêm một tiêu đề lập trình thích hợp có thể được sử dụng với khuôn ghim pogo để lập trình nhanh chóng và có thể lặp lại.
Tôi ngắt kết nối cành khỏi mặt phẳng mặt đất để nó trở thành hòn đảo đồng nhỏ bị ngắt kết nối của riêng nó, dễ nóng lên hơn và không gây đoản mạch.
Và tôi đã mở rộng tiếp điểm âm cho pin để nó có nhiều diện tích bề mặt hơn nhằm tạo ra kết nối chắc chắn.
Mã này khá đơn giản. Tôi theo dõi chế độ mà huy hiệu được biểu thị bằng một số nguyên được giảm dần mỗi lần nhấn nút. Sau đó, tôi lặp lại và nhấp nháy từng đèn LED trên đường đi theo quy định của chế độ. Khi về chế độ 0 thì mình reset về số ban đầu rồi đưa ATtiny vào chế độ ngủ.
Nhấn nút lần nữa sẽ kích hoạt ngắt, đánh thức chip và bắt đầu lại toàn bộ quá trình.
Nhìn chung, tôi thực sự hài lòng với kết quả đạt được, điều đó có nghĩa là đã đến lúc xem liệu tôi có thể bán chúng hay không!
Bạn có thể đọc về trải nghiệm của tôi khi thực hiện việc này trong bài viết tiếp theo trong loạt bài này .