天天看點

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

電子與嵌入式系統設計譯叢 點選檢視第二章 點選檢視第三章

面向Arduino使用者的樹莓派實用指南:物聯網應用開發

Raspberry Pi for Arduino Users: Building IoT and Network Applications and Devices

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

[美] 詹姆斯·R.斯特裡克蘭(James R. Strickland) 著

梁捷 曹建 胡訓強 譯

第1章

采 購 清 單

本章将用較短的篇幅介紹開始學習前所要準備的電子元器件。本書中并未涉及很多硬體項目,并且很多軟體項目也基于相同的硬體實作。如果你在閱讀本書前一直使用Arduino,那麼你應該有想要連接配接到樹莓派的項目。閱讀更多的類似“點亮7段LED”的教程真的有必要嗎?你可能已經很了解Arduino的主要内容,比如ATmega328P、74LVC-245、LED陣列、電阻和連接配接線等。假設你已經準備好了工具—數字萬用表、線切割器和剝皮器、溫控焊台等。

如果你的Arduino經驗主要是關于連接配接各種電路闆,那麼除了購買電子元器件外,你可能還要讀一讀之前我寫過的一本書—《Junk Box Arduino:Ten Projects in Upcycled Electronics》(Apress出版),那本書主要涵蓋了線上Arduino教程和基礎電子知識方面的内容。在本書中,我假設你已經掌握Arduino和基礎電子知識了。

樹莓派是低成本、高性能的32位或64位單闆計算機,可以運作Linux的一個釋出版本(稱為Raspbian),也可以運作完整的桌面系統和現代網頁浏覽器(Chromium)。本書将介紹3B+型樹莓派(以1.4GHz運作的四核64位版本)和Zero W型樹莓派(以1GHz運作的單核32位版本),它們可以通過USB、HDMI、802.3以太網、藍牙和WiFi連接配接現代外設。

1.1 樹莓派

你需要一個樹莓派—3B+型或者Zero W型,當然,使用3B型樹莓派也可以。

1.1.1 3B+型樹莓派

3B+型樹莓派是目前性能最好的樹莓派,如圖1-1所示。

3B+型樹莓派采用運作頻率為1.4GHz的四核、64位的Arm Cortex-A53作為CPU核心,具有容量為1GiB的運作頻率為900MHz的RAM,還帶有遵循1000BASE-T 802.3的以太網(帶寬300Mbit/s)元件、遵循802.11ac協定的2.4GHz的WiFi元件以及4.2版本的藍牙元件。它在microSD卡上存儲資料,并具有1個HDMI接口、1個3.5mm模拟音視訊插孔、4個USB 2.0接口、1個1000BASE-T以太網接口以及1個40針GPIO接頭(引腳已置入其中),還有分别連接配接相機和顯示器的串行接口。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

下面詳細介紹樹莓派的主要部件。

1.四核處理器

在3B+型樹莓派的Broadcom 2837B0晶片中,内置了4個CPU(中央處理器),它們可以一次執行4個線程或程序(以後再讨論)。通常,在多核CPU中,每個CPU有自己的一級(L1)緩存,但同時共享二級(L2)緩存。這意味着,每個CPU有自己獨占的容量小卻速度快的記憶體空間(L1緩存),L1緩存不與外部存儲器直接通信,而是與L2緩存通信,L2緩存依次由系統RAM更新資料。

緩存用來做什麼?設定緩存是為了提高運作速度。從距離CPU遠近的角度,主存比緩存更遠一點(幾毫米),是以與CPU通信必須經過更多的電子器件,每一個階段都增加了一點延遲。如果CPU中内置了RAM,那麼就意味着CPU不必等待系統RAM更新資料。當CPU忙于執行指令時,内置RAM還可以幫助CPU讀取下一條指令。當程式不是順序執行時(跳轉指令),這個過程将變得很複雜,考慮并且處理這些有關緩存的工作,是CPU制造商的主要任務。

2. 64位寄存器

每個寄存器(CPU工作過程中,其内部用來存儲資料的區域)至少是64位或者8個位元組寬(位元組隻是描述位寬的一種數量表示。在20世紀七八十年代,你可能聽說過計算機科學家談論12位和16位為一位元組,但現在位元組已被标準化,1位元組隻為8位)。從技術上來說,這是基本需求,盡管至系統RAM的接口位寬也可能是64位。

結果呢?每個核可以執行64位的單條指令。如果指令是與RAM交換資料,你可以一次移動8位不相關的位元組。64位的真正價值是對64位值進行數學運算。如果需要對64位值進行數學運算,而CPU無法處理64位數值,則必須寫很多額外的代碼來将數值轉換為32位,甚至8位,之後才能進行數學運算,然後再把結果轉換為64位。執行指令需要時間,那些運作在64位資料上的指令能節省時間。

3. ARM Cortex-A53

ARM Cortex-A53是CPU核心的一種類型。ARM(Acorn RISC Machine)是根據CPU核心定義的一個大家庭,從ARM派生的所有晶片都是為英國劍橋Acorn公司生産的Archi-medes個人計算機所設計的。後來,這些晶片由ARM Holdings公司和劍橋Acorn公司設計,授權給衆多晶片制造商生産,包括樹莓派系統晶片的制造商Broadcom公司。為了完善Arduino生态圈,Atmel公司(現在叫作Micorchip公司,它是用于Ardunio的ATmeg微控制器的制造商)也開始生産基于ARM的産品。

幾乎所有的平闆電腦和手機中都裝有ARM核心,此外,衆多嵌入式裝置中也裝有ARM核心。ARM核心高效省電,這對于電池壽命至關重要。ARM核心種類繁多。其中,A53基于v8-A架構,有1~4個核心,向下相容32位核心ARM v7,這無疑是樹莓派基金會選擇它的原因。與之前的版本相比,它能更好地處理浮點數數學運算,計算能力也更強。A53主要用于平闆電腦和手機中。3B+型樹莓派中的BCM2837B0還内置了Broadcom VideoCore IV GPU,事實上,GPU擁有比ARM更多的晶片空間,和台式計算機中的GPU完全一樣,它也用于圖形加速和視訊流解碼。

4.網絡

現在,802.3 1000BASE-T以太網是有線以太網最常見的形式。它在樹莓派和五類雙絞線之間的傳輸速度高達300Mbit/s。如果你在過去10年中使用過以太網,那麼你可能已經用到了這種1000BASE-T類型的布線(從10BASE-T、100BASE-T發展到1000BASE-T是巨大的進步,相比之下,10BASE-2實在是糟糕透了)。

802.11 ac是目前WiFi的标準。如果有一個802.11ac無線接入點(WAP),理論上傳輸速度可以達到1.3Gbit/s,盡管樹莓派的實際速度隻有75~100Mbit/s。我沒有這樣的WAP,是以不能以個人經驗評價它的速度,但可以說它的速度足夠快了。

5. GPIO引腳

盡管樹莓派上的GPIO引腳的電平嚴格限制在3.3V,但是具有許多和Arduino上的GPIO引腳相同的功能。如果在樹莓派的GPIO接頭上用上5V電壓,則會損毀晶片本身的内部線路(也可能造成更多的破壞)。它們沒有任何保護或限流措施。3B+型樹莓派已經在GPIO接頭内部焊接好了引腳,這一點十分重要,當你感覺在擁擠的印刷電路闆上進行焊接不舒服時,就能體會到這一點。

6.攝像頭和顯示器串行接口

攝像頭和顯示器串行接口可以插入排線,連接配接到官方的樹莓派專用攝像頭和顯示器上。

7. Gibibyte和Gigabyte

JEDEC标準定義了描述記憶體大小的機關:千位元組(KB)為1024B,兆位元組(MB)為1024KB,千兆位元組(GB)為1024MB。在20世紀90年代,硬碟制造商曾利用十進制的千兆位元組(1000MB)代替二進制的千兆位元組(1024MB),這種行為存在數字欺騙,導緻了訴訟。為了解決這個問題,在ISO80000-13中,ISO/IEC對顯式二進制(預設情況下)單元集進行了标準化:kibibyte(KiB)、mebibyte(MiB)、gibibyte(GiB)等。是以,你的microSD卡将以十進制千兆位元組出售,其容量标稱略帶欺騙意味,但你的RAM(感謝JEDEC标準)是按照二進制千兆位元組出售。在本書中,我們将使用ISO/IEC标準。

1.1.2 為何購買3B+型樹莓派

如果你打算在樹莓派上做很多開發,并且價格符合預算,相較于用Zero W型樹莓派來實作各種項目,還是建議你選擇3B+型樹莓派。

在編寫本書時,3B+型樹莓派才剛剛面世,是以大部分代碼原型實際上是在它之前的型号上完成的,隻是稍微慢一點。即使如此,更快的速度和更大的RAM也會使編譯變得更愉快。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.1.3 Zero W型樹莓派

如果你的預算很緊張,或者你暫時不想花費30多美元購買樹莓派,那麼你可以選購Zero W型樹莓派,如圖1-2所示。Zero W型樹莓派價格不到3B+型樹莓派的一半(大約為10美元),但可以在其上執行本書中的所有項目。我已經測試了這本書中的所有項目,即使你對書中項目做了相應的修改,也都可以在Zero W型樹莓派上運作。

Zero W型樹莓派是最便宜的一款,内置了藍牙和802.11n WiFi元件,采用了與之前的型号中相同的BCM2835處理器晶片。BCM2835處理器是一個單核、32位ARM、1GHz主頻、帶有視訊IV GPU的處理器。Zero W型樹莓派中裝有容量為512MiB、頻率為600MHz的記憶體,這是從原來的樹莓派基礎上超頻得到的,基本穩定。還有一個較早的ARM核心版本ARM11,具有ARMV6架構而不是ARMV8-A。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

Zero W型樹莓派與3B+型樹莓派在外設方面主要存在兩個差別—Zero W型樹莓派沒有1000BASE-T以太網插孔或IC,并且隻有一個微型Micro-B型USB(Mini-USB)接口,除此之外它們的外設都相同。

Zero W型樹莓派出廠時沒有GPIO引腳。這意味着如果你想要普通的GPIO引腳,必須依據電路闆上的焊接孔自己焊接。為了後面使用友善,你也可以這樣做—将Zero W型樹莓派插進一個分線闆,并焊接了一個有2×20引腳的分線闆,如圖1-2左下角所示(這個分線闆可以在Adafruit購買:

https://www.adafruit.com/product/1979

)。由于接線闆上的孔是通孔并且是雙面的,我把引腳放在下面,并焊接在闆的上面。這讓我的Zero W型樹莓派和分線闆插座直接連接配接起來,而不需要用到帶狀電纜。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.1.4 為何購買Zero W型樹莓派

綜上所述,Zero W型樹莓派價格低廉。如果你想通過本書找到一種有效、便宜的方法來把你的小工具連接配接到網上,選擇Zero W型樹莓派是最便宜的。

如果你選擇了Zero W型樹莓派,可能需要用到一些擴充卡,而使用3B+型樹莓派則不需要。關于擴充卡我們将在1.1.5節中介紹。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.1.5 擴充卡

從圖1-2中還可以看到,為了與鍵盤、滑鼠和螢幕一起使用,需要為Zero W型樹莓派配置擴充卡。最上面的是一個Mini-HDMI轉HDMI的擴充卡,這可以讓你用标準的HDMI電纜連接配接顯示器和Zero W型樹莓派。

下面是USB OTG主機電纜,一端連接配接到Zero W型樹莓派的Micro-B OTG插座,另一端是标準的USB的母插座,可用于連接配接鍵盤。確定你得到的是OTG電纜,而不是Mini-USB電纜,它們不是同一個連接配接器。我把鍵盤連接配接到OTG電纜上,把滑鼠連接配接到鍵盤上。

如果你想完成第11章的項目,還需要一個USB集線器和一個microSD轉USB的擴充卡。這些都是常見的器材,比較容易獲得。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章
帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.1.6 其他型号的樹莓派

3B型樹莓派(沒有“+”)同樣适用于這些項目。其他的樹莓派應該也可用。理論上,如果你把一個WiFi網卡插入一個2012年出廠的樹莓派,也可以完成本書中的所有項目,但速度會比Zero W型樹莓派慢。雖然Zero W型樹莓派的處理器和老型号的樹莓派的處理器一樣,但是它的運作速度更快,并且記憶體是早期樹莓派的兩倍,這些應該起作用。

因為我沒有在其他的樹莓派上測試過書中的項目,是以不能說它們都适用。假設你已經用過Arduino,準備開始學習使用樹莓派,這樣,你需要購買新的樹莓派。此外,第一代的樹莓派有一些問題,特别是在機載電源和SD卡的損壞方面,這有時會帶來不好的體驗。

從2012年起,樹莓派變得越來越好。插上USB裝置而導緻樹莓派崩潰(主要因為有電流波動)的日子已經一去不複返了,強烈推薦大家使用樹莓派。

還有一點也很重要:在2代樹莓派之前,樹莓派都有26個GPIO引腳。引腳數量不同,處理器晶片的引腳也不同。如果你使用2代樹莓派之前的型号,本書中的電路圖将不适用,并且許多當下的樹莓派外圍裝置(包括所有HAT)将不能連接配接使用。建議至少選用Zero W型樹莓派。

1.2 樹莓派的GPIO分線闆

除了以上裝置外,你還需要一個樹莓派GPIO分線闆,如圖1-3所示。當然,如果沒有分線闆,你也可以選用母轉公預制跳線來引出引腳,但不推薦這種做法。我們将使用樹莓派上幾乎所有的引腳,奇怪的連接配接狀況會帶來很大困擾。

GPIO分線闆是樹莓派的專用器件,能夠讓你輕松地把樹莓派上的GPIO引腳連接配接到面包闆。通常,需要使用一個有40個引腳的電纜将它連接配接到樹莓派。

你可能很想和我一樣,使用一個舊的PATA(并口)40引腳電纜和一些引腳來連接配接GPIO,但不幸的是,它不起作用。通常,PATA20号引腳雖然接上了但并不與電路連接配接,可我們需要20号引腳連接配接上電路。這一部分沒有很好的替代品,雖然随着樹莓派的大量使用,這種連接配接電纜應該不少見。

分線闆有多種走線排列方式。不推薦使用直型闆,因為它們把絲帶電纜放在面包闆的一側或另一側,而且經常擋在面包闆上。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

我在本書撰寫時使用了一個分線闆。建議使用T型闆,如圖1-3所示。你可以買到組裝好的或是未組裝的分線闆。對于未組裝的分線闆,必須把插座和電纜頭焊接到分線闆上。顯然,如果你不想焊接未組裝的80個離得很近的引腳,還是買一個組裝好的分線闆吧。

有一個需要考慮的重要内容—對于現代樹莓派,如3B+型樹莓派和Zero W型樹莓派,需要40個引腳的分線闆,而不是26個引腳的,可在分線闆的說明文檔中看到相關資訊。本書使用40個引腳的分線闆。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.3 5V USB微型電源

圖1-4顯示了為樹莓派設計的5V USB微型電源。至少對于項目開發而言,在所有供電方案中,建議使用這一電源。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

我用過手機充電器和USB集線器,還有樹莓派的其他電源,這些供電方案都是很可靠的。插入錯誤的鍵盤時,鍵盤會無故抖動,停電可能會損壞microSD卡,這些故障現在已經不會出現,而你第一次知道這些故障存在,可能是因為出現了在系統啟動時當機或者發出了系統警告等情況。總之,購買一個好的電源是值得的。

其他電源選項

如果擁有一個桌上型電腦電源,你可能會嘗試用它為樹莓派供電。将用于電源供電的Micro-BM(也叫作MicroUSB)連接配接器插入樹莓派,它也應該能工作。我不推薦将電源先連接配接到面包闆上,然後将樹莓派的5V供電線連接配接到面包闆。我嘗試過這樣做,樹莓派可以啟動并正常運作,但會繞過内置在樹莓派供電子產品中的保險絲和其他電源保護電路。我的台式電源是改裝的PC ATX電源,最大可輸出10A。當繞過樹莓派供電子產品時,如果出現短路,樹莓派中沒有任何電路可以承受這麼大的電流,是以,一定要使用樹莓派闆載的供電子產品。

你可能想從桌面計算機或擁有獨立供電的USB集線器為你的樹莓派供電。基于上述原因,Adafruit甚至出售能夠供電的USB集線器。這一供電方案也能工作。如果根據規範生産且連線正确,USB 1.0和2.0端口最大可以提供500mA電流。對于Zero W型樹莓派,這可能就足夠了,但不一定适用于其他型号的樹莓派。大多數USB電纜不能承載大電流,并且它們的電阻相當高。帶有沉重載荷的高電阻電纜會将電壓降到5V以下,會使你的樹莓派性能下降(老舊的樹莓派不會降低性能,而是直接被毀壞)。

你可能還想用iPad的大功率充電器連接配接一個标準的USB電纜來為樹莓派供電。原來我就是這樣用的,後來我發現,把萬用表跨接在樹莓派的5V電路軌道上,也就是在電纜電阻和充電器的輸出電壓之間,得到的樹莓派端的電壓略小于4.5V,樹莓派供電不足。

對于本書中的項目來說,這些供電方案都可用。建議使用一個專用的樹莓派電源,因為它一定會起作用。對于開發項目而言,一個由于供電不足而表現奇怪的樹莓派并不是我們所期望的。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.4 內建電路

1.4.1 ATmega328P-PU

如果熟悉Arduino,你可能會認出圖1-5所示的Arduino Uno的核心。這是一個ATmega328P-PU。稍後,我們将用它制作一個Arduino相容裝置,并連接配接到樹莓派的GPIO端口上。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章
帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

比較ATmega328P-PU與樹莓派微控制器之間的規格是很有趣的。ATmega是一個8位AVR RISC微控制器,運作頻率為20MHz(按照大多數Arduino的标準,我們使其以16MHz頻率運作)。每一個時鐘周期内,ATmega執行大約一條指令,并具有SPI、I2C、模數轉換器和可程式設計的UART。它有32KiB的閃存和2KiB的RAM。與樹莓派相比,ATmega是一個更小、功能不太強大的計算機。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.4.2 16MHz TTL時鐘振蕩器

如圖1-6所示是一個16MHz的TTL時鐘振蕩器,整個振蕩器封裝在一個外殼中,除了供電元件外,不需要其他外部元件。它将為面包闆上的Arduino項目提供時鐘信号。

當大多數Arduino使用傳統的電容+晶體的方法産生時鐘振蕩時,我們将使用圖1-6所示的一體式封裝的時鐘振蕩器來完成這項工作。這是因為我們将要使用的無焊面包闆會給電路增加一定的電容,并且因存在電線長度、制造商、連接配接點的腐蝕等不确定因素,我們不能确定會增加多少電容。TTL時鐘振蕩器可以消除這些不确定性,并保證為ATmega運作提供一個16MHz的純淨信号。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

圖1-6顯示了一個“全尺寸”14引腳雙列直插版本的時鐘振蕩器。這些辨別是通用的。我從我一大堆時鐘振蕩器中取出了一個16MHz的14引腳雙列直插式TTL振蕩器,它工作得很好。下面列出的資料手冊就是一個例子。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.4.3 74LVC245A八進制總線收發器

74LVC245A八進制總線收發器(見圖1-7)是一種通常用于驅動電子總線的IC。對于Arduino,我們習慣于把想要的元件通通接入Arduino引腳。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

所有ATmega微控制器都是魯棒的,其引腳有内部保護以及強大的驅動電路。不是所有IC都是這樣的。樹莓派的GPIO引腳根本沒有得到很好的保護,是以任何噪聲、過載、過電壓都被直接發送回系統晶片。如果系統晶片中引腳的驅動電路被損壞,将是不可修複的。

74LVC245A具有一項附加功能,即能作為一個低電壓版本的八進制總線收發器。這意味着其最大工作電壓為3.3V,并且其邏輯高電平輸出,按照這個最大電壓的大百分比輸出。但其輸入能處理高達6.5V,遠遠高于傳統的5V TTL電平。

我們将使用74LVC245A作為電平轉換器。通過使用這個IC将輸入電壓減少到3.3V左右,就可将5V TTL信号安全地輸入樹莓派中。你可能會問,3.3V左右輸出的74LVC245A怎麼能驅動5V的TTL邏輯電路(這裡指ATmega328P-PU)?這是一個很好的問題,我将在第12章中回答。也可以參考ATmega資料手冊的第386頁。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.5 LED

本書項目中所用到的LED沒有特别之處,可以使用任何普通型号的LED(可能亮度低、電流高),但要連接配接它們,可能需要适當調整原理圖。

1.5.1 10段光帶

我使用了一對由Kingbright生産的型号為DC10GWA的10段LED光帶,因為在之前的其他項目中就使用了它們。其外觀如圖1-8所示。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

你可以使用任何型号的LED 10段光帶,隻要它們的電流需求不超出樹莓派所能提供的最大值(将在第5章中闡述)即可,但是仍要注意安全。一些較大的光帶是用LED連接配接在一起而形成的,使用這種光帶需要複用樹莓派的引腳,而不是将每個LED都連接配接一個樹莓派引腳。多路複用非常有趣,但是我并不打算在本書中介紹它。Kingbright LED也有内容豐富、易于閱讀的資料手冊,據說這是很多其他型号的LED所不具備的。我是從Mouser購買的Kingbright LED,但是大多數電子産品供應商都有這種LED或者與之相似的LED。為了清晰起見,我們在這裡按照每個LED連接配接樹莓派的一個引腳。它的資料手冊可以參見

http://www.us.kingbright.com/images/catalog/SPEC/DC10GWA.pdf

1.5.2 普通LED

我還使用了一個普通的LED,如圖1-9所示。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

在第12章中我們将使用它作為工作訓示燈。我從Vishay得到了一個關于通用LED的資料手冊,但還是無法明确這個LED是哪個廠商生産的。我猜測它的正向電壓降大約是2V,并為它選擇了一個保守的電阻值,可以使LED足夠亮以便于觀察。使用普通的LED就能做到以上兩點。至于高亮度、顔色多樣以及更進階的類型,則沒有什麼必要。在你的零件抽屜裡發現一個LED了嗎?就用它吧。它很可能會工作得很好。

這裡就不列出供應商了,大多數電子商店中都能買到LED。其資料手冊可在

http://www.vishay.com/docs/83030/tllg540.pdf

找到。

1.6 microSD卡

本書所支援的樹莓派都使用相同的microSD格式的SDHC/SDXC卡,如圖1-10所示。它們是小卡,而不是數位單反相機中最常用的那種标準SD卡。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

microSD是指存儲卡的實體格式。SDHC和SDXC是指與這些卡通信的電子規範。SDHC(Secure Digital High Capacity,安全數字高容量)表明存儲卡的容量介于4GiB和32GiB之間。建議為你的樹莓派裝備這種存儲卡。樹莓派也可以和SDXC卡通信,但是在大多數情況下,不需要那麼大的容量。如果确實需要大容量,最好把一個USB-SATA擴充卡插在樹莓派上,然後挂載一個小硬碟或者SSD。SD卡的速度很慢,它們并不是為Linux設計的。

為樹莓派安裝一張8GiB的卡。你也可以暫時用4GiB的卡,但長期使用可能會出現存儲空間不足的問題。Linux正常運作需要磁盤空間,它不能在系統空間快滿的情況下運作。Class 10卡讀取速度快,但在樹莓派上,Class 10和其他Class的讀取速度并沒有太大差別。建議選用正規廠家生産的存儲卡。

1.7 USB閃存裝置

對于樹莓派,一個大小至少為1GiB的U盤,或是一個配有USB讀卡器的microSD卡都是可用的。我們将在第11章中使用它們來編寫檔案。這些閃存裝置很容易得到,我使用了一個配有USB讀卡器的microSD卡。如圖1-11所示為一些USB閃存裝置的例子。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.8 電阻

我們在整個工程中隻使用了2種阻值的電阻。即使對于由20個LED構成的陣列,也隻需要2種電阻。

如圖1-12所示為阻值為220Ω,功率為1W的電阻。它會将通過LED的電流降到10mA。從功率來看,1W的最大功率過高了(即實際工作功率遠遠小于1W)。我所見過的

電阻的最小功率是,但這仍然過高。對于大部分工程項目,我都用了功率為1W的電

阻,隻在第11章和第12章中用到了1/4W的電阻。你還需要一個阻值為10kΩ的電阻,如圖1-13所示,它是第12章中将用到的複位上拉電阻。同樣,這些電阻也比較容易買到。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章
帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

1.9 連接配接線和面包闆

連接配接線是很有用的工具,将各種器件正确連接配接,這些項目才得以進行。如果你熟悉Arduino,那麼你可能有自己最喜歡的一卷連接配接線。連接配接線的使用很簡單,我有一個連接配接線盒子(見圖1-14),它最主要的優點就是有多種顔色。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

連接配接線的制造商并不重要,實際顔色也不重要,隻要能明确線的連接配接走向就可以。我的連接配接線是由Elenco制造、從Microcenter購買的。連接配接線最重要的特性是它必須是22軌距(0.35mm)的,這一尺寸與面包闆的連線孔比對。同時,它必須是單股銅線,而不是多股絞線。為了能夠分辨清楚,建議至少準備3種顔色的連接配接線,一種顔色代表地線,一種顔色代表Vcc供電線,一種顔色代表資料線。最好有更多顔色。

  • 預制的跳線

    很多地方都出售預制的跳線。我有線束,但并不使用它們。由于反複使用或壞的操作習慣(請養成從根部拔出接頭的好習慣),導線很快就會從引腳接頭處斷開。有的時候,由于斷點位于熱塑管下,你并不知道連接配接線已經損壞了。我曾經是以困惑了好幾個小時,并試圖找出為什麼電路會停止工作。我曾不斷嘗試使用多種顔色的導線以使連線更加漂亮。這樣浪費了很多導線嗎?好吧,是的。如果這讓你不舒服,你可以購買預制的跳線,但要注意上面提出的問題。

  • 面包闆

    下面我們來讨論面包闆。如圖1-15所示就是我使用的面包闆。

這塊面包闆沒有什麼特别的,除了它是一塊新闆。我發現特别便宜的面包闆壞得也很快。價格便宜的面包闆上的小插孔比較容易磨損,并且出現磨損時不易被發現。如果電路莫名其妙地停止工作,或根本不工作,這時可能要使用萬用表檢查和確定面包闆小插孔是正常的,并檢查各電子器件和連線是否正常。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

從價格上就可看出面包闆是“愛好”級的還是專業級的。專業面包闆起價約為20美元,而且價格在大幅上漲。它們通常也有一個金屬底座,這有助于将它們調整到合适的角度。圖1-15中所示的是非專業的面包闆,是以我要冒一定風險。對于本書中的各種電路,我将用一塊舊的、品質更好的面包闆搭建電路原型,它仍然可靠。如果你接觸Arduino很久了,可能擁有一個品質更好的面包闆。如果沒有,就要考慮買一個。

1.10 微動開關

你需要一個通常為開狀态,支援瞬間動作的微動開關。隻有按下開關按鈕時,才會閉合電路。如圖1-16所示是我采用的微動開關。

帶你讀《面向Arduino使用者的樹莓派實用指南:物聯網應用開發》之一:采購清單第1章

我發現用鉗子把它的引腳拉直,就可以很容易地把它放進面包闆。但這樣,它們也很容易從面包闆裡彈出來。同樣,從很多電器商店都能買到微動開關,或類似的能夠實作按鈕功能的其他原件。

1.11 焊接工具和技巧

看上去你十分需要焊接工具和工具使用技巧。實際上,如果你能找到一個樹莓派分線闆和一個已經焊接了引出針腳的樹莓派,你也可以完成所有項目,不用焊接。但如果要在電子方面有進步,那麼焊接是一項必備技能。為了進行焊接,找個好工具吧。我将在第11章簡要地介紹焊接工具和技巧。有了工具和技巧,再加上适當的指導,就能創造更多可能。

1.12 關于供貨商

你可能已經注意到,我為本章讨論的多數器件都列出了供應商名單。這并不是一個詳盡的清單。這些都是我最近用過的供應商,我從他們那裡購買電子元器件。

我是美國人,是以選擇的大多數供應商都在美國,Newark是我為英國讀者提供的。我已經列出了各種各樣的供應商,是以理想的情況是,你可以用1~2個訂單購買到所需的所有部件。通常(至少在美國)運費比購買它們更貴。舉例來說,如果你沒有選擇Mouser,而從其他管道訂購了LED、電阻器和其他器件(可能售價比Mouser便宜),也不得不多花幾美元才能從Mouser買到一個樹莓派,但算總的花費的話,就不如大多數器件都從Mouser買,節省的運費可能就足以彌補器件價格差額了。檢查一下運費。厘清運費的組成并按照最劃算的方式購買至少也是一件快樂的事。

1.13 關于元器件

當我的上一本書出版時,我曾收到一封一位來自印度的先生發來的電子郵件,問我是否可以用ATmega328P-PU代替我在書中所用的ATmega1284P-PU。

我忘記了确切的匯率換算,但結果是他購買ATmega1284P-PU的價格相當于我用50~ 100美元買一個IC晶片。我不敢給他提出建議,因為我在那本書中的建議之一就是“買一個備用,它們是廉價的”。由于匯率問題,實作上一本書中的項目的實際花費可能與我描述的非常不同。

這本書不同,書中許多項目都是圍繞軟體方面開展的。這也是樹莓派和Arduino之間的巨大差異。本書中,我盡量使用能夠滿足需求的便宜、常用的零件。

1.14 元器件一覽

下面簡要列出本書中用到的所有元器件,有些人覺得這種概覽性的清單更好。

  • 1個樹莓派,最好為3B+型樹莓派,盡管對大多數項目來說Zero W型樹莓派足夠了
  • 1個樹莓派分線闆
  • 1個5V的USB微型電源
  • 1個ATmega328P-PU微控制器
  • 1個16MHz TTL時鐘振蕩器
  • 1個74LVC245A八進制總線收發器(電平轉換器)
  • 2個10段LED光帶
  • 1個普通LED
  • 1個microSD卡
  • 若幹個220Ω電阻,功率至少為1/4W
  • 1個10kΩ電阻,功率至少為1/4W
  • 連接配接線
  • 1個無焊面包闆
  • 1個微動開關(按鈕),支援瞬間動作,通常為開狀态
  • 1個microSD到USB擴充卡,或容量為1GB或更大的U盤
  • 1個擁有獨立供電裝置的USB集線器(可選)

繼續閱讀