發表文章

MPU-6050&webServer網頁顯示-micropython

圖片
 MPU-6050&webServer網頁顯示-micropython 實驗目標: 此次實驗要把實時量測的加速度計和陀螺儀xyz值顯示於網頁上。 MPU-6050簡介 MPU-6050 IMU (慣性測量單元)是一個 3 軸加速度計和 3 軸陀螺儀傳感器。加速度計測量重力加速度,陀螺儀測量旋轉速度。此外,該模塊還測量溫度。該傳感器非常適合確定移動物體的方向。 MPU-6050 是一個帶有 3 軸加速度計和 3 軸陀螺儀的模組。 陀 螺儀- 用於測量旋轉速度 (rad/s),這是角度位置沿 X、Y 和 Z 軸(滾動、俯仰和偏航)隨時間的變化。這使我們能夠確定物體的方向。 加 速度計- 測量加速度它可以感應重力 (9.8m/s2) 等靜態力或振動或運動等動態力。  MPU-6050  測量 X、Y 和 Z 軸上的加速度。理想情況下,在靜態物體中,Z 軸上的加速度等於重力,並且在 X 和 Y 軸上應為零。 加 速度計- 可以使用三角法計算橫滾角和俯仰角。但無法計算偏航。 接線 須匯入的程式庫 將以下的py檔上傳到esp32板上 mpu6050.py import   machine class   accel ():      def   __init__ ( self ,  i2c ,  addr = 0x 68 ):          self . iic  =  i2c          self . addr  =  addr          self . iic .start()          self . iic .writeto( self . addr ,  bytearray ([ 107 ,  0 ]))    ...

MPU-6050加速度-陀螺儀-溫度傳感器-micropython

圖片
  MPU-6050加速度-陀螺儀-溫度傳感器-micropython 實驗目標: MPU-6050 IMU(慣性測量單元)是一個 3 軸加速度計和 3 軸陀螺儀傳感器。加速度計測量重力加速度,陀螺儀測量旋轉速度。此外,該模塊還測量溫度。該傳感器非常適合確定移動物體的方向。 MPU-6050簡介 MPU-6050 是一個帶有 3 軸加速度計和 3 軸陀螺儀的模組。 陀 螺儀- 用於測量旋轉速度 (rad/s),這是角度位置沿 X、Y 和 Z 軸(滾動、俯仰和偏航)隨時間的變化。這使我們能夠確定物體的方向。 加 速度計- 測量加速度它可以感應重力 (9.8m/s2) 等靜態力或振動或運動等動態力。  MPU-6050  測量 X、Y 和 Z 軸上的加速度。理想情況下,在靜態物體中,Z 軸上的加速度等於重力,並且在 X 和 Y 軸上應為零。 加 速度計- 可以使用三角法計算橫滾角和俯仰角。但無法計算偏航。 接線 須匯入的程式庫 新開一個 mpu6050.py 和 main.py 放一起,並上傳到ESP32板上 程式碼 import   machine class   accel ():      def   __init__ ( self ,  i2c ,  addr = 0x 68 ):          self . iic  =  i2c          self . addr  =  addr          self . iic .start()          self . iic .writeto( self . addr ,  bytearray ([ 107 ,  0 ]))       ...

紅外線遙控器控制LED-micropython

圖片
 紅外線遙控接收-micropython 紅外接收器模塊使用 VS1838 光電二極管紅外接收器。它成本低且易於使用。 引腳: 它有 3 個引腳,即: 1. G - 接地引腳。 2. V - 電源電壓。 3. S——為紅外接收信號引腳。 上傳 micropython_ir Library of Peter Hinch 函式庫 : # MIT License #  # Copyright (c) 2020 Peter Hinch #  # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, su...

MQTT&node-RED控制二軸云台-mpython

圖片
 MQTT&node-RED控制二軸云台-mpython 承接 使用PWM控制伺服馬達-micropython 這篇,透過node-red加入mqtt訂閱主題控制二軸云台 有一些感想紀錄下來,我發現其實像mqtt或者wifi連網,大都是固定一個寫法,其它不同的模組分為讀取數值或用數值受控制的元件,只要套用上去就可以。 首先主要是被控制的伺服馬達,所以先把它測試一下,參考這篇( 點我 ) 測試好之後,就可以開始加入wifi和mqtt了,但因為我用的是樹莓派建立的MQTT,所以這陪分前提是要有樹苺派,如何在樹苺派上建立Node-RED和MQTT,可以參考這篇( 點我 )。

使用PWM控制伺服馬達-micropython

圖片
 使用PWM控制伺服馬達-micropython 伺服電機可以從 0 度旋轉到 180 度,但最多可以旋轉 210 度,具體取決於製造。可以通過將適當寬度的電脈衝應用到其控制引腳來控制這種旋轉程度。伺服每 20 毫秒檢查一次脈衝。 1 ms(1毫秒)寬度的脈衝可以將伺服旋轉到0度,1.5ms可以旋轉到90度(中位),2 ms脈衝可以將其旋轉到180度。 接線方式 GND -> ESP32  GND  pin; Power -> ESP32  VIN  pin; Signal ->  GPIO 13  (or any PWM pin).

使用AdafriutIO-dashboards控制Neopixel燈條—mpython

圖片
使用AdafriutIO-dashboards控制Neopixel燈條—mpython  原本是打算使用Nord-RED或直接網頁控制,但還沒搞的很懂 尤其寫網頁的部份,偶然在網路上搜到原來Adafruit也有出Dashboards 但是好像只能試用30天,但是沒關係,多認識一點不同的平台也很好 先到這裡註冊 - https://io.adafruit.com/ 接下來,我們在 Adafruit IO 中為 NeoPixels 的顏色創建 三個“ 紅色 ”、“ 藍色 ”和“ 綠色 ”。 然後點進去剛創建好的群組裡,接著下個步驟 最後,我們調整塊的設置。每個 RGB 值都是一個從 0 到 255 的整數。我們相應地配置滑塊。完成後,點擊“CREATE  BLOCK”。 API的key和username 程式的部份 from   machine   import   Pin from   neopixel   import   NeoPixel from   time   import   sleep import   network import   urequests   as   requests import   ujson # Wifi credentials wifi_ssid  =  "C--" wifi_password  =  "c----------" # Adafruit IO authentication aio_key  =  "aio_iaRV12GqVjk*************" username  =  "bl-----" headers  = { 'X-AIO-Key' :  aio_key ,  'Content-Type' :  'application/json' } # Don't forget the NeoPixels! np...

WS2812B燈條實作-miropython

圖片
 WS2812B燈條實作-miropython 在miropython有一個內建的RGB燈條的程式庫,可以很方便的拿來運用 但我發現我灌最近新的mpython系統時,沒有支援了,不過沒關係,可以 找一下這個庫把它手動上傳到板子上。 neopixel.py程式庫在此下載- neopixel.py https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/blob/main/neopixel.py 並上傳到板子後 將 RGB LED 燈條連接到 ESP32 或 ESP8266 非常簡單。您需要將   5 V 施加到 VCC 引腳, GND 到 GND ,並將 GPIO 5 連接到 IN (數據)引腳。我們將數據引腳連接到 GPIO 5 。 from   machine   import   Pin ,  sleep import   neopixel import   time n  =  8   #燈條數 p  =  5   #GPIO np  =  neopixel . NeoPixel ( Pin ( p ),  n ) while   True :    for   i   in   range ( n ):      np [ i ] = ( 100 ,  45 ,  230 )      time .sleep_ms( 30 )      np . write ()    for   j   in   range ( n ):      np [ j ]=( 10 , 130 , 50 )      time .sleep_ms( 60 )  ...