Płatne zlecenia dla niepełnoletniego początkującego programisty C++

0

Cześć.
Czy z podstawową wiedzą C++ można znaleźć płatne zlecenia? Jeżeli tak, to gdzie szukać? Najlepiej, jeżeli byłoby to pisanie kodu pod Arduino. Mam 15 lat, więc jeżeli jakaś umowa, to musiałaby być na osobę dorosłą :)

0

15 lat i pisanie kodu pod Atmegę na zlecenie... to nie brzmi za dobrze.
Nie zrozum mnie źle: tworzenie regularnych aplikacji na PCty stanowi czasem wyzwanie, a co dopiero taka zabawa ;-)

Co stworzyłeś dotychczas związanego z Arduino?

4

Hasło: "arduino freelancer project"
Odzew np.:

Warunki:

  • musisz znać angielski albo kogoś kto zna angielski
  • dobrze gdybyś miał do zaprezentowania jakieś ukończone projekty (najlepiej swoje) - pewnie najlepiej na GitHub
  • finanse: załóż sobie konto w PayPal połączone z Twoją kartą
  • podatki: sprawdź czy w ogóle coś zarobisz, jeśli zarobisz, sprawdź jak płacić podatki
  • opieka kogoś dorosłego: konto najlepiej niech będzie na kogoś dorosłego kto sprawdza swojego maila codziennie, dobrze gdybyś mógł używać równorzędnie konta mailowego zastosowanego do rejestracji (czyli jakieś specjalne konto współdzielone)
  • dokumentację proponuję robić w MS Word / LibreOffice Writer => PDF lub markdown.
  • w przypadkach spornych pytaj rodziców
  • znajdź mentora technicznego

Ew. możesz sobie to wszystko darować i robić coś dla zabawy, póki na serio będziesz pewny że podołasz każdemu zadaniu z Arduino.

Przykładowe zadanie testowe:
http://www.instructables.com/id/Biofeedback-Arduino-Based/
lub
https://create.arduino.cc/projecthub/BuildItDR/arduino-lie-detector-a0b914
lub
https://create.arduino.cc/projecthub/nickthegreek82/arduino-wireless-weather-station-dad470?ref=platform&ref_id=424_trending___&offset=2
(zrób, przetestuj, zmodyfikuj)

Mogę się mylić, ale nie sądze żeby ktoś był zainteresowany zleceniem tylko części softwarowej projektu, więc musisz się znać na elektronice i umieć złożyć i przetestować dany układ (niekoniecznie bardzo skomplikowany, przy bardziej złożonych pewnie i tak byś dostał złożony).
Ale powinieneś móc zdiagnozować problemy także hardwarowe, ew. skorygować jeśli to coś prostego.

1
Patryk27 napisał(a):

15 lat i pisanie kodu pod Atmegę na zlecenie... to nie brzmi za dobrze.
Nie zrozum mnie źle: tworzenie regularnych aplikacji na PCty stanowi czasem wyzwanie, a co dopiero taka zabawa ;-)

Co stworzyłeś dotychczas związanego z Arduino?

Termometr z wilgotnością z zapisem 3 ostatnich pomiarów, maksymalnego i minimalnego odczytu i dodatkami jak czujnik ruchu który wyłączał podświetlenie ekranu LCD, diody sygnalizujące czy temperatura spada, utrzymuje się czy wzrasta.

Zamek szyfrowy z możliwością zmiany hasła, otwieraniem poprzez bluetooth oraz czytnik RFID

Teraz tworzę samochód kontrolowany przez bluetooth oraz z możliwością jazdy autonomicznej, w którym można ustawić maksymalną prędkość jazdy w przód i tył. Czujnik odległości aby samochód nie uderzył w przeszkody. Odczyt z bluetootha jest kilku znakowy.

vpiotr napisał(a):

Przykładowe zadanie testowe:
http://www.instructables.com/id/Biofeedback-Arduino-Based/
lub
https://create.arduino.cc/projecthub/BuildItDR/arduino-lie-detector-a0b914
lub
https://create.arduino.cc/projecthub/nickthegreek82/arduino-wireless-weather-station-dad470?ref=platform&ref_id=424_trending___&offset=2
(zrób, przetestuj, zmodyfikuj)

Detektor kłamstw myślę że potrafiłbym zrobić, co do stacji meteorologicznej to zastanawiam się nad zrobieniem, ale potrzebuję kupić potrzebne elementy. Wolałbym jakieś zlecenia polskie i bez konieczności pisania dokumentacji, coś prostego :)

0

Pomijając już wszelkie kwestie prawne, dobrze się zastanów zanim w ogóle podejmiesz się czegoś na zlecenie w Arduino bo sprawa może nie być taka prosta, zwłaszcza że często są klienci minimaliści, którym się wydaje że coś można zrobić tanio, prosto i szybko a to nie takie proste jakby się wydawało. Tutaj znalazłem wątek dotyczący robotów sterowanych zdalnie, co prawda stary temat ale myślę że dobrze zobrazuje problem:

http://www.forbot.pl/forum/topics35/praca-zlece-wykonania-projektu-robotow-sterowanych-zdalnie-przez-arduino-vt9539.htm

Taka robota może być często na zlecenie, bo może chodzić o roboty dla dzieci czy tam jakieś zabawki. W życiu nie podjąłbym się realizacji takich rzeczy samodzielnie. Co prawda jestem elektronikiem więc znam temat, znam też C++ i programowałem trochę pod arduino. Spoko, wszystko jest fajnie jak się robi to tylko dla zabaw czy tam tylko dla siebie. Problem się zacznie jak się przyjdzie zmierzyć z wymagającym klientem, który na dodatek jeszcze nie wie czego chce.

W życiu nie zrealizowałbym niczego na żadnym z tanich klonów Arduino, musiałoby być to oryginalne Arduino, które kosztuje kilka razy więcej. Tym bardziej jeśli chodzi np. o zamek szyfrowy, też może być takie zlecenie, chodzi też o niezawodność i jeszcze inne rzeczy. Zbyt rozległy temat żeby pomijając bardzo proste zabawki gdzie dopuszczalne jest użycie płytki stykowej i zapakowanie w prostą obudowę ze sklepu elektronicznego podejmować się tych zleceń samodzielnie. Ja tu mówię o bardziej złożonych rzeczach wynikających z wymagań klientów i to nie są żadne zabawy.

0
drorat1 napisał(a):

Taka robota może być często na zlecenie, bo może chodzić o roboty dla dzieci czy tam jakieś zabawki. W życiu nie podjąłbym się realizacji takich rzeczy samodzielnie. Co prawda jestem elektronikiem więc znam temat, znam też C++ i programowałem trochę pod arduino. Spoko, wszystko jest fajnie jak się robi to tylko dla zabaw czy tam tylko dla siebie. Problem się zacznie jak się przyjdzie zmierzyć z wymagającym klientem, który na dodatek jeszcze nie wie czego chce.

W życiu nie zrealizowałbym niczego na żadnym z tanich klonów Arduino, musiałoby być to oryginalne Arduino, które kosztuje kilka razy więcej. Tym bardziej jeśli chodzi np. o zamek szyfrowy, też może być takie zlecenie, chodzi też o niezawodność i jeszcze inne rzeczy. Zbyt rozległy temat żeby pomijając bardzo proste zabawki gdzie dopuszczalne jest użycie płytki stykowej i zapakowanie w prostą obudowę ze sklepu elektronicznego podejmować się tych zleceń samodzielnie. Ja tu mówię o bardziej złożonych rzeczach wynikających z wymagań klientów i to nie są żadne zabawy.

W tym temacie jest wyjaśnione czego chce. I mi bardziej chodzi o coś, że robię projekt podaję schemat jak podłączyć i listę części, a klient sam kupuje co tam chce: klony czy oryginał, lub uzgodnić z klientem czy może być to zrobione na klonie.

0

To nie tak działa. Klient zamawia u Ciebie gotowy produkt. Gotowym produktem MOŻE być schemat i program. I to Ty powinieneś powiedzieć, czy dany projekt może iść na klonie, czy MUSI na oryginale.
Podeślij mi rzeczy, które zrobiłeś do tej pory.

0
Juhas napisał(a):

To nie tak działa. Klient zamawia u Ciebie gotowy produkt. Gotowym produktem MOŻE być schemat i program. I to Ty powinieneś powiedzieć, czy dany projekt może iść na klonie, czy MUSI na oryginale.
Podeślij mi rzeczy, które zrobiłeś do tej pory.

Na razie nie mam githuba, ale większe projekty które robiłem pisałem wyżej, czyli:
Termometr z wilgotnością z zapisem 3 ostatnich pomiarów, maksymalnego i minimalnego odczytu i dodatkami jak czujnik ruchu który wyłączał podświetlenie ekranu LCD, diody sygnalizujące czy temperatura spada, utrzymuje się czy wzrasta oraz tworzeniem prostej lokalnej strony przez moduł Ethernet + prosta aplikacja na Androida wyświetlająca tą stronę (zrobiona w APP Inventor)

Zamek szyfrowy z możliwością zmiany hasła, otwieraniem poprzez bluetooth oraz czytnik RFID

Teraz tworzę samochód kontrolowany przez bluetooth oraz z możliwością jazdy autonomicznej, w którym można ustawić maksymalną prędkość jazdy w przód i tył. Czujnik odległości aby samochód nie uderzył w przeszkody. Odczyt z bluetootha jest kilku znakowy.

Termometr do pieca z zapisywaniem maksymalnego i minimalnego odczytu, oraz obliczaniem 3 średnich: ogólnej, w przedziale X-X *C i w drugim przedziale X-X C oraz liczeniem ilości przekroczeń 55C

Niedługo chcę założyć githuba i dam kody ewentualnie. Oczywiście to co podałem to większe projekty które robiłem, nie wliczając migających diod :D Dopisałem trochę więcej niż pisałem wyżej, bo kilka rzeczy mi się przypomniało :)

0

Wydaje mi się że przed potencjalnymi klientami lepsza reklama to wideoprezentacja na Youtube, oczywiście nagranie w bardzo dobrej jakości. Ich nie interesują kody na githubie, bo się i tak na tym nie znają. Widziałem wiele fajnych wynalazków na Arduino, nawet drukarki 3D, samobalansujące roboty (stoi pionowo na dwóch kołach i się nie przewróci), także drony, alkomaty i wiele innych rzeczy. Robiłem alkomat na MQ3, z odczytem realtime a także trybem kontroli trzeźwości, także termometr na LM35. Ale najważniejsze pod Arduino to interpreter komend AT i coś na wzór OBD2, do sterowania Arduino, wszechstronne zastosowanie, mam to też na githubie.

0
drorat1 napisał(a):

Wydaje mi się że przed potencjalnymi klientami lepsza reklama to wideoprezentacja na Youtube, oczywiście nagranie w bardzo dobrej jakości. Ich nie interesują kody na githubie, bo się i tak na tym nie znają. Widziałem wiele fajnych wynalazków na Arduino, nawet drukarki 3D, samobalansujące roboty (stoi pionowo na dwóch kołach i się nie przewróci), także drony, alkomaty i wiele innych rzeczy. Robiłem alkomat na MQ3, z odczytem realtime a także trybem kontroli trzeźwości, także termometr na LM35. Ale najważniejsze pod Arduino to interpreter komend AT i coś na wzór OBD2, do sterowania Arduino, wszechstronne zastosowanie, mam to też na githubie.

Podeślesz swojego githuba bo sam będę robił i chce jakiś wzór? :)

0

Widzę, co robiłeś, potrafię czytać :) Po to chcę od Ciebie kod i schematy, żeby zobaczyć, jak to robisz. Dobrze, do d**y, czy jeszcze może inaczej :) Działający program można napisać przynajmniej na dwa sposoby. Dobrze lub źle. Dlatego chcę to zobaczyć.

0
Juhas napisał(a):

Widzę, co robiłeś, potrafię czytać :) Po to chcę od Ciebie kod i schematy, żeby zobaczyć, jak to robisz. Dobrze, do d**y, czy jeszcze może inaczej :) Działający program można napisać przynajmniej na dwa sposoby. Dobrze lub źle. Dlatego chcę to zobaczyć.

Zrobię githuba i podeślę za kilka dni albo na szybko na pastebinie wieczorem

1

Obojętnie, możesz mi nawet na maila wysłać: juhas (małpa) toya.net.pl

1

Termometr z tworzeniem lokalnej strony domowej. Historia 3 ostatnich pomiarów, maksymalne i minimalne odczyty, diody sygnalizujący spadek/wzrost temperatury i inne dodatki. Dodam, że zacząłem go tworzyć kilka dni po otrzymaniu pierwszego Arduino i robiłem przez kilka kolejnych dni :) : http://pastebin.com/rgTQMfWn

Zamek szyfrowy z możliwością ustawiania nowego hasła, otwieraniem poprzez bluetooth oraz czytnik RFID. Projekt został porzucony, ma parę błędów: http://pastebin.com/cNUyv0W5

Termometr do monitorowania pracy pieca oblicza średnią temperatury, 2 średnie w przedziałach temperatur, maksymalny i minimalny odczyt oraz ilość przekroczeń 55*C: http://pastebin.com/Uwzg6gD3

Samochód sterowany poprzez bluetooth oraz tryb jazdy autonomicznej. Czujnik odległości zatrzymuję pojazd w bezpiecznej odległości w obu trybach, lecz w trybie autonomicznym także wycofuje i skręca. Kilka diod sygnalizujących tryby jazdy oraz stan czujnika odległości. W aplikacji jest możliwość ustawienia prędkości maksymalnej dla obu trybów oraz różnicy w prędkości między silnikami, które nie chodzą identycznie i pojazd lekko skręca. Projekt ciągle jest rozwijany. Aplikacja na telefon napisana w APP INVENTOR 2: http://pastebin.com/MT0L9Tbr

I z tych większych projektów na Arduino to tyle. Mam jeszcze kilka aplikacji okienkowych C++ tworzonych w Qt lub C++ Builder 6, lecz tworzone były z poradników i parę elementów dodawanych było z mojej wiedzy :)

0

Mam pytania co do zamka szyfrowego.

  1. W jaki sposób i iloma przewodami połączyłeś tą klawiaturę 3x4? Ja mam klawiaturę 4x4 i szukam jakichś sensownych połączeń na rezystorach (chodzi o dobranie rezystorów) tak aby zrobiło się tylko 3 przewody, jeden na +5V, drugi na masę, trzeci dający sygnał analogowy podawany na jedno z wejść analogowych, co by obrazowało wciśnięty klawisz. Coś już w tym kierunku robiłem ale mogą być przekłamania.

  2. Nie analizowałem dokładniej kodu. Co się dzieje jeśli ustawisz nowe hasło a nagle wyłączysz zasilanie Arduino? Nie widziałem tam EEPROM.write czy EEPROM.read, bo nowo ustawione hasła można tam zapisać i z tej właśnie pamięci odczytywać.

  3. Przy 3 krotnym błędnym podaniu hasła (czy tam PIN-u) można by też zastosować jakiś PUK zapisany też np. w tej pamięci EEPROM.

Ogólnie jest tu więcej możliwości.

0
  1. siedmioma kablami
  2. Nie ma EPROMU. Chciałem dodać, ale byłem znudzony tym projektem i porzuciłem.
  3. Nom, można by :)
0
drorat1 napisał(a):
  1. W jaki sposób i iloma przewodami połączyłeś tą klawiaturę 3x4? Ja mam klawiaturę 4x4 i szukam jakichś sensownych połączeń na rezystorach (chodzi o dobranie rezystorów) tak aby zrobiło się tylko 3 przewody, jeden na +5V, drugi na masę, trzeci dający sygnał analogowy podawany na jedno z wejść analogowych, co by obrazowało wciśnięty klawisz. Coś już w tym kierunku robiłem ale mogą być przekłamania.

Do klawiatury można zaimplementować mechanizm transmisji jak w ps/2, jeden pin clock podłączony do przerwania, który wyzwolony sprawdza stan na pinie data, na klawie 4x4 potrzeba przesłać 4 bity informacji + jakieś bity np. startu/parzystości dla amatorskiej kontroli poprawności transmisji danych(transmisja cyfrowa).
Dwa kable(clock, data) + zasilanie i wszystko działa do dowolnej ilości przycisków.

Implementacje można podejrzeć na necie, jest dość prosta i sprytna, w swojej konstrukcji.

0

Założyłem też już githuba: https://github.com/szerwi/Arduino

Dobrze jest on zrobiony? Coś pozmieniać? :)

1

Tak na szybko. Termometr. Widzę, że część kodu jest wzięta z netu i po prostu przeklejona. Twoja część aplikacji jest pisana po polsku, pobrana po angielsku, mam rację? To robi burdel nr 1 w kodzie. Staraj się wszystko pisać jednolicie - po angielsku (tzn. nazwy funkcji, zmiennych, definów itd po angielsku wszystko).

Po drugie - dużo zbędnego kodu. Np. wszystkie operacje na obiekcie lcd. Spójrz np. na funkcje historia(). Tam masz sporo odwołań do tych obiektów lcd. I wszystkie właściwie TAKIE SAME. To trzeba załatwić inaczej. Wszystkie te metody wywal do osobnej funkcji, np:

void writeLCD(const char * pMsg, const int line = 0, const int col = 0)
{
   lcd.clear(); //tutaj lcd powinno być przekazane przez parametr
   lcd.setCursor(line, col);
   lcd.print(pMsg);
}

void appendLCD(const char * pMsg, const int line, const int col)
{
  lcd.setCursor(line, col);
  lcd.print(pMsg);
}

albo jeszcze lepiej:

void writeLCD(const char * pMsg, const int line = 0, const int col = 0)
{
if(line == 0 && col == 0)
lcd.clear(); //może też być sterowane dodatkowym argumentem, niekoniecznie pozycją

lcd.setCursor(line, col);
lcd.print(pMsg);
}

Chodzi o to, żebyś nie powtarzał swojego kodu (zasada DRY - Don't Repeat Yourself). Patrz, w tym momencie wypisujesz komunikat za pomocą dwóch linijek (setCursor i print). Ale za jakiś czas może się okazać, że będziesz musiał dołożyć 2 kolejne linijki, które np. w jakiś sposób przygotują bufor, czy coś. I wtedy tą zmianę w Twoim przypadku będziesz musiał robić w KAŻDYM miejscu w kodzie, gdzie wypisujesz jakiś komunikat. I bardzo szybko kod stanie się nie do ogarnięcia, a Ty zarzucisz projekt, bo już nie będziesz wiedział, co się tam dzieje, dlaczego coś nie działa i Ci przejdzie ochota. W przykładzie, zmianę zrobisz TYLKO W JEDNYM miejscu. W przykładowej funkcji writeLCD. Taki kod, który trzyma się zasady DRY jest nieporównywalnie prostszy w utrzymaniu i w ogóle.

Nie martw się. Myślę, że każdy w Twoim wieku pisał w taki sposób. Ale nie każdy miał możliwość dowiedzenia się, co jest źle i jak to poprawić. Więc pamiętaj na przyszłość.

To jeszcze jest złe, bo mieszasz logikę aplikacji z logiką potrzebną do interfejsu użytkownika. W związku z czym ciężko się czyta taki kod.

0

Gdy zaczynałem robić ten projekt, to Arduino miałem zaledwie kilka dni, teraz robię to w oddzielnych funkcjach :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1