Pytanie:
Zalecenie dla Arduino
iklln6
2009-12-19 11:47:15 UTC
view on stackexchange narkive permalink

OK, oto kilka podstawowych informacji prowadzących do [oczywistego] pytania z dalszym rozwinięciem: używam 28-pinowego PICAXE do małych projektów tu i ówdzie przez ostatnie kilka lat i jestem gotowy, aby przejść dalej. Mój obecny projekt to PICAXE jako moduł do zbierania danych. Po prostu zamontowałem płytkę w obudowie i poprowadziłem wejścia i wyjścia do [wielu] zacisków śrubowych na zewnątrz w celu szybkiej i bezbolesnej wymiany komponentów. (W celu dalszej wizualizacji wbudowałem również regulator 5 V i włożyłem gniazdo DC, dzięki czemu mogę podłączyć uniwersalną brodawkę ścienną do zasilania i podłączyć połączenie USB do mini-USB, które można podłączyć z zewnątrz). Cóż, połączenie z komputerem jest dość uciążliwe w przypadku PICAXE i można je zaprogramować tylko za pomocą ich oficjalnego programu.

Więc zamierzam uaktualnić do Arduino. Myślałem o zestawie Arduino Mega Starter Kit, ponieważ wydaje się on najbardziej wszechstronny i wiem, że każda płyta, którą dostanę, będzie płytą, której będę używać przez dłuższy czas. Gdybym mógł to zrobić jeszcze raz, zacząłbym od Arduino.

Najbardziej interesuje mnie zbieranie i wysyłanie danych z powrotem do komputera, a także automatyzacja, o której wiem, że nie będzie problemu. Mam doświadczenie z C i BASICem, ale wolę C; Nie jestem pewien, czy istnieje różnica w języku w Arduino, czy nie. Co więc poleciłbyś jako najbardziej wszechstronne Arduino, które pozwoli mi osiągnąć moje obecne cele i sprawi, że będę gruby i zadowolony z możliwości wykonywania wszelkich dziwnych rzeczy, których pragnę robić dalej?

Drugie pytanie: czy jest możliwe interfejs dowolnego (lub wszystkich) Arduino z LabVIEW?

Dziesięć odpowiedzi:
#1
+7
edebill
2009-12-20 00:52:44 UTC
view on stackexchange narkive permalink

Wygląda na to, że w dużej mierze odpowiedziałeś na własne pytanie. Mega jest zdecydowanie największym i najpotężniejszym z Arduino. Osobiście skłaniam się bardziej ku ilości niż jakości, więc kupiłbym dwa tańsze Arduino. Uważam, że żeńskie nagłówki w arduino są nieco ograniczone, więc różne Arduino z płytkami prototypowymi zwykle otrzymują moje skinienie głową ( Really Bare Bones Boarduino i Boarduino). Zwykle wybierasz dwie rzeczy, gdy wybierasz Arduino: ile ma wejść / wyjść i jak się z nim komunikować. Oczywiście jesteś na szczycie pytań dotyczących I / O, ale możesz pomyśleć o tym, czy zamierzasz używać USB lub szeregowego (prawdopodobnie przez USB -> adapter szeregowy) do programowania Arduino. Jeśli zamierzasz kupić tylko jedną lub dwie płyty, to USB jest najłatwiejsze i najtańsze. Jeśli zamierzasz skończyć z 3 lub więcej płytami, prawdopodobnie taniej jest kupić płyty tylko szeregowe i oddzielny konwerter USB -> szeregowy ( kabel FTDI lub podstawowa płytka rozdzielająca FTDI).

Podstawowe Arduino jest niezwykle wydajne i bardzo łatwo jest dodać dodatkowe wejścia za pomocą tanich układów scalonych multiplekserów. Jeśli nie masz natychmiastowej potrzeby dodatkowych wejść, warto zacząć od tańszej płyty.

Jeśli używasz Arduino IDE, będziesz programować w C ++ na wszystkich Arduinos. Dokumentacja Arduino zwykle zachęca do używania tylko nieco więcej niż podzbioru C ++ w języku C (w zasadzie C z jednym lub dwoma dodatkami), więc programista C powinien czuć się bardzo komfortowo. Jako dodatkowy bonus, możesz robić takie rzeczy, jak deklarowanie zmiennych tuż przed ich użyciem, zamiast robić to na początku funkcji. Z drugiej strony uważaj na różnice w stosunku do standardowej biblioteki C. sprintf ("% f", foo) i kilka innych rzeczy nie działa domyślnie. W razie wątpliwości naciśnij arduino.cc i wyszukaj.

Jeśli chodzi o komunikację z powrotem do komputera, osobiście używam Ruby on Rails do rozmowy z moimi projektami Arduino, ale większość ludzi wydaje się preferować przetwarzanie. Wszystko sprowadza się do portu szeregowego, więc możesz używać wszystkiego, z czym czujesz się najbardziej komfortowo.

Świetna odpowiedź - planowałem kupić ATMega, która została zidentyfikowana jako największa, ale masz bardzo dobry punkt widzenia z wieloma tańszymi płytami i dodaniem wejść, jeśli to konieczne, za pomocą multiplekserów. Myślę, że to jest trasa, którą pójdę. Wirtualne ograniczenie gotowych wejść byłoby znacznie zrekompensowane dodatkowymi możliwościami posiadania wielu kart. Będę oczywiście używać USB, dopóki nie zbuduję czegoś lepszego (bluetooth jest w przyszłości, ale tylko jako most szeregowy, więc nie filozoficznie inny niż serial-> usb).
#2
+3
jluciani
2009-12-19 19:18:13 UTC
view on stackexchange narkive permalink

Do tej pory wszystkie Arduino i kompatybilne systemy składają się z płyty z układem Atmel (takim jak '168 lub 328), bootloadera, biblioteki wysokiego poziomu i wieloplatformowego GUI. Bootloader umożliwia pobieranie programów utworzonych na hoście przy użyciu portu szeregowego uC. Większość ludzi konwertuje port szeregowy uC na połączenie USB przy użyciu różnych interfejsów FTDI USB na interfejs szeregowy. Interfejs szeregowy / USB może być używany z LabView.

Możesz używać tych płyt jako Arduino lub jako systemy wbudowane. Większość z tych płyt ma nagłówek 3x2, który jest zgodny ze specyfikacją Atmels ICSP. Korzystając z adaptera USB na ICSP (takiego jak ATmel AVRISPMKII) można zaprogramować płytkę bez bootloadera lub bibliotek Arduino. Istnieje wiele różnych bibliotek Atmel, których można używać do samodzielnego programowania w C. Większość mojego rozwoju jest wykonywana przy użyciu portu ICSP, gcc i pliku Makefile. Biblioteki Arduino wykonują doskonałą robotę, zapewniając kontrolę sprzętu na wysokim poziomie. Czasami kompromisem jest wydajność. W ostatniej aplikacji zauważyłem znaczną poprawę szybkości, gdy zmieniłem instrukcje digitalWrite na operacje bitset i bitclear.

Właściwa płyta zależy bardziej od aplikacji -

  1. Ile cyfrowych wejść / wyjść potrzebujesz?
  2. Czy uC A / D wystarczająca dokładność i rozdzielczość?
  3. Czy potrzebujesz wyjścia analogowego? Jaka dokładność i rozdzielczość?
  4. Czy potrzebujesz kondycjonowania sygnału?
  5. Czy potrzebujesz izolacji?
  6. Czy potrzebujesz sygnatury czasowej danych na płycie uC, czy może to być obsługiwane przez hosta?
  7. Ile interfejsów szeregowych potrzebujesz? (Ostatnie dwie aplikacje, które posiadałem, mogły używać jeszcze jednego UART;)

Jeśli nie możesz używać A / D na uC i nie potrzebujesz UART, może być lepiej z z mniejszą płytą. Ostatni duży system akwizycji danych, jaki zastosowałem, używał uC z tylko kilkoma urządzeniami peryferyjnymi. Potrzebowaliśmy 16-bitowego A / D i 14-bitowego DAC. Nie było sensu płacić za wewnętrzny 10-bitowy przetwornik cyfrowo-analogowy lub 8-bitowy przetwornik cyfrowo-analogowy.

Wykonuję kilka kart zgodnych z Arduino, które przenoszą wszystkie połączenia we / wy do jednego nagłówka. Możesz stworzyć system, który ma tablice współpłaszczyznowe, ułożone w stos, zdalne (jeden kabel taśmowy) lub płytę montażową. Płyta montażowa może być przydatna w systemie gromadzenia danych, który wykorzystuje karty peryferyjne. Moje tablice są na http://www.wiblocks.com

#3
+2
zklapow
2009-12-19 12:26:41 UTC
view on stackexchange narkive permalink

Jeśli robisz tylko akwizycję danych, Mega wydaje się nieco zbędna, chyba że oczywiście używasz ton czujników i lub potrzebujesz wielu portów szeregowych. Powiedziałbym, że po prostu do akwizycji danych wystarczyłaby Diecimila (znowu w zależności od tego, co tak naprawdę trzeba z nią zrobić)

Wiem, że Mega to trochę przesada, jeśli chodzi o proste zadanie pozyskiwania danych, ale nie chcę być ograniczony, jeśli sprawię, że dzikie włosy użyją ton czujników. Kilka lat temu kupiłem zestaw PICAXE, aby zbudować mojego pierwszego robota, ale teraz chciałbym przeprowadzić więcej badań, aby uzyskać coś bardziej w pełni funkcjonalnego, aby wspierać nieuniknione uzależnienie. Przypuszczam, że bardziej odpowiednim pytaniem mogłoby być „Która płyta Arduino ma najwięcej funkcji / funkcji?” ale nie wiem, czy na to pytanie nie można odpowiedzieć z powodu ustawień specyficznych dla aplikacji.
Można powiedzieć, że Mega ma więcej funkcji, ale twoja zwarta zależy od konfiguracji. Jeśli wszystkie twoje czujniki są I2C, to nie ma różnicy, że wszystkie mogą być kontrolowane przez jedną magistralę I2C, którą mają wszyscy arduino, z drugiej strony szeregowy to inna historia.
#5
+1
todbot
2009-12-19 16:15:19 UTC
view on stackexchange narkive permalink

Tak, dostałbym dwa zwykłe Arduino zamiast Arduino MEGA, chyba że masz konkretny projekt, który wymaga wielu operacji we / wy.

Łatwo jest stworzyć projekt, który chcesz zachować, więc zamiast niszczyć obwód, aby stworzyć nowy projekt, zachowaj go i po prostu zdobądź kolejne Arduino. Jeśli koszt zwykłego Arduino jest zbyt duży, możesz zbudować zestaw Freeduino. A jeśli to za dużo, możesz wykonać minimalną konfigurację Arduino, używając tylko ATmega8, rezystora i kondensatora.

#6
+1
Amos
2009-12-19 16:19:13 UTC
view on stackexchange narkive permalink

Nieco innym rozwiązaniem twojego pytania jest pamiętanie, że twoje PicAXE to tylko wstępnie zaprogramowany PIC, instrukcja zawiera następujące odpowiedniki:

  • PICAXE-28X1 = PIC16F886
  • PICAXE-28X2 = PIC18F2520 (wersja 3V PIC18F25K20)

i przestarzałe chipy:

  • PICAXE-28A = PIC16F872 (zastąpione przez 28X1)
  • PICAXE-28X = PIC16F873A (Zastąpiony przez 28X1)

Więc teoretycznie możesz zdobyć programistę, który obsługuje te PIC i przeprogramować je w C lub Assemblerze, usuwając PicAXE bootloader i używaj ich jako standardowych PIC. W ten sposób możesz programować swoje chipy z dużo większą elastycznością.

Więc możesz na przykład wziąć chip do swojego rejestratora danych, przeprogramować go w C, aby robił, co chcesz, i zamienić obwód. Chociaż być może będziesz musiał usunąć obwód programowania PicAXE, jeśli masz go na miejscu, nie wiem, jak dokładnie naśladuje obwód PICs ICSP (myślę, że nie będziesz używać gniazda audio).

#7
+1
Mike M
2009-12-26 07:33:45 UTC
view on stackexchange narkive permalink

prawie w pełni funkcjonalny klon arduino (np. duinostamp firmy Fundamentalogic) można kupić za jedyne 10-12 USD ... a po zakończeniu prototypowania łatwo go osadzić w swoim projekcie i wypuść na wolność. Osadzenie pełnego Arduino (TM) byłoby przesadą. Powiedziałbym, że kup najtańsze i weź kabel FTDI do przesyłania 'szkiców' (przez arduino IDE) itp. Możesz także poprosić o programistę ISP, jeśli planujesz umieścić niestandardowe bootloadery itp. (Lub po prostu zaoszczędzić chip samemu spalając bootloader)

Jestem początkującym i na początku dostałem płytkę Duemilanove, ale skończyło się na tym, że dostałem boarduino również po zabawie z oryginałem, ponieważ znacznie łatwiej jest z nim prototypować. na płytce stykowej. W przyszłości zamierzam zbudować tylko zwykły znaczek „duino” lub jego odpowiednik do osadzania w dowolnych projektach.

Arduino (tm) świetnie nadaje się na początek, ale bardzo szybko odkryłem, że w przypadku rzeczywistych projektów że mam zamiar wypuścić na wolność potrzebowałbym czegoś bardziej elastycznego ... i tańszego (plus żeńskie nagłówki mogą być trochę nieswojo, chociaż są świetne dla początkujących)

#8
  0
russ_hensel
2009-12-19 22:12:21 UTC
view on stackexchange narkive permalink

Rozważ kilka płyt szkieletowych w formie zestawu, dobrze współpracują z płytą stykową, bardzo niedrogie. Wady: są to rs232 ttl i nie mają osłon. Maker shed ma kilka adapterów ze standardowego 232. Moderndevice.com pobiera płytę. Niecałe 15 dolarów, jak pamiętam.

#9
  0
JRobert
2011-10-22 19:43:45 UTC
view on stackexchange narkive permalink

Dużą zaletą Mega jest to, że ma więcej pamięci, a pamięć RAM jest w szczególności dość ograniczona w przypadku mikrokontrolerów. W zależności od rodzaju eksperymentów, które chcesz przeprowadzić, możesz docenić dodatkową pamięć flash dla dużych programów i przechowywanie stałych ciągów; iz pewnością docenisz dodatkową przestrzeń RAM dla tablic, dzienników, buforów pierścieniowych, połączonych list itp., bez konieczności wymyślania schematów kompresji (dość często ...), aby zmieścić się w mniejszej pamięci RAM, szczególnie podczas debugowania lub koncepcje testowania.

#10
  0
ViennaMike
2012-10-09 21:24:57 UTC
view on stackexchange narkive permalink

Inną opcją dla kompatybilnego z płytą prototypową arduino jest Teensy. Posiadają złącze mini-USB, więc nie potrzebujesz zewnętrznego portu USB na port szeregowy i można je zaprogramować jako Arduino za pomocą bezpłatnego dostarczonego kodu, aby dodać do Arduino IDE (lub zaprogramować jako prosty AVR, według własnego uznania). Są dostępne z nagłówkami do makietowania i bez nich. Użyłem kilku z nich w różnych projektach.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 2.0, w ramach której jest rozpowszechniana.
Loading...