Własne moduły

Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

No to by było tak na dzisiaj. Patrząc z perspektywy użytkownika Arduino, aby uruchomić pełnosprytny moduł Hapcanuino gadający z Hapcanem wystarczy 10 linijek kodu i można sterować diodą oraz wyświetlać godzinę Hapcanową na wyświetlaczu OLED :).
hapcanuino_oled_clock.jpg
Jeszcze nie publikuję kodu, bo chcę opracować jeszcze bardziej zaawansowany sposób budowania modułów - modularnie, wysyłanie własnych wiadomości na magistralę oraz przetestować w różnych warunkach działanie tego ustrojstwa. Chcę to dobrze usystematyzować, tak aby każdy budowany nowy moduł miał podobną strukturę, aby ta była łatwiej zrozumiała dla innych. To tak na szybko zmontowane, bo nie mogłem się oprzeć :).
Oczywiście instrukcja wyświetlająca godzinę oraz zmiana stanu czerwonej diody LED są obsługiwane poprzez konfigurację w boxach, zaprogramowaną póki co przez edycję pamięci EEPROM z Hapcan programmera.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

PelzaK czy Hapcanuino zadziała z ESP8266+moduł can (można je programować jak arduino przez Arduino Software (IDE))
podłączyłem dzisiaj to ze sobą i coś czyta i wysyła do magistrali ;]
Pytam dlatego że ESP8266 typu NodeMCU czy webos D1 mini nie są wcale większe od arduino Nano a mają 4 Mb pamięci i są dużo szybsze, plusem może być update softu przez Wifi w module, cena na Ali też zachęca do zabawy.
20161127_131514.jpg
esp_can.png
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Nie miałem okazji pobawić się ESP, ale też nie planuję póki co wykorzystywać WIFI w automatyce domowej, póki wszędzie mogę dotrzeć kablem ;). Kody wrzuciłem na githuba https://github.com/Onixarts/Hapcanuino, jeszcze bez dokumentacji (dorzucę wkrótce) i w wersji rozwojowej więc będziesz mógł sprawdzić czy da się to wykorzystać.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

PelzaK jakiej biblioteki używasz do CAN ? czy tej: https://github.com/coryjfowler/MCP_CAN_lib
... bo mam błędy przy kompilacji
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

W mojej jest napisane wersja 1.1 i
Author:Loovee
Contributor: Cory J. Fowler
2014-1-16

Więc jest to coś starego co miałem kiedyś już zaciągnięte z sieci. Pamiętam, że nie obsługiwała ona mojego modułu MCP, bo była przystosowana do kwarcu 16MHz a u mnie jest 8MHz i musiałem za pomocą jakiegoś chińskiego kalkulatora wyliczać jakieś wartości i modyfikować kod :).

Ogarnę niedługo temat tak aby wskazać konkretną bibliotekę (bo jest ich kilka, każda podobna). A jaki błąd Ci wypluwa kompilator?

Póki co w wiki na githubie dodałem sposób konfiguracji boxów itp.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

In file included from sketch\HapcanDevice.h:14:0,

from sketch\HapcanDevice.cpp:2:

DeviceConfig.h:52: error: 'MCP_8MHz' was not declared in this scope

const byte OscillatorFrequency = MCP_8MHz; // MCP oscillator frequency on MCP CAN module (or MCP_16MHz)
.......


exit status 1
'MCP_8MHz' was not declared in this scope

wersja 1.5
Author:Loovee
Contributor: Cory J. Fowler
2016-07-01


nie znalazlem 1.1
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

No to właśnie było to o czym mówię. Zobaczę jak to działa z nowymi bibliotekami do mcp. P.S. gdybys miał jakieś błędy itp to wpisuj na githubie, nie będziemy spamować forum :).

Edytowany: Poprawiłem problem z mcp. W Readme.md podałem link od biblioteki z którą działa.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

Dobra robota :)
Ogarniam co robić dalej ...... ;]
ok.png

Czy w Programatorze Hapcan powinieniem być widoczny nowy moduł ? (domyślne id,grupa - 20,09)?
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Jeśli widzisz w oknie portu COM wiadomości z magistrali to znaczy, że działa :).

Tak, w programatorze powinien być widoczny moduł, domyślnie bez nazwy o identyfikatorach jakie podałeś, ale są one zapisane hexem, więc grupa 0x09 to jest grupa 9 ale node 0x20 to będzie 32. Można je zmienić w DeviceConfig.h jako Serial Number2 i 3 jeśli nachodzą akurat na jakieś istniejące urządzenie.

Code: Select all

				
namespace Node
{
	const byte SerialNumber0 = 0x01;			// ID0 serial number MSB
	const byte SerialNumber1 = 0x02;
	const byte SerialNumber2 = 0x20;			// this is also a default node
	const byte SerialNumber3 = 0x09;			// this is also a default group
}
Sam config będzie zmieniony, bo obecnie nie da się go zmieniać z poziomu pliku ino, co dyskwalifikuje bibliotekę aby użyć jej do budowy wielu urządzeń. Póki co obmyślam jeszcze wygodny i optymalny sposób do konfiguracji urządzenia.
Resztę, jak zaprogramowac boxa opisałem tutaj: https://github.com/Onixarts/Hapcanuino/ ... ing-device
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

Kurcze ... nie wiem co to za ramka była w konsoli ;] też uznałem że jest OK ale Programmer nic nie wykrywa ... zmieniałem moduł i grupę jak pisałeś na inne (zamieniają z HEX) i cisza ... w konsoli Serial Monitora i Programmerze .... jest jakieś "dokładniejsze" debugowanie ? ... jutro walczę dalej
....
h1.png
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Czy z modułu can podłączyłeś również linię INT do wejścia zewnętrznego przerwania? W arduino uno jest to pin2. Bez tego żadna ramka nie przejdzie. Jakiego dokładnie arduino używasz? Możliwe też, że linia CS jest na innym pinie.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

Wiem dokładnie o co pytasz ... wydaje mi się że to sprawdziłem i ustawiłem piny jak w twojej konfiguracji.
Używam Nano, ale mam też Uno i sprawdzę. Bo na pewno działa tylko pewnie coś przeoczyłem.

Bingo ;] z Uno w monitorze są logi ramek .... testuje dalej ;]
Programmer też już wykrył ;]

Z Arduino Nano też działa (miałem błąd w podłączeniu)

Po zmianie nazwy przez Programera psikus ... reboot i nie wstał. dioda na arduino cały czas pulsuje (LED13 chyba) (muszę ręcznie go resetować)
h3.png
... wróciłem na Arduino UNO i resetuje się poprawnie
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Arduino nano ma z tego co kojarzę wbudowany driver USB w mikrokontroler co powoduje, że po restarcie jest jakiś problem z portem szeregowym - to może powodować, że port się gubi. Samo urządzenie powinno jednak działać. Podobnie jest jak wyłączę monitor portu to Arduino Uno też świeci diodą LED13, bo nie może wysłać danych. Trzeba by to zgłębić, ale póki co mam na obiekcie tylko uno i mega :).
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

W końcu się udało dioda działa ;] ... HelloWorld ewoluuje cały czas :)

DOBRA ROBOTA PelzaK

Pytanie: Czy Arduino zapisuje stan w tym przypadku D7 do EEpromu ? bo po zapaleniu diody i wył./zał. zasilania dioda się nie zapala ?
Jak zrobić przycisk ?
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Urządzenie samo w sobie nie wie, że dioda jest tutaj istotna, bo to jest już kod użytkownika. Nie zapisuje zatem stanu diody. Sam zapis parametrów również będzie dodany, aby sobie przypadkiem nie nadpisać konfiguracji. W przypadku eeproma pod uwagę trzeba wziąć ograniczoną liczbę zapisów i jeśli nie ma takiej potrzeby to nie zapisywać wszystkiego jak leci, przy każdej zmianie.

W ostatniej wersji zaszło trochę zmian, bo trochę poszedłem w złą stronę ;) no i boxy trzeba przekonfigurować bo zakradł się błąd z interpretacją typu ramki.

W zanadrzu mam jeszcze specjalne klasy ułatwiające zakodowanie obsługi przycisków, wyjść, wykonywanie cyklicznych zadań oraz realizacji bardziej skomplikowanych scenariuszy.
Post Reply