協同產品設計實習

防鴿網報告

組員40723106王昱翔 網站 倉儲
組員40723143詹益任 網站 倉儲
組員40723139黃柏翰 網站 倉儲

創作動機

許多高樓窗台很多鴿子大便,造成我們的困擾,像

觀感不佳

很難清理

帶有疾病

於是我們想用市面常見的防鴿網加上電擊,來驅趕鴿子。

零件圖

電池1.5V

背板

Arduino.

背蓋

掀蓋

單主機MK2

單主機MK3

電池蓋

主機背板

鑽孔立柱

sd卡支架

pp電擊部件

pp萬用板支架

繼電支架

聲波支架

SD caad

SP- M3

SP- M6

SP- 短釘

HCSR04

萬用板

91電池

電池盒

電蚊拍電路

組合圖

直網

繼電器

遇到問題

1.電池續航力? 2.防水性? 3.安裝位置被限制?

解決方法

1.加裝超音波感測,有物體才通電。或換成鋰電池。2.架高下面有漏水孔。3.主要是跟網子有關,網子選定適當大小就可以適應多種地形。

Arduino程式碼


                /////////////////////////////////////套入函式庫///////////////////////////////////////////
        #include 
         //////////////////////////////////WIFI相關設定////////////////////////////////////////
        const char* ssid = "Wi-Fi Name";    
        const char* password = "Password";   
        WiFiServer server(80);
        ////////////////////////////////////宣告超音波變數///////////////////////////////////
        double dura;
        double dist;
        double disori;
        double times=0;
        String webstring;
         ///////////////////////////////////宣告腳位/////////////////////////////////////////////
        int trig = 13;
        int echo = 15;
        ///////////////////////////////////測定函式//////////////////////////////////////////////
        double measure(){
          digitalWrite(7,HIGH);
          delayMicroseconds(5);
          digitalWrite(7,LOW);
          dura=pulseIn(8,HIGH);
          disori=((340*100)*dura*0.000001/2);
          dist=sqrt((disori*disori)-1.3*1.3);
          return dist;
        }
         ////////////////////////////////////////////////////設定///////////////////////////////////////////
        void setup()
        {
          Serial.begin(115200);
          pinMode(trig, OUTPUT);
        pinMode(echo, INPUT);
         
          Serial.print("Connecting to the Newtork");
         Serial.println(ssid); 
        WiFi.begin(ssid, password);
          while (WiFi.status() != WL_CONNECTED)
        {
            delay(500);
            Serial.print(".");
         }
        Serial.println(“””);
         Serial.println("WiFi connected"); 
        server.begin();
         Serial.println(“Sever started”) ;
        Serial.println(WiFi.localIP());
        }
        //////////////////////////////////////////////程式執行/////////////////////////////////////////////////////////
        void loop()
        {
         if ( measure()>0){
            Serial.println("Dove is Cominig");
            times++;
          } 
        WiFiClient client = server.available();
          if (!client) {                            
          return;
            {
        Serial.println(“New client”);
        while(client.available()){
        delay(1);
        }
        String req=client.readStringUntil(‘\r’);
        Serial.println(req);
        client.flush();
        ////////////////////////////////////HTML/////////////////////////////////////////////
          client.println("HTTP/1.1 200 OK"); //
          client.println("Content-Type: text/html");
          client.println("");
          client.println("");
          client.println("");
          client.print(" CONTROL LED: ");
        client.println("");
        client.println("");
        client.println(" ");
        client.println("");
        client.println(" ");
        client.println("");
        client.println("
"); client.println("

防飛禽駐留電網"); client.println("

飛禽停駐距離

"); client.println("

"); client.println("

飛禽停駐次數

"); client.println(" 0
"); client.println("

通電按鈕

"); client.println(""); client.println("

"); client.println(" "); client.println(""); delay(1); Serial.println("Client disonnected"); Serial.println(""); }

End

Auto-Animate

Automatically animate matching elements across slides with Auto-Animate.

Auto-Animate

Auto-Animate

Touch Optimized

Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.

Transition Styles

You can select from different transitions, like:
None - Fade - Slide - Convex - Concave - Zoom

Fragments

Hit the next arrow...

... to step through ...

... a fragmented slide.

Fragment Styles

There's different types of fragments, like:

grow

shrink

fade-out

fade-right, up, down, left

fade-in-then-out

fade-in-then-semi-out

Highlight red blue green

Themes

reveal.js comes with a few themes built in:
Black (default) - White - League - Sky - Beige - Simple
Serif - Blood - Night - Moon - Solarized

Slide Backgrounds

Set data-background="#dddddd" on a slide to change the background color. All CSS color formats are supported.

Down arrow

Image Backgrounds

<section data-background="image.png">

Tiled Backgrounds

<section data-background="image.png" data-background-repeat="repeat" data-background-size="100px">

Video Backgrounds

<section data-background-video="video.mp4,video.webm">

... and GIFs!

Background Transitions

Different background transitions are available via the backgroundTransition option. This one's called "zoom".

Reveal.configure({ backgroundTransition: 'zoom' })

Background Transitions

You can override background transitions per-slide.

<section data-background-transition="zoom">

Iframe Backgrounds

Since reveal.js runs on the web, you can easily embed other web content. Try interacting with the page in the background.

Marvelous List

  • No order here
  • Or here
  • Or here
  • Or here

Fantastic Ordered List

  1. One is smaller than...
  2. Two is smaller than...
  3. Three!

Tabular Tables

Item Value Quantity
Apples $1 7
Lemonade $2 18
Bread $3 2

Clever Quotes

These guys come in two forms, inline: The nice thing about standards is that there are so many to choose from and block:

“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”

Intergalactic Interconnections

You can link between slides internally, like this.

Speaker View

There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.

Press the S key to try it out.

Export to PDF

Presentations can be exported to PDF, here's an example:

Global State

Set data-state="something" on a slide and "something" will be added as a class to the document element when the slide is open. This lets you apply broader style changes, like switching the page background.

State Events

Additionally custom events can be triggered on a per slide basis by binding to the data-state name.


        Reveal.on( 'customevent', function() {
        console.log( '"customevent" has fired' );
        } );
            

Take a Moment

Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.

Much more

THE END

- Try the online editor
- Source code & documentation