丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
DIY 正文
發(fā)私信給驛帆
發(fā)送

10

十歲孩子做了個(gè)數(shù)字時(shí)鐘送媽媽,順便把作業(yè)交了

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

十歲孩子做了個(gè)數(shù)字時(shí)鐘送媽媽,順便把作業(yè)交了

Liz:Alex是我十歲的兒子。最近和我合作完成了一個(gè)學(xué)校布置的作業(yè)。這是一個(gè)很成功的作業(yè),同時(shí)作為父母的我們也給予他很好的指導(dǎo),因此我想在這里與大家分享這次經(jīng)歷。

以下是Alex的分享:

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

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

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

在測試完第一個(gè)數(shù)碼管和芯片后,我在樹莓派電腦上編了一個(gè)程序進(jìn)行第二次測試。我用4個(gè) GPIO管腳連接到引腳A、B、C和D芯片。這個(gè)程序會(huì)從數(shù)字0到9循環(huán),然后在二進(jìn)制中用“high”和“l(fā)ow”的邏輯判斷來實(shí)現(xiàn)打開或關(guān)閉管腳的目的。

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

十歲孩子做了個(gè)數(shù)字時(shí)鐘送媽媽,順便把作業(yè)交了

關(guān)于程序

當(dāng)樹莓派電腦啟動(dòng)時(shí),我的數(shù)字時(shí)鐘程序也會(huì)自動(dòng)啟動(dòng)。

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

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

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

開始循環(huán)時(shí),我是這樣做的:

  • 和電腦對照時(shí)間(電腦連接互聯(lián)網(wǎng)以確保時(shí)間準(zhǔn)確)

  • 小時(shí)的數(shù)字會(huì)在1和23之間循環(huán),所以當(dāng)小時(shí)大于12時(shí),我會(huì)減去12.

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

  • 這樣一來,我們就得到了所有數(shù)字的二進(jìn)制。然后我們就可以用1和0所代表的高低接口來表示了。(比如7,我們就可以表示為低高高高,因?yàn)樗亩M(jìn)制寫法是0111 。)

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

    十歲孩子做了個(gè)數(shù)字時(shí)鐘送媽媽,順便把作業(yè)交了

  • 接下來我們用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);
}

電路板

十歲孩子做了個(gè)數(shù)字時(shí)鐘送媽媽,順便把作業(yè)交了

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

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

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

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

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

外殼

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

最后

曾經(jīng)有一個(gè)新聞,說一個(gè)學(xué)生帶了個(gè)自己做的電子鐘到學(xué)校去,老師以為是炸彈,都報(bào)警了!真是嚇?biāo)缹殞毼伊?,為了不讓我面臨這樣的人生大場面,爸比和媽咪事先打電話通知了老師。我覺得,老師一定會(huì)記得我的,因?yàn)樗龁柕梅浅T敿?xì),像查戶口一樣。

不過,這只是我的作品的開始啦。我準(zhǔn)備把它改進(jìn)一下,再送給媽媽。我想加一個(gè)報(bào)警器,還有攝像頭、麥克風(fēng)和揚(yáng)聲器,這樣就可以進(jìn)行人臉識別了。要是可以的話,我還想讓它變成更高級的東西,就像鋼鐵俠一樣。

via raspberry pi

2015-2016賽季全球創(chuàng)客馬拉松深圳大學(xué)站已經(jīng)開始接受報(bào)名啦!關(guān)注“硬創(chuàng)邦”(微信號:leiphone_bang),回復(fù)“深大”即可參與報(bào)名!而且,雷鋒網(wǎng)在未來三個(gè)月內(nèi)選一個(gè)合適的時(shí)間,在北上深選擇一個(gè)地點(diǎn),舉辦創(chuàng)馬“火星救援”專場!詳情可點(diǎn)此處了解。

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

十歲孩子做了個(gè)數(shù)字時(shí)鐘送媽媽,順便把作業(yè)交了


雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:

編輯

正在學(xué)日語的大吃貨萌妹
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說