Spisu treści:

Łączenie Processing i Arduino oraz Make 7 Segment and Servo GUI Controller: 4 kroki
Łączenie Processing i Arduino oraz Make 7 Segment and Servo GUI Controller: 4 kroki

Wideo: Łączenie Processing i Arduino oraz Make 7 Segment and Servo GUI Controller: 4 kroki

Wideo: Łączenie Processing i Arduino oraz Make 7 Segment and Servo GUI Controller: 4 kroki
Wideo: Build Seven Segment LED clock with Arduino and DS3231 - Robojax 2024, Listopad
Anonim
Łączenie Processing i Arduino oraz Make 7 Segment and Servo GUI Controller
Łączenie Processing i Arduino oraz Make 7 Segment and Servo GUI Controller

W przypadku niektórych projektów, które wykonałeś, musisz użyć Arduino, ponieważ zapewnia łatwą platformę do prototypowania, ale wyświetlanie grafiki na monitorze szeregowym Arduino może trwać dość długo, a nawet jest trudne. Możesz wyświetlać wykresy na Arduino Serial Monitor, ale wykresy nie są jedyną rzeczą, którą możesz potrzebować wyświetlić. Wszystkie interaktywne obiekty, takie jak suwaki, przyciski, programy z wyjściem 2D, 3D, PDF lub SVG, a także możesz łatwo tworzyć animacje. Domyślnym trybem programowania do przetwarzania jest Java, ale można go przełączyć na Androida, p5.js, REPL, CoffeeScript i JavaScript. W tym Instruktażu użyjemy jednak trybu programowania Java.

Cała zawartość i kod są również dostępne na moim githubie tutaj.

Krok 1: Korzystanie z Processing.serial

Kod przetwarzania

Pierwsze dwie linijki kodu będą

importowanie przetwarzania.serial.*; port szeregowy myPort;

Tutaj w pierwszym wierszu importujemy bibliotekę - przetwarzanie, aw drugim wierszu tworzymy obiekt klasy Serial o nazwie myPort, możesz go nazwać jak chcesz zgodnie z zasadami nazewnictwa identyfikatora.

W przetwarzaniu mamy void setup() i void draw(), gdzie void jest typem zwracanym przez funkcję, można go również zmienić na int setup() i int draw() lub inny typ danych, który Ci się podoba, ale będziesz musiał zwrócić wartość, która ma ten sam typ danych, co typ danych używany przed funkcjami.

w setup() piszemy instrukcje, które musimy wykonać raz, podczas gdy w draw() piszemy instrukcje, które musimy wykonać wiele razy. Dwie linie kodu wymienione powyżej powinny być napisane powyżej void setup(), ponieważ muszą mieć globalny dostęp.

W void setup() zainicjujemy obiekt myPort.

pusta konfiguracja (){

rozmiar (800, 800);

myPort=new Serial(to, "COM18", 9600);

}

Rozmiar linii (800, 800); określa rozmiar ekranu, który wynosi 800 pikseli na 800 pikseli.

Słowo kluczowe new w drugim wierszu służy do zarezerwowania miejsca dla obiektu w pamięci, argumentem jest to zmienna referencyjna, która odnosi się do bieżącego obiektu. Argumentem COM18 jest podłączony port Arduino, potrzebujemy tego, ponieważ będziemy przesyłać dane przez interfejs szeregowy. Liczba 18 może być inna w twoim przypadku, możesz ją znaleźć w Narzędzia> Port w Arduino IDE, a 9600 to szybkość transmisji, którą możesz zmienić zarówno w Arduino, jak i Processing.

Krok 2: Zrozum klasę szeregową

Konstruktor Serial

Serial(rodzic, nazwa_portu, szybkość transmisji, parzystość, bity danych, bity stopu)

Argumenty:

rodzic: zwykle używaj "this"

Szybkość transmisji (int): 9600 to wartość domyślna

portName (String): nazwa portu (domyślnie COM1)

parzystość (znak): 'N' dla żadnego, 'E' dla parzystego, 'O' dla nieparzystego, 'M' dla znaku, 'S' dla spacji ('N' jest domyślnie)

dataBits (int): 8 to wartość domyślna

stopBits (zmiennoprzecinkowa): 1.0, 1.5 lub 2.0 (domyślnie 1.0)

Ważne metody:

  1. myPort.available() - zwraca liczbę dostępnych bajtów.
  2. myPort.clear() - opróżnia bufor i usuwa wszystkie zapisane w nim dane.
  3. myPort.read() - zwraca liczbę z zakresu od 0 do 255 dla następnego bajtu, który czeka w buforze.
  4. myPort.readString() - zwraca wszystkie dane z bufora jako String lub null, jeśli nic nie jest dostępne.
  5. myPort.write("test") - Zapisuje bajty, znaki, ints, bytes, Strings do portu szeregowego.
  6. myPort.stop() - zatrzymuje komunikację danych na porcie.

Krok 3: Klasa szeregowa Arduino

Nie musisz importować klasy Serial do Arduino przed jej użyciem.

W Arduino są 2 funkcje o nazwie setup() i loop(), setup uruchamia się tylko raz, ale pętla działa wiele razy. W setup() musimy napisać użyć metody begin(), aby rozpocząć komunikację szeregową. W Arduino w przeciwieństwie do przetwarzania nie musimy wymieniać portu jako argumentów metody begin(), ponieważ określamy go już podczas przesyłania szkicu w Arduino.

Zatem setup() będzie wyglądał tak:

pusta konfiguracja (){

Serial.początek(9600); //uruchom komunikację szeregową

}

9600 tutaj określa szybkość transmisji, o której wspominaliśmy również w pliku przetwarzania. Aby komunikacja była prawidłowa, obie szybkości transmisji powinny być równe lub możesz postrzegać wyjście szeregowe jako bełkot.

Teraz zobaczmy część loop(). Ta część kodu jest uruchamiana wiele razy. Jeśli chcemy odczytać jakieś dane przez port, użyjemy metody Serial.read(). Ta funkcja zwraca wartość null, jeśli żadne dane nie są dostępne, więc wywołamy tę metodę tylko wtedy, gdy będziemy mieć jakieś dane dostępne w strumieniu Serial.

Aby sprawdzić, czy dostępne są jakieś dane, użyjemy metody Serial.available(). Jeśli zwraca wartość większą niż 0 - dostępne są niektóre dane.

Część loop() będzie wyglądać tak:

pusta pętla () {

if(Serial.available() > 0){ //jeśli jakieś dane są dostępne w porcie szeregowym

stan znaku = Serial.read(); //odczytaj wartość

// instrukcje if lub switch case

}

}

Teraz możemy użyć if ladder lub jeśli istnieje wiele możliwych wyników, możemy również użyć switch case dla zmiennej stanu.

Krok 4: Zbuduj 7-segmentowy kontroler GUI

Zbuduj 7-segmentowy kontroler GUI
Zbuduj 7-segmentowy kontroler GUI
Zbuduj 7-segmentowy kontroler GUI
Zbuduj 7-segmentowy kontroler GUI
Zbuduj 7-segmentowy kontroler GUI
Zbuduj 7-segmentowy kontroler GUI

Pliki są załączone tutaj. Uwaga: Do przetwarzania będziesz musiał również zainstalować bibliotekę sterowania p5, której użyłem do tworzenia interaktywnych przycisków GUI.

Numery PIN

7 segmentów (w kolejności alfabetycznej) odnoszą się do obrazu;

a - cyfrowy pin 2

b - pin cyfrowy 3

c - cyfrowy pin 4

d - cyfrowy pin 5

e - pin cyfrowy 6

f - cyfrowy pin 7

g - pin cyfrowy 8

dp - cyfrowy pin 9

Cała zawartość i kod są również dostępne na moim githubie tutaj

Zalecana: