成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    DIY 正文
    發私信給驛帆
    發送

    10

    十歲孩子做了個數字時鐘送媽媽,順便把作業交了

    本文作者: 驛帆 2015-12-02 11:18
    導語:又送了媽媽禮物,又順便把作業交了,一石二鳥,請叫他機智のboy。

    十歲孩子做了個數字時鐘送媽媽,順便把作業交了

    Liz:Alex是我十歲的兒子。最近和我合作完成了一個學校布置的作業。這是一個很成功的作業,同時作為父母的我們也給予他很好的指導,因此我想在這里與大家分享這次經歷。

    以下是Alex的分享:

    我媽想要一個數字時鐘,而我也需要完成我的作業。所以我花了兩個月把閑置的樹莓派小電腦做成了數字時鐘,一石二鳥,請叫我機智のboy。

    爸爸給我提供了來自戰斗民族俄羅斯的一些數碼管和芯片,還買了一個170V的電池來當數碼管的電源。我需要做的第一件事情就是測試這些原材料。

    首先我把數碼管,芯片和電源安裝在了電路板上。芯片有ABCD四個輸入端口,這些端口用來指示亮哪一個燈。比如在二進制里7表示為0111,所以我們需要把ABC設置為顯示,D設置為不顯示,(A=1, B=2, C=4 and D=8)來表示數字7。我測試的時候用一個跨線電纜使四個接口為0V(不顯示數字)或5V(顯示數字)。

    在測試完第一個數碼管和芯片后,我在樹莓派電腦上編了一個程序進行第二次測試。我用4個 GPIO管腳連接到引腳A、B、C和D芯片。這個程序會從數字0到9循環,然后在二進制中用“high”和“low”的邏輯判斷來實現打開或關閉管腳的目的。

    一旦這個程序順利運行,那么接下來測試所有的芯片和數字時鐘數碼管就會變得so easy。每個部分都正常運行,但有一個數碼管除外(測試時出現了3和9同時亮起的問題),所以我把這個數碼管用來表示小時的第一位,因為小時的第一位只需要顯示數字1(采用12小時計時法)。

    十歲孩子做了個數字時鐘送媽媽,順便把作業交了

    關于程序

    當樹莓派電腦啟動時,我的數字時鐘程序也會自動啟動。

    我用geany編輯器在c盤寫好了數字時鐘的程序。

    然后我打開管腳0,這也意味著用轉換器打開了高壓電源。

    接著我測試了時鐘,讓時鐘的小時部分從1到12顯示,分鐘部分從0到59顯示。

    開始循環時,我是這樣做的:

    • 和電腦對照時間(電腦連接互聯網以確保時間準確)

    • 小時的數字會在1和23之間循環,所以當小時大于12時,我會減去12.

    • 然后我將小時數和分鐘數都以二進制表示。也就是說,用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然后把先得到的余數作為二進制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來。

    • 這樣一來,我們就得到了所有數字的二進制。然后我們就可以用1和0所代表的高低接口來表示了。(比如7,我們就可以表示為低高高高,因為它的二進制寫法是0111 。)

    • 如果你是條小懶蟲,下面是我為你準備的完整表格,你可以參照。

      十歲孩子做了個數字時鐘送媽媽,順便把作業交了

    • 接下來我們用C語言來寫入代碼:

    #include       /* These are libraries */
    #include
    #include
    #include

    // turns a pin on or off
    void nixiePin(int p, int v){

     if (p != -1) {
       digitalWrite(p, v);
     }
    }


    // converts to binary and sends values to 4 pins
    void nixiePins(int p1, int p2, int p4, int p8, int v){

     nixiePin(p1,v&1);
     nixiePin(p2,v&2);
     nixiePin(p4,v&4);
     nixiePin(p8,v&8);
    }


    // splits the time into digits
    void nixieTime(int h,int m, int s) {

     nixiePins( 1, -1, -1, -1, h/10);  /* quotient of hour / 10  */
     nixiePins( 2,  3,  4,  5, h%10);  /* remainder of hour / 10 */
     nixiePins( 6,  7, 21, -1, m/10);  /* quotient of minute / 10*/
     nixiePins(22, 23, 24, 25, m%10);  /* remainder or min / 10  */
    }


    // makue sure all the digits work
    void testClock(void){
     int i;
     
     for (i=1; i<=12; i++) {
        nixieTime(i,0,0);
        delay(250);
     }
     for (i=1; i<=59; i++) {
        nixieTime(12,i,i);
        delay(250);
     }
    }


    // set up the pins we will use
    void initPin(int p) {
     pinMode(p, OUTPUT);
     digitalWrite(p, LOW);
    }


    // this is the main part of the program
    int main (void) {          
     time_t now;         /* its a variable that holds time info */
     struct tm *ntm;     /* it is a variable */
     int i;
     
     wiringPiSetup();    /* set up pins 0-7 and 21-29 to use  */
     for (i=0; i <=7;i++) {
       initPin(i);
     }
     for (i=21; i <=29;i++) {
       initPin(i);
     }
     digitalWrite(0, HIGH);            /* turn on high voltage power */
     testClock();                      /* test all the digits */

     while (1) {                       /*starts and infinite loop */
       now=time(NULL);                 /* ask the computer for the time */
       ntm=localtime(&now);            /* it formats the time */
       if (ntm->tm_hour > 12) {        /* if hour is more than 12 - 12 */
         ntm->tm_hour = ntm->tm_hour-12;
       }

       /* it tells it to write that number to the nixie tubes*/
       nixieTime(ntm->tm_hour,ntm->tm_min,ntm->tm_sec);  

       delay (1000);   /* wait for 1 second */
     }

     return(0);
    }

    電路板

    十歲孩子做了個數字時鐘送媽媽,順便把作業交了

    爸比幫我焊接了一個塑料板,電路板上面接有四條數碼管,每個對應了一個芯片(黃線就是了)。

    黑色線用于接地線,紅色線為5V和12V的電線,而每個芯片則對應了一條地線和一條5V線。

    不過,數碼管要求在170V的高壓下工作,所以我們還需要接一個高壓電源,這里我們用的是綠色線。而且,我們還得外加一個2毫安的電阻,防止電流過大燒毀了我們的作品。

    此外,我還加了一個晶體管和兩個電阻,以限制電流。這將等同于電源開關,用于控制高壓電源。

    我還加了一個USB端口,用于連接地線和5V線,作為供樹莓派的電源。

    外殼

    以上步驟完成后,我們就開始做外殼了。所謂人靠衣裝美靠亮噢不不不,美靠造型,我用的是木盒子,外加兩面的塑料透明板。這個盒子是爸爸幫我鋸的(人家還小嘛)。然后用鐵釘和螺絲固定,就完成了。

    最后

    曾經有一個新聞,說一個學生帶了個自己做的電子鐘到學校去,老師以為是炸彈,都報警了!真是嚇死寶寶我了,為了不讓我面臨這樣的人生大場面,爸比和媽咪事先打電話通知了老師。我覺得,老師一定會記得我的,因為她問得非常詳細,像查戶口一樣。

    不過,這只是我的作品的開始啦。我準備把它改進一下,再送給媽媽。我想加一個報警器,還有攝像頭、麥克風和揚聲器,這樣就可以進行人臉識別了。要是可以的話,我還想讓它變成更高級的東西,就像鋼鐵俠一樣。

    via raspberry pi

    2015-2016賽季全球創客馬拉松深圳大學站已經開始接受報名啦!關注“硬創邦”(微信號:leiphone_bang),回復“深大”即可參與報名!而且,雷鋒網在未來三個月內選一個合適的時間,在北上深選擇一個地點,舉辦創馬“火星救援”專場!詳情可點此處了解。

    此外還可加入全球創客馬拉松主群(群號:259592983),參與我們的互動討論~

    十歲孩子做了個數字時鐘送媽媽,順便把作業交了


    雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。

    分享:

    編輯

    正在學日語的大吃貨萌妹
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說