Co sprawia, że ​​dana platforma nadaje się lub nie nadaje się do użytku produkcyjnego? [Zamknięte]

9

Załóżmy, że koszt towarów jest nieistotnym czynnikiem. Jeśli firma nie ma zespołu, który mógłby wyprodukować niestandardową płytkę dla konkretnego produktu, ale odnosi sukcesy z gotową platformą programistyczną, taką jak Arduino / Netduino / mbed, jakie rzeczy należy rozważyć przed pójściem dalej?

Jeśli się nie mylę, Arduino początkowo było skierowane do studentów uniwersytetów ze względu na niską cenę i łatwość użytkowania. Naturalnie stała się popularną platformą dla artystów i twórców. Widzę Netduino jako logiczne rozszerzenie Arduino - pozwala ludziom korzystać z solidnego i bogatego IDE (Visual Studio 2010) i szybko wykonywać zadania za pośrednictwem .NET Micro Framework. mbed to kolejna fajna platforma dla hobbystów ze względu na łatwość użycia, bezpłatne narzędzia (kompilator online) i sprzętowe urządzenia peryferyjne.

Więc moje pytanie brzmi: dlaczego firmy nie powinny stosować tych platform programistycznych do użytku produkcyjnego? Innymi słowy, czy to zły pomysł, aby po prostu kupić kilka płyt od Sparkfun, zaprogramować każdą z nich za pomocą kodu, a następnie wdrożyć produkt dla klientów?

Szczególnie interesuję się Netduino, ale argumenty za / przeciwko Arduino i mbed są również mile widziane. Z drugiej strony, czy zrobiłbyś to wcześniej?

Osobiście uważam rozwój Netduino za „moduł podstawowy”, który inni producenci procesorów sprzedają za integrację produktu, ale może brakuje mi tutaj czegoś ważnego.

Dave
źródło

Odpowiedzi:

5

Niektóre kwestie, na które można zwrócić uwagę podczas pozyskiwania modułu kontrolera, to kwestie takie jak bezpieczeństwo dostaw w czasie, wszelkie problemy z licencjonowaniem, wszelkie nieefektywności procesu ładowania oprogramowania układowego do produkcji, wszelkie problemy z bezpieczeństwem kodu oraz wszelkie wątpliwości dotyczące jakości produkcji lub zgodności z przepisami. Niektóre z nich będą bardziej dotyczyły zastrzeżonego modułu niż stosunkowo otwartego, w którym ktoś mógłby stworzyć ekwiwalent lub ewentualnie połączyć się z inną funkcjonalnością w twoim produkcie.

Chris Stratton
źródło
Problemem może być podaż, ale przynajmniej projekty * duino są open source.
Dave
@Dave - Nie trafiłeś w sedno. Chris (myślę) mówił głównie o problemach z .NET, a nie ze sprzętem.
Kevin Vermeer
1
@reemrevnivek - hmm ... na pewno zabrzmiało to jak problemy ze sprzętem. Po co dostarczać problemy, ładowanie oprogramowania układowego i MFG. jakość ma coś wspólnego z .NET?
Dave
1
Możesz, ale nie musisz, uzyskać licencji na załadowanie określonego środowiska wykonawczego na alternatywnej płycie źródłowej. Różne kwestie, które sugerowałem, to asortyment niekoniecznie ze sobą powiązany.
Chris Stratton
12

Yikes! Albo jesteś całkowicie zdezorientowany, albo twój pomysł na produkcję różni się od mojego. Uważam, że produkcja oznacza sprzedaż produktu ogółowi społeczeństwa w ilościach tysięcy lub więcej, a następnie wsparcie i aktualizację projektu. Produkty, które nie trafiają do ogółu społeczeństwa, są pracą wewnętrzną lub kontraktową, a produkty sprzedawane w mniejszych ilościach są przeznaczone do specjalnych celów lub w inny sposób różnią się. „Kilka desek Sparkfun” nie spełniłoby potrzeby produkcyjnej.

Po pierwsze, koszt towarów jest zawsze znaczącym czynnikiem. To, jak znaczące jest to może różnić się w zależności od produktu, i może być mniej znaczące, jeśli dany element jest tylko małym elementem większego systemu, który został zoptymalizowany pod kątem kosztów. Jednak w każdym środowisku, w którym konkurujesz z innymi producentami (którym musisz być, ponieważ jeśli jesteś w rządzie lub masz monopol, nie zadajesz tego pytania), koszt będzie czynnikiem. 35 USD za Netduino (sam koszt) można zwykle zmniejszyć do 10 USD lub mniej w przypadku większości aplikacji o niestandardowym projekcie. Jeśli jesteś przekonany, że koszt nie ma znaczenia, istnieją dalsze powody, aby nie kupować takiego projektu.

Tak, wszystkie trzy plansze zostały zaprojektowane dla studentów, projektantów i hobbystów. Zostały zaprojektowane tak, aby były wystarczająco niezawodne dla zestawu uruchomieniowego, który stoi na biurku. Ten uczeń powinien wiedzieć kilka rzeczy na temat procedur bezpiecznego obchodzenia się, których ogólna populacja nie zna ani nie praktykuje. Zagadnienia takie jak wyładowania elektrostatyczne, długoterminowe rozpraszanie mocy i obniżanie wartości znamionowych komponentów zostały prawdopodobnie obniżone poniżej rzeczy, które są mniej ważne dla produkcji, takich jak lutowność i prostota.

Twoje zamiłowanie do IDE i gotowych rozwiązań jest przerażające. Moim zdaniem, pokładasz zbyt duże zaufanie do dostawców narzędzi. Jeśli płyty stają się droższe, jeśli zmieniają się warunki licencji, jeśli serwer przestaje działać, oprogramowanie zostaje uznane za przestarzałe, producent płyt przestaje działać (itp. Itd. Itd.), Firma zostaje zamknięta. Ponadto nie rozumiesz, co dzieje się za kulisami. Jeśli coś nie działa w sposób, w jaki mówi dokumentacja, to jaki powinien być twój plan? Twój pomysł, aby kupić kilka Arduinos, zaprogramować je i wdrożyć produkt, na przykład, nie ma żadnego planu ochrony kodu. Ktoś inny może skopiować kod z mikrokontrolera, zduplikować odpowiednie części projektu za jedną trzecią ceny i sprzedać cię.
Poleganie na IDE i języku dla rzeczy, których nie rozumiesz, to przepis na katastrofę.

Korzystanie z zestawu rozwojowego w projekcie sprawi, że Twój produkt będzie zawyżony, delikatny, nieporęczny, energochłonny i nieefektywny. Trudno będzie również debugować, co będzie trudnym wsparciem, a będziesz na łasce swoich dostawców. Sprawi, że będziesz wyglądać niekompetentnie.

Jednak nie wszystko jest stracone. Jeśli zaimplementujesz swój projekt na planszy programistycznej, łatwo będzie, jeśli ktoś (z twojego zespołu lub poza nim) dostosuje go w celu usunięcia tych braków. Jeśli brakuje Ci zespołu, powinieneś go zatrudnić, zatrudnić kontrahenta lub zlecić to firmie projektowej.

Kevin Vermeer
źródło
1
Produkcja nie musi oznaczać tysięcy. Istnieje wiele inżynierii w wysoce specjalistycznym sprzęcie, który może sprzedawać w zamówieniach od kilkudziesięciu do kilkuset sztuk - i oczywiście sprzedaje się za raczej wysokie ceny lub nikt by tego nie zarabiał. Takie branże koncentrują się na szybkim zaspokajaniu potrzeb, a nie na spędzaniu miesięcy na uzyskiwaniu każdego ostatniego dolara z BOM.
Chris Stratton
2
@reemrevnivek - Myślę, że ty i ja pracujemy w zupełnie innych światach. Kiedy odnoszę się do części produkcyjnej, to wszystko zostaje wydane klientowi i może być w ilościach od 1 do 20, a nie dziesiątek tysięcy, tysięcy, a nawet setek. Nie przejmowałbym się tym, gdybym mógł zmniejszyć część z 50 USD do 5 USD, jeśli to oznacza, że ​​będę musiał spędzić dodatkowe 3 miesiące na rozwoju. Nie mam również nic przeciwko, jeśli ktoś skopiuje kod.
Dave
1
Przyniosłeś jednak naprawdę dobre punkty i cenię twój wkład. Myślę, że twoja odpowiedź była trochę ekstremalna i masz jasne zdanie na ten temat, ale mogę z tego wyodrębnić kluczowe punkty.
Dave
2
@Dave - Przepraszam, świadomie starałem się, aby nie było opinii lub ekstremalnych. Tak to wygląda po kilku powtórnych odczytach i edycjach: P. Podtrzymuję jednak moje oświadczenie, że słowo „produkcja” oznacza (w każdym kontekście, w którym działałem, głównie jako dostawca OEM dla branży motoryzacyjnej) tysiące części. Czy możesz sobie wyobrazić otwarcie kaptura i zobaczenie włamania Arduino do kontrolera wentylatora? Nie, i nie bez powodu. Próbowałem podać kilka z tych powodów.
Kevin Vermeer
1
@reemrevinek - haha! bez przestępstwa. Miałem nadzieję, że dzięki temu pytaniu uzyskam wiele punktów widzenia. Moje środowisko jest zupełnie inne. Sprzedajemy kilka niestandardowych produktów, które są dość drogie, więc część taka jak płyta wbudowana jest w porządku, jeśli kosztuje więcej i równoważy czas opracowywania. Obecnie używam Netduino tylko do koncepcji prototypowania, ale potem przyszło mi do głowy, że prawdopodobnie możemy go wprowadzić do produktu, ponieważ i tak jest używany tylko z kontrolerem wyświetlacza. Z pewnością zgadzam się, że lepiej / bardziej profesjonalnie jest mieć niestandardową tablicę, ale chciałem usłyszeć opinie.
Dave
4

Używam płyty Arduino w produkcie (nie na dużą skalę) i nie zrobiłbym tego ponownie. Tablice Arduino są ukierunkowane na bardzo zamknięty ekosystem (w znaczeniu tego słowa w oprogramowaniu innym niż open source). Na przykład, jeśli „wyjdziesz” z ekosystemu Arduino, potrzebując użyć pinezki, która nie jest wyprowadzona do nagłówka na płycie programistycznej, natychmiast tracisz wszystkie zalety Arduino. Musisz zmodyfikować tablicę, aby umieścić pinezkę w istniejącym nagłówku lub jakoś dodać nowy nagłówek. Prawdopodobnie oznacza to, że nie będziesz mógł używać żadnych istniejących osłon, a nawet bibliotek oprogramowania dla Arduino. To większość korzyści, jakie odniosła deska. Musiałem to zrobić z Arduino Mega.

Płytki są również ogromne i niełatwe do zintegrowania z innymi płytkami drukowanymi. Płyta główna dla mojej aplikacji jest odpowiednikiem osłony dla Arduino Mega, która miała otwory montażowe dla wybranej przeze mnie obudowy. Właśnie podłączyłem Arduino Mega do nagłówków, które umieściłem na mojej płycie. Było to jednak dużo w górę iw dół, aby pomieścić, i było dużo zmarnowanego miejsca ze względu na rozmiar płyty deweloperskiej. Nie potrzebowałem połowy tego, co tam było i zajmowało tylko miejsce. Wymagało to, żebym miał większą płytkę drukowaną i obudowę, niż w przeciwnym razie byłbym potrzebny. To zmarnowane pieniądze.

AngryEE
źródło
1
Konstrukcja arduino (a nawet zasilana ramieniem) jest na tyle prosta, że ​​jeśli zamierzasz stworzyć płytkę drukowaną odpowiednią do logiki cyfrowej, aby ją wyposażyć, równie dobrze możesz po prostu dołączyć procesor. Byliby bardziej kuszący, gdybyś nie zamierzał w ogóle robić PCB, lub robiłby to jednostronnie lub w specjalnej technologii analogowej lub RF, w której nie chciałeś mieć części cyfrowych na tej płycie, i musiałbyś zrobić płyta kontrolera również byłaby bardziej kosztowna niż ich kupowanie (a nawet przerabianie).
Chris Stratton,
1
Chris, zdecydowanie. Każdy powinien wiedzieć, że jeśli sam tworzysz płytkę drukowaną, nie ma sensu dodawać płyty Arduino, a nie tylko odtwarzać ją na płytce drukowanej.
AngryEE
Jeśli środowisko Arduino stanie się czynnikiem ograniczającym, zawsze możesz użyć dowolnego kompilatora AVR, takiego jak GCC, BASCOM, AvrCo i stworzyć oprogramowanie wewnętrzne, które będzie działać na tej samej płycie Arduino ...
avra
4

Arduinos i spółka to platformy do prototypowania i oceny . Jako takie nie są po prostu ekonomicznie opłacalne jako podstawa nawet dla stosunkowo niewielkich serii produkcyjnych. Świetnie nadają się do edukacji i wyśmiewania pomysłów, ale produkt zatonąłby bardzo szybko, gdyby musiał ponieść koszty gotowego podzespołu, który nie był optymalny w ostatecznym użyciu.

Zdecydowanie lepiej byłoby stworzyć nową płytę zawierającą wymagane elementy „duino” i wszelkich obwodów pomocniczych, niż ponieść koszty dwóch płyt i ryzyko awarii połączeń.

Jeśli chodzi o Visual Studio i cokolwiek .net, nie dotknąłbym ich czyjąś osobą. Wybierz platformę i agnostyk producenta - coś w duchu samego projektu Arduino.

Lew
źródło
1
Nadal uważam, że wszystko zależy od kosztu twojego produktu. Powiedzmy, że możliwe jest stworzenie czegoś naprawdę atrakcyjnego z * duino, i jest to niewielka część projektu o wartości 1 mln USD, a ty kiedykolwiek sprzedasz tylko 3 z nich. Dlaczego nie byłoby to ekonomicznie opłacalne? Czy wolałbyś wydać tysiące na rozwój czegoś, co zostanie wykorzystane dwukrotnie?
Dave
2
Jeśli chodzi o komentarz do .NET, często spotykam ludzi, którzy nie lubią używać Visual Studio i / lub .NET tylko dlatego. Ja osobiście tego nie rozumiem. Visual Studio jest zdecydowanie jednym z najlepszych IDE, jakie kiedykolwiek używałem. Przyznaję, że jestem stronniczy w stosunku do narzędzi Microsoft, ponieważ pozwalają mi szybko wykonać swoją pracę, a 99% czasu po prostu działają. Chociaż powinienem naprawdę nauczyć się korzystać z płyt programistycznych z ICE, zdecydowanie doceniam łatwość korzystania ze znanego środowiska, które pozwala mi ustawiać punkty przerwania podczas debugowania. AFAIK, nie możesz tego zrobić z Arduino.
Dave
WRT twój pierwszy komentarz, powiedziałem, że stosunkowo małe serie. Widziałem serię trzech dużych zmian w budżecie jako trwających prototypów. Wyobrażam sobie, że klient też. W takiej sytuacji chętnie skorzystałbym z Arduino.
Leo
1
MS / .net opiera się na osobistym doświadczeniu. Przez ostatnie dwadzieścia lat korzystałem z prawie każdej platformy. Największe bóle głowy niezmiennie pochodzą od produktów MS. Stwardnienie rozsiane wydaje się zakładać, że ich droga jest jedyną właściwą drogą. Obecnie używam OS X, Ubuntu i Windows 7, wszystko w środowisku programistycznym. Zgadnij, który muszę zrestartować (wcale)?
Leo
4
ATMegas używane w Arduino obsługują debugowanie za pomocą debugwire - nie jestem pewien, czy sprzęt pin resetowania Arduino jest kompatybilny, ale jeśli nie, nie wymagałby wiele do włamania, ponieważ jest to tylko jeden pin. Innym potencjalnie poważnym problemem związanym z korzystaniem z tablic innych osób jest to, że zależy Ci na EMC, FCC itp.
mikeselectricstuff
3

Ogólnie rzecz biorąc, nie ma nic złego w korzystaniu z gotowych produktów. Wszyscy robimy to na pewnym poziomie, myślę, że hejterzy Arduino nie projektują własnych układów, nawet twardych na wyższym poziomie głośności, co miałoby sens ekonomiczny.

Zawsze sprowadza się do kosztów, harmonogramu i jakości (a może także długoterminowej dostępności). Jeśli Arduino spełnia te kryteria lepiej niż tablica niestandardowa, wybór jest oczywisty.

Trudność polega na uzyskaniu właściwych liczb, szczególnie dla twojego tomu. Ale użycie prawidłowych liczb i małej matematyki da ci próg rentowności do wyboru między uising, powiedzmy, Arduino a niestandardową tablicą. Jeśli jest to znacznie powyżej oczekiwań lub znacznie poniżej, wybór jest łatwy. Zapomnij więc o wszystkich radach, które mówią „albo używaj Arduino”, albo „zawsze idź na niestandardową płytę”, obie są zablokowane w sposobie myślenia, który należy do określonego poziomu głośności. Wykonuj własne obliczenia.

Pamiętaj, że nie mam konkretnej wiedzy na temat Arduino. Będziesz musiał sam zdecydować, czy spełnia on na przykład twoje wymagania jakościowe.

Wouter van Ooijen
źródło
2

Deski na zamówienie są fajne, jeśli masz na to budżet i wystarczająco dużą produkcję, aby uzasadnić pracę. W przeciwnym razie pozostaniesz przy produktach z półki, takich jak płyty Arduino, Netduino, Fez Domino i SBC (jak w PC104 i różnych formatach ITX). Tworzenie niestandardowej płyty AVR / Arduino nie jest zbyt skomplikowane, ale ciężkie modyfikacje Netduino, a nawet projektowanie (i późniejsze wsparcie) niektórych płyt Linuksa (takich jak Gumstix) wymagają specjalisty i kosztują dziesiątki tysięcy dolarów i więcej. Jeśli chcesz, aby większość ciężkiej pracy wykonała ktoś inny, i chcesz dostosować tylko niektóre jej części, moduł to magiczne słowo dla Ciebie.

avra
źródło
Zdecydowanie się z tobą zgadzam, ale w pewnym momencie nadal potrzebujesz PCB. Mam wystarczającą umiejętność, aby stworzyć jedną dla * duino i innych, aby stworzyć prostą płytkę drukowaną do rozbijania sygnałów i mocy, więc przynajmniej to nadal jest dość tanie.
Dave
Jest tani, jeśli nie potrzebujesz tysięcy, a jeśli potrzebujesz więcej mocy, moduły takie jak ten z powyższego łącza również są miłe. Uważaj, że prawdopodobnie będziesz musiał poradzić sobie z wykrywaniem braku zasilania, zakłóceniami zasilania, jeśli piszesz na eeprom, niezawodnym zasilaniem i wieloma innymi rzeczami, które zależą od konkretnej aplikacji.
avra