How to Build een Stairbot met Makeblock (30 / 32 stap)

Stap 30:

 [mw_shl_code=applescript,true]#include "MeOrion.h" #include MeGyro gyro; MeDCMotor lifer1(PORT_1); //升降1 MeDCMotor lifer2(PORT_2); //升降2 MeDCMotor rw(M2); //1号驱动轮 MeDCMotor fw(M1); //4号驱动轮 MeLineFollower lineFinder1(PORT_7); // 巡线 MeLimitSwitch upWard1(PORT_3, SLOT2); // 1号升降限位开关 MeLimitSwitch forWard2(PORT_4, SLOT1); // 4号轮子限位开关 MeLimitSwitch upWard2(PORT_4, SLOT2); // 2号升降限位开关 MeUltrasonicSensor ultraSensor(PORT_8); // 1号轮子超声波 void setup() // 初始化,前后升降装置回收 { Serial.begin(9600); gyro.begin(); lifer1.run(-250); while (!upWard1.touched()); lifer1.stop(); lifer2.run(-250); while (!upWard2.touched()); lifer2.stop(); } void Step2() { float p = 15; float i = 0.01; float angle = 0; float targetAngle = 0; float integration = 0; float err = 0; while (NotStop()) { gyro.update(); float angle = gyro.getAngleX(); err = angle - targetAngle; integration += err; int speed1 = 200; int speed2 = 200; speed2 = speed1 + err * p;// + integration * i; lifer1.run(speed1); lifer2.run(speed2); //delay(10); } lifer1.stop(); lifer2.stop(); } int startTiming = 0; unsigned long startTime = 0; int NotStop() { int16_t distance; distance = ultraSensor.distanceCm(); delay(10); if (0 == startTiming) { if ((distance < 10) && (distance > 1)) { return 1; } else { startTiming = 1; startTime = millis(); return 1; } } else { unsigned long currentTime = millis(); if (currentTime - startTime < 2500) //超声波检测不到楼梯后延时2.5秒 { return 1; } else { return 0; } } } void loop() { startTiming = 0; startTime = 0; //阶段1 小车前进 fw.run(60); rw.run(60); //1号 4号轮子推动小车前进 int16_t distance; do { distance = ultraSensor.distanceCm(); delay(10); } //阶段2 碰到楼梯 主动轮停止 整体车架上升 while (!((distance < 4) && (distance > 1))); //如果碰到楼梯 fw.stop(); rw.stop(); Step2(); //阶段3 1号 4号轮子推动小车前进 fw.run(60); rw.run(60); //阶段4 2号轮子巡线传感器检测到楼梯 主动轮停止 升降装置1把2号轮子收回去 while (!(lineFinder1.readSensors() != S1_IN_S2_IN)); lifer1.run(-250); fw.stop(); rw.stop(); while (!upWard1.touched()); //1号升降限位开关检测升降结束 lifer1.stop(); Adjust(); //阶段5 1号 4号轮子推动小车前进 fw.run(60); rw.run(60); //阶段6 4号轮子限位开关检测到4号轮子碰到楼梯 主动轮停止 2号升降装置回收4号轮子 while (!forWard2.touched()); lifer2.run(-250); fw.stop(); rw.stop(); while (!upWard2.touched()); //1号升降限位开关检测升降结束 lifer2.stop(); //阶段7 循环阶段1 //阶段8 循环阶段2 } void Adjust() //陀螺仪控制1、2号升降电机控制平衡 { int p = 40; //float i = 0.05; float angle = 0; float targetAngle = 4; //float integration = 0; //float err = 0; do { gyro.update(); angle = gyro.getAngleX(); //err = (angle - targetAngle); //integration += err; lifer2.run((angle - targetAngle) * p);// + i * integration); //delay(10); } while(fabs(angle - targetAngle) > 1); lifer2.stop(); } [/mw_shl_code] 

Gerelateerde Artikelen

How to build een elektrische Longboard met telefoon control how

How to build een elektrische Longboard met telefoon control how

Elektrische longboards zijn awsome!TEST BEELDEN IN DE VIDEO HIERBOVENHOW TO BUILD EEN ELEKTRISCHE LONGBOARD BEDIEND VANAF EEN TELEFOON MET BLUETOOTHUpdate #1: Grip tape geïnstalleerd, enkele aanpassingen aan de snelheidsregelaar hebben betekend ik he
How to Build een koepel van Earthbag

How to Build een koepel van Earthbag

Opmerking: Als u nieuw bij earthbag bouwen bent, eerst lezen de inleidende Stapsgewijze Earthbag gebouw Instructable en How to Build een Earthbag Roundhouse . Ook zijn mijn nieuwe Earthbag gebouw gids en Earthbag gebouw DVD nu beschikbaar.Wij dit ear
How to Build een 3-voudige Chinese picknickmand

How to Build een 3-voudige Chinese picknickmand

How to Build een 3-voudige Chinese picknickmandIn één keer een cadeau voor een pas getrouwd stel, het trapsgewijze picknickmand is een nogal ongewone item en niet een project waarvoor gemakkelijk u instructies voor vandaag vindt. Dit instructable bev
How to Build een frisdrank fles raketwerper

How to Build een frisdrank fles raketwerper

How to Build een frisdrank fles raketwerperDus we een picknick werk hadden en we wilden sommige kinda geeky fun... werd een frisdrank fles raket lanceren gesuggereerd... probleem is we hebben niet een draagraket en de picknick was binnenkort! Nooit a
How To Build een grimmige industrieën Iron Man Arc Reactor... Zeer zeer low-cost...

How To Build een grimmige industrieën Iron Man Arc Reactor... Zeer zeer low-cost...

How To Build een grimmige industrieën Iron Man Arc Reactor... Zeer zeer low-cost arc reactor diede meeste kan zeer gemakkelijk maken.nu heb ik een vinyl cutter en ik heb gebruik van een stuurlieden cnc router maar het gaat hier om een te bouwen datie
How to Build een Website

How to Build een Website

Leer hoe een Website te bouwen. Eerst moet je een idee, wat je het maken van de website over. Een vindplaats voor info, entertainment, of blog. U wilt een onderwerp waarin u geïnteresseerd bent, zodat u houden toe te voegen post of pagina's. Hopelijk
How to Build een Lightsaber in Word 2010

How to Build een Lightsaber in Word 2010

How to Build een Lightsaber in Word 2010.Stap 1: Stap 1Open Word 2010Stap 2: Stap 2Ga naar invoegen en klikt u op shapesStap 3: Stap 3Bouwen van uw gevestStap 4: Stap 4 Het toevoegen van een mes met behulp van een afgeronde rechthoek. Merk de witte b
How to Build een Truck Bed organisator

How to Build een Truck Bed organisator

How to Build een veelzijdig en verstelbaar Truck Bed organisatorGotta vrachtwagen? Die niet nodig een vrachtwagen bed organisator of een opslagsysteem dat weerhoudt dat kleinere punten rollen rond in het bed van de vrachtwagen en uit bereiken?Ik weet
How to start een brand met een magnesium flint

How to start een brand met een magnesium flint

Auteur:Nicholas Bradley-Een student van de technische communicatie met een passie voor de buiten wereldDatum:Maart 4, 2015Inleiding:Gefeliciteerd hebt u gevonden mijn verbazingwekkend instructable! Mij wilden voor wekken iets nuttigs voor de outdoor
How To Build een boekenplank

How To Build een boekenplank

How To Build een boekenplank
How to Build een statiefkop

How to Build een statiefkop

How to Build een 3D statief hoofdU kunt zien dat kunnen we deze hoofd http://dpr.org.ua/index.files/Tour_Pizza.html
How to Build een elektrische Battlebot met behulp van batterijen

How to Build een elektrische Battlebot met behulp van batterijen

Heb je ooit wilde bouwen van een robot gebouwd voor vernietiging? Dit instructable zal u tonen hoe te bouwen van onze succesvolle bot, Roulette. Laat niet de titel dwaas u kan, het elektrische maar dit beest batterij aangedreven werd getest met behul
How to Build een Model raket lancering Controller met een verwisselbare sleutel

How to Build een Model raket lancering Controller met een verwisselbare sleutel

Deze instructies begeleidt u bij het bouwen van een model controller voor de lancering van de raket met een verwisselbare sleutel voor gebruik met standaard Estes raket ontstekers. Bouwen van een lancering-controller met een verwisselbare sleutel kun
How to Build een simpel en Basic dubbele tomaat Container met Water iedere

How to Build een simpel en Basic dubbele tomaat Container met Water iedere

Wow! Een heleboel woorden te zeggen twee vijf gallon verf Emmers samengesteld zodat u een back-up water iedere in de bodem. Tomaten zal groeien echt goed in containers, maar je kan niet laten uitdrogen zelfs voor een dag. Ik beveel een emmer van 5 ga