資料介紹
描述
我想制作一個可以給她的主人提供生活建議的機器人。機器人可以告訴溫度、濕度、時間和警報等。這只是一個初始版本。我會給這個機器人更多的功能,比如聲音識別、揚聲器、游戲。因此,Arduino UNO R3 可能不足以完成這個項目。如果有人有有趣的想法,請給予贊揚。讓我們嘗試構建這個機器人。讓我介紹一下這個項目:
1. LCD自定義顯示——眨眼臉
20x4 LCD 允許用戶創建自定義字符。這對我塑造臉型有好處。此 LCD 在屏幕中包含 80 個字符。每個字符包括 8 行 5 列,總共有 40 個像素。字符的每一行都有一個對應的代碼(數字)。要構建自定義字符,我需要構建一個 8 字節自定義類型變量。例如,在上圖中創建機器人眼睛角色。代碼是:
uint8_t eye_left[8] = {0xe,0x11,0x17,0x17,0x17,0x17,0x11,0xe};
根據我的實驗,LCD字符的行碼是有規律的。我顯示下表以顯示行顯示和相應的數字:
根據上表,眼睛顯示代碼解釋如下:
創建自定義代碼后,即可在 Arduino setup() 或 loop() 中使用。在 setup() 中,例如,程序代碼是:
// .... the LCD library and address setup is not here ...
//variable code for custom eye character
uint8_t eye_left[8] = {0xe,0x11,0x17,0x17,0x17,0x17,0x11,0xe};
void setup() {
lcd.begin(20,4);
lcd.createChar(2, eye_left);//use number '2' to mark this char
lcd.setCursor(1,1);// display position
lcd.write(2);// display the custom char
lcd.setCursor(3,1);
lcd.write(2);
}
我不會在上面的代碼中給出 LCD 庫和地址設置。這是顯示面部和眨眼的測試代碼:
#include
#include
uint8_t empty[8] = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1};
uint8_t eyebrow_happy[8] = {0x0,0x0,0x0,0xe,0x11,0x0,0x0,0x0};
uint8_t eyebrow_angry_right[8] = {0x0,0x0,0x0,0x10,0x8,0x4,0x2,0x1};
uint8_t eyebrow_close[8] = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f};
uint8_t eyebrow_angry_left[8] = {0x0,0x0,0x0,0x1,0x2,0x4,0x8,0x10};
uint8_t eye_left[8] = {0xe,0x11,0x17,0x17,0x17,0x17,0x11,0xe};
uint8_t eye_right[8] = {0xe,0x11,0x1d,0x1d,0x1d,0x1d,0x11,0xe};
uint8_t eye_front[8] = {0xe,0x11,0x15,0x15,0x15,0x15,0x11,0xe};
uint8_t eye_close[8] = {0x0,0x0,0x0,0x11,0x1f,0x0,0x0,0x0};
uint8_t mouth_happy[8] = {0x4,0xe,0xe,0x0,0x0,0x11,0xe};
uint8_t mouth_sad[8] = {0x4,0xe,0xe,0x0,0x0,0xe,0x11};
LiquidCrystal_I2C lcd(0x3f, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
void setup() {
lcd.begin(20,4);
//lcd.init();
lcd.createChar(0, empty);
lcd.createChar(1, mouth_sad);
lcd.createChar(2, eyebrow_angry_right);
lcd.createChar(3, eyebrow_angry_left);
lcd.createChar(4, eye_left);
lcd.createChar(5, eye_right);
lcd.createChar(6, eye_front);
lcd.createChar(7, eye_close);
lcd.createChar(8, mouth_happy);
lcd.createChar(9, eyebrow_happy);
lcd.createChar(10, eyebrow_close);
lcd.home();
// eyebrow
lcd.setCursor(1,0);
lcd.write(1);
lcd.setCursor(3,0);
lcd.write(1);
// eyes
lcd.setCursor(1,1);
lcd.write(4);
lcd.setCursor(3,1);
lcd.write(4);
// mouth
lcd.setCursor(2,2);
lcd.write(8);
// words
lcd.setCursor(9,1);
lcd.print("Hello!!");
lcd.setCursor(8,2);
lcd.print("I am Lily!");
delay(1000);
}
//string str[20];
void loop() {
// blink eyes
delay(4000);
// eyebrow
lcd.setCursor(1,0);
lcd.write(10);
lcd.setCursor(3,0);
lcd.write(10);
// eyes
lcd.setCursor(1,1);
lcd.write(7);
lcd.setCursor(3,1);
lcd.write(7);
// mouth
lcd.setCursor(2,2);
lcd.write(8);
delay(250);
// eyebrow
lcd.setCursor(1,0);
lcd.write(1);
lcd.setCursor(3,0);
lcd.write(1);
// eyes
lcd.setCursor(1,1);
lcd.write(4);
lcd.setCursor(3,1);
lcd.write(4);
// mouth
lcd.setCursor(2,2);
lcd.write(8);
}
我的液晶顯示器是 I2C 型號。如果某人嘗試此代碼,請按照您的菜單設置您的 LCD。我在下面給出了 LCD 設置的鏈接:
2.時鐘顯示和時間/鬧鐘設置
我的 Arduino UNO 沒有外部計時器 (RTC),但我自己制作時鐘并使用 EEPROM 存儲當前時間以進行 Arduino 重置。定時器/時鐘項目在下面的鏈接中:
這是我的 Arduino DIY 時鐘項目。它還介紹了 IR 遠程設置、蜂鳴器運行和 EEPROM 庫。
3.溫濕度模式
我使用 DHT11 濕度和溫度模型來獲取該項目的濕度和溫度。在程序中,我使用庫“ DHT.h ”來應用模式。我還使用 Simon Monk 的“ timer.h ”庫每 3 秒獲取 Humi 和 Temp。(另外項目中的 eye's blink 也是使用這個庫。)
4. 搖桿控制臉眼
Joy 貼紙很容易與 Arduino 一起使用。我創建了一個程序來查看我玩快樂貼紙時的 x、y 值。在下面的代碼中,我使用我的 LCD 來顯示 x、y 值:
#include
#include
LiquidCrystal_I2C lcd(0x3f, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
// Arduino pin numbers
const int SW_pin = 7; // digital pin connected to switch output
const int X_pin = A0; // analog pin connected to X output
const int Y_pin = A1; // analog pin connected to Y output
void setup() {
pinMode(SW_pin, INPUT);
digitalWrite(SW_pin, HIGH);
lcd.begin(20,4);
lcd.clear();
}
void loop() {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("swtich: ");
lcd.print(digitalRead(SW_pin));
lcd.setCursor(0,1);
lcd.print("X-axis: ");
lcd.print(analogRead(X_pin));
lcd.setCursor(0,2);
lcd.print("Y-axis: ");
lcd.print(analogRead(Y_pin));
delay(500);
}
歡樂貼的原理在這個鏈接:
https://www.brainy-bits.com/arduino-joystick-tutorial/
我的項目視頻
五、存在的問題和今后的工作
該項目將許多模型鏈接在一起,并使用了可能的庫。好在沒有沖突,但還是有一些問題。也許,某人可以給我建議。
首先,我一開始只能創建8個自定義角色,超過8個就麻煩了。例如,使用下面的代碼。
lcd.createChar(0, empty);
lcd.createChar(1, mouth_sad);
lcd.createChar(2, eyebrow_angry_right);
lcd.createChar(3, eyebrow_angry_left);
lcd.createChar(4, eye_left);
lcd.createChar(5, eye_right);
lcd.createChar(6, eye_front);
lcd.createChar(7, eye_close);
lcd.createChar(8, mouth_happy);
lcd.createChar(9, eyebrow_happy);
lcd.createChar(10, eyebrow_close);
字符“0”將替換為字符“8”,“1”將替換為“9”,“2”將替換為“10”。為了解決這個問題,我只是在每次顯示字符之前構建字符。如果我改變眼睛字符以顯示向上或向下看,我會這樣做:
lcd.createChar(2, eye_up);// create look up
lcd.setCursor(1,1);
lcd.write(2);
lcd.setCursor(3,1);
lcd.write(2);
delay(1000);// delay 1s
lcd.createChar(2, eye_down);//create look down
lcd.setCursor(1,1);
lcd.write(2);
lcd.setCursor(3,1);
lcd.write(2);
我不知道為什么我不能一起建立更多的角色。可能是液晶內存不夠。誰能告訴我?
其次,我使用 Simon 的“ timer.h ”來顯示眨眼。但是,這個庫只是通過切換顯示閉眼,我給了 250 毫秒的延遲時間來清楚地顯示閉眼,但延遲會阻止整個代碼運行。當臉部眨眼時,您可以看到第二次增加有一點時間問題。
我考慮使用普通計時器(如“millis()”)來毫不拖延地控制它,但它很復雜。我不知道millis() 的值是否會溢出。
第三,紅外遙控器不靈敏。你可以從視頻中看到這一點。也許,我的代碼延遲太長,無法按下按鈕,但我發現有時 IR 接收器會得到錯誤的按鈕地址。為什么電視和投影儀遙控器效果很好?有人知道更多嗎?
- YolkaBot機器人開源分享
- 檢測機器人開源分享
- Arduino機器人開源
- 坦克機器人開源分享
- 掃地機器人開源資料 44次下載
- 機器人守衛開源分享
- 伺服機器人開源分享
- 堆肥機器人開源分享
- 英雄機器人開源
- 機器人開源案例
- 小臂機器人開源分享
- Arduino機器人開源分享
- 助理機器人開源分享
- 簡單的機器人開源分享
- 機器人開源項目
- 字節發布機器人領域首個開源視覺-語言操作大模型,激發開源VLMs更大潛能 561次閱讀
- 機器人技術中常用的路徑規劃算法的開源庫 1188次閱讀
- 面對疫情 醫療機器人能幫上什么忙? 2236次閱讀
- dfrobotSparki機器人套裝簡介 2207次閱讀
- dfrobotTurtle 3PA三輪小車機器人套件簡介 1716次閱讀
- 教育機器人市場分析_教育機器人市場前景 5805次閱讀
- 一文看懂服務機器人發展前景 2608次閱讀
- 協作機器人的起源_為什么需要協作機器人 8322次閱讀
- 機器視覺的機器人取代四臺傳統的火焰處理機器人 3370次閱讀
- 盤點2018年機器人領域十大技術 3424次閱讀
- 簡易機器人制作圖解 1w次閱讀
- 云視頻技術讓機器人更具有娛樂性讓機器人更融入你的生活 3647次閱讀
- 人工智能時代的機器人三大法則 6744次閱讀
- 軟體機器人 前所未見的機器人 3770次閱讀
- 如何使用HRMRP機器人平臺構建機器人應用系統 1699次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多