精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>可以給主人提供生活建議的機(jī)器人開源

可以給主人提供生活建議的機(jī)器人開源

2022-11-04 | zip | 1.77 MB | 次下載 | 2積分

資料介紹

描述

我想制作一個(gè)可以給她的主人提供生活建議的機(jī)器人。機(jī)器人可以告訴溫度、濕度、時(shí)間和警報(bào)等。這只是一個(gè)初始版本。我會(huì)給這個(gè)機(jī)器人更多的功能,比如聲音識(shí)別、揚(yáng)聲器、游戲。因此,Arduino UNO R3 可能不足以完成這個(gè)項(xiàng)目。如果有人有有趣的想法,請(qǐng)給予贊揚(yáng)。讓我們嘗試構(gòu)建這個(gè)機(jī)器人。讓我介紹一下這個(gè)項(xiàng)目:

1. LCD自定義顯示——眨眼臉

20x4 LCD 允許用戶創(chuàng)建自定義字符。這對(duì)我塑造臉型有好處。此 LCD 在屏幕中包含 80 個(gè)字符。每個(gè)字符包括 8 行 5 列,總共有 40 個(gè)像素。字符的每一行都有一個(gè)對(duì)應(yīng)的代碼(數(shù)字)。要構(gòu)建自定義字符,我需要構(gòu)建一個(gè) 8 字節(jié)自定義類型變量。例如,在上圖中創(chuàng)建機(jī)器人眼睛角色。代碼是:

uint8_t eye_left[8] = {0xe,0x11,0x17,0x17,0x17,0x17,0x11,0xe};

根據(jù)我的實(shí)驗(yàn),LCD字符的行碼是有規(guī)律的。我顯示下表以顯示行顯示和相應(yīng)的數(shù)字:

?
poYBAGNkbn-AUNpYAABdkzL_x7g667.png
LCD行(行)顯示及對(duì)應(yīng)編號(hào)
?

根據(jù)上表,眼睛顯示代碼解釋如下:

?
pYYBAGNkboKAK3U6AAAs35bdVhg132.jpg
?

創(chuàng)建自定義代碼后,即可在 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);
}

我不會(huì)在上面的代碼中給出 LCD 庫和地址設(shè)置。這是顯示面部和眨眼的測試代碼:

#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 型號(hào)。如果某人嘗試此代碼,請(qǐng)按照您的菜單設(shè)置您的 LCD。我在下面給出了 LCD 設(shè)置的鏈接:

2.時(shí)鐘顯示和時(shí)間/鬧鐘設(shè)置

我的 Arduino UNO 沒有外部計(jì)時(shí)器 (RTC),但我自己制作時(shí)鐘并使用 EEPROM 存儲(chǔ)當(dāng)前時(shí)間以進(jìn)行 Arduino 重置。定時(shí)器/時(shí)鐘項(xiàng)目在下面的鏈接中:

這是我的 Arduino DIY 時(shí)鐘項(xiàng)目。它還介紹了 IR 遠(yuǎn)程設(shè)置、蜂鳴器運(yùn)行和 EEPROM 庫。

3.溫濕度模式

我使用 DHT11 濕度和溫度模型來獲取該項(xiàng)目的濕度和溫度。在程序中,我使用庫“ DHT.h ”來應(yīng)用模式。我還使用 Simon Monk 的“ timer.h ”庫每 3 秒獲取 Humi 和 Temp。(另外項(xiàng)目中的 eye's blink 也是使用這個(gè)庫。)

4. 搖桿控制臉眼

Joy 貼紙很容易與 Arduino 一起使用。我創(chuàng)建了一個(gè)程序來查看我玩快樂貼紙時(shí)的 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);
}

歡樂貼的原理在這個(gè)鏈接:

https://www.brainy-bits.com/arduino-joystick-tutorial/

我的項(xiàng)目視頻

?

五、存在的問題和今后的工作

該項(xiàng)目將許多模型鏈接在一起,并使用了可能的庫。好在沒有沖突,但還是有一些問題。也許,某人可以給我建議。

首先,我一開始只能創(chuàng)建8個(gè)自定義角色,超過8個(gè)就麻煩了。例如,使用下面的代碼。

   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”。為了解決這個(gè)問題,我只是在每次顯示字符之前構(gòu)建字符。如果我改變眼睛字符以顯示向上或向下看,我會(huì)這樣做:

 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);

我不知道為什么我不能一起建立更多的角色。可能是液晶內(nèi)存不夠。誰能告訴我?

其次,我使用 Simon 的“ timer.h ”來顯示眨眼。但是,這個(gè)庫只是通過切換顯示閉眼,我給了 250 毫秒的延遲時(shí)間來清楚地顯示閉眼,但延遲會(huì)阻止整個(gè)代碼運(yùn)行。當(dāng)臉部眨眼時(shí),您可以看到第二次增加有一點(diǎn)時(shí)間問題。

我考慮使用普通計(jì)時(shí)器(如“millis()”)來毫不拖延地控制它,但它很復(fù)雜。我不知道m(xù)illis() 的值是否會(huì)溢出。

第三,紅外遙控器不靈敏。你可以從視頻中看到這一點(diǎn)。也許,我的代碼延遲太長,無法按下按鈕,但我發(fā)現(xiàn)有時(shí) IR 接收器會(huì)得到錯(cuò)誤的按鈕地址。為什么電視和投影儀遙控器效果很好?有人知道更多嗎?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)