在一段時間內使用微控制器在一段時間內使用微控制器

閱讀賓果球第一和第二次曝光的群體。 這使得該過程顯著較慢,現在我們不僅具有兩種曝光,而且在兩個曝光之間的虛擬幀時間中,以允許在照明變化之後允許CMOS傳感器的恢復和容納。這就是為什麼整個成像過程實際上需要100毫秒。 掃描圖像的分辨率為220×220像素,具有8位像素深度。模擬灰度圖像僅由六位組成,其中剩餘的兩個位用於監視器上的藍色和紅色表示,因為灰度實際上是Greenscale。這些額外像素用作處理步驟之間的特殊標誌像素,在單步模式下可見,如藍色和紅色區域。在計劃開發和調試期間,這[原來是非常有用的。 整個過程分為17個步驟,也可以在單步模式下進行開發和調試目的。步驟顯示在屏幕的左上角(見下文),以及右上角有1毫秒分辨率的秒錶的當前狀態。這樣,很容易按照執行時間遵循並優化每個步驟。 球位置和伸展 要準確定位球,計算Formulas CX =ΣCixai/Σai和Cy =ΣCiyai/ΣAI的X,Y坐標,其中CX,CY是X,Y坐標和A是每個像素的值。由於背景主要是黑色,在該步驟之前,CX,Cy將大致在球的中心。然後,整個幀緩衝器被稱為2D塊,使得質心在坐標x = 110,y = 110處,其位於幀的中心。該中心標有2×2紅色像素(位7),僅用於開發人員方便,因為許多情況下的處理固件忽略位6和7。 接下來,測量球直徑,計算用於不同直徑的周邊上的平均像素值。然後,背景(直徑外部的每個像素)被設置為“白色”,或者更具體地,更具體地,綠色(值0x3F),以便更好地隔離黑區域。在處理過程中,背景將設置為白色或黑色的幾次,每次需要選擇黑色(墨水)或白色(紙張)區域。 不可能完美地將球形變為平坦的表面,但如果圖像是非線性變形的,則可以改善形狀,如步驟3圖像。小型16位微控制器沒有算術協處理器,並且使用標準三角網站將消耗太多的處理器時間。這就是為什麼使用三角查找表,您可以在秒錶(最佳最佳藍色數字)上看到,在這種情況下,拉伸程序的執行時間僅為11毫秒。您還可以看出球的中心部分大多是不變的,並且邊緣是非線性拉伸的,使得球形變形被最小化。 在步驟4中,類似於Photoshop中的Unsharp掩碼功能,創建了一個新的模糊圖像。由於另一個全幀緩衝器的RAM空間沒有足夠的RAM空間,它在輔助圖像上執行,該輔助圖像被縮放到分辨率44×44。 unsharp掩模的功能非常重要,因為它保證了相對於“紙張”像素的更好地選擇“墨水”像素。選擇意味著“位7的設置”,它將導致VGA屏幕上的紅色區域。 現在在同一幀緩衝區中存在兩個圖像,灰度一(比特0-5)和二進制1(位7)。後者用於預處理步驟6,其中消除了小孔和划痕。所選圖像首先擴展和收縮,然後重複該過程隨著購買的操作反轉 – 這導致邊緣正在平穩圓形和無垃圾。 組件操縱 經過更多預處理步驟之後,發生了更多的主要業務。第一個被稱為“連接的組件”,其中選擇隔離區域,並且獲取每個孤立區域。這包括x和y尺寸,x和y中心坐標,選擇的像素數,以及距離框架中心的歐幾里德距離。這將有助於將每個組件作為數字,大圓圈,下劃線或背景進行分類。在此階段,如果數字包括一兩位數,則也會清楚。 此步驟需要大量處理時間,大約200毫秒。另一個問題是連接組件的標準算法需要相同大小的輔助幀緩衝器,因此我必須創建一個新的算法,該算法利用相同的幀緩衝區,以及用於短期坐標的小表。 此時,處理器很容易選擇最佳的識別候選人 – 它是距離球中心最小的歐幾里德距離的圓圈。截至此圓圈內的連接組件被考慮在內,還有其他一切都會曝光。 有問題的球是特殊的OCR球,下劃線數字,So可以測量旋轉角度。現在,圓的中心是已知的,程序旋轉虛擬“T”形式,該形式對應於下劃線形狀,在360°圓周圍的512步,計算它包含的許多“墨水”像素。最高額定計數決定了旋轉角度,然後將幀緩衝器的2D塊移動到圖像的底部最佳角(步驟12在最左側圖像上),並且執行旋轉,將位圖移動到相對角的旋轉幀緩衝區。由於對數查找表,這組操作只需要50毫秒。 每一步都會保持更好。使用不同顏色選擇數字,然後將一個數字移動到安全距離,然後將每個數字縮放到已知分辨率為30×46。 認出 正如這個讀者是我的第一個OCR項目,我天真地認為,識別過程將是解決的最艱難的部分。在每一步完全調試並逐一檢查後,我達到了第17次和最後一步。正如我已經指出的那樣,我的初步計劃是選擇一個神經網絡,但是我嘗試了一個簡單的算法並與之播放。我用幾個球評估它,你無法想像我看到它完美的工作有多震驚!最後,位圖已正確呈現為兩個ASCII編號。

LED條形乒乓球作為Arduino ShieldLED條形乒乓球作為Arduino Shield

[Schuyler Sowa]在他自己的LED乒乓球上工作困難。我們陳述了他的作品真正的報酬。遊戲是強大的,並且充滿了功能。 與原版Pong視頻遊戲相比,LED Pong只有一個軸,球體在線。如果在亮起的任一LED像素時按下條帶末端的按鈕,則球體將反彈。要添加一個問題修改[Schuyler]包括輻銷儀,其改變速度。 遊戲板是一米LED條帶,具有可單獨尋址的像素。它的費用為28美元,也是他在WS2801的困難難以遇到的第二種爭鬥(經常像燈串)。 Arduino Board控制遊戲,帶有ProtoboAd的屏蔽,以將組件連接。除了兩個單獨的按鈕外 – 從計算機鍵盤中被攻擊 – 您會注意到一對七個屏幕屏幕,作為記分牌以及舍入各個接口的HD44780字符LCD。

Fubarino競賽:單個PCB合成Fubarino競賽:單個PCB合成

這是富魯諾諾比賽的音樂條目,[結果]相當令人愉快。 首先,[Mats]通過使用Notes H,A和D來播放他的音樂知識來播放解鎖復活節彩蛋的和弦。 你說的是什麼? 鍵盤上沒有H? 你錯了。 在德國音樂傳統中,B自然被稱為H.這是一個使得Bach撰寫拼寫他的名字的曲調。 [墊子]在他的Plingplong合成器上是黑客攻擊。 第一個複活節彩蛋 – 您可以在夾子中與下八度音程中的H-A-D和弦突破後,在剪輯之後,拼寫在7段顯示器上的URL。 但是我們喜歡第二個蛋,與上八度音在上八度音和上面顯示的弦。 它利用3×5 LED網格滾動地址; 在這個靜止圖像中,顯示H. 這是Fubarino競賽的一個條目,有機會在Microchip作為獎品中的20個Fubarino SD板中的一個。

瀏覽器在Chrome瀏覽器中模擬Chromecast瀏覽器在Chrome瀏覽器中模擬Chromecast

我們的Chrome瀏覽器認為它是Chromecast加密狗。這是一個屏幕截圖,它播放了YouTube視頻。請注意橫幅橫幅和屏幕控制,它就像您在實際硬件上看到的屏幕控件。通過下載[Dz0ny]編程的Leafcast Python包來試用自己。 在克隆Github Repo之後,我們在編譯包裹中有一些問題。事實證明我們需要安裝Python-Dev並照顧它。啟動守護程序是一個簡單的命令,我們指定了我們的Chrome二進制路徑以及添加了一些標誌 1 瀏覽 – 姓名 – Chrome / USR / Bin / Google-Chrome – Fullscreen 一旦運行了Android YouTube應用程序,App會自動檢測到越漸變作為Chromecast設備。它給了我們一個關於界面上的新共享圖標的教程覆蓋。在播放期間按下該圖標推出了一個播放視頻的隱身窗口。 [dz0ny]鏈接到README中的設備配置JSON文件。如果您查看它,您會注意到NetFlix被列為“外部”,而其他則不列出“外部”。這是因為Chromecast協議使用二進制Netflix。其他人用本地WebSocket或云代理進行,因此它們可以使用此設置。

Hackaday獎品進入:攝影Hackaday獎品進入:攝影

攝影的便攜式LED閃光燈都是關於淺色的。它的名字在字面上最好 – 源於希臘語,照片。這就是為什麼攝影師在拍攝的一天中遵守的原因,為什麼instagrampers在日落時的地標在地標的聚會,以及為什麼閃光燈有助於您在黑暗中拍攝照片。從歷史上看,閃光以各種方式工作 – 例如,使用燃燒的鎂或氙燈。對於這種Hackaday獎品,[Yann Guidon]正在使用LED開發便攜式閃光燈。 到目前為止,您可能熟悉手機作為閃存單元的LED。然而,[Yann]正在佔據一個檔次。該構建基於100W的LED模塊,肯定可以抽出大量光線。建造的有趣部分是它的雙重性。 LED旨在以兩種方式之一操作。首先是在連續照明模式下,運行良好的模塊,低於其額定功率,從而降低LED和電源的張力,並使閃光燈能夠在購買時運行。在此模式下,溫度反饋將用於控制LED以管理功耗。另一個是脈沖模式,其中LED將過度縮小為毫秒,以創造更強大的閃光。 這是這種雙重性,它使基於LED的閃光在基於多功能的氙氣單元上具有潛在的優勢,僅限於僅限於脈衝操作。我們可以看到連續照明模式對需要緊湊,低成本照明服務的攝像機特別有用,這些照明器也可以用作脈衝單元。我們很激動,以了解如何解決包裝,熱量和控制問題隨著這個項目的發展! Hackadayprize2017贊助:

實用的物聯網加密在濃縮咖啡esp8266實用的物聯網加密在濃縮咖啡esp8266

eSpressif esp8266芯片組是三美元的“事物互聯網”發展委員會的經濟現實。根據流行的自動固件建築工地Nodemcu-Builds,在過去的60天內有13,341個自定義固件為該平台構建。其中,只有19%的SSL支持,10%包括加密模塊。 我們往往批評IOT部門缺乏安全,經常覆蓋殭屍網絡和其他攻擊,但我們將把我們的項目置於我們需求的相同標準嗎?我們會停下來識別問題,還是我們可以成為解決方案的一部分? 本文將專注於使用運行Nodemcu固件的流行ESP8266芯片對MQTT協議應用AES加密和哈希授權功能。我們的目的不是提供複製/粘貼靈棍,而是逐步完成流程,沿途識別挑戰和解決方案。結果是一個系統,該系統是端到端加密和認證,防止沿途竊聽,並欺騙有效數據,而無需依賴於SSL。 我們知道還有更強大的平台,可以輕鬆地支持SSL(例如Raspberry PI,Orange Pi,FriendlyArm),但讓我們從我們大多數人躺在最便宜的硬件上開始,以及適合我們許多項目的協議。如果您需要,AES是您可以在AVR上實施的東西。 理論 MQTT是一個輕量化的消息傳遞協議,在TCP / IP之上運行,通常用於IOT項目。客戶端設備訂閱或發佈到主題(例如,傳感器/溫度/廚房),這些消息由MQTT代理中繼。有關MQTT的更多信息,可在其網頁或我們自己的入門系列中提供。 MQTT協議沒有超出用戶名/密碼身份驗證的任何內置安全功能,因此通過SSL對網絡進行加密和認證是通用的。但是,SSL對ESP8266和啟用時,SSL可能更加苛刻,因此您將留下更少的內存為您的應用程序。作為輕量級替代方案,您只能加密已發送的數據有效負載,並使用會話ID和散列函數進行身份驗證。 直接執行此操作的是使用Lua和Nodemcu加密模塊,包括支持CBC模式中AES算法以及HMAC哈希函數。使用AES加密正確需要三件事來生成密文:消息,密鑰和初始化向量(IV)。消息和鍵是簡單的概念,但初始化向量值得一些討論。 當您在具有靜態鍵的AES中對消息進行編碼時,它將始終產生相同的輸出。例如,用key“1234567890abcdef”加密的消息“UsernamePassword”可能會產生“E40D86C04D723AFF”等結果。如果使用相同的密鑰和消息再次運行加密,則會獲得相同的結果。這為您打開了幾種常見類型的攻擊,特別是模式分析和重放攻擊。 在模式分析攻擊中,您可以使用給定數據的知識始終產生相同的密文來猜測不同消息的目的或內容而沒有實際知道密鑰。例如,如果在所有其他通信之前發送消息“E40D86C04D723AFF”,則可能會迅速猜測它是登錄。簡而言之,如果登錄系統是簡單的,則發送該數據包(重播攻擊)可能足以將自己標識為授權用戶,並且混亂隨之而來。 IVS使模式分析更加困難。 IV是與修改結束密文結果的密鑰一起發送的數據。顧名思義,它在數據進入之前初始化加密算法的狀態。對於發送的每條消息,IV需要不同,以便重複的數據加密到不同的密文,以及一些密碼(如AES-CBC)需要它是不可預測的 – 實現這一目標的實用方法只是為了每次隨機調整它。 IVS不必保密,但典型以某種方式混淆它們是典型的。 雖然這可以防止模式分析,但它沒有幫助重播攻擊。例如,重傳給定的一組加密數據仍將重複結果。為防止,我們需要驗證發件人。我們將使用公共,偽偽裝生成的每條消息的會話ID。通過發佈到MQTT主題,可以由接收設備生成此會話ID。 防止這些類型的攻擊在幾種常見用例中是重要的。互聯網控制的爐灶存在,拋開效用,如果他們沒有使用不安全的命令,那將是很好的。其次,如果我是從一百個傳感器的數據記錄,我不希望任何人用垃圾填充我的數據庫。 實用加密 在Nodemcu上實施上述需要一些努力。您將需要編譯的固件,除了任何其他人之外,還包括“加密”模塊您的申請。不需要SSL支持。 首先,讓我們假設您與以下內容的內容連接到MQTT代理。您可以將其實現為來自加密學的單獨功能,以保持清潔。客戶端訂閱了SessionID頻道,該頻道適當地發布了很長的偽隨機會話ID。您可以加密它們,但這不是必需的。 1 2 3. 4. 5.

從門戶網站2從門戶網站2

的機器人Wheatley已經超過4年,因為Portal 2推出,但Wheatley,帶有英國口音的AI角色仍然是一個迷人的角色。 [evie bee]建造了一個惠麥利複製品,配有聲音,運動和一個發光的眼睛。 Wheatley的身體由藍色絕緣泡沫製成,也稱為XPS泡沫,與UHU聚氨酯膠疊在一起。這形成了一個球體,然後切成細節。 Papier Mache粘土用於加強薄泡沫。 這種構建的電子產品提供了光,運動和聲音。眼睛通過總共3個Arduino控制伺服件移動:兩個用於眼睛的運動,一個允許它打開和關閉。運動由兩個操縱桿控制。 Adafruit音樂板提供聲音,可連接到揚聲器和Velleman聲音到輕型套件。這個套件控制著眼睛的LED,使其對Wheatley的聲音作出反應。 休息後,你可以在你身上看這個wheatley咆哮。當然,如果你要有一個惠麥利,你也需要一個劍道土豆。

用加速度計用加速度計

[Viktor]洗衣機監控衣物洗衣機做得很好地清潔衣服,但它對此保持有點太安靜。機器沒有聲音警報讓他知道循環已經完成。他決定建立自己的警報,只能在機器的一側拍打。 您可以看到幾個磁鐵將電路板握住洗衣機的金屬外殼。該板沒有真正連接到任何類型的機器電路,因此這也應該與任何類型的單位相同地工作。由於飛思卡爾MMA7361 3軸加速度計,檢測基於運動。當他開始一堆洗滌時,他將電源開關翻轉。驅動設備的PIC 12F683開始監控加速度計進行更改。如果在沒有讀取運動的情況下超過一分鐘,壓電蜂鳴器開始嗶嗶聲。這是一個樂趣,也可以沿著該烤箱預熱報警加載的相同線路輕鬆解決方案。

所有明亮的想法所有明亮的想法

[Uri Shaked]遺憾的魔法燈泡在他的智能燈泡的遺漏時令人嘆為觀止,因為它是一個充滿激動人心的危險 – 現在他有一個完全有效的藉口將它破解成一個神奇的燈泡。 第一步是拆卸燈泡並將其轉化為在微小的130mAh電池上運行。在燈泡的基礎內,電源板,藍牙和無線電電路以及LED板沒有留下更多的空間,但他能夠適用於Lipo電池的3.3V和12V升壓電壓穩壓器。 [顫抖]的自我強加的Perk圓形是還楔入充電電路 – 他從上一個項目中選擇了它 – 進入燈泡,而不是在需要更多的果汁時拆卸它。將零件重新焊接在一起:容易。在Minuscule Puzzle-Box內部擬合所有內容:硬。 Kapton磁帶在限制空間中停止短褲時驗證了很有價值。 為了安全起見,[顫抖]也將燈泡從其基礎上分離出來,以便它與一些普通燈泡混合。他指出,除非您是持牌電工,否則一些國家在一些國家亂混在這樣的燈泡中是違法的,除非您是一個持牌電工,如果插入(擰緊?)進入房屋的電路,這可能很容易出現顯著的故障。 [送]也設法將此項目與他以前為某些驚人的效果建立的燈塔,以及集成了檢測聲音的藍牙的IOT功能,適當地改變燈泡的顏色和亮度。 如果您是Apple用戶,我們以前有一種方法可以讓Siri控制菲利普斯彩色燈泡。更好的是,如果可以通過可見光通信的想法融合這一點,可以控制一套具有光電二極管或其他這樣的接收器的設備套件,如真正的魔杖,燈泡。