Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 6 lis 2024, o 02:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 17 gru 2011, o 17:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Nadeszła chwila kiedy dość mamy zabawy na samym SunDuino , teraz trzeba by jakoś porozmawiać z poziomu Windowsa.

Założenia zadania:

Wysłanie rozkazu z komputera , zmieniającego stan diody D13 na płytce SunDuino.
-- Zadanie wydaje sie banalnie proste prawda co za problem z terminala zaświecić LEDA :)

Ale w tym tutorialu pójdziemy krok dalej napiszemy mianowicie program dla windows
w darmowym środowisku Visual Studio C++ 2010 Express

Dlaczego akurat platforma MS NET Framework - z prostej przyczyny Jest bardzo dobrze udokumentowana , środowisko Visual Studio EXPRESS jest darmowe bez ograniczeń kodu , czy zastosowań komercyjnych. Mój wybór padł na Visual C++. Wydaje mi sie iż to prosty i wygodny sposób na pisanie Aplikacji opartych o platformę .NET. Całość opiszę w prostych krokach:

KROK 1. POBRANIE I INSTALACJA

Pobieramy i instalujemy środowisko wraz z kompilatorem VISUAL Studio C++ 2010 Express
http://www.microsoft.com/express/Downlo ... Visual-CPP
-- niestety dostępny jest tylko w anglojęzycznej wersji
Pobieramy też i instalujemy .NET Framework jesli nie mamy zainstalowanego
http://www.microsoft.com/downloads/en/d ... laylang=en
Instalacji chyba nie muszę opisywać -- jak to w tworach na Winzgrozę całość ogranicza się na zgadzanie się
z wszystkim i klikanie dalej Ok itp :P

KROK 2. Pierwszy program dla KONSOLI
Przejdź do FILE ->NEW->Project i wybierz nowy projekt CLR CONSOLE APP jak widać na
obrazku niżej. Nadaj nazwę projektowi np. "ArduinoComm" i kliknij OK.

Obrazek

Twoje Pliki w Projekcie:
Jak to zwykle w aplikacjach M$ panuje jak widzisz niezły bałagan:) Wybierz Plik ArduinoComm.cpp i otwórz go dwuklikiem.

Obrazek

JAK będzie działał nasz program:

Nasz program będzie działał nastepująco:
1.Poprosi użytkownika o wprowadzenie portu szeregowego który chcemy używać i przechowa jego nazwę w zmiennej PortName
2. Następnie Spyta czy chcemy włączyć światło czy nie :)
- jeśli tak zostanie wysłane 1 włączenia portu
- jeśli nie zostanie wysłane 0 wyłączenie portu
3. Program będzie pracował w pętli czekając na zadanie od użytkownika lub jego zakończenie
4. Musimy tez ustalić szybkość transmisji użytej do komunikacji z naszą płytką SunDuino.
W tym celu dodamy do naszego programu parę linijek kodu z podstawowymi funkcjami:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I w ten prosty sposób już działa nasz port COM:)

KLASY SERIAL PORTU:
.NET Framework zawiera gotowe klasy zdefiniowane dla portu szeregowego. Nazywa sie ona SerialPort i jest dostępna w przestrzeni nazw "SYSTEM:: IO:: Ports "
Będziemy używać również innych metod w przestrzeni nazw SYSTEM dlatego na początek użyjemy tej: Dopisując do naszego kodu linijki:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Instancja KLASY Port:
Port szeregowy jako obiekt potrzebuje nazwy portu i szybkości transmisji w swoim konstruktorze , dodamy więc nastepujące wiersze do kodu. W naszym przypadku Obiekt Serial POrt bedzie sie nazywał "ARDUINO".

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Otwarcie PORTU:

podobnie jak w przypadku plików tekstowych pierwszą rzeczą jaką musimy zrobić jest ich otwarcie:)
Open jest metoda klasy portu szeregowego która jest częścią stworzonego obiektu ARDUINO.
Dopiszmy więc metodę otwarcia:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


PĘTLA:
W naszym Programiku użyjemy pętli "do while" W pętli tej zmiennej string przypiszemy przechowywanie odpowiedzi na 2 pytania :
Czy chcesz kontynuować? oraz Właczyc lub Wyłaczyć??

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wnętrze pętli:

Wysyłanie danych ze zmiennej String do tablicy obiektu ARDUINO odbedzie sie za pomoca metody WriteLine. Dodamy nastepne linijki kodu, myślę ze ich znaczenie jest oczywiste:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Komentarze pozostawiłem jakbyś miał pytania o działanie :P

NASZ pełny program w C++ :

powinien wyglądać następująco:


Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


WSAD dla Sunduino:

teraz pora na program odbierający dane z komputera na naszą płytke Sunduino , myśle iz nie wymaga
omawiania:
prędkość transmisji 9600 - taka podajemy w programie na PC

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I tym oto prostym sposobem napisaliśmy konsolowy program zmieniający stan diody na naszym SunDuino :)
Jeśli się wam podoba taki rodzaj opisów to napiszę następnym razem jak zrobić voltomierz na płytkach
xxxDuino ale prezentowanie wyniku pomiaru będzie w specjalnie napisanej aplikacji graficznej na Winzgroze.

Miłej Zabawy:)


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2011, o 14:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

No proszę, co zajrzę na forum to coraz ciekawiej zaczyna się robić :).
Jako początkujący w C tylko przeglądam forum, ale bardzo podobają mi się projekty zawierające komunikację z PC.
Tak trzymaj kolego SunRiver :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2011, o 22:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Staram się kolego Sonix :) narobiłem takich mikro programików całkiem sporo :)
ja choćby terminal który gdzieś tu dałem na forum , wiem jest tego sporo , ale akurat taki był potrzebny zamieszczał bedę sporo takich małych projekcików, a z czasem i większych lotów.. powoli szykuje obsługe i komunikacje USB na sterownikach HID dla PIC rodziny 18F

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2011, o 13:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

SunRiver napisał(a):
.... powoli szykuje obsługe i komunikacje USB na sterownikach HID dla PIC rodziny 18F...


Nie wiem czy znacz tę stronę ale jest kilka ciekawych projektów z USB na PIC'ach włącznie ze źródłami w C# :

http://www.waitingforfriday.com/

Życzę powodzenia i czekam na wyniki Twojej pracy :).

Przemek

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 17:19 
Offline
Nowy

Dołączył(a): 30 sty 2013
Posty: 6
Pomógł: 0

Dzień dobry, czy mogę prosić o powyższy projekt skąpilowany.
Projekt Voltage_meter nie może się skąpilować poprawnie i jest błąd, więc chciałbym zobaczyć i ten.
Możliwe ,że potrzebuję jakiś bibliotek do Visual C++ 2010.
Pozdrawiam.
Paweł.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 17:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

głównie wszystko sie rozbija o .Net musisz mieć mozliwie najnowszy

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 18:32 
Offline
Nowy

Dołączył(a): 30 sty 2013
Posty: 6
Pomógł: 0

Obrazek

Po pierwszym uruchomieniu Visual miałem coś takiego ;/
Obrazek

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 18:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

a już widzę w czym rzecz ...
poszukam tego wsadu i wrzucę na forum

------------------------ [ Dodano po: 2 minutach ]

Dodałem w pierwszym poście w załączniku cały projekt ...
miłej zabawy

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 19:37 
Offline
Nowy

Dołączył(a): 30 sty 2013
Posty: 6
Pomógł: 0

Dzięki :)
Exe działa ale ja próbuję twój projekt zkąpilować to znowu nici :(
Obrazek

Obrazek

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 20:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

kompilowałem go przed wrzuceniem na forum

Obrazek

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 20:43 
Offline
Nowy

Dołączył(a): 30 sty 2013
Posty: 6
Pomógł: 0

Tak, ale u mnie bici pewnie coś brakuje w Visual da się jakoś sprzawdzić jakie masz bilbioteki a jakich mi brakuje.

1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 21:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

no standard VS2010 ultimate i .Net framework najnowszy

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 21:17 
Offline
Nowy

Dołączył(a): 30 sty 2013
Posty: 6
Pomógł: 0

Tak tylko ja mam wersję Visual C++ Express



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2013, o 21:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

no ja tu nie mam expresa , ale pierwotnie go pisałem na expresie właśnie

jedyne co zrobiłem to po założeniu nowego projektu CLR Console wykopałem zawartość pliku cpp
i wkleiłem kod z postu wyżej i sie normalnie kompiluje ... fakt poleciały polskie znaki u mnie na konsoli, ale kij z tym ...


czyli to :

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2013, o 17:33 
Offline
Nowy

Dołączył(a): 30 sty 2013
Posty: 6
Pomógł: 0

Dzięki za pomoc :)
Wczoraj zrobiłem aktualizację Visual C++ i pomogło. Poprawnie się skompilowało ;) ale jeszcze wywala bład przy debag :( no i znowu pojawiła się aktualizacja :) liczę że po jej instalacji wszystko się wyjaśni :)

Obrazek

Jednak nie pomogło :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO