Vylepšenie robota zo súpravy mBot Explorer Kit
Umiestnenie displeja a snímača vzdialenosti na robotovi mBot
Návod zo súpravy mBot Explorer Kit neuvádza možnosť súčasného umiestnenia snímača vzdialenosti Me Ultrasonic Sensor a displeja Me LED Matrix (8×16) v prednej časti robota mBot. Nezostávalo mi nič iné, len sa vydať vlastnou cestou zlepšujúcich nápadov, z ktorých som vybral jeden najpozoruhodnejší.
Najskôr som vyriešil uchytenie displeja prostredníctvom jeho akrylovej dosky, ktorú som otočil výstupkami (s podlhovastými otvormi) dole, aby som ju mohol pripevniť dvomi skrutkami M4 k čelnej stene robota. Následne som do otvoru v tvare úsmevu v tejto stene umiestnil dva mosadzné stĺpiky M4x25, ktoré som tam zafixoval maticami M4. Na zvyšné dva konce stĺpikov som namontoval pomocou skrutiek M4 snímač vzdialenosti s už pripojeným káblom s konektormi RJ25 (presnejšie 6P6C). Zmienený kábel som vsunul cez medzeru medzi čelnou a bočnou stenou robota a cez obdĺžnikový otvor vo vrchnej stene vyviedol k riadiacej doske mCore a následne aj pripojil do portu konektora RJ25. Docielil som tak plnohodnotné využitie snímača vzdialenosti pri minimálnom obmedzení čitateľnosti displeja vychádzajúc z bežného pozorovacieho uhla minimálne 30˚.
Alternatívny zdoj energie robota mBot
Súprava mBot Explorer Kit štandardne obsahuje držiak až štyroch batérií typu AA. V dnešnej ekonomicky a ekologicky orientovanej dobe to považujem za nepraktické, čo ma doviedlo k myšlienke využitia alternatívneho zdroja energie pre spomínaný robot.
Sám výrobca opísanej súpravy (firma Makeblock) uviedol na trh dostupnú alternatívu v podobe nabíjacej batérie typu Li-Pol s káblovým vývodom zakončeným konektorom JST. Táto batéria je umiestnená v plastovom boxe, ktorý sa dá prakticky pripevniť na spodnú časť plastového boxu riadiacej dosky mCore. Nespornou výhodou je, že uvedená doska disponuje nabíjacím obvodom s napájacím konektorom USB (treba použiť dátový kábel USB zo súpravy) a kontrolnými LED diódami vypovedajúcimi o procese nabíjania.
Skúšobný program robota mBot
Skúšobný program robota zo súpravy mBot Explorer Kit som vytvoril preto, aby som sa presvedčil o funkčnosti zmieneného robota. Programoval som v platforme Makeblock mBlock 5, do ktorej som pridal zariadenie s názvom mBot. Mal som pritom na pamäti nasledovný ‚layout‘ portov konektorov RJ25 riadiacej dosky mCore (bez Bluetooth modulu):
Port 1
– displej Me LED MatrixPort 2
– snímač čiary Me Line FollowerPort 3
– snímač vzdialenosti Me Ultrasonic Sensor
Za pár minút sa mi podarilo napísať program, ktorého bezproblémové otestovanie ma doviedlo k jeho finálnej verzii:
Program Arduino C
// generated by mBlock5 for mBot
// codes make you happy
#include <MeMCore.h>
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
MeLEDMatrix ledMtx_1(1);
unsigned char drawBuffer[16];
unsigned char *drawTemp;
MeBuzzer buzzer;
MeLightSensor lightsensor_6(6);
MeUltrasonicSensor ultrasonic_3(3);
MeLineFollower linefollower_2(2);
MeRGBLed rgbled_7(7, 2);
MeDCMotor motor_9(9);
MeDCMotor motor_10(10);
void move(int direction, int speed) {
int leftSpeed = 0;
int rightSpeed = 0;
if(direction == 1) {
leftSpeed = speed;
rightSpeed = speed;
} else if(direction == 2) {
leftSpeed = -speed;
rightSpeed = -speed;
} else if(direction == 3) {
leftSpeed = -speed;
rightSpeed = speed;
} else if(direction == 4) {
leftSpeed = speed;
rightSpeed = -speed;
}
motor_9.run((9) == M1 ? -(leftSpeed) : (leftSpeed));
motor_10.run((10) == M1 ? -(rightSpeed) : (rightSpeed));
}
void _delay(float seconds) {
long endTime = millis() + seconds * 1000;
while(millis() < endTime) _loop();
}
void setup() {
pinMode(A7, INPUT);
ledMtx_1.setColorIndex(1);
ledMtx_1.setBrightness(6);
rgbled_7.fillPixelsBak(0, 2, 1);
while(1) {
while(!((0 ^ (analogRead(A7) > 10 ? 0 : 1))))
{
_loop();
}
drawTemp = new unsigned char[16]{96,126,96,0,126,90,90,0,36,82,74,36,0,96,126,96};
memcpy(drawBuffer, drawTemp, 16);
free(drawTemp);
ledMtx_1.drawBitmap(0, 0, 16, drawBuffer);
_delay(2);
buzzer.tone(262, 0.5 * 1000);
_delay(0.02);
ledMtx_1.showNum(lightsensor_6.read(), 3);
_delay(2);
ledMtx_1.drawStr(0, 0 + 7, String("lx").c_str());
_delay(2);
ledMtx_1.showNum(round(ultrasonic_3.distanceCm()), 3);
_delay(2);
ledMtx_1.drawStr(0, 0 + 7, String("cm").c_str());
_delay(2);
ledMtx_1.showNum(linefollower_2.readSensors(), 3);
_delay(2);
ledMtx_1.clearScreen();
buzzer.tone(330, 0.5 * 1000);
_delay(0.02);
rgbled_7.setColor(0,255,0,0);
rgbled_7.show();
_delay(1);
rgbled_7.setColor(0,0,0,0);
rgbled_7.show();
rgbled_7.setColor(0,255,233,0);
rgbled_7.show();
_delay(1);
rgbled_7.setColor(0,0,0,0);
rgbled_7.show();
rgbled_7.setColor(0,42,255,0);
rgbled_7.show();
_delay(1);
rgbled_7.setColor(0,0,0,0);
rgbled_7.show();
rgbled_7.setColor(0,0,255,255);
rgbled_7.show();
_delay(1);
rgbled_7.setColor(0,0,0,0);
rgbled_7.show();
rgbled_7.setColor(0,63,0,255);
rgbled_7.show();
_delay(1);
rgbled_7.setColor(0,0,0,0);
rgbled_7.show();
rgbled_7.setColor(0,255,0,220);
rgbled_7.show();
_delay(1);
rgbled_7.setColor(0,0,0,0);
rgbled_7.show();
rgbled_7.setColor(0,0,0,0);
rgbled_7.show();
buzzer.tone(392, 0.5 * 1000);
_delay(0.02);
move(1, 50 / 100.0 * 255);
_delay(1);
move(1, 0);
move(2, 50 / 100.0 * 255);
_delay(1);
move(2, 0);
move(3, 50 / 100.0 * 255);
_delay(1);
move(3, 0);
move(4, 50 / 100.0 * 255);
_delay(1);
move(4, 0);
buzzer.tone(494, 0.5 * 1000);
_delay(0.02);
_loop();
}
}
void _loop() {
}
void loop() {
_loop();
}
Program mBlock 5
Video
Záver
So záverom prichádza moje uznanie za to, že ste si prečítali tento článok až do konca. Nesnažil som sa v ňom iba o dizajnový a výkonnostný ‚update‘ robota zo súpravy mBot Explorer Kit, ale aj o jeho predvedenie.
S radosťou vám môžem oznámiť, že v najbližších mesiacoch bude témou mojich článkov nielen uvedený robot ale aj ďalšie produkty firmy Makeblock. Verím, že môj netradičný prístup k téme z pohľadu začiatočníka, bude pre vás prvým krokom k tomu, aby sa robotika stala aj vaše hobby.
E-shop
Makeblock Explorer Kit – mBot Bluetooth, modrý, verze 2
Modrý mBot Bluetooth vylepšený o LED matrix displej!
Makeblock mBot, 1800mAh Li-Pol baterie
Li-Pol baterie pro k napájení robota mBot nebo Vašich jiných projektů.
Jeden komentář