nimeni_altci Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 Salut! Vreau sa va intreb daca stiti cumva cum as putea sa imi fac propria aplicatie care sa o rulez pe laptop si sa trimit comenzi catre Arduino pe Serial. De exemplu daca vreau sa controlez un robot Arduino, aplicatia ar trebui sa aibe 4 butoane(cele 4 sageti). As putea face asta si in serial monitor, dar nu vreau sa tot trimit litere pentru asta. Vreau efetiv 4 butoane grafice, care apasate sa trimita anumite comenzi seriale. Multumesc! Link spre comentariu
Liviu M Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 Cum stai cu programarea pe PC? Link spre comentariu
rlodina Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 Salut.I-ti fac eu o mica aplicatie - ce cele 4 butoane - si cateva explicatii care poate fi un punct de pornire pentru tine. Deduc din context ca nu ai vreo preferinta pt. un limbaj sau o anumita tehnologie, si probabil (99%) vrei sa ruleze pe MS Windows.Ne recitim maine.Radu Link spre comentariu
Vlad Mihai Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 recomand LabVIEW, de asemeni pot face si eu o aplicatie cu 4 butoare care sa trimita pe serial litere, probabil tu vrei sa controlezi o masina prin bluetooth. Link spre comentariu
nimeni_altci Postat Iulie 18, 2014 Autor Partajează Postat Iulie 18, 2014 Vreau sa controlez acea masina prin doua module NRF24. Vreau sa am un arduino legat la PC, si altul pe robot. Astfel aplicatia care vreau sa o fac transmite o comanda seriala la Arduino, iar acesta prin NRF24 o transmite mai departe la celalalt Arduino. @Liviu M Ca nivel de programare cunosc doar C, C++. @rlodina ar fi grozav daca ai putea face macar un exemplu, cu cateva explicatii( in ce a fost facuta, si codul aferent, daca e scrisa in cod). @ Vlad Mihai si eu m-am gandit in prima faza la labview, pentru ca am citit cateva lucruri despre el, crezi ca e o solutie mai rapida fata de a scrie cod? Link spre comentariu
Vlad Mihai Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 dar te complici tare, poti incerca direct Labview si sa trimita pe serial cel mai simplu. si as incerca prima data cu bluetooth, e mult mai usor. parerea mea. Labview e cel mai folosit in aplicatii de acest gen si nu numai. Link spre comentariu
nimeni_altci Postat Iulie 18, 2014 Autor Partajează Postat Iulie 18, 2014 (editat) Stiu dar cu Bluetooth nu pot obtine o distanta prea mare. Ma gandeam ca pe viitor sa pun si o camera si de aceea folosesc module RF. Sunt curios acest gen de aplicatii in ce limbaj si cu ce program se pot face? Editat Iulie 18, 2014 de nimeni_altci Link spre comentariu
Liviu M Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 http://playground.arduino.cc/Interfacing/CPPWindows Link spre comentariu
rlodina Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 In attachment se gaseste codul sursa si executabilul Serial2Arduino.exe. Inainte de conectare poti sa selectezi portul si baud rate. Dupa conectare se activeaza controalele de operare: Este scrisa in c# (ai nevoie de .NET 4.0 daca nu-l ai deja instalat). Sunt ceva comentarii in cod si cred ca te descurci - este f. simplu sa mai adaugi butoane la care sa le asociezi comenzi. Codul Arduino cu care am testat aplicatia: void setup() { Serial.begin(9600);}void loop() { if (Serial.available() > 0){ char cmd = Serial.read(); if (cmd == 'U'){ Serial.println("Exec cmd: Up"); } else if (cmd == 'R'){ Serial.println("Exec cmd: Right"); } else if (cmd == 'D'){ Serial.println("Exec cmd: Down"); } else if (cmd == 'L'){ Serial.println("Exec cmd: Left"); } else { Serial.println("Exec cmd: comanda necunoscuta"); } } delay(1); } Probabil ca dezv cu LabView ar fi mai spectaculoasa - ai o multime de gadgeturi acolo - dar din pacate nu am folosit-o niciodata - poate arunci o privire si acolo. Oricum daca mai ai intrebari - sunt aici. Succes Radu Serial2Arduino.zip 1 Link spre comentariu
Vlad Mihai Postat Iulie 18, 2014 Partajează Postat Iulie 18, 2014 foarte tare, ai realizat in Visual Studio? Link spre comentariu
rlodina Postat Iulie 19, 2014 Partajează Postat Iulie 19, 2014 (editat) @Mihai : da proiectul este in Visual Studio 2010 - merci de apreciere dar nu'i nu striu ce - daca te uiti un pic in surse o sa vezi ca este relativ simplu. Am facut si versiunea a 2-a a micului nostru exemplu. Sa vezi cum ai putea trata si cumunicarea inversa Arduino->PC si sa-ti faci o idee ca te poti apropia de o interfata utilizator mai fancy (cu un minim de efort). Modificari: 1. Orice comunicatie Arduino- > PC trebuie finalizata cu 'rn' - Ex: Serial.println("text ..."); Practic app windows nu proceseaza comanda decat dupa ce citeste si acel terminator de linie. 2. Implementat un mic protocol: sintaxa unei comenzi: CMD:NNN=VVV - unde VVV trebuie sa fie un numar. - NNN este un simbol definit de tine - tratarea comenzii este implementata simplu: //aici poti sa-ti definesti propria mapare if (cod == "A1") { agA1.Value = val; } else if (cod == "A2") { agA2.Value = val; } else if (cod == "D1") { led1.Image = val == 0 ? Serial2Arduino.Properties.Resources.led_gray : Serial2Arduino.Properties.Resources.led_green; } else if (cod == "D2") { led2.Image = val == 0 ? Serial2Arduino.Properties.Resources.led_gray : Serial2Arduino.Properties.Resources.led_green; } Deci din Arduino trimiti comenzi de genul: Serial.println("CMD:A1=135"); //remarca aici folosirea lui println Orice alt text trimis de Arduino care nu incepe cu CMD: este afisat in acel mic log, Nu am facut implementarea pe Arduino - daca am un pic de timp si este cineva interesat i-l fac. Cum poti testa exemplu: - pune pe A1 la Arduino un potentiometru - citeste valoarea cu analogRead: val = analogRead(A1); - vezi daca este modificata fata de vechea citire. Daca DA: mapeaz-o pe intervalul asteptat de vitezomentru: 0-200 : val = map(val, 0, 1023, 0, 200); - trimite comada pt. a fi interpretata de app windows: Serial.print("CMD:A1="); Serial.println(val); - in mod normal ar trebui sa vezi acul vitezometrului indicand val Idem si la A2 - evident cu alta mapare: 0-100 Functionarea Led-urilor din interfata grafica respecta aceiasi idee: - in exemplu nostru comenzile primite din Arduino de forma: CMD:Dn=0|1 porneste sau opreste led-ul n. Ex: CMD:D1=0 - off ledul D1 sau: CMD:D3=1 - on ledul D3 Evident daca ai intrebari - sunt prin zona. Succes Radu Serial2Arduino_V2.zip Editat Iulie 19, 2014 de rlodina 1 Link spre comentariu
Vlad Mihai Postat Iulie 19, 2014 Partajează Postat Iulie 19, 2014 Foarte frumos, se face treaba buna cu Visual, eu sunt fan LabVIEW. Bravo Link spre comentariu
nimeni_altci Postat Iulie 19, 2014 Autor Partajează Postat Iulie 19, 2014 @rlodina multumesc foarte mult pentru ajutorul tau. Dupa ce am vazut primul program chiar ma intrebam cum s-ar putea face ca PC sa citeasca anumite valori furnizate de Arduino, iar apoi am vazut exemplul 2. Cu exemplele tale sper ca voi fi in stare sa fac ceva mai complex. Am inceput sa ma uit pe youtube si la tutoriale Visual Studio 2010 si sper sa ii invat bazele in scurt timp. Problema e ca e un limbaj putin diferit de C care il stiu eu, adica nu prea cunosc comenzile. Imi poti recomanda o carte din care as putea invata, sau un site? Link spre comentariu
Liviu M Postat Iulie 19, 2014 Partajează Postat Iulie 19, 2014 (editat) Ce misto , trebuie sa invat si eu sa fac chestii de-astea cule. Ultima tentativa de interfata grafica am facut-o in C++ Builder 6. A iesit, da' a fost meritul lui Borland, nu al meu. @nimeni_altci: visual studio e un ide (interfata in care programezi). Dupa cum spunea Radu, programele sunt in C# (compilatorul/interpretorul). Asa ca asta trebuie sa cauti - carte/tutorial de C#. Editat Iulie 19, 2014 de Liviu M Link spre comentariu
nimeni_altci Postat Iulie 19, 2014 Autor Partajează Postat Iulie 19, 2014 Liviu M, stiu ca Visual studio e un IDE. Nu sunt asa noob incat sa cred ca e limbaj. Multumesc pentru raspuns, se pare ca C# era acel C pe care nu il intelegeam eu. Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum