久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 公寓不讓養貓?那就自己做個機器貓 [打印本頁]

作者: hushao    時間: 2016-1-3 18:15
標題: 公寓不讓養貓?那就自己做個機器貓

想要養只貓當寵物,但是又擔心“貓老爺”的吃喝拉撒睡和掉毛?那就自己做一只機器貓吧!首先讓我們從最簡單的開始:做一只會隨機發出貓叫聲的機器貓;另外,它還有一雙可以變化的眼睛,當你撫摸它的時候,它還會發出咕嚕咕嚕的聲音。而更重要的是,因為本項目是基于Arduino開發的,你還可以為這只可愛的機器貓設計更多功能!
第一步:準備材料
第二步:線路設計
首先確定各個輸入輸出引腳的定義,然后畫出電路圖。如圖所示,除了基本的接地連接外,喇叭連接引腳2,而觸控傳感器則連接5V和A0,另外,注意在觸控傳感器上串聯一個47kΩ的電阻,這個電阻的阻值大小是可調的,這取決你想要的觸控靈敏度。
接下來將LED連接到6、7、8、9、11、12引腳。
第三步:編程確定好連接方式之后就開始編程,基本功能的代碼已經寫好(點擊這里下載 機器貓.rar (46.17 KB, 下載次數: 10) ),需要你期望實現更多功能,向其中添加即可。
  1. //bool LEDIsOn = false;
  2. //bool LEDsChanged = false;
  3. bool isBeingPetted = false;
  4. int sensorValue = 0;
  5. int totalSensorValue = 0;
  6. float averageSensorValue;
  7. int count = 0;
  8. int randomMeowTime;

  9. bool defaultEyes [6] = {false, true, true,
  10.                         true, true, true};
  11. bool blinkEyes [6] = {false, false, false,
  12.                       true, true, true};
  13. bool purrEyes [6] = {false, true, false,
  14.                      true, false, true};
  15. bool meowEyes [6] = {true, true, false,
  16.                      false, false, true};
  17. bool mewEyes [6] = {false, true, false,
  18.                     false, true, false};

  19. int ledEyes [6] = {6,7,8,9,11,12};

  20. void setup() {
  21.   // put your setup code here, to run once:
  22.   // pin 6,7,8,9,11,12 is an LED, pin 2 is the speaker
  23.   for (int i = 0; i <= 5; i++){
  24.     pinMode(ledEyes[i], OUTPUT);
  25.   }
  26.   
  27.   pinMode(2, OUTPUT);

  28.   // pin A0 is the touch sensor input
  29.   pinMode(A0, INPUT);

  30.   changeEyes(defaultEyes);
  31. }

  32. void loop() {
  33.   randomSeed(analogRead(0));
  34.   randomMeowTime = random(0.0, 400.0);

  35.   // put your main code here, to run repeatedly:
  36.   sensorValue = analogRead(A0);
  37.   totalSensorValue += sensorValue;
  38.   count += 1;

  39.   if (count == 5){
  40.     averageSensorValue = totalSensorValue / 5;
  41.     if (averageSensorValue > 1005){
  42.       // kat wordt aangeraakt
  43.       isBeingPetted = true;
  44.       //delay(1000);
  45.     } else {
  46.       isBeingPetted = false;
  47.       // kat wordt niet (meer) aangeraakt
  48.     }
  49.    
  50.     if (isBeingPetted == true){
  51.       changeEyes(purrEyes);
  52.       purr();
  53.     } else {
  54.       changeEyes(defaultEyes);
  55.       if (randomMeowTime <= 4){ //randomly meow if not being petted
  56.         changeEyes(meowEyes);
  57.         meow();
  58.       } else if (randomMeowTime == 5){
  59.         changeEyes(meowEyes);
  60.         meow2();
  61.       } else if (randomMeowTime == 6){
  62.         changeEyes(mewEyes);
  63.         mew();
  64.       }
  65.     }

  66.     totalSensorValue = 0;
  67.     count = 0;
  68.   }
  69.   
  70.   delay(1);
  71. }

  72. //the sounds the cat makes, the meowing sounds are from here: https://learn.adafruit.com/adafruit-trinket-modded-stuffed-animal/animal-sounds
  73. void meow() {  // cat meow (emphasis ow "me")
  74.   uint16_t i;
  75.   playTone(5100,50);        // "m" (short)
  76.   playTone(394,180);        // "eee" (long)
  77.   for(i=990; i<1022; i+=2)  // vary "ooo" down
  78.      playTone(i,8);
  79.   playTone(5100,40);        // "w" (short)
  80. }

  81. void meow2() {  // cat meow (emphasis on "ow")
  82.   uint16_t i;
  83.   playTone(5100,55);       // "m" (short)
  84.   playTone(394,170);       // "eee" (long)
  85.   delay(30);               // wait a tiny bit
  86.   for(i=330; i<360; i+=2)  // vary "ooo" down
  87.      playTone(i,10);
  88.   playTone(5100,40);       // "w" (short)
  89. }

  90. void mew() {  // cat mew
  91.   uint16_t i;
  92.   playTone(5100,55);       // "m"   (short)
  93.   playTone(394,130);       // "eee" (long)
  94.   playTone(384,35);        // "eee" (up a tiny bit on end)
  95.   playTone(5100,40);       // "w"   (short)
  96. }

  97. void purr() { // cat purr
  98.   uint16_t i;
  99.   uint16_t h;
  100.   for(i=0; i<10; i++){
  101.     playTone(9750,2);
  102.     playTone(9250,2);
  103.     delay(15);//was 6
  104.   }
  105.   for(i=0; i<10; i++){
  106.     playTone(11750,2);
  107.     playTone(11250,2);
  108.     delay(15);
  109.   }
  110. }

  111. void playTone(uint16_t tone1, uint16_t duration) {
  112.   if(tone1 < 50 || tone1 > 15000) return;  // these do not play on a piezo
  113.   for (long i = 0; i < duration * 1000L; i += tone1 * 2) {
  114.      digitalWrite(2, HIGH);
  115.      delayMicroseconds(tone1);
  116.      digitalWrite(2, LOW);
  117.      delayMicroseconds(tone1);
  118.   }     
  119. }

  120. //this method changes the eyes.
  121. void changeEyes(bool eyes[]){
  122.   for (int i = 0; i <= 5; i++){
  123.     if (eyes[i]==true){
  124.       digitalWrite(ledEyes[i], HIGH);
  125.     } else {
  126.       digitalWrite(ledEyes[i], LOW);
  127.     }
  128.   }
  129. }
復制代碼



第四步:外形設計
創客們在設計一個項目的時候往往會忽視外形方面的設計,但外形設計實際上在創客項目上扮演著極其重要的角色。
而作為一只機器寵物貓,“萌值”的重要性想必是不用再提了。
這是作者的設計,看起來怎么樣,如果覺得不順眼,也可以自己修改或重新設計。
第五步:完成組裝因為這個機器貓項目相對比較簡單,組裝也并不復雜,實際上就是把LED燈放入到貓眼部位就夠了。鑒于Arduino的強大性能,實際上這個項目還有巨大的可擴展空間。比如通過和機器小車結合做一個可以運動的機器貓,或者和無人機結合做一只飛行的貓頭鷹,甚至還能直接做成貓的形狀,套上毛絨玩具就是一只如假包換的機器貓了,當然,做成哆啦A夢的樣子也不錯。接下來看一下展示吧:
http://static.video.qq.com/TPout.swf?auto=1&vid=a0172tjq6yb



作者: 大貓8888    時間: 2019-7-17 17:48
厲害了
作者: 51heizly    時間: 2019-7-29 07:13
藍貓




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品国产一二三区 | 国产精品一区二区在线播放 | 亚洲精品影院 | 精品在线一区二区 | 欧美日韩在线一区二区三区 | 亚洲欧洲色 | 国产精品少妇 | 久久天天操 | 日韩视频精品 | av免费网站 | 欧美激情专区 | 日韩在线不卡视频 | 一区二区三区久久 | 青青草精品 | 一区二区三区在线观看免费 | 国产精品羞羞答答 | 国产激情综合五月久久 | 99av | 国产黄色在线 | 亚洲精品成a人在线观看 | 国产福利91精品一区二区三区 | 婷婷免费视频 | 日韩欧美国产成人 | 四虎在线观看视频 | 国产一级视频在线观看 | 国产欧美一区二区精品性色超碰 | 黄色成人在线观看 | 久久精品2 | 日韩1级片 | 国产女人18毛片18精品 | 欧美视频免费在线观看 | 国产区一区二区 | 欧美成在线 | 日韩在线精品视频 | 91天堂网 | a免费视频 | 亚洲精品国产精品国自产观看 | 中文字幕在线观看不卡 | 亚洲欧美一区二区三区在线 | 日本免费一级片 | 美日韩一区二区三区 |