Mục lục:

Eve, Arduino Chatbot: 14 bước (có hình ảnh)
Eve, Arduino Chatbot: 14 bước (có hình ảnh)

Video: Eve, Arduino Chatbot: 14 bước (có hình ảnh)

Video: Eve, Arduino Chatbot: 14 bước (có hình ảnh)
Video: Viết chương trình Arduino với trí thông minh nhân tạo ChatGPT - Lập trình chưa bao giờ dể dàng hơn 2024, Tháng mười một
Anonim
Image
Image
Eve, trò chuyện Arduino
Eve, trò chuyện Arduino
Eve, trò chuyện Arduino
Eve, trò chuyện Arduino

Xin chào các DIYrs, đã có trường hợp nào bạn thực sự muốn chia sẻ cảm xúc của mình với ai đó mà không có ai đáng tin cậy ở bên cạnh không? Trong thế giới bận rộn ngày nay, đây là một ví dụ phổ biến. Chà, một chatbot có thể giúp bạn cảm thấy dễ chịu hơn. Và điều đó dẫn đến sự ra đời của Eve. Eve là một chatbot nhỏ dễ thương. Như mọi người đã biết, chatterbot hay chatbot là một chương trình máy tính hoặc thiết bị thực hiện một cuộc trò chuyện với con người dựa trên các phương pháp văn bản hoặc thính giác. Những giọng nói tự động mà bạn nghe thấy trong cuộc gọi dịch vụ khách hàng hoặc trên đường dây ngân hàng là một ví dụ về chatbot. Với cô ấy, Bạn có thể chia sẻ kinh nghiệm, cảm xúc của mình và quan trọng nhất là tranh luận về những điều khác nhau; cô ấy có nhiều kinh nghiệm về nó. Bởi vì đó là chức năng quan trọng nhất của một chatbot, hãy làm cho người đó cảm thấy vui vẻ. Một ví dụ ban đầu về Xử lý ngôn ngữ tự nhiên (NLU) và trí tuệ nhân tạo, Eve có khả năng trả lời BẤT KỲ câu hỏi nào bạn hỏi cô ấy. Không phải là Cô ấy có thể trả lời một số câu hỏi cụ thể. Cô ấy có thể hát, kể cho bạn nghe những câu chuyện cười, câu chuyện và làm bất cứ điều gì khiến bạn cảm thấy hài lòng. Cô ấy thậm chí còn biết rằng cô ấy không nên lặp lại những câu trả lời và cuộc trò chuyện giống nhau, để cuộc trò chuyện không trở nên nhàm chán. Hơn nữa, đôi mắt LCD mà cô ấy sở hữu cho thấy cô ấy cảm thấy như thế nào khi bạn nói bất cứ điều gì. phần lập trình. Nhìn nhiều không? Đừng lo lắng, nó sẽ khá thú vị trong cuộc hành trình. Bạn có thể xem bản demo của robot ở trên hoặc trong liên kết này: [Phát video]

Bước 1: Định nghĩa Chatbot

Định nghĩa về một Chatbot
Định nghĩa về một Chatbot
Định nghĩa về một Chatbot
Định nghĩa về một Chatbot
Định nghĩa về một Chatbot
Định nghĩa về một Chatbot

Như đã đề cập ở trên, chatbot là một chương trình thực hiện một cuộc trò chuyện với con người. Ngày nay chúng rất phổ biến nên hầu như không có ai là không biết về nó. Bắt đầu từ trợ lý ảo, Siri và Google Assistant, có Mitsuku và Evie để bạn có thể chia sẻ cảm xúc của mình. Như đã đề cập ở trên, chatbot dựa trên phương pháp văn bản hoặc thính giác và do đó có thể được chia thành hai. Trong phương pháp văn bản, các cuộc trò chuyện ở dạng văn bản giống như WhatsApp. Trong khi ở phương pháp thính giác, các cuộc trò chuyện được thực hiện bằng miệng như với một con người thực. Tôi đoán sẽ thú vị hơn khi trò chuyện với ai đó bằng cách nói chuyện bằng lời nói với anh ta thay vì chỉ nhắn tin cho anh ta. Không nghi ngờ gì nữa, các ứng dụng nhắn tin liên lạc bằng văn bản đáp ứng được yêu cầu của mọi người, nhưng tôi cảm thấy rằng trò chuyện bằng cách nói là cách tốt nhất để loại bỏ rối loạn cảm xúc và giúp bạn cảm thấy tốt hơn. Vì vậy, đó là lý do chính tôi thiết kế Eve trở thành một chatbot thính giác.

Bước 2: Nguồn gốc của đêm giao thừa

Nguồn gốc của Eve
Nguồn gốc của Eve

Một ngày nọ, đêm giao thừa xuất hiện trong tâm trí tôi. Nó đã làm như vậy khi tôi thấy một đứa trẻ đi lang thang trong trường một mình, trong khi những đứa khác đang chơi với tâm trí tràn đầy niềm vui. Lần đó tôi nghĩ về một người bạn, người không phân biệt đối xử và không khiến ai cảm thấy tổn thương, một người bạn có thể chia sẻ cảm xúc và hạnh phúc mọi lúc. Sau đó, hiện lên trong tâm trí tôi, cấu trúc nhỏ dễ thương của Eve mà tôi bắt tay vào thực hiện. Eve làm tôi thất vọng cả trăm lần. Tôi đoán đó là lần thứ 101 cô ấy làm việc và khiến tôi cảm thấy thực sự hạnh phúc. Vì vậy, đó là nguồn gốc của Eve. Tôi muốn cô ấy phải thông minh nhưng càng đơn giản càng tốt, để bất cứ ai cũng có thể làm cô ấy dễ dàng. Không nghi ngờ gì khi cô ấy không hoàn toàn thông minh và đôi khi nói những câu trả lời ngu ngốc, cô ấy có thể cư xử như một người bạn. Và bây giờ, đủ câu chuyện, chúng ta hãy bắt đầu xây dựng đêm giao thừa.

Bước 3: Thu thập các thành phần và thiết bị:

Thu thập các thành phần và thiết bị
Thu thập các thành phần và thiết bị
Thu thập các thành phần và thiết bị
Thu thập các thành phần và thiết bị
Thu thập các thành phần và thiết bị
Thu thập các thành phần và thiết bị

Sau đây là các thành phần cần tập hợp: Mô-đun âm thanh Arduino Pro Mini (Hoặc Arduino Nano) Wtv-020-SD-16p Mô-đun bluetooth HC-05 Mô-đun LCD 16x2 Mô-đun điều chỉnh ICAn LM7805 Mô-đun khuếch đại ICAn (Tôi sử dụng mạch PAM8403) Một loa 8 ohm Một cái pin jacka âm thanh 9v Và điện thoại Android Vì vậy, đây là những thành phần bắt buộc. Một điều quan trọng khác, chi phí. Eve tiêu tốn của tôi khoảng 3000 INR. Chi phí có thể khác nhau ở quốc gia của bạn nhưng ở Ấn Độ, tỷ lệ này xấp xỉ. Mô tả một chút về các bộ phận: Arduino Pro mini là MCU chính trong robot của chúng tôi. Tôi đã sử dụng nó vì kích thước nhỏ, đơn giản và hiệu suất tuyệt vời. Nó đáp ứng tất cả các yêu cầu trong robot của chúng tôi. Ngoại trừ chức năng nhận dạng giọng nói được thực hiện bởi Android (sẽ thảo luận ở phần sau), mọi chức năng khác bắt đầu từ việc tìm từ khóa và hình thành kết quả đều được thực hiện trên chính Pro Mini. Đừng lo lắng về các thuật ngữ được đề cập ở trên nếu bạn không hiểu nó, tất cả sẽ được thảo luận ở phần sau. những cảm xúc. Chúng tôi cần giắc cắm âm thanh cái để cung cấp kết nối robot với bộ khuếch đại bên ngoài. Arduino được sử dụng làm bộ điều khiển chính ở đây. Nó nhận dữ liệu Bluetooth thông qua mô-đun Bluetooth HC 05 và phát tệp qua mô-đun thoại WTV-020-SD-16p. Cảm xúc được hiển thị trong mô-đun LCD và pin 9v cho nguồn điện. Eve nhận dạng các bài phát biểu thông qua nhận dạng Google Voice của thiết bị Android. Sau đó, nó sẽ được thảo luận đúng cách ở bước tương ứng. Điều đó có nghĩa là nó đã được Arduino chính thức ngừng sản xuất. Nhưng bạn vẫn có thể tìm thấy nó ở nhiều trang bao gồm cả Ebay. Nhiều nhà sản xuất bên thứ ba vẫn có thể sản xuất và bán bảng. Đừng lo lắng nếu bạn không thể tìm thấy một cái, bạn có thể sử dụng Arduino Nano. Nó sẽ không tạo ra sự khác biệt về hiệu suất và cả về kích thước.

Bước 4: Lý thuyết Phần 1: Lịch sử và Giới thiệu

Lý thuyết Phần 1: Lịch sử và Giới thiệu
Lý thuyết Phần 1: Lịch sử và Giới thiệu
Lý thuyết Phần 1: Lịch sử và Giới thiệu
Lý thuyết Phần 1: Lịch sử và Giới thiệu

Eve dựa trên một hình thức sơ khai của Xử lý ngôn ngữ tự nhiên, công nghệ "đối sánh mẫu". Nó hoạt động theo cách sau đây khi một chuỗi được nhận, nó sẽ tìm kiếm một từ hoặc cụm từ được xác định trước trong chuỗi đó. Giả sử trong câu hỏi "bạn bao nhiêu tuổi?" Chương trình tìm kiếm từ "old". Nếu thành công thì nó sẽ phát tệp thoại tương ứng thông qua mô-đun wtv020sd. Nếu không thành công thì nó sẽ tìm kiếm từ khóa được xác định trước tiếp theo, giống như điều này, chúng ta cần xây dựng vốn từ vựng về các từ được xác định trước. Có vẻ khó khăn, phải không? Dường như chúng ta cần xây dựng vốn từ vựng về tất cả các từ tiếng Anh và có khoảng 230 nghìn từ tổng thể trong ngôn ngữ tiếng Anh. Thực tế là chúng ta chỉ cần thêm một vài từ cơ bản thường dùng trong giao tiếp của mình. Vẫn có vẻ khó khăn? Đừng lo lắng, công việc đã được thực hiện bởi Joseph Wizembaum. Một phần câu trả lời của Eve và các từ khóa xác định trước đã được kết hợp từ chương trình chatterbot đầu tiên có tên là Eliza, được phát triển bởi Joseph Wizembaum (hình trên). Eliza được thiết kế để trở thành một nhà trị liệu người Rogeria. Không phải là một thuật ngữ mang tính khoa học cao, nó có nghĩa là cô ấy dùng để khuyên mọi người, khiến họ hiểu mình hơn và suy nghĩ tích cực hơn. Trông rất ổn phải không? Và Eliza đã thực hiện rất tốt nhiệm vụ của mình. Thái độ tò mò và đa nghi của cô được mọi người yêu mến. Ngay cả Wizembaum cũng ngạc nhiên trước tầm quan trọng mà mọi người dành cho Eliza. Họ dường như quên mất rằng họ đang nói chuyện với máy tính, và tưởng tượng ra một phụ nữ xinh đẹp đang ngồi bên trong máy tính trò chuyện với họ. nó đã sớm được nhận ra. Theo thời gian, mọi người bắt đầu cảm thấy nhàm chán với khả năng giao tiếp hạn chế của cô ấy và cô ấy bị gọi là "câm". Sau khi thành lập cơ sở của Chatterbots, các bot khác nhau với công nghệ mới và tốt hơn đã xuất hiện trên thị trường. Và bây giờ chúng tôi có chúng ở khắp mọi nơi Như đã đề cập, một phần phản hồi của Eve bắt nguồn từ ELIZA. Vì vậy, điều đó có nghĩa là ngay cả Eve cũng sẽ có thái độ của Eliza ở một mức độ nào đó cùng với một số ý tưởng của riêng tôi. Một điều quan trọng khác là các câu trả lời. Sẽ thực sự nhàm chán khi nhận được những câu trả lời giống nhau mỗi khi bạn hỏi cùng một câu hỏi. Trước khi nhiều câu trả lời được lưu trữ cho cùng một từ khóa. Eve chọn ngẫu nhiên tệp nào để phát, cũng đảm bảo rằng cô ấy không lặp lại tệp đó. Vậy đó, bánh mì và bơ đơn giản, nhưng điều quan trọng là phải khéo léo lập trình giọng nói phản hồi, để tạo ra ảo giác cho người xem như thể cô ấy đang thực sự trả lời câu hỏi của chúng ta. Trong bước tiếp theo, chúng ta sẽ trình bày chi tiết và lập trình điều này.

Bước 5: Tìm kiếm từ khóa

Tìm kiếm từ khóa
Tìm kiếm từ khóa
Tìm kiếm từ khóa
Tìm kiếm từ khóa
Tìm kiếm từ khóa
Tìm kiếm từ khóa
Tìm kiếm từ khóa
Tìm kiếm từ khóa

Trong bước cuối cùng, tôi đã đề cập đến công nghệ khớp mẫu của Eve và cũng là hình thức sơ khai của Xử lý ngôn ngữ tự nhiên. Vậy nó là gì và nó hoạt động như thế nào? Đó là điều chính mà chúng ta sẽ thảo luận trong bước này. Vì vậy, hãy nghĩ về nó, ai đó hỏi tên của bạn và bạn cần phải cho biết đó là gì. Chúng ta có thể hỏi cùng một câu hỏi bằng bao nhiêu cách? Giáo viên của bạn có thể hỏi "bạn vui lòng cho tôi biết tên của bạn?" Một người thân có thể hỏi, "tên bạn là gì?" Anh trai của bạn có thể nói, "Này, tôi vừa quên tên của bạn. Bạn sẽ nói nó một lần nữa được không?" Vì vậy, điều đó có nghĩa là cùng một câu hỏi có thể được hỏi theo nhiều cách. Tuy nhiên, chúng ta cần phải đưa ra cùng một câu trả lời, tên của chúng ta. Vì vậy, điều đó có nghĩa là chúng ta cần phải tìm một cái gì đó chung trong tất cả các câu. Rõ ràng là từ "your name" có mặt trong tất cả các câu. Vì vậy, đó là gợi ý của chúng tôi. Đối với tất cả các câu hỏi yêu cầu tên, chúng tôi cần tìm kiếm cụm từ "tên của bạn". Bằng cách làm theo mẫu cơ bản này, chúng ta có thể dự đoán câu trả lời tương ứng cho tất cả các chuỗi đầu vào. Giả sử ai đó nói, "Tôi đã tìm thấy tên của bạn trong danh sách chờ. Tôi mong bạn sẽ ngồi ở ghế đã đặt trước.". Bây giờ vì "tên của bạn" có trong chuỗi này, Eve, ngây thơ sẽ nói tên của cô ấy cho người đó… Ngu đúng không? Đây là một trong những điểm yếu lớn của thuật toán cơ bản này. Dù sao, đây sẽ là những trường hợp hiếm hoi. Nếu không thì thuật toán rất hiệu quả. Bây giờ tôi đã đề cập đến công nghệ đối sánh mẫu, đã đến lúc suy nghĩ xem chuỗi nhập này đến từ đâu mà chúng ta tìm kiếm chuỗi. Ứng dụng được sử dụng ở đây sẽ chuyển giọng nói của chúng ta thành văn bản và sau đó gửi điều tương tự đến arduino thông qua Bluetooth. Tôi đã sử dụng ứng dụng vì nó là ứng dụng đơn giản nhất và tốt nhất. Tên là AMR Voice và có thể dễ dàng tìm thấy trong Google play.

Bước 6: Xây dựng câu trả lời

Xây dựng câu trả lời
Xây dựng câu trả lời

Bây giờ chúng ta đã nhận ra các câu hỏi, bước tiếp theo là tìm câu trả lời. Có một phần thú vị và quan trọng… Chúng ta cần tìm câu trả lời thích hợp để đáp ứng mọi câu hỏi. Và đây là một chức năng khác được tích hợp từ ELIZA. Wizembaum đã phát triển một số câu trả lời cho một số từ khóa cụ thể. Một ví dụ là từ khóa "bạn". Bất cứ khi nào nó được phát hiện đầu ra chương trình "chúng tôi đang thảo luận về bạn - không phải tôi." Do đó, câu trả lời được tạo theo cách phù hợp với tất cả các câu có chứa "bạn". Hơn nữa, mỗi lần Eliza lại đưa ra một câu trả lời khác nhau. Có một loại địa chỉ số cho mỗi câu trả lời. Điều này được tăng lên (thêm 1) mỗi khi một câu trả lời được xây dựng. Giả sử như trong ví dụ trên, nếu địa chỉ của câu trả lời là 1, địa chỉ đó đã được thay đổi thành 2 và do đó tệp 2 được phát tiếp theo. Bạn sẽ thấy sau một số lần sử dụng phần mềm liên tục, các câu trả lời đã trở nên có thể đoán trước được. Bạn đã biết câu trả lời nào sẽ được đưa ra tiếp theo. Vì vậy, cho mục đích này, chúng tôi sẽ tạo ra các địa chỉ ngẫu nhiên cho mỗi từ khóa. Nhìn chung, nó giống nhau trong cả hai trường hợp, chỉ khác là chúng ta không thể đoán được robot sẽ nói gì tiếp theo cho cùng một từ khóa.

Bước 7: Các tuyên bố bị cấm và những điều khác

Các tuyên bố bị cấm và những điều khác
Các tuyên bố bị cấm và những điều khác

Có thể có một số trường hợp trong cuộc trò chuyện của bạn khi rô bốt nói điều gì đó mà bạn không muốn nghe. Vì vậy, ở đây phát sinh nhu cầu bổ sung các câu lệnh bị cấm. Các câu lệnh bị cấm là một mảng địa chỉ bị ngăn không cho phát. Địa chỉ thoại được coi là một tuyên bố bị cấm theo yêu cầu của người dùng. Hơn nữa, địa chỉ này sẽ được lưu trữ trong EEPROM của Arduino để Eve không quên rằng đó là một tuyên bố bị cấm ngay cả sau khi cô ấy đã Tắt. Nếu địa chỉ là một trong những địa chỉ bị cấm, thì địa chỉ đó sẽ tăng hoặc giảm. Hơn nữa, có thể có một trường hợp khi bạn muốn cho phép robot nói một từ bị cấm trước đây. Trong trường hợp đó, bạn sẽ phải nói với Eve rằng cô ấy có thể nói từ bị cấm cuối cùng. Từ bị cấm cuối cùng bây giờ sẽ có thể chơi được. Để làm cho tất cả các câu lệnh bị cấm có thể chơi được, chúng tôi cần phải đính kèm một công tắc đặt lại. Nếu được nhấn, tất cả các câu bị cấm sẽ có thể chơi được. Sau đó, một điều quan trọng khác là đảm bảo rằng Eve không lặp lại các câu trả lời. Đây là một loại demerit của các số ngẫu nhiên. Các số ngẫu nhiên giống nhau có thể được tạo thành một chuỗi. Điều này sẽ khiến robot của chúng tôi nói đi nói lại cùng một câu trả lời. Đối với điều này, chúng ta cần bao gồm một chức năng nhỏ khác ngăn chặn việc lặp lại các câu lệnh. Đối với điều này, chúng ta cần lưu trữ địa chỉ của câu lệnh cuối cùng trong bộ nhớ và kiểm tra xem nó có giống với địa chỉ hiện tại hay không. Nếu vậy, thì giá trị địa chỉ sẽ tăng hoặc giảm, giống như cách trong trường hợp các câu lệnh bị cấm.

Bước 8: Viết bằng mã

Viết bằng mã
Viết bằng mã
Viết bằng mã
Viết bằng mã
Viết bằng mã
Viết bằng mã

Chúng tôi sử dụng lệnh indexOf để tìm kiếm từ khóa. Lệnh định vị một ký tự hoặc chuỗi trong một chuỗi khác. Nếu tìm thấy nó trả về chỉ mục của chuỗi đó trong khi -1 được trả về nếu không tìm thấy. Vì vậy, trong chương trình của chúng ta, chúng ta cần viết nó như sau: if (voice.indexOf ("your name")> -1) {// nếu chỉ mục lớn hơn -1 // nghĩa là chuỗi đã được tìm thấy} Bây giờ rằng chúng tôi đã lưu chuỗi trong bộ nhớ và cũng tìm thấy từ khóa của chúng tôi bên trong nó, bây giờ chúng tôi sẽ cần xử lý các câu trả lời. Như đã nói, các số ngẫu nhiên được tạo ra trong một phạm vi số cụ thể (địa chỉ của các tệp thoại). Ở đây có lệnh random (). Sau đây là cú pháp: random (min, max); // số ngẫu nhiên được tạo trong phạm vi tối thiểu và tối đa. 1)) {minNo = 0; maxNo = 5; RandomNumber = random (minNo, maxNo);} Bây giờ là phần xử lý các câu trả lời. Trong bước cuối cùng, tôi đã nói rằng các con số được tăng hoặc giảm dựa trên một thuật toán. Thuật toán này là những gì chúng ta đang thảo luận bây giờ, phần này rất quan trọng theo nghĩa là bạn không thể chỉ tăng hoặc giảm theo ý muốn. Số tăng hoặc giảm phải nằm trong phạm vi. Giả sử như trong trường hợp trên, đối với từ khóa "tên của bạn", chúng ta có phạm vi từ 0 đến 5, và số ngẫu nhiên được tạo là 5, thì nếu bạn tăng nó lên, bạn sẽ phát một tệp thoại của từ khóa khác. Bạn nghĩ điều đó sẽ như thế nào? Bạn hỏi, "Này, vui lòng cho tôi biết tên của bạn", và robot trả lời, "Tôi thích ăn bánh quy và sạc điện." Tương tự là trường hợp đối với số lượng tối thiểu. Nếu số ngẫu nhiên được tạo là 0, bạn không thể giảm số đó. Vì vậy, vì lý do này, thuật toán là rất quan trọng. Hãy nghĩ về nó: Chúng ta có thể tăng lên khi số nhỏ hơn số lớn nhất và giảm khi nó lớn hơn số nhỏ nhất. Khi số được tạo bằng 0 hoặc nhỏ hơn 5, số đó sẽ tăng lên. Mặt khác, khi nó bằng 5, chúng tôi giảm nó đi, để đảm bảo rằng con số nằm trong phạm vi được chỉ định. Như đã đề cập, chúng được lưu trữ trong EEPROM. Đối với điều này, trước hết chúng tôi tìm kiếm bộ nhớ trống trong mảng bị cấm. Giả sử địa chỉ 4 là miễn phí, sau đó chúng tôi nhập số tệp trong địa chỉ mảng miễn phí cũng như ghi địa chỉ tương tự vào EEPROM.for (int i; i if (never == 0) {EEPROM.write (never , memory);}} Vậy là xong, mô-đun Wtv020sd16p sẽ được phát bằng cách sử dụng lệnh module.playVoice () và số tệp được đề xuất. Hoạt động của mô-đun Wtv020 sẽ được thảo luận sau.

Bước 9: Chèn cảm xúc

Chèn cảm xúc
Chèn cảm xúc
Chèn cảm xúc
Chèn cảm xúc
Chèn cảm xúc
Chèn cảm xúc

Cho đến nay, rô bốt của chúng tôi có thể nhận ra những gì chúng tôi nói, lưu trữ trong bộ nhớ và tìm ra câu trả lời phù hợp cho các câu hỏi. Bây giờ câu hỏi đi vào để chèn cảm xúc. Chắc chắn rằng mọi người sẽ thích một khuôn mặt trực tiếp chỉ với một số chương trình trả lời câu hỏi nhỏ ngu ngốc. Màn hình LCD 16x2 được sử dụng trong dự án. Nó đủ tốt để in mắt. Chúng ta cần sử dụng chức năng ký tự tùy chỉnh để tạo mắt. Ký tự tùy chỉnh cho phép chúng tôi tạo các ký tự mới bằng cách xác định các pixel. Chúng tôi sẽ đi đến chi tiết về nó một chút sau. Đầu tiên, điều quan trọng cần nhớ là chỉ có 8 ký tự tùy chỉnh được hỗ trợ bởi Arduino. Vì vậy, chúng ta cần quản lý cảm xúc chỉ với 8 ký tự. Mỗi ký tự sẽ được in trong một ô cụ thể, và có 16 cột và 2 hàng tạo nên tổng số 32 ô.

Bạn có thể tìm thấy thông tin tốt trên mạng về các ký tự tùy chỉnh trong Arduino. Cũng có thể truy cập liên kết này:

[Ký tự tùy chỉnh Arduino] Cấu trúc của byte ký tự tùy chỉnh sẽ giống như sau:

Hình thức bình thường: Hộp bên trái0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, Hộp bên phải0b11110, 0b11110, 0b11110, 0b11110, 0b111 1/4 mỗi mắt. Vì vậy, điều đó có nghĩa là chúng ta sẽ cần tổng cộng 4 ô để lấp đầy toàn bộ một con mắt. Hai hàng bên trái và hai hàng bên phải tạo nên tổng cộng bốn ô cho một mắt. Byte hộp bên trái sẽ che phủ hai hàng bên trái và hộp bên phải sẽ che phủ các hàng bên phải. Vì vậy, đó tạo nên một con mắt hoàn chỉnh của Ê-va. Và bây giờ lặp lại tương tự cho con mắt thứ hai, chúng ta có được cái nhìn trung tính của Eve. Bây giờ điều quan trọng cần nhớ là chúng tôi đã sử dụng một trong tám ký tự tùy chỉnh có sẵn. Và có tổng cộng năm cảm xúc: Glee, Sad, Squint, Normal và Blink. Đối với bảy ký tự tùy chỉnh còn lại, chúng tôi cần điều chỉnh để phù hợp với tất cả các biểu thức. Để tạo khoảng trống, chúng ta sẽ sử dụng 2 hộp cho mỗi mắt. Không có gì ngạc nhiên khi kích thước sẽ hơi nhỏ, nhưng điều này sẽ bị mắt người bỏ qua. Chỉ cần đảm bảo thêm một số độ trễ giữa các chức năng của màn hình LCD, nếu không Arduino sẽ trở nên không ổn định.

Bước 10: Tạo kết nối

Tạo kết nối
Tạo kết nối
Tạo kết nối
Tạo kết nối
Tạo kết nối
Tạo kết nối

Mô-đun LCD: Kết nối các chân như đã đề cập ở đây: RS: chân đào 12RW: GndEnable: 7d4: chân đào 8 d5: chân đào 9 d6: chân đào 10 d7: chân đào 13A (Cực dương) đến 5vK (Cực âm) đến mô-đun gndThe HC 05: Thực hiện theo các kết nối sau: Chân HC 05 TX đến chân Arduino RX pinHC 05 chân RX vào chân Arduino TX Chân trạng thái tới chân đào Arduino 11 Giao tiếp được thực hiện với sự trợ giúp của chân TX và RX. Cần có chân Trạng thái để kiểm tra xem thông qua HC 05 có được kết nối hay không. để đào chân 4pin15: Chân bận, kết nối với chân 5pin2: Kết nối chân này với bộ khuếch đại thông qua âm lượng và cũng tương tự với giắc cắm âm thanh cái. pin4 phải được kết nối với loa + chân5 để được kết nối với loa-Kết nối Chân thứ 8 đến gnd và cung cấp nguồn điện 3.3v ở chân thứ 16.

Bộ khuếch đại sẽ giúp phát loa trong của Eve, còn giắc âm thanh để kết nối với bộ khuếch đại bên ngoài và loa lớn hơn.

Bước 11: Mô-đun WTV020SD16p (Tùy chọn)

Image
Image
Mô-đun WTV020SD16p (Tùy chọn)
Mô-đun WTV020SD16p (Tùy chọn)
Mô-đun WTV020SD16p (Tùy chọn)
Mô-đun WTV020SD16p (Tùy chọn)

Lưu ý: Bước này là bước không bắt buộc. Nó đề cập đến hoạt động và mô tả của mô-đun WTV 020 SD 16p.

Bạn có thể xem bản demo của mô-đun âm thanh trong liên kết này:

[PHÁT VIDEO]

Chế độ nói của robot được thực hiện bởi mô-đun WTV 020 SD. Mô-đun được sử dụng để phát các tệp thoại cho rô bốt. Khi bất kỳ câu hỏi nào được hỏi, arduino sẽ làm cho mô-đun phát tệp thoại tương ứng trong thẻ SD. Có bốn dòng dữ liệu nối tiếp trên mô-đun để giao tiếp với arduino, thiết lập lại, đồng hồ, dữ liệu và chân bận và chúng tôi sử dụng lệnh.playVoice () để phát tệp cần thiết. Ví dụ: module.playVoice (9): // phát tệp 9 được lưu trữ trên thẻ SD Hãy nhớ rằng tên của tệp phải ở dạng thập phân (0001, 0002…). Và các tệp đó phải ở định dạng AD4 hoặc WAV. Hơn nữa, mô-đun chỉ hoạt động trên thẻ micro SD 1gb. Một số mô-đun thậm chí hoạt động trên thẻ 2gb và thẻ có thể chứa tối đa 504 tệp thoại. Vì vậy, bạn có thể đưa vào một số lượng lớn các tệp giọng nói để phát cho một số câu hỏi.

Bạn thậm chí có thể tạo các tệp AD4 giọng nói của riêng mình, trước tiên, bạn phải có hai phần mềm, một phần mềm chỉnh sửa âm thanh và một phần mềm có tên là 4D SOMO TOOL sẽ chuyển đổi các tệp sang định dạng AD4. Thứ hai, bạn phải chuẩn bị Giọng nói của Robot. Bạn có thể chuyển đổi văn bản thành giọng nói hoặc thậm chí ghi âm giọng nói của chính mình và tạo ra giọng nói của Robot. Cả hai điều này đều có thể được thực hiện trong Phần mềm Chỉnh sửa Âm thanh. Nhưng chắc chắn, robot trông sẽ không đẹp nếu chúng nói được giọng nói của con người. Vì vậy, tốt hơn là nên chuyển văn bản thành giọng nói. Có nhiều công cụ khác nhau như Microsoft Anna và Microsoft Sam Máy tính của bạn sẽ giúp thực hiện điều này. Của tôi dựa trên Microsoft Eva. Giọng nói của nó rất phù hợp với Cortana. Sau khi chuẩn bị các tệp thoại, bạn phải lưu nó ở 32000 Hz và ở Định dạng WAV. Điều này là do mô-đun có thể phát các tệp thoại lên đến 32000 Hz. Sau đó, sử dụng CÔNG CỤ SOMO 4D để chuyển đổi các tệp sang định dạng AD4. Để làm như vậy, chỉ cần mở CÔNG CỤ SOMO, chọn tệp và nhấp vào Mã hóa AD4 và tệp giọng nói của bạn đã sẵn sàng. Bạn có thể xem hình trên để tham khảo.

Bước 12: Phần mềm

Phần mềm
Phần mềm
Phần mềm
Phần mềm
Phần mềm
Phần mềm

Trong arduino Pro mini, có một vấn đề nhỏ trong quá trình lập trình. Trên thực tế, không phải là một vấn đề, chỉ là một bước bổ sung. Arduino Pro mini không có bất kỳ lập trình sẵn nào như các bo mạch Arduino khác. Vì vậy, bạn cần phải mua một bên ngoài hoặc một arduino UNO cũ. Bước ở đây mô tả cách tải lên chương trình bằng Arduino UNO. Chỉ cần lấy một bảng Arduino UNO cũ từ sự cố và lấy Atmega 328p. Sau đó, kết nối như sau được đề cập: 1. Chân TX trên UNO vào chân TX trên Pro Mini 2. Chân RX của UNO vào chân RX của Pro MIni3. Đặt lại chân của UNO thành chân đặt lại của Pro Mini4. kết nối VCC và Ground của Pro Mini với UNO. Tải xuống chương trình Arduino, phần mềm nhận dạng giọng nói và các Thư viện được cung cấp ở dưới cùng. Chương trình vẫn đang được phát triển. Vì vậy, nếu bạn có bất kỳ vấn đề nào liên quan đến nó, vui lòng hỏi. Sau đó cắm Cáp vào máy tính. Chọn Bo mạch làm Arduino Pro Mini và chọn đúng cổng COM. Sau đó nhấn nút Tải lên và xem chương trình được tải lên trên Pro Mini của bạn.

Sau đó tải xuống phần mềm Nhận dạng giọng nói và các tệp giọng nói.

Bước 13: Chuẩn bị cơ thể

Chuẩn bị cơ thể
Chuẩn bị cơ thể
Chuẩn bị cơ thể
Chuẩn bị cơ thể
Chuẩn bị cơ thể
Chuẩn bị cơ thể

Tôi tìm thấy một hộp chỉ nha khoa nhỏ và thấy nó rất tốt cho cơ thể. Bạn có thể sử dụng bất kỳ hộp nào bạn tìm thấy trong xưởng của mình hoặc bạn có thể làm một chiếc hộp bằng bìa cứng. Chỉ cần cắt một miếng hình chữ nhật nhỏ để gắn mô-đun LCD. Ở trên cùng, tôi khoét một lỗ nhỏ để gắn âm lượng và ở hai bên để gắn công tắc và đầu nối âm thanh. Tôi gắn hai nắp chai ở hai bên hộp cho bánh xe. Chỉ cần đảm bảo rằng hộp có đủ không gian để đặt mạch vào bên trong. Gắn công tắc vào thân máy cũng như mạch điện, sau đó là âm lượng ở đầu hộp. Sau đó chỉ cần đặt mạch điện vào bên trong là robot của bạn đã hoàn thành.

Bước 14: Hoàn thành tốt

Làm tốt!
Làm tốt!
Làm tốt!
Làm tốt!

Bây giờ bạn đã hoàn thành dự án robot nhỏ dễ thương của mình có thể nói chuyện với bạn và khiến bạn cảm thấy hạnh phúc. Đây là điểm hạnh phúc nhất của một DIYer khi dự án của bạn đã hoàn thành và hoạt động đầy đủ. Đừng lo lắng nếu bạn không thành công trong một lần thử, bạn cần cố gắng rất nhiều và chăm chỉ để bạn hiểu rõ từng bộ phận của robot của mình. Và đó là nơi các DIYers bước vào thế giới này, nhưng đây không phải là kết thúc của dự án. Eve sẽ luôn được phát triển ở một mức độ lớn hơn, bởi tôi hoặc những người DIY như bạn. Tôi rất muốn nghe những gì bạn đã làm khi thấy điều này có thể hướng dẫn.

Đề xuất: