Sari la conținut
ELFORUM - Forumul electronistilor

Arduino Nano


fane

Postări Recomandate

  • 2 luni mai târziu...

Buna ziua. Stimati domni! Am o mare rugaminte la d-voastra, la cei ce vret si ma puteti ajuta. Sunt o persoana in vasta de 70 ani, nu mai am nici timp, nici rost sa invat tainele acestui Arduino. Am cautat, incercat, dar fiind afon in domeniu incerg sa gasesc intelegere, rabdare si bunavointa din partea d-voastra. Am un nepotel in varsta doar de 6 anisori. Ii place foarte mult sa stea pe Laptop si nu se prea joaca. Urmareste tot felul detutoriale si le intelege. Am decis sa-i cumpar un Robot, dar vazand ca nu are decat doua module pe el si costa destul de mult, am decis sa-i cumpar subansamle (componente) ;

Placa Arduino UNO R3, Shield cu Driver de Motoare L293D senzor PIR; senzor de linie, de atingere , de inclinare, modul Bluetooth ,modul wireless, Sasiu cu patru motorase.

 

Am incercat sa asmblez Robotul propriu zis, dar ce folos. Am instalat Arduino 1.8.4, dar daca nu ma pricep, nu ma pricep. Nu am gasin nicaieri, dar chiar nicaieri un cod sa pot instala Shield cu Driver de Motoare L293D . Am gasit coduri pentru doua motoare, am incercat sa le instalez, dar nu am reusit. Imi da eroare;

- Bibliotecă invalidă în C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b: C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b

Bibliotecă invalidă în C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b: C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b

 

Arduino: 1.8.4 (Windows 10), Placă"Arduino/Genuino Uno"

 

Schiţa foloseşte 888 bytes (2%) din spa?iul de stocare a programului. Maximul este de 32256 bytes.

Variabilele globale folosesc 46 bytes (2%) din memoria dinamică, lăsând 2002 bytes pentru variabilele locale. Maximul este de 2048 bytes.

avrdude: ser_open(): can't open device "\\.\COM4": The system cannot find the file specified.

 

 

Probleme la încărcarea aplicaţiei. Vezi http://www.arduino.cc/en/Guide/Troubleshooting#upload pentru sugestii.

Bibliotecă invalidă în C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b: C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b

Bibliotecă invalidă în C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b: C:\Users\PAUL\Documents\Arduino\libraries\sketch_oct03b

 

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

 

Am reusit sa intru in exemple> Basics>Blinc Am incarcat si a mers. Dar unde , cum formez o biblioteca, ce trebuie sa fac pentru a face Robotul sa mearga inainte; inapoi; la stanga; la dreapta. Pentru inceput as dori sa-i instalez senzorul ultrasonic.

 

Daca este cineva amabil, dispus a ma indruma, sa-i pot face aceasta satisfactie. Va multumesc!

Link spre comentariu

OK. Multumesc mult pentru raspuns, pentru indrumari. Am trecut de nenumarate ori prin tutorialul respectiv, dar ceva nu a mers. Acum am gasit bibliotecile, nu stiu exact care trebuiesc folosite, dar o sa incerc sa studiez . Azi si maine nu am timp pentru asta, dar promit ca saptamana viitoare o sa incerc tot ce este posibil. Daca voi reusi sau nu, ramane de vazut. Si intr-un caz si in celalalt voi reveni, fie sa va spun ce am facut, fie sa va cer in continuare ajutor.

 

Multumesc inca o data.

Link spre comentariu

Biblioteca de care aveti nevoie este cea de aici .

In arhiva pe care o gasiti acolo aveti si exemple pentru motoare de curent continuu, motoare pas cu pas si servomotoare.

Informatiile despre shield le gasiti cu toate detaliile de care aveti nevoie aici .

Daca in viitor doriti sa folosti si modulul bluetooth aici gasiti aplicatia pentru android
Link spre comentariu

@alcon: dar cu Google ai incercat? Este oare mai usor sa primesti de-a gata ceva in loc sa depui un minim de efort pentru a gasi raspunsul la o intrebare de acest gen?

 

În principiu ar fi fost mai normal sa primesc un raspuns concludent la aceasta problema dela un vorbitor de limba ramana decat dela Google care imi traduce "heatsink" drept calorifer, cada de baie sau chiuveta.

Link spre comentariu

Nu d-le nico_2010, nu este mai usor a primi de-a gata fara a depune un minim de efort. Dar asa cum am mentionat in primul post, sunt un bosorog batran care a vrut (fara a sti cu ce se mananca) sa faca un cadou, o surpriza nepotelului lui. Abia dupa ce am achizitionat toate aceste subansamburi (module, senzori, placa de dezvoltare, sasiu) am inceput sa vad despre ceeste vorba. Fiind cu totul pe dinafara (afon, necunoscator) am intrat pe Forum solicitand ajutor. Dar ca de fiecare data un necunoscator, sau unul care cere ajutor, este luat drept cersetor, puturos, etc.

 

Aroganta unora, precum si bunavointa altora ies in evidenta. Va mutumesc si imi cer scuze pentru deranj. Asa gandeste un Bosorog de 70 ani.

Link spre comentariu

 

În principiu ar fi fost mai normal sa primesc un raspuns concludent la aceasta problema dela un vorbitor de limba ramana decat dela Google care imi traduce "heatsink" drept calorifer, cada de baie sau chiuveta.

 

In principiu inainte de a pune o astfel de intrebare ar fi trebuit sa cauti - asa cum ti-am mai spus odata - pe Google si ai fi dat peste asta: https://ro.wikipedia.org/wiki/Arduino. Care este in limba romana.

Mai departe. ce face, cum face si de ce face ce face Arduino, trebuie sa citesti, sa experimentezi si sa-ti pui imaginatia si rabdarea la bataie.

In facultate am fost invatat sa caut informatiile in carti si alte materiale de studiu (stiind totusi ce vreau sa caut!) si abia apoi, daca nu gasesc ceea ce caut, sa pun intrebari referitoare la problema pe care o intalnesc.

Faptul ca in prezent sunt foarte multi aceia care prefera sa primeasca totul de-a gata (il exclud pe userul pauly), fara sa-si mai puna creierul la contributie, este ingrijorator si ma face sa cred ca o astfel de atitudine denota doar lene si nu altceva.

 

Pentru userul pauly: mi-ati inteles gresit spusele. Sper ca intelegeti limba engleza pentru continutul link-ului pe care il aveti in mesageria privata.

Link spre comentariu

Imi cer scuze fata de d-nul ,,nico_2010" pentru faptul ca am inteles gresit spusele d-lui. Vazand ca d-nul ,,alon" este un membru supleant si activ, am crezut ca este vorba de o aluzie la adresa mea. Eu am cautat inainte de a intreba, dar daca nu am nici un fel de cunostiinte in acest domeniul, este greu sa inteleg .

 

Am adaugat Shieldul cu Driver de motoare L293D peste placa de dezvoltaare UNO R3.

 

FPLZXVKIPZRNMOJ.MEDIUM.jpg?auto=compress

 

Am scos jumperul si am alimentat suplimentar Shieldul cu Driver.

Am introdus cablu USB in Laptop.

Sa auzit sunetul corespunzator de conectare.

Am verificat in aplicatie si placa este conectata cu portul COM4

Am incarcat intr-un fisier nou :

 

#define SPEED 255
int MOTOR2_PIN1 = 3;
int MOTOR2_PIN2 = 5;
int MOTOR1_PIN1 = 6;
int MOTOR1_PIN2 = 9;
void setup() {
pinMode(MOTOR1_PIN1, OUTPUT);
pinMode(MOTOR1_PIN2, OUTPUT);
pinMode(MOTOR2_PIN1, OUTPUT);
pinMode(MOTOR2_PIN2, OUTPUT);
Serial.begin(9600);
}
void loop() {
go(SPEED, SPEED);
}
void go(int speedLeft, int speedRight) {
if (speedLeft > 0) {
analogWrite(MOTOR1_PIN1, speedLeft);
analogWrite(MOTOR1_PIN2, 0);
}
else {
analogWrite(MOTOR1_PIN1, 0);
analogWrite(MOTOR1_PIN2, -speedLeft);
}
if (speedRight > 0) {
analogWrite(MOTOR2_PIN1, speedRight);
analogWrite(MOTOR2_PIN2, 0);
} else {
analogWrite(MOTOR2_PIN1, 0);
analogWrite(MOTOR2_PIN2, -speedRight);
}
}

 

 

Am intrat la Schită, am verificat si compilat dupa care am incarcat schita.

Am apasat pe lupa din dreapta, de sus,

Am scris pe rand toate literele posibile si trimis.

De fiecare data primesc acelasi mesaj ;

 

Ai apasat Trimite, dar nimic nu a fost trimis. Nu ar rebui sa bifezi transmiterea unui final linie?

 

Atasez si doua , trei capturi de ecran;

 

 

 

Link spre comentariu

Pauly, asa cum ti-am transmis si in mesaj, foloseste urmatorul sketch:


h (Controlled Robot) SketchArduino
/*
Author: Marcelo Moraes

                    
This project contains public domain code.
The modification is allowed without notice.

*/

//Libraries
#include <AFMotor.h>

//Objects
AF_DCMotor motorRight(1, MOTOR12_64KHZ); // create motor #1, 64KHz pwm
AF_DCMotor motorLeft(3, MOTOR12_64KHZ); // create motor #3, 64KHz pwm

//Constants and variable
char dataIn = 'S';
char determinant;
char det;
int vel = 0; //Bluetooth Stuff


void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps

//Initalization messages
Serial.println("ArduinoBymyself - ROVERBot");
Serial.println(" AF Motor test!");

//turn off motors
motorRight.setSpeed(0);
motorLeft.setSpeed(0);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);



}

void loop() {
det = check(); //call check() subrotine to get the serial code

//serial code analysis
switch (det){
case 'F': // F, move forward   //<-- Litera F trebuie transmisa si la fel cu celelalte, pe rand
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
det = check();
break;

case 'B': // B, move back
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
det = check();
break;

case 'L':// L, move wheels left
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/4);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
det = check();
break;

case 'R': // R, move wheels right
motorRight.setSpeed(vel/4);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
det = check();
break;

case 'I': // I, turn right forward
motorRight.setSpeed(vel/2);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
det = check();
break;

case 'J': // J, turn right back
motorRight.setSpeed(vel/2);
motorLeft.setSpeed(vel);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
det = check();
break;

case 'G': // G, turn left forward
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/2);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
det = check();
break;

case 'H': // H, turn left back
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/2);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
det = check();
break;

case 'S': // S, stop
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);
det = check();
break;



}
}

int check(){
if (Serial.available() > 0){// if there is valid data in the serial port
dataIn = Serial.read();// stores data into a variable

//check the code
if (dataIn == 'F'){//Forward
determinant = 'F';
}
else if (dataIn == 'B'){//Backward
determinant = 'B';
}
else if (dataIn == 'L'){//Left
determinant = 'L';
}
else if (dataIn == 'R'){//Right
determinant = 'R';
}
else if (dataIn == 'I'){//Froward Right
determinant = 'I';
}
else if (dataIn == 'J'){//Backward Right
determinant = 'J';
}
else if (dataIn == 'G'){//Forward Left
determinant = 'G';
}
else if (dataIn == 'H'){//Backward Left
determinant = 'H';
}
else if (dataIn == 'S'){//Stop
determinant = 'S';
}
else if (dataIn == '0'){//Speed 0
vel = 0;
}
else if (dataIn == '1'){//Speed 25
vel = 25;
}
else if (dataIn == '2'){//Speed 50
vel = 50;
}
else if (dataIn == '3'){//Speed 75
vel = 75;
}
else if (dataIn == '4'){//Speed 100
vel = 100;
}
else if (dataIn == '5'){//Speed 125
vel = 125;
}
else if (dataIn == '6'){//Speed 150
vel = 150;
}
else if (dataIn == '7'){//Speed 175
vel = 175;
}
else if (dataIn == '8'){//Speed 200
vel = 200;
}
else if (dataIn == '9'){//Speed 225
vel = 225;
}
else if (dataIn == 'q'){//Speed 255
vel = 255;
}
else if (dataIn == 'U'){//Back Lights On
determinant = 'U';
}
else if (dataIn == 'u'){//Back Lights Off
determinant = 'u';
}
else if (dataIn == 'W'){//Front Lights On
determinant = 'W';
}
else if (dataIn == 'w'){//Front Lights Off
determinant = 'w';
}
else if (dataIn == 'V'){//Horn On
determinant = 'V';
}
else if (dataIn == 'v'){//Horn Off
determinant = 'v';
}
else if (dataIn == 'X'){//Extra On
determinant = 'X';
}
else if (dataIn == 'x'){//Extra Off
determinant = 'x';
}
}
return determinant;
}

Link spre comentariu

Am facut exact asa cum a-ti spus, dar degeaba. Da, este adevarat ca nu am mai primit mesajul respectiv. Am apasat butonul de resetat de pe Shield si a aparut a doua oara scris; Arduino Bymiself - ROVERBot AF Motor test.

In rest, nu se intampla absolut nimic. Am incercat sa masor tensiunea pe una din iesirile motoarelor, vreau sa va spun ca nu am nici un fel de tensiune. Ledul este aprins. Da, este adevarat ca am alimentat suplimentar doar cu 6V, da si asa ar fi trebuit sa am o oarecare tensiune, chiar daca motorasele nu ar fi pornit (sa zicem).

 

Unde gresesc?

 

Am incarcat din nou, Motor Party si am masurat tensiunea. Nu am tensiune decat pe o singura iesire (deci un singur motor care functioneaza timp de una, doua secunde intr-un sens si una doua secunde in celalalt sens.

post-187817-0-64496900-1508153642_thumb.png

post-187817-0-42140100-1508153663_thumb.png

Editat de pauly
Link spre comentariu

Pinii de conexiune intre placa Arduino si shield sunt cumva astia:

"Digital pin 4, 7, 8 and 12 are used to drive the DC/Stepper motors via the 74HC595 serial-to-parallel latch"?

sau sunt astia:

Digital pin 11: DC Motor #1 / Stepper #1 (activation/speed control)
Digital pin 3: DC Motor #2 / Stepper #1 (activation/speed control)
Digital pin 5: DC Motor #3 / Stepper #2 (activation/speed control)
Digital pin 6: DC Motor #4 / Stepper #2 (activation/speed control)

?

 

L.E.: pauly, incearca cu urmatorul sketch:

    #include <AFMotor.h>
     
    AF_DCMotor motor(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
     
    void setup() {
      Serial.begin(9600);           // set up Serial library at 9600 bps
      Serial.println("Motor test!");
      
      motor.setSpeed(200);     // set the speed to 200/255
    }
     
    void loop() {
      Serial.print("tick");
      
      motor.run(FORWARD);      // turn it on going forward
      delay(1000);
     
      Serial.print("tock");
      motor.run(BACKWARD);     // the other way
      delay(1000);
      
      Serial.print("tack");
      motor.run(RELEASE);      // stopped
      delay(1000);
    }

si spune-ne cum se comporta motorasul? Motorasul trebuie conectat la bornele marcate cu "12".

Aici ai mai multe detalii folositoare. https://cdn-learn.adafruit.com/downloads/pdf/adafruit-motor-shield.pdf

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări