كيف صنعت منفاخ الثلج 3.0 مع تحكم Bluetooth من هاتف ذكي يعمل بنظام Android

هذا هو أقصر وقت زمني لتحويل جزازة العشب الآلية إلى منفاخ ثلج DIY مع تحكم Bluetooth من هاتف Android.




هذه هي النسخة الثالثة من منفاخ الثلج. الخيار الأول الذي قمت به من روبوت قتالي. الخيار الثاني من جزازة العشب ، وأنا أستعد للمنافسة . فيديو مع عرض تقديمي موجز لهذه "المنتجات" كان بالفعل على Geektimes ، أيضا في المفسد في أسفل المنشور.

التصميم الحالي للروبوت بسيط للغاية. تتم إزالة الطبقة العليا من الثلج بواسطة مكشطة. يتم رمي الطبقة السفلية جانبية من تحت منفاخ الثلج. وحدة الطاقة عبارة عن محرك احتراق داخلي من جزازة العشب اليدوية بسعة 0.9 حصان محركات الدفع هي محركات تروس من ماسحات VAZ. يتحول ICE إلى المسمار. تدفق الهواء والتأثير الميكانيكي للمسمار يرفع الثلج من السطح ويرميه إلى الجانب من خلال مجرى الهواء. التنورة حول منفاخ الثلج تمنع الثلج من التحليق. يعمل المطاط الملولب على تحسين نفاذية الوحدة بشكل كبير.


الإدارة


تحكم البلوتوث من هاتف أندرويد. Arduino nano + Monster Motor Shield + Bluetooth HC-06

Bluetooth HC-06 يعمل على 3.3V ، أي من الضروري للعملية الصحيحة للقيام بتحويل المستويات المنطقية. بدون هذا ، ستعمل الدائرة ، ولكن قد تكون هناك مشاكل.

فيما يتعلق بـ Monster Motor Shield ، هناك الكثير من القضايا المثيرة للجدل ، ادعى شخص ما أن نسبة كبيرة من الزواج. أنا حقا أحب هذا المجلس ، لأنه يحمل التيار حتى 30 أمبير.


اردوينو


لتلقي البيانات من Bluetooth HC-06 ، استخدمت برنامج Serial من أجل ترك إمكانية التصحيح من خلال الجهاز الطرفي عبر المنفذ التسلسلي للأجهزة. هذا ، على وجه الخصوص ، كان مطلوبًا لتتبع البيانات التي نحصل عليها من Arduino. في أبسط رسم ، نتحقق من الحرف المستلم عبر Bluetooth وتشغيل برنامج تشغيل المحرك.
كود اردوينو
#include <SoftwareSerial.h>
#define BRAKEVCC 0
#define CW   1
#define CCW  2
#define BRAKEGND 3
#define CS_THRESHOLD 100

int inApin[2] = {7, 4};  // INA: Clockwise input
int inBpin[2] = {8, 9}; // INB: Counter-clockwise input
int pwmpin[2] = {5, 6}; // PWM input

int statpin = 10;

SoftwareSerial mySerial(2, 3); // RX, TX
char a,b;

void setup()  
{
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


 pinMode(statpin, OUTPUT);

  // Initialize digital pins as outputs
  for (int i=0; i<2; i++)
  {
    pinMode(inApin[i], OUTPUT);
    pinMode(inBpin[i], OUTPUT);
    pinMode(pwmpin[i], OUTPUT);
  }
  // Initialize braked
  for (int i=0; i<2; i++)
  {
    digitalWrite(inApin[i], LOW);
    digitalWrite(inBpin[i], LOW);
  }

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
    digitalWrite(statpin, HIGH);
    
  if (mySerial.available()){
        a=mySerial.read();

    if(a=='F'){
  motorGo(0, CW, 1023);
  motorGo(1, CW, 1023);
    }
    if(a=='B'){
  motorGo(0, CCW, 1023);
  motorGo(1, CCW, 1023);
    }
    if(a=='L'){
  motorGo(0, CW, 1023);
  motorGo(1, CCW, 1023);
    }
    if(a=='R'){
  motorGo(0, CCW, 1023);
  motorGo(1, CW, 1023);
    }
     if(a=='I'){
  motorGo(0, CW, 500);
  motorGo(1, CW, 1023);
    }
    if(a=='G'){
  motorGo(0, CW, 1023);
  motorGo(1, CW, 500);
    }
    if(a=='H'){
  motorGo(0, CCW, 1023);
  motorGo(1, CCW, 500);
    }
    if(a=='J'){
  motorGo(0, CCW, 500);
  motorGo(1, CCW, 1023);
    }
       if(a=='S'){
  motorOff(1);
  motorOff(2);
    }

    Serial.write(a);
    }else{
      
    }
  
}


void motorOff(int motor)
{
  // Initialize braked
  for (int i=0; i<2; i++)
  {
    digitalWrite(inApin[i], LOW);
    digitalWrite(inBpin[i], LOW);
  }
  analogWrite(pwmpin[motor], 0);
}

void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm)
{
  if (motor <= 1)
  {
    if (direct <=4)
    {
      // Set inA[motor]
      if (direct <=1)
        digitalWrite(inApin[motor], HIGH);
      else
        digitalWrite(inApin[motor], LOW);

      // Set inB[motor]
      if ((direct==0)||(direct==2))
        digitalWrite(inBpin[motor], HIGH);
      else
        digitalWrite(inBpin[motor], LOW);

      analogWrite(pwmpin[motor], pwm);
    }
  }
}



أندويد


على Google Play ، عدد كبير من التطبيقات الجاهزة للتحكم عن بعد. من كل شيء ، أحببت هذا التطبيق أكثر .


الواجهة

منطق
التطبيق يرسل التطبيق كل رمز ثاني للمجموعة الحالية من الأزرار المضغوطة عبر البلوتوث.
  • "S" - توقف
  • "F" - تفضل
  • "B" - ظهر
  • "L" - إلى اليسار
  • "R" - إلى اليمين
  • "أنا" - إلى الأمام وإلى اليمين
  • "G" - إلى الأمام واليسار
  • "H" - للخلف واليمين
  • "J" - ذهابا وإيابا

الإدارة ممكنة عن طريق الضغط على المفاتيح واستخدام الجيروسكوب. وظائف التطبيق تافهة للغاية ، ولكن هذا يكفي.

فيديو




منفاخ ثلج الفيديو 1.0 و 2.0
, . -. , , , ..



ملاحظة: المشروع التالي هو روبوت مستقل تحت الماء. أستعد لمسابقة X-Prize . :). الارتباط . يبقى لتوفير 2000 دولار.

الموعد النهائي للتسجيل هو 30 حزيران (يونيو) 2016 (11:59 مساءً بالتوقيت العالمي المنسق / 4: 59 مساءً بتوقيت المحيط الهادي). رسوم التسجيل $ 2،000.00 USD.

Source: https://habr.com/ru/post/ar388581/


All Articles