發表文章

1)ILI9341 TFT-2.4吋(320x240)-Arduino

圖片
  這款TFT買來放著有一段時間,突然想到就拿出來玩玩,之前想買是為了能做功能切換的天氣時鐘,但感覺要踩很多坑,畢竟從單純的LCD->OLED->TFT,更頂端就是這種觸摸顯示器。不過這或許有得研究了,先打算利用範例讓它跑看看。 市面上有一種是直接和UNO的針腳對應的模組,很方便,只要對準插上就好,它的背面也帶有記憶卡槽,屏幕是軟性的,應該是電阻式觸摸屏。 匯入程式庫 將下方兩個程式庫加入Arduino IDE的"草稿碼"匯入ZIP MCUFRIEND_kbv Adafruit_TouchScreen  ---->觸摸屏會使用到 使用範例 開啓 <檔案> - - <範例> -- <MCUFRIEND_kbv> -- <GLUE_Demo_320x240> --<上傳>至開發板

st7735-TFT測試-uno

圖片
st7735-TFT測試 ST7735-TFT TFT我一直以來有點響往制作天氣時鐘之類的運用,但找了很多教學都有點含糊, 所以也一直不知如何下手,而且聽說有很多庫都停更了。今天翻出買了一陣子的 TFT,型號是ST7735,早上就弄了一陣子,中午才找到合適的庫。 我參考了這裡的教學: https://www.youtube.com/watch?v=qHJAYjCqAok&list=WL&index=39 首先到此下載程式庫: https://github.com/adafruit/Adafruit-ST7735-Library.git 然後匯入AdruinoIDE,使用"範例" 依照上圖選擇範例檔 腳位的設定 選取對應的型號 選取Arduino nuo板子型號 序列埠選取 上傳

機械手掌-RobotHand-Arduino

圖片
機械手掌-RobotHand 之前做過機械手掌,我笑稱是"殘癈之手",因為硬體裝置都是用紙板和 一些小東西做成,控制的方法則是用自製彎曲感測器來達成,那個品質 真是.......,其實在#寶有賣壓克力和金屬合制的機械手掌,雖然小貴,但 品質還不錯。 主要這次我是學習利用opencv來達成目的,有個國外公司出了很多系 列的教學,很多免費和一些付費的,機械手我順道付上免費連結------ 可以先看看我做的視頻試範 | @  

平衡小車(balance-Robot)-基本平衡-Arduino

圖片
  平衡小車(balance-Robot)-基本平衡 參考- https://circuitdigest.com/microcontroller-projects/arduino-based-self-balancing-robot 前言 申明一下,有些原理和程式是借助一些原創者的文章做為參照,因為平衡車 如果真的要一步步從硬體和程式全包,須要花很多時間學習,尤其是PID 的寫法算法,慶幸的是有很多創者前人不吝分享,所以我這後人才得已少走 歧途。 平衡車原理 平衡小車是通過兩個電機運動下實現小車不倒下直立行走的多功能智能小 車,在外力的推拉下,小車依然保持不倒下。通過負反饋實現平衡。與上面保 持木棒直立比較則相對簡單,因為小車有兩個輪子著地,車體只會在輪子滾動 的方向上發生傾斜。控制輪子轉動,抵消在一個維度上傾斜的趨勢便可以保持 車體平衡了。 所以根據上述的原理,通過測量小車的傾角和傾角速度控制小車車輪的加速度 來消除小車的傾角。因此,小車傾角以及傾角速度的測量成為控制小車直立 的關鍵。我們的亞博智能平衡小車使用了測量傾角和傾角速度的集成傳感器陀 螺儀-MPU6050。 PID基礎原理 PID調節系統PID功能由PID調節器或DCS系統內部功能程序模塊實現,了解與PID調節相關的一些基本概念,有助於PID入門新手快速熟悉調節器應用,在自動調節系統中成功整定PID參數。 1、被調量 被調量就是反映被調對象的實際波動的量值。被調量是經常變化的。 2、設定值 PID調節器設定值就是人們期待被調量需要達到的值。設定值可以是固定的,也可以是變化的。 3、控制輸出     控制輸出指PID調節器根據被調量的變化情況運算之後發出的讓外部執行結構按照它的要求動作的指令。在PID調節器和執行機構之間還會有其他環節,比如限幅、伺服放大器等。限幅功能通常在PID調節器內完成;如果如果將PID、限幅和伺服放大器功能做在一台儀表內就構成閥位控制PID調節器;將伺服放大器和限幅做在執行機構裡就構成智能執行機構。 4、輸入偏差 輸入偏差時被調量和設定值之間的差值 5、P(比例) P就是比例作用,簡單說就是輸入偏差乘以一個係數。 6、I(積分) I就是積分,簡單說就是將輸入偏差進行積分運算。 7、D(微分) D就是微分,簡單說就是將輸入偏差進行微分運算 8、PID基本公式 PID調節器參數整定過程

MediaPipe+UNO手勢控制伺服馬達

圖片
  MediaPipe+UNO手勢控制伺服馬達 參考視頻網址: https://youtu.be/9iEPzbG-xLE MediaPipe 簡單來說是google跨平台而且開源的機器學習運用 MediaPipe是一款由Google開發並開源的數據流處理機器學習應用開發框架。它是一個基於圖的數據處理管線,用於構建使用了多種形式的數據源,如視頻、音頻、傳感器數據以及任何時間序列數據。 MediaPipe是跨平台的,可以運行在嵌入式平台(樹莓派等),移動設備(iOS和Android),工作站和服務器上,並支持移動端GPU加速。使用MediaPipe,可以將機器學習任務構建為一個圖形的模塊表示的數據流管道,可以包括推理模型和流媒體處理功能。 pinpong pinpong庫是一套控制開源硬件主控板的Python庫 ,基於Firmata協議並兼容MicroPython語法,5分鐘即可讓你上手使用Python控制開源硬件。 有興趣可以到 pinpong官網 看一下, 我是使用pycharm,所以首先安裝opencv-python,mediapipe和pinpong這兩個主要的程式庫 步驟1: 先把這個程式庫命名為handutil.py和主程式放一起 import cv2 import mediapipe as mp class HandDetector(): ''' 手势识别类 ''' def __init__ ( self , mode= False, max_hands= 2 , detection_con= 0.5 , track_con= 0.5 ): ''' 初始化 :param mode: 是否静态图片,默认为 False :param max_hands: 最多几只手,默认为 2 只 :param detection_con: 最小检测信度值,默认为 0.5 :param track_con: 最小跟踪信度值,默认为 0.5 ''' self .mode = mode self .m

MeidaPipe+UNO手勢控制neopixel燈條

圖片
MeidaPipe+UNO手勢控制neopixel燈條 偶然間看到一些神們分享mediapipe的神作,我一心響往,但又摸不著頭緒,因為學著學著很多東西弄了整個生活很緊張,一刻不得閒。 參考視頻網址: https://youtu.be/9iEPzbG-xLE MediaPipe 簡單來說是google跨平台而且開源的機器學習運用 MediaPipe是一款由Google開發並開源的數據流處理機器學習應用開發框架。它是一個基於圖的數據處理管線,用於構建使用了多種形式的數據源,如視頻、音頻、傳感器數據以及任何時間序列數據。 MediaPipe是跨平台的,可以運行在嵌入式平台(樹莓派等),移動設備(iOS和Android),工作站和服務器上,並支持移動端GPU加速。使用MediaPipe,可以將機器學習任務構建為一個圖形的模塊表示的數據流管道,可以包括推理模型和流媒體處理功能。 pinpong pinpong庫是一套控制開源硬件主控板的Python庫 ,基於Firmata協議並兼容MicroPython語法,5分鐘即可讓你上手使用Python控制開源硬件。 有興趣可以到 pinpong官網 看一下, 我是使用pycharm,所以首先安裝opencv-python,mediapipe和pinpong這兩個主要的程式庫 步驟1: 先把這個程式庫命名為handutil.py和主程式放一起 import cv2 import mediapipe as mp class HandDetector(): ''' 手势识别类 ''' def __init__ ( self , mode= False, max_hands= 2 , detection_con= 0.5 , track_con= 0.5 ): ''' 初始化 :param mode: 是否静态图片,默认为 False :param max_hands: 最多几只手,默认为 2 只 :param detection_con: 最小检测信度值,默认为 0.5 :param track_con: 最小

製作免持紅外線體溫器

圖片
製作免持紅外線體溫器 有感於新冠肺病毒的擴散,原本身在台灣感覺還算安全,但隨著時間和政策 病毒悄然在台灣擴散,大家出門的基本功就是口罩,酒精,體溫器。身為一 個小小班自研創客,當然要把自己在研究的東西用於現實生活上, 堅持 "不只是玩玩" 的心態。 最近二個月公司一早的朝會都固定要量體溫,用手持紅外線測溫,所以我想 用3D列印個外殼,做個掛壁免持的紅外線體溫器給公司同仁使用。 因為近期網路上已經很多創客大大做出相關成品,我也看中一個"國外"不錯的專案 所以我就直接轉成中文把重點轉移過來,當個實作紀錄。 參考網址: https://www.instructables.com/DIY-Non-Contact-IR-Thermometer/ (申明:以下紀錄和圖片是基於轉貼大部份和翻為中文,方便自己學習使用 The following records are based on records and are convenient for self-learning, so use reposting most of the content and some pictures) 普通的紅外溫度計可以測量新冠患者的體溫,也可能傳播病毒。手持式溫度計的主要缺點是其性能取決於操作者和到額頭的距離。為了解決這些問題,製造了一種可以安裝在牆上的設備,無需操作員即可在公共區域進行發燒篩查。當傳感器與額頭之間的距離足夠時,硬件可以自動測量人體溫度。 所需組件 1. Arduino Nano 2. GY-906 溫度傳感器 3. OLED 顯示器 4. IR紅外傳感器 5. TP4056 充電器模塊 6. 18650 電池 7. 18650 電池座 8. 5 V DC-DC 升壓轉換器(亞馬遜) 9. 切換開關 -15 × 21 毫米 10. 5 毫米綠色 LED 11. 5 毫米紅色 LED 12. 2 x 330 歐姆電阻器 13.壓電蜂鳴器 14. Header Pins 15. 杜邦線 16. 跳線 第 1 步:它是如何工作的? 工作原理很簡單,紅外測溫傳感器MLX90614在額頭與傳感器之間的距離(由紅外傳感器測量)匹配設定值時讀取人體溫度。傳感器讀數發送到 Arduino 進行處理,處理後的值顯示在 0.96' OLED 顯示屏上。 除了

自制彎曲傳感器(最後加上控制伺服馬達)

圖片
  自制彎曲傳感器 前陣子看了平台上一位老師試範超低成本制作彎曲傳感器 主要使用鉛筆碳粉為導體制作彎曲傳感器,決定也來試試 於是買了必須的材料,但可能我沒掌握好技巧,在塗滿碳 粉的紙上始終量不到阻值,插上Arduino也無法讀取到數值 ,有點失望之餘但不放棄的翻遍網路資源,發現有一種叫 石墨片的東西,一般是拿來做散熱用的,但它也兼具導電 的特性,有人就拿它來做彎曲傳感器,於是我蝦皮了五片 約200元,制作了一片成功了。 因為前一篇有紀錄我手工做了HandRobot,也想加入彎曲傳感器來控制 一番,這篇就先紀錄如何制成彎曲傳感器。 所須材料 石墨片 塑膠片 軟質資料夾 紙膠帶 透明膠帶 杜邦線 剪刀/美工刀

土炮制機械手掌(Hand Robot)+彎曲傳感器-Arduino

圖片
  機械手掌(Hand Robot)土炮制-Arduino 最近在很多平台上看到機械手掌被廣範使用在義肢上, 使得有須求的人得到一個很好的輔助功能,我自己本身 也是有殘缺的人,雖然不是四肢上,是聽覺有問題,所以能 感同身受,我相信未來能發展到任何殘缺都有能輔助的 AI設備可使用。然後這個動機使我也想利用Arduino來\ 做個機械手掌,了解一下箇中原理。 本想用3D列印手掌出來,但有點擔心要結合關節有難度 於是先用紙板裁剪,這裡要比較留意的是關節處要有足夠 的空間,才能彎曲,用紙板是最簡易的材料,因為紙板折彎後 放開,會自動攤平,其實也可以用實心的海綿,效果應該不錯。 材料 吸管若干支 紙箱紙板 小細線或尼龍線 伺服馬達 x5 PCA9685 x1 Arduino UNO x1 舵機固定在適當的位置後再來就剩下程式碼 程式碼 #include   <Wire.h> #include   <Adafruit_PWMServoDriver.h> #define   SERVO_FREQ   60  // Analog servos run at ~50 Hz updates //angleMax=600 //angleMin=150 Adafruit_PWMServoDriver   pwm  =  Adafruit_PWMServoDriver (); int   val ; void   setup () {    Serial . begin ( 9600 );    pwm . begin ();    pwm . setOscillatorFrequency ( 27000000 );    pwm . setPWMFreq ( SERVO_FREQ );   // Analog servos run at ~50 Hz updates    delay ( 10 ); } void   loop () {    for  ( int   i  =  500 ;  i  >  200 ;  i -= 20 )   {