changed 6 years ago
Linked with GitHub

福壽螺誘捕裝置 V 1.0


Plan

第一代槪念設計


第一代實驗型設計


外接式實驗設計


第一代完整實驗設計


第二代 PVC 型設計: ongoing)
為減少3D列印的時間,方便快速大量製造


實驗小組:

組員: 幸延 , joe , 笑笑

實驗目的:

取代人力打撈福壽螺, 並用較低的成本讓農民可以容易取得.

工作事項:

  • 完成第一版3D設計圖 (2019/03 ~ 2019/09)

  • 測試馬達扭力 (2019/09/01)
    * MG995 (5V): failed 扭力仍然不足
    * A4988 (12V,1A) + 42 步進 : failed 扭力很差 (可能是電流不足)
    * A4988 (12V,1A) + 57 步進 : failed 扭力很差 (可能是電流不足)
    * GW4058-3162永磁直流渦輪蝸桿減速電機 + PWM直流电机调速器 DC马达驱动开关 30A : failed 扭力最差, 兩隻手指就可停止.(不知原因)
    * TB6560(12V,2A~ 3A) + 42 步進: 效果不佳
    * TB6560(12V,2A~ 3A) + 57 步進: 效果不佳
    * TB6600(12V,2A~ 4A) + 42 步進: 效果不佳
    * TB6600(12V,2A~ 4A) + 57 步進: 效果不佳
    * 行星減速步進電機(減速比 1:19) : 扭力很夠, 但轉速太慢,振動太大.
    * A4988 已燒毀3顆, 不宜再使用它, 因最大安培量不足
    目前測試的結論是: 設計上直接靠馬達轉動負載,看來之前有點失算,前幾天以為換驅動器加大電流到4A 就可解決…但只有好一點,仍然力矩不足, 現在就靠最下那一個行星減速步進電機了~

  • 防水Servo馬達35KG級扭力(可旋轉180度): 為了能更輕巧防水, 改用價位高一點的Servo, 待測使用效果, 它可以直接用 5V PWM驅動, 順利的話, 可以省下驅動IC.

  • 水中的防水及扭力測試 (待馬達扭力測試後再進行)

  • 外接指撥開關調時間, 電源開關

  • 福壽螺在水溫22度左右出沒,或許可以加個水下溫度計,預估溫度與補捉的關係曲線

  • 評估水下改用PVC 材料(四角正方, 六角正方, 八卦正方), 紗網用外掛式, 每片可獨立更換.

  • 太陽能控制器(10A) + 10W 太陽能板測試

  • 水位高度量測功能(Low priority)

  • 移動設計 1:
    a. 在田頭打樁, 用一條電纜拉著補螺機, 除了每30分鐘掃一次, 田頭馬達旋轉讓補螺機移位, 補螺機上裝輪子才不會卡土.這樣一來, 用這種方式可以達到自動位移, 又可靠上面的電纜供電給補螺機, 不用額外的電池.
    b. 同上在田頭打樁拉電纜,可借補螺機的馬達, 每旋轉一次就移動一點,減速機才有機會加大扭力,移動整台機器.

  • 移動設計 2:
    一台可移動的輪型機器, 其它都是水面下的盒子(沒電力)移動的機器做兩件事: a. 移動到補螺盒去轉動掃螺.b. 等補滿螺後, 負責去取回, 或放置到新的位置.
    好處:
    a. 這樣可以讓水下機構不用包含電機電池, 不會有防水問題.
    b. 電力問題改成可移動的輪型機器負責.
    c. 省下每台的成本, 5台補螺機搭配一台輪型機器.
    技術難度:
    輪型機器定位及 ROS 軟體搭配

  • 移動設計 3:
    同上在田間放置不含電機部份的補螺箱, 由改裝過的4軸飛至每個補螺機上驅動旋轉機構.
    好處:
    a. 這樣可以讓水下機構不用包含電機電池, 不會有防水問題.
    b. 電力問題改成由4軸飛行器負責.
    c. 省下每台的成本, 20~30台補螺機搭配一台4軸飛行器.
    d. 4軸飛行器改成換電系統, 也可空拍用.
    技術難度:
    DIY 一台4軸飛行器, 並可精準定位, 來回換電及水上旋停作業能力

  • 改用Linkit 7697 取代原有的 Arduino UNO/mini, 它有額外的BLE, Wifi 功能.可寫app經由 BLE /Wifi 去控制旋轉等待時間,或水溫及水位感測.

  • 用RTC module 來wake up, 以達到省電效果.

  • 比較米糠、鹿仔草、我們的誘餌的誘引率, 當調到最佳參數後,可以壓縮成無毒環保耳料塊,耳料自然溶解於水中誘補螺,方便清理,對於使用者也方便.

  • (Long term)在福壽螺身上綁鮮豔的乒乓球,觀察 1~2 小時後,福壽螺的移動最大距離, 也可在田的不同區域放不同顏色的球, 如果有空拍機支援, 每小時拍個一張, 用opencv辨識或許也可以算移動量/距離,

  • 短時間可能就做簡易量測就好,區竹子當起始距離,並且用誘餌吸引.

**TB6600 + 42/57 步進馬達接線 (只參考X軸) **

  • Arduino test code (只參考X軸)
# define EN 8 // stepper motor enable , active low
# define X_DIR 5 // X -axis stepper motor direction control
# define Y_DIR 6 // y -axis stepper motor direction control
# define Z_DIR 7 // z axis stepper motor direction control
# define X_STP 2 // x -axis stepper control
# define Y_STP 3 // y -axis stepper control
# define Z_STP 4 // z -axis stepper control


void step (boolean dir, byte dirPin, byte stepperPin, int steps)
{
    digitalWrite (dirPin, dir);
    delay (50);
    for (int i = 0; i <steps; i++) 
    {
        digitalWrite (stepperPin, HIGH);
        delayMicroseconds (3000);
        digitalWrite (stepperPin, LOW);
        delayMicroseconds (3000);
    }
}

void setup () {   // The stepper motor used in the IO pin is set to output
    Serial.begin(115200);
    Serial.println("init");
    pinMode (X_DIR, OUTPUT); pinMode (X_STP, OUTPUT);
    pinMode (Y_DIR, OUTPUT); pinMode (Y_STP, OUTPUT);
    pinMode (Z_DIR, OUTPUT); pinMode (Z_STP, OUTPUT);
    pinMode (EN, OUTPUT);
    digitalWrite (EN, LOW);
}

void loop () {
    Serial.print("testest");
    step (false, X_DIR, X_STP, 200); // X axis motor reverse 1 ring, the 200 step is a circle.
    step (false, Y_DIR, Y_STP, 200); // y axis motor reverse 1 ring, the 200 step is a circle.
    step (false, Z_DIR, Z_STP, 200); // z axis motor reverse 1 ring, the 200 step is a circle.
    delay (1000);
    step (true, X_DIR, X_STP, 200); // X axis motor forward 1 laps, the 200 step is a circle.
    step (true, Y_DIR, Y_STP, 200); // y axis motor forward 1 laps, the 200 step is a circle.
    step (true, Z_DIR, Z_STP, 200); // z axis motor forward 1 laps, the 200 step is a circle.
    delay (1000);
} 

TB6560 + 42/57 步進馬達接線 (ardino test code 同上)


以下為 35KG servo 馬達簡單線路示意圖
Arduino pin9 接PWM.

以下為 35KG servo 馬達的arduino程式

#include <Servo.h>

Servo myservo; // 建立一個 servo 物件,最多可建立 12個 servo

int pos = 0; // 設定 Servo 位置的變數
int SpinIntervals = 60 * 20; // 60secs * 20 = 20mins 
int forwardSpeed = 100; //forward delay time(ms)
int BackwardSpeed = 10; //Backward delay time(ms)
void setup() {
  myservo.attach(9); // 將 servo 物件連接到 pin 9
  Serial.begin(9600);
}

void loop() {
  int t= 0; 
  // 
  // 慢慢的轉動, 把螺掃進箱內, 可調整 forwardSpeed , 數字愈大愈慢 
  // pos 從 180 度旋轉到 0 度,每次 1 度
  //
  Serial.println("forward ");
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos); // 告訴 servo 走到 'pos' 的位置
    delay(forwardSpeed); // 等待 100ms 讓 servo 走到指定位置
  }

  //
  // 快速回到掃螺原點, 可調整 BackwardSpeed , 數字愈大愈慢
  // pos 從 0 度旋轉到 180 度,每次 1 度
  //
  Serial.println("Backward ");
  for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos); // 告訴 servo 走到 'pos' 的位置
    delay(BackwardSpeed); // 等待 10ms 讓 servo 走到指定位置
  }

  //
  // 每來回掃一次的等待時間, 參考SpinIntervals 
  //
  Serial.print("Standby ");
  Serial.print(SpinIntervals);
  Serial.println(" secs");
    
  for (t = 0; t < SpinIntervals; t++) {
    delay(1000); // 1 sec
  }
}


主控板:Linkit 7697
旋轉機構: 防水Servo馬達
主電源: 12V鋰電池
充電來源: 太陽能
感測器: 水溫/水位感測

可經由手機連線控制及讀取感測資料


2019/10/10: 第一次宜蘭場域測試

目的: 補螺機第一次實測
成效: 2小時補獲約40餘隻, 但馬達機構仍不順畅, 待debug.
改善計畫: 加強省電、安裝太陽能版、簡化機構材料及成本


2019/10/15: 第二次宜蘭場域測試

目的:

  • 比較蝦籠、科學家陷阱、補螺機的捕捉率
    成效: 天氣冷, 所有陷阱都掛零, 擇日再試
  • 比較米糠、鹿仔草、我們的誘餌的誘引率
    成效: 天氣冷, 所有陷阱都掛零, 擇日再試


2019/10/16: 宜蘭場域種植試驗

目的: 福壽螺肥料種植試驗


以下為參考資料:

スクミリンゴガイ (福壽螺)

  1. 日本的補螺影片

  2. 2019/5 的日本研究

    當電流通過電極時,福壽螺有一種聚集在負電極一側的習慣。該實驗是在佐賀縣佐賀市的一個有機蓮root公園中進行的,該公園長80米,寬50米。幾對正負電極以幾米的間隔安裝,。通電時,福壽螺聚集了起來。對其他生物沒有影響。

  3. 蚯蚓捕捉機 也是用電的

  4. 也是用電來補捉

  5. 米糠看來日本實驗也是吸引最多

  6. 合鴨農法

Select a repo